Skip to main content

SpeechRelay

SpeechRelay is a streaming speech-to-text API: you send audio over a WebSocket connection and transcript events come back on it.

Try the playground #

The free playground is the way to try SpeechRelay today. It runs mt_asr with up to eight speakers per session, four at a time, and has limited availability. You sign in with Google or GitHub; each account has a limited amount of free use, and signing in again does not add more.

Integrate with the API #

API access is not open yet. It is opening gradually; join the waitlist. These pages document the protocol for callers who already have an API key; start with the Quickstart. ts_asr is documented here but is not available in the playground.

Terms used on these pages #

  • Session — one transcription, from the session.create message to its final event. Each session has its own WebSocket connection.
  • mt_asr — multi-talker mode. It transcribes a conversation between several people and labels each speaker.
  • ts_asr — target-speaker mode. It follows one person, whose voice you send first as a short enrollment clip.
  • dicon.v1 — the WebSocket subprotocol name. Every stream connection offers it.
  • Partial and final — a transcript.partial adds words while someone is talking; a transcript.final carries that speaker's complete text. Streaming explains how to read them.

In this documentation #

  • Quickstart — stream a WAV file and print its transcript.
  • Authentication — send your key, and tell a rejected key from one without permission.
  • Streaming — every message on the stream, and how a stream ends.
  • Resume — reattach after a dropped connection, where the service enables it.
  • Batch — send a whole WAV file in one request.
  • Ordering, bounds and errors — the error format, every code, and what to retry.
  • Limits — session bounds and quotas.
  • Service endpoints — health and readiness probes.
  • Pricing and quotas — the planned API price and the playground.
  • Data retention — what is kept, for how long, and what is not stored.