Skip to content

feat(api): add OpenAI Realtime compatible TTS on /v1/realtime, Speech endpoint fields on all websockets - #584

Merged
remsky merged 2 commits into
masterfrom
feat/realtime-tts
Nov 4, 2026
Merged

remsky merged 2 commits into
masterfrom
feat/realtime-tts

Conversation

@remsky

@remsky remsky commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

OpenAI Realtime compatible TTS on /v1/realtime, for Realtime TTS clients (wyoming_openai etc). TTS only: response.create text input, 24 kHz PCM output. OpenAI's Speech models shut down Jan 2027 and point users to Realtime.

  • Voice names map the same as on the Speech endpoint, as a string or {"id": ...}
  • voice_aliases, lang_code, volume_multiplier, normalization_options work on all three websocket routes (shared SpeechOptions), no voice tags
  • response.cancel stops a response. Audio input and conversation events get an error back
  • Same ENABLE_WEBSOCKET_TTS switch and API_KEYS auth as the ElevenLabs/Cartesia routes
  • Client tests use the real openai SDK (3.44.0, test-only dependency)

ElevenLabs route now checks the voice on the first context message instead of at connect, since aliases arrive with it. Bad voices still close with 1008.

Testing

  • uv run pytest passes locally (API changes)
  • npm run test:web passes locally (web player changes)
  • New or changed behavior has a test
  • Ran in Docker (npm run cpu:up / gpu:up), for inference or docker changes
  • CHANGELOG.md entry, if users will notice the change

@remsky
remsky merged commit 4749e8c into master Nov 4, 2026
8 checks passed
@remsky
remsky deleted the feat/realtime-tts branch November 4, 2026 02:42
@remsky remsky linked an issue Nov 5, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support OpenAI's v1/realtime transcription API

1 participant