Skip to main content
Standalone transcription — no LLM turn, no TTS, no voice-agent session. Use STTClient for a single pre-recorded clip, or SpeechToTextClient for continuous/live transcription from a microphone.

Batch transcription

STTClient sends one complete audio clip to POST /stt/transcribe and returns the transcript.

Options

Result

Live transcription

SpeechToTextClient streams microphone audio to WS /ws/stt. The server’s VAD detects utterance boundaries automatically — you get partial transcripts while the user is speaking and a final transcript once they stop.

Options

Call endUtterance() / end_utterance() to force-finalize whatever’s currently in progress (e.g. a “done speaking” button) instead of waiting for VAD silence.

Which one do I want?

  • A file the user already recorded or uploaded → STTClient.transcribe().
  • Live captions, dictation, or transcribing what’s coming from a microphone right now → SpeechToTextClient.
  • Building a full voice conversation (LLM responds, TTS speaks back) → VoiceAgentClient instead — it already includes STT as part of the turn.