π οΈ Installation & Setup
You can use Wyoming in your own Python project, deploy it with Docker, or run it as part of Home Assistant via add-ons. Itβs designed to be lightweight and embeddable.
π¦ Option 1: From Source (Development)
git clone https://github.com/rhasspy/wyoming
cd wyoming
pip install .
Requirements:
- Python 3.8+
- No external dependencies
- Optional: aiohttp for HTTP servers
π³ Option 2: Dockerized Services
Many Wyoming-compatible services offer Docker images:
docker run -p 10200:10200 rhasspy/wyoming-whisper --uri tcp://0.0.0.0:10200
Examples:
- wyoming-whisper (ASR)
- wyoming-piper (TTS)
- wyoming-openwakeword (Wakeword)
π§ Option 3: Home Assistant Add-ons
If you're using Home Assistant:
- Go to Settings > Add-ons > Add-on Store
- Search for:
- Piper (TTS)
- Whisper (ASR)
- OpenWakeWord
- Install and configure pipeline in Assist Settings
Wyoming is used as the protocol between Assist and these services.
π§ͺ Option 4: CLI Testing
Use mic_transcribe.py to stream audio to a Wyoming ASR server:
python scripts/mic_transcribe.py --uri tcp://localhost:10200 --rate 16000 --width 2 --channels 1
π Choosing a URI
Wyoming URIs describe the connection type:
| URI Scheme | Description |
|---|---|
tcp://host:port |
Network socket (cross-host) |
unix:///path |
Fast local Unix socket |
stdio:// |
Communicate via stdin/stdout |
π§° Useful Tools
wyoming-cli: Minimal Wyoming command-line tool (coming soon)client.py: Example implementation of a TCP clientserver.py: Base class to build custom Wyoming servers
β Test It
After starting a service:
echo '{"type":"ping"}' | nc localhost 10200
You should receive a pong response if the server is active.