Wyoming Protocol TTS adapter for Home Assistant. It receives synthesize requests, segments Chinese/Japanese/English text, generates Azure multi-voice SSML, and returns 24 kHz 16-bit mono PCM audio.
Copy .env.example to .env for local development.
Required:
AZURE_SPEECH_KEYAZURE_SPEECH_REGION, defaultjapaneast
Useful defaults:
WYOMING_PORT=10300HEALTHCHECK_PORT=8080LOG_LEVEL=info, supportsdebug,info,warn,error,silentAZURE_REQUEST_TIMEOUT_MS=15000VOICE_ZH=zh-TW-HsiaoChenNeuralVOICE_JA=ja-JP-NanamiNeuralVOICE_EN=en-US-AvaMultilingualNeuralDEFAULT_LANGUAGE=zh
npm install
npm test
npm run build
npm startHealthcheck endpoint:
curl http://127.0.0.1:8080/healthcheckBuild locally:
docker build -t wyoming-cloud-tts:dev .
docker run --rm -p 10300:10300 -p 8080:8080 --env-file .env wyoming-cloud-tts:devInstall from GHCR:
docker pull ghcr.io/happyeric77/wyoming-cloud-tts:0.1.0
docker run -d \
--name wyoming-cloud-tts \
--restart unless-stopped \
-p 10300:10300 \
-p 8080:8080 \
-e AZURE_SPEECH_KEY=your-key-here \
-e AZURE_SPEECH_REGION=japaneast \
ghcr.io/happyeric77/wyoming-cloud-tts:0.1.0Verify container health:
curl http://127.0.0.1:8080/healthcheckFor Home Assistant Wyoming integration, point the service to:
- host: the machine running this container
- port:
10300
Azure is requested with riff-24khz-16bit-mono-pcm. The adapter strips the WAV/RIFF container and sends raw PCM via Wyoming audio-chunk events with:
rate:24000width:2channels:1