STT & TTS vendors

VoiceThere cloud runners synthesize and transcribe speech using providers you pick per project. Configure STT and TTS independently (for example Deepgram STT with OpenAI TTS, or VoiceThere for both with no API keys).

Where to configure

  • Dashboard: Project Settings → Voice (STT / TTS). Third-party keys go in project secrets (see Agent environment & secrets).
  • Control plane API: Patch stt_provider, tts_provider, and model ids before deploy. See Control plane API.

A project setting applies to new sessions after you Deploy to cloud. A live session can change STT, TTS, or the vendor without reconnecting: agent code calls setVoiceLanguage with sttVendor or ttsVendor. The API key has to already be a project secret on that deploy. See Switching language mid-conversation. Cloud speech from third-party vendors is billed by that vendor (not VoiceThere speech credits). VoiceThere STT/TTS is metered in VoiceThere usage credits.

Vendor setup guides

Each page below covers secrets, example model ids, what the cloud integration does, and known gaps for that provider. The complete allowlist of ids VoiceThere accepts is published in @node-webrtc-rust/voice-catalog and mirrored in dashboard Voice settings.

Streaming matrix (high level)

Partial transcripts and progressive TTS depend on the model and provider. Not every row streams live partials on both legs.

ProviderSTTTTSNotes
voicethereStreaming, built inStreaming, built inNo API keys; metered on VoiceThere. The older ids local-sherpa and cluster-sherpa are deprecated aliases.
openaiFile/SSE or Realtime WS by modelHTTP or SSE streamgpt-live-transcribe uses Realtime WS.
deepgramListen WS (nova-2 / nova-3)Aura / Flux speakFlux is not a listen model.
elevenlabsScribe v2 RealtimeHTTP / WS streameleven_v3 skips WS stream TTS.
googleV2 stream or batch RESTNeural2 batch; Chirp3-HD streamsChirp STT uses V2 streaming when configured.
assemblyaiLive WSn/aSTT-only.
cartesian/aWS TTSTTS-only.
fishaudioRealtime socket (finals only)HTTP stream (Drama 3)No STT partials; barge-in uses voice activity.
groqFile upload (no live partials)HTTP OrpheusWhisper file models only for STT.
azureREST conversation (finals)Neural RESTKey, region, and STT resource hostname required.
awsTranscribe streamingPolly neuralIAM access key, secret, and region.

See also

← All documentation