Establishes a WebSocket connection to the transcription service for real-time audio streaming and transcription. Open only when the dictation session is READY or IDLE. Inbound frames use TranscriptionStreamResponse (partial and final transcripts, then a terminal EOF frame)
GET
/
ws
/
transcribe
Streams audio to the transcription service via WebSocket.
Use this file to discover all available pages before exploring further.
Use this WebSocket endpoint to stream audio to an active session for real-time transcription.For the complete workflow, usage guidelines, wire format, message order, and error handling, refer to the Audio dictation and Dictation streaming guides.
For a single guide that compares /ws/stream and /ws/transcribe (handshake, proxy behavior, and message shapes), refer to Audio streaming guide.
Stream audio in chunks for the best latency and throughput.
For partial and final inbound transcript frames, EOF, and session state rules, refer to Dictation streaming.
If the dictation session is RUNNING, COMPLETED, or in another state, the WebSocket handshake fails with FailedPrecondition (for example transcript session is not accepting new speech sessions).
The server sends JSON text frames that include transcript, is_final, and transcript_id. Use is_final to identify whether the
transcript is a partial result or a final result. After the audio stream ends, the server sends { "transcript": { "transcript": "EOF" } } and then closes the WebSocket connection.Refer to Dictation streaming for frame examples, words and speaker IDs on finals, and client-side filtering rules.
Authentication is applied during the WebSocket handshake. The method depends on your client type. Use Sec-WebSocket-Protocol header for browser clients, and sdp_suki_token and transcription_session_id headers for non-browser clients.
If you are connecting from a browser, you must use the Sec-WebSocket-Protocol header during the WebSocket handshake.The header must specify the SukiAmbientAuth protocol, followed by the token and the transcription session ID in the following format.
If you are connecting from a non-browser client, such as a mobile or server-side application, you must provide the token and session ID as separate HTTP headers in the initial WebSocket upgrade request.
sdp_suki_token: Your Suki token.
transcription_session_id: The ID for the current session.
Important:
All messages must be sent as JSON text frames over the WebSocket connection.
Do not send raw binary data or use HTTP endpoints for streaming audio.
Required FOR BROWSER CLIENTS ONLY. Sent during WebSocket handshake. Browsers must use the same subprotocol the grpc-wsproxy maps to Authorization: 'SukiAmbientAuth,<sdp_suki_token>,<transcription_session_id>' (comma-separated; token second, transcription session id third). Other names (e.g. SukiTranscriptionAuth) are not mapped and typically yield 401.