Skip to main content

Palabra × jambonz

A jambonz custom speech vendor backed by Palabra Realtime STT/TTS: plug Palabra into the jambonz CPaaS as the recognizer and synthesizer of your applications.

  • /stt (WebSocket, no subprotocol) — jambonz sends start (language, format: "raw", encoding: "LINEAR16", sampleRateHz, interimResults), binary linear16 frames, then stop. Audio is forwarded to Palabra at the call's sample rate (8 kHz telephony as a rule — no resampling); Palabra transcripts come back as transcription messages (interim ones only when interimResults is on). On stop the bridge sends finalize, delivers the final transcript and closes the socket, as the protocol requires.
  • /tts (HTTP POST) — jambonz sends {language, voice, type: "text"|"ssml", text}; the bridge returns the whole utterance as audio/wav (SSML tags are stripped — Palabra TTS takes plain text).
  • /healthz (GET).

Run

pip install palabra-ai-jambonz-bridge
export PALABRA_API_KEY=plbr_...
export JAMBONZ_API_KEY=...          # the API key you enter for the vendor in the jambonz portal
palabra-jambonz-bridge --port 8081
docker run -e PALABRA_API_KEY=plbr_... -e JAMBONZ_API_KEY=... -p 8081:8081 palabra-jambonz-bridge
Variable Default Meaning
PALABRA_API_KEY — Palabra API Key
JAMBONZ_API_KEY — if set, Authorization: Bearer <key> is required on /stt and /tts
PALABRA_VOICE_ID default_low TTS voice when jambonz sends none
PALABRA_TTS_SAMPLE_RATE 24000 sample rate of the returned WAV (8000–48000)
PALABRA_FINALIZE_TIMEOUT 10 seconds to wait for the final transcript after stop
LOG_LEVEL INFO

jambonz configuration

Portal: Speech → Add speech service → vendor "Custom" → name, API key (the same value as JAMBONZ_API_KEY), STT URL wss://<your-host>/stt, TTS URL https://<your-host>/tts. Applications then use custom:<name> as the recognizer / synthesizer vendor.

Protocol details

Transcription messages:

{ "type": "transcription", "is_final": true,
  "alternatives": [{ "transcript": "...", "confidence": 0.9 }],
  "channel": 1, "language": "en-US" }

language echoes the BCP-47 code jambonz sent; Palabra receives the short code (en-US → en). Palabra does not report confidence, so a constant 0.9 is returned. Errors are {"type": "error", "error": "..."}. options.hints are accepted and ignored. jambonz's separate streaming-TTS WebSocket protocol (connect / stream / flush / stop) is not implemented.

Tests

pip install -e ".[dev]"
pytest -m "not live"                          # offline (fake Palabra client, real FastAPI app)
PALABRA_API_KEY=plbr_... pytest -m live -s    # /tts (8 kHz wav) -> /stt round trip against the API

Status

Protocol checked against the current jambonz documentation and the reference custom-speech-example; exercised end-to-end against the Palabra API with a test client playing jambonz's part (8 kHz). Not yet run against a live jambonz. Concurrent calls each open their own Palabra STT session with the same API Key.

Metadata

Release files for palabra-ai-jambonz-bridge 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 palabra-ai-jambonz-bridge 0.1.0
File Size Uploaded
palabra_ai_jambonz_bridge-0.1.0.tar.gz 13.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for palabra-ai-jambonz-bridge 0.1.0
File Interpreter ABI Platform
palabra_ai_jambonz_bridge-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.3 kB

Release files / palabra_ai_jambonz_bridge-0.1.0.tar.gz

Download URL palabra_ai_jambonz_bridge-0.1.0.tar.gz
Size 13.9 kB
Tags Source
SHA-256 checksum
How to use checksums
447556eb80a8497ae313a5d2707316f334b45be215190471f1050c169e3b3aac
BLAKE2b-256 checksum
How to use checksums
5c72debb0fa86a7b1fee5b805999d0b385514821ea645efedcedcf04da18e2d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

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

Download URL palabra_ai_jambonz_bridge-0.1.0-py3-none-any.whl
Size 14.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0f004ef4a48d13e8a797418f698cd75bf08cdbe1f085d7ab86f8a4ae558531d
BLAKE2b-256 checksum
How to use checksums
afcdee379dd2599d69e11d1534b51fd3d877cd6ccf0e5121d36a3871c7153a86
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