Skill 詳細

ha-voice

Relevant only for Home Assistant Assist voice, intents, and speech pipelines.

一致度一致の可能性home assistant 向けにレビュー済み
出典nodnarbnitram/claude-code-extensions外部ソース
報告インストール数214人気度の参考値

使用前に確認

自動レビューは関連性のみを確認し、安全性や推奨を保証しません。使用前に出典の説明を読んでください。

保存された出典プレビュー

SKILL.md

これはレビュー時に保存された抜粋です。完全で最新の内容は外部ソースを確認してください。

---
name: ha-voice
description: "Configure Home Assistant Assist voice control with pipelines, intents, wake words, and speech processing. Use when setting up voice control, creating custom intents, configuring TTS/STT, or building voice satellites. Activates on keywords: Assist, voice control, wake word, intent, sentence, TTS, STT, Piper, Whisper, Wyoming."
---

# Home Assistant Voice Control

> Configure Assist pipelines, custom intents, wake words, speech processing, and voice satellites for local voice control.

## Quick Start

### Setting up Assist Pipeline

```yaml
# configuration.yaml
assist_pipeline:
  pipelines:
    - language: en
      name: Default Pipeline
      stt_engine: faster_whisper  # Local STT
      tts_engine: tts.piper       # Local TTS
      conversation_engine: conversation.home_assistant
      wake_word_entity: binary_sensor.wake_word
```

**Why this matters:** The pipeline connects all components (STT, TTS, intent, conversation agent) into a single voice workflow.

### Creating Custom Intents

```yaml
# custom_sentences/en/turn_on.yaml
language: en
version: 1

intents:
  TurnOn:
    data:
      - sentences:
          - "turn on the [area] {name:list}"
          - "turn on {name:list}"
          - "[please] activate {name:list}"
        lists:
          name: light_names

lists:
  light_names:
    - "bedroom light"
    - "kitchen overhead"
    - "living room"
```

**Why this matters:** Custom sentence patterns enable natural voice commands tailored to your home.

### Configuring Text-to-Speech (TTS)

**Local Option - Piper:**
```yaml
tts:
  - platform: piper
    language: en_GB
    voice: jenny_dioco
```

**Cloud Option - OpenAI:**
```yaml
tts:
  - platform: tts
    service: google_translate_say  # or openai, google cloud
    language: en
```

**Why this matters:** TTS gives voice feedback; local options require no cloud dependencies.

### Configuring Speech-to-Text (STT)

**Local Option - Faster Whisper:**
```yaml
stt:
  - platform: faster_whisper
    language: en
```

**Cloud Option - Google Cloud Speech:**
```yaml
stt:
  - platform: google_cloud
    language_code: en-US
```

**Why this matters:** STT converts spoken commands to text; local options provide privacy.

## Critical Rules

### ✅ Always Do

- ✅ Use `custom_sentences/` directory for intent configuration (not deprecated `sentences/`)
- ✅ Test intents with Assist Developer Tools before deploying
- ✅ Use `{name:list}` syntax for slot-based entity matching
- ✅ Configure both STT and TTS engines in the same pipeline
- ✅ Verify wake word entity exists before enabling in pipeline
- ✅ Document intent lists so voice commands are discoverable

### ❌ Never Do

- ❌ Don't hardcode entity IDs in sentence patterns (use lists and slots)
- ❌ Don't forget `version: 1` in custom_sentences YAML files
- ❌ Don't mix old `sentences/` directory with new `custom_sentences/` (use `custom_sentences/` only)
- ❌ Don't enable Piper TTS without adequate disk space (models are 100+ MB)
- ❌ Don't use wildcard `{query}` for every slot (makes intents ambiguous)
- ❌ Don't skip testing with Assist Developer Tools

### Common Mistakes

**❌ Wrong - Hardcoded entity IDs:**
```yaml
intents:
  TurnOn:
    data:
      - sentences:
          - "turn on light.bedroom"
          - "turn on light.kitchen"
```

**✅ Correct - Using slot lists:**
```yaml
intents:
  TurnOn:
    data:
      - sentences:
          - "turn on [the] {name:list}"
        lists:
          name: light_names

lists:
  light_names:
    - "bedroom"
    - "kitchen"
```

**Why:** Lists are dynamic and can be generated from Home Assistant entities programmatically.

## Sentence Pattern Syntax

### Slots

**Named slots** match list values:
```yaml
sentences:
  - "turn on {name:list}"  # Matches list value, captures as 'name' slot
```

### Lists

**List matching** provides slot values:
```yaml
lists:
  room:
    - "bedroom"
    - "kitchen"
    - "living room"
```

### Optional Groups

**Square brackets** make words option
GitHub で全文を読む (外部ページ)
関連情報

関連する仕事