Skip to main content

Palabra × Wyoming (Home Assistant / Rhasspy)

A Wyoming protocol server exposing Palabra Realtime STT and TTS as a speech provider for Home Assistant voice assistants (and any other Wyoming client, e.g. Rhasspy 3).

  • ASR — transcribe + audio-start / audio-chunk / audio-stop. Audio is forwarded to Palabra as it arrives, at the rate Home Assistant records at (no resampling; other sample widths and channel counts are converted to 16-bit mono). audio-stop sends finalize; the final transcript is returned as transcript.
  • TTS — synthesize → audio-start, audio-chunk… (pcm_s16le 24 kHz mono, streamed as generated), audio-stop. Home Assistant's streaming synthesis (synthesize-start / synthesize-chunk / synthesize-stop) is supported: completed sentences are synthesized while the LLM is still writing.
  • Discovery — describe returns the ASR model (13 languages) and the voices.

Run

pip install wyoming-palabra
export PALABRA_API_KEY=plbr_...
wyoming-palabra --uri tcp://0.0.0.0:10300
docker run -e PALABRA_API_KEY=plbr_... -p 10300:10300 wyoming-palabra

Options: --language (TTS language when the request does not say; default en), --default-voice (default_low), --voice <id> (repeatable — advertise additional voices, e.g. ones cloned through the Palabra Voices API), --log-level. Environment equivalents: WYOMING_URI, PALABRA_LANGUAGE, PALABRA_VOICE_ID, LOG_LEVEL, plus PALABRA_REGION.

Home Assistant

Settings → Devices & services → Add integration → Wyoming Protocol → host and port of the server (10300). Palabra then appears as a Speech-to-text and Text-to-speech engine under Settings → Voice assistants.

Voices are advertised per language as <lang>-<voice> (en-default_low, de-default_high, …) because a Wyoming synthesize request carries either a voice name or a language, never both. Home Assistant shows only the voices matching the assistant's language; the server derives the synthesis language from the chosen voice, falling back to the language of the last transcribe, then --language.

Tests

pip install -e ".[dev]"
pytest -m "not live"                          # offline: a real Wyoming client against the server with a fake Palabra
PALABRA_API_KEY=plbr_... pytest -m live -s    # describe -> synthesize -> transcribe round trip against the API

Status

Checked against wyoming 1.10 (required Info / Artifact fields, optional Synthesize.voice, one handler per connection) and exercised end-to-end with wyoming.client.AsyncTcpClient — the class Home Assistant uses — against the Palabra API. Not yet run inside a live Home Assistant. Each connection opens its own Palabra STT session with the same API Key, so voice commands from several satellites are transcribed in parallel.

Metadata

Release files for wyoming-palabra 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wyoming-palabra 0.1.0
File Size Uploaded
wyoming_palabra-0.1.0.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wyoming-palabra 0.1.0
File Interpreter ABI Platform
wyoming_palabra-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / wyoming_palabra-0.1.0.tar.gz

Download URL wyoming_palabra-0.1.0.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
32d2a30798625f850e93316a145039b99d9b817548de2473c6128eaa315de8af
BLAKE2b-256 checksum
How to use checksums
22c5789baefd1ceb88a2d2322e68d8e8a5f769d2f514734f690a7bd3a0b1a78a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release files / wyoming_palabra-0.1.0-py3-none-any.whl

Download URL wyoming_palabra-0.1.0-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b2eac6a520a07ebbbecf2dd7343b6f359a2d4a5f3348227d9e98fb746ab9244
BLAKE2b-256 checksum
How to use checksums
9c8b3ab1cda920764095c4f69cae7c3381e4b25f63382864604fabbdc7b3d084
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page