# speech-to-phrase

> Self-hosted speech recognition matching only predefined phrases from Home Assistant entities. Runs via Docker or Python, uses Wyoming protocol, supports 20+ languages.

- **Category:** Voice Assistants
- **Licence:** Apache-2.0
- **Latest version:** v1.4.3
- **Open source:** oss
- **Languages:** C, Python, C++
- **Platforms:** Docker, Python
- **Tags:** Privacy, Voice Assistant, Offline, Local Ai, Home Automation, Home Assistant, Speech To Text, Voice control, Wyoming, Kaldi

## Description

Speech-to-Phrase is a fast, local speech-to-text system built for Home Assistant voice control. Unlike general-purpose recognition, it only matches predefined phrases by combining sentence templates with your exposed device, area, and floor names. The system uses Kaldi for acoustic modeling, hassil for sentence compilation, and finite state transducers via OpenFST and OpenGRM for efficient language model training. It supports over 20 languages including English, French, German, Dutch, Spanish, Italian, Russian, Czech, Catalan, Greek, Romanian, Portuguese, Polish, Hindi, Basque, Finnish, Mongolian, Slovenian, Swahili, Thai, and Turkish. Users can add custom sentences via YAML files. The software runs as a Wyoming protocol server on port 10300, integrating with Home Assistant's Wyoming integration. Models and tools download automatically from Hugging Face. The project is now being rewritten in a separate repository using a constrained CTC decoder rather than Kaldi.

## Links

- [Homepage](https://github.com/OHF-voice/speech-to-phrase)
- [Docker](rhasspy/wyoming-speech-to-phrase)
- [GitHub Repository](https://github.com/OHF-Voice/speech-to-phrase)
- [OHF-Voice/apps (successor)](https://github.com/OHF-Voice/apps/tree/main/speech-to-phrase)

---
Source: https://selfhost.directory/project/speech-to-phrase