Home Assistant voice system consists input and output streams that can be local or remote. Input stream can be activated physically by pressing a microphone button, or with a wakeword. These streams are connected to conversation process that also can be local or remote.
Both streams are implemented as add-ons, other operating system processes/daemons and they communicate with Home Assistant with Wyoming protocol which is an integration.
Following modules implement different parts of voice system:
- pvporcupine - wakeword detector process.
- wyoming-porcupine1 - wyoming protocol for wakeword
- openai-whisper - remote OpenAI daemon for speec-to-text conversion
- piper_tts - local daemon for text to speec conversion
- wyoming-piper - wyoming protocol for Piper
- whisper
modules implement the Python code but lack required parts to run them as system daemons.
$ pip install piper_tts whisper woming-piper wyoming-porcupine1 wyoming-faster-whisper
$ TMPDIR=/var/tmp pip --no-cache-dir install --upgrade openai-whisper
See also