Transcription integration
The MeetStream transcription integration gives you six post-call engines and two live ones. Pick one per request, and speaker labels hold whichever engine you pick.
What you get with transcription
Use ours, bring your own key, or take the raw audio and run any model you like.

Deepgram, AssemblyAI, Sarvam, JigsawStack, the MeetStream engine, or native captions.
Live transcript chunks during the call from Deepgram Streaming or AssemblyAI Streaming.
Backed by per-participant audio, plus a speaker timeline down to the byte.
Connect them in the dashboard and the $0.10 per hour add-on is waived.
One provider runs per request, and you can switch from meeting to meeting or re-transcribe a recording later with another engine.

The engines, side by side
Each engine takes its own language and speaker options, and the table names the default model.
- One engine per requestName it when you create the bot, with that engine own options beside it.
- Switch meeting to meetingThe next call can use a different engine entirely.
- Compare on your own audioTranscribe one recording twice and read both outputs.
| Engine | Mode | Default model | What it is good at |
|---|---|---|---|
| Deepgram | Post-call | nova-3 | Diarisation, smart formatting and keywords are on by default. Strong on English and other major languages |
| AssemblyAI | Post-call | universal-2 | Speaker labels, plus optional PII redaction and chapters. It has published benchmarks to point at |
| Sarvam | Post-call | saaras:v3 | Indic languages and English code-switching. Transcribe or translate modes |
| MeetStream engine | Post-call | in-house | It spots the language on its own. Optional translation, and no third-party key needed |
| JigsawStack | Post-call | auto | Auto-detect or any of 162 languages, with output per speaker |
| Meeting captions | Live only | platform | Native Google Meet and Teams captions, sent live with nothing to set up. Pair it with a post-call engine for a stored transcript |
| Deepgram Streaming | Live | nova-2 | Sentence, word or raw chunks are pushed to your webhook during the call |
| AssemblyAI Streaming | Live | universal-streaming-english | Raw or sentence chunks during the call, English |
Accuracy and language claims belong to each engine. Their own docs are linked from the providers overview.
curl -X POST https://api.meetstream.ai/api/v1/bots/create_bot \
-H "Authorization: Token $MEETSTREAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"meeting_link": "https://meet.google.com/abc-defg-hij",
"bot_name": "Notetaker",
"audio_separate_streams": true,
"recording_config": {
"transcript": { "provider": { "deepgram": { "model": "nova-3", "language": "en" } } }
},
"callback_url": "https://your-app.example.com/meetstream"
}'A webhook tells you the moment the text is ready, and the get transcription endpoint returns it raw or formatted.
Live transcripts from streaming engines
For products that act during the call, choose a streaming engine and give it a webhook URL.
- Deepgram StreamingSends whole sentences by default, which suits display. Word-level chunks and the raw payload are options.
- AssemblyAI StreamingSends raw chunks by default, or sentences.
- Live text and a stored copyRun the streaming engine during the call, then re-run the recording through a post-call engine.
One rule to design around
A streaming engine, and meeting captions with it, sends the whole text live and stops when the audio is done.
Both texts then sit against the same meeting.
Live transcript chunks to your endpointLive transcription guide: request, response and options in the docsWhy the speaker labels hold up
MeetStream captures audio per participant, so each speaker arrives on their own stream.
- A stable participant IDEvery stream is keyed by it, and the speaker timeline records who was talking down to the byte.
- The transcript inherits itChange the engine and the words change, while the names stay put.
- Per platformOn Zoom isolation is complete. On Google Meet and Teams, capture is tagged by speaker.
Bring your own speech-to-text
| What you bring | What happens |
|---|---|
| Your own key | Connect Deepgram, AssemblyAI, Sarvam or JigsawStack keys in the dashboard. MeetStream runs the engine on your account and waives the add-on |
| Your own model | Point the bot at a real-time audio WebSocket and take 48 kHz mono PCM16 frames straight from the room |
| Speaker on every frame | The speaker ID and name arrive with the audio, about 200 ms behind the talk |
| Any sample rate you need | Resample to 16 kHz if your model wants it, then run whatever you like on your side |
The diarisation entry covers where a model still helps, such as uploaded files and dial-in guests.
Raw audio to your own modelReal-time audio streaming guide: request, response and options in the docsEnterprise-level security, keep your data private.
The certificate, the audit status and the Trust Center are all on the security page.
MeetStream is ISO 27001 certified. SOC 2 Type 2 is under audit rather than complete.
MeetStream is GDPR compliant, and bots run in the United States by default.
Provider keys are stored there, never in requests.
Transcription pricing and defaults
Got a question? We got the answer.
Common questions about transcription. Engines, live chunks, speaker labels and bringing your own model.
Which transcription engines can I use?
Six post-call engines: Deepgram, AssemblyAI, Sarvam, JigsawStack, the MeetStream engine, and the meeting platform's own captions. Two live engines: Deepgram Streaming and AssemblyAI Streaming. Name the one you want in the recording configuration when you create the bot.
Can I get transcripts in real time?
Yes. Deepgram Streaming sends sentence, word or raw chunks. AssemblyAI Streaming sends raw or sentence chunks. Give either one a webhook URL and the text arrives during the call. For a stored transcript as well, run the recording through a post-call engine afterwards.
Can I re-transcribe a meeting with a different engine?
Yes. The transcribe endpoint runs a stored recording through another engine or language, on the audio you already have. A second endpoint lists every run against that bot, each with its own ID.
Do speaker labels depend on the engine?
Names come from the stream each person is on, plus the speaker timeline. That holds across every engine. Switch engines and the words change while the names stay put. On Zoom the isolation is complete. On Meet and Teams capture is tagged by speaker, and close during cross-talk.
What does transcription cost?
Transcription through MeetStream is a $0.10 per bot-hour add-on. Bring your own provider key and the add-on is waived. You pay the provider at your own rate.
Can I run my own speech-to-text instead?
Yes. Subscribe to the real-time audio WebSocket and you get 48 kHz PCM16 frames with speaker ID and name. They arrive roughly 200 ms behind the room, ready to feed any model you run.
Which languages are supported?
It depends on the engine. Sarvam is built for Indic languages, with transcribe and translate modes. JigsawStack auto-detects across 162 languages. The MeetStream engine auto-detects and can translate. Deepgram and AssemblyAI cover their published language lists. The language field is passed in each provider's own format.
Two transcripts of the same meeting.
$5 of free credit, one engine per request, and re-transcription to compare them on your own audio.
Transcribe your next meeting two ways
$5 of free credit, one engine per request, and re-transcription to compare them on your own audio.