Three People, Eight Speaker Labels: What Multi-Speaker Calls Do to Transcription
We ran a 57-minute three-person interview through a major meeting platform's built-in transcription and through Botverse Transcribe. The built-in version produced eight speaker labels for three people, invented a participant who was never on the call, and dropped the three words that carried the entire point. Plus: why you can't just paste the audio into a chatbot, and what the transcript costs you in tokens if you try.
Three people were on the call. The meeting platform's built-in transcription produced eight speaker labels.
Not eight people. Eight labels, scattered across three actual humans, with sentences handed off mid-clause from one phantom speaker to the next. One of those labels was not a participant at all — a contractor walked into the room to ask the host a question about where the screws were kept, and the transcript quietly promoted that exchange into the interview as though it were part of the discussion.
The transcript ran to 771 lines. A great many of them were two to four words long.
What we ran
A recorded long-form research interview. Roughly 57 minutes, three participants, all remote, one of them on visibly poor bandwidth for part of the call — normal conditions, not a clean studio capture. The same audio went through two paths: the meeting platform's own built-in transcription, and Botverse Transcribe with the attendee names supplied via the API but not attributed to a voice.
That last detail matters. We hand the transcriber a flat list of who was in the room — no voice samples, no enrolment step, no mapping of name to speaker. Working out which voice belongs to which name is the transcriber's job, from the content of the conversation alone.
This is not a controlled academic benchmark. It is one real call, of the kind people actually need transcribed, reported honestly. We have run the same comparison on several interviews now and the pattern below has been consistent.
Four ways the built-in transcript failed
1. Speaker fragmentation. Eight labels for three people. This is the headline failure and it is not cosmetic. A transcript where one person's argument is split across four speaker IDs is not a record of a conversation — it is raw material that a human has to sit down and reinterpret before it is usable. The work you were trying to avoid has simply moved.
2. It invented a person. Two attendees' first names, spoken together in a single sentence, were merged into one nonsense proper noun that reads convincingly like somebody's name. Anyone skimming the transcript would reasonably conclude there was a fourth person on that call. There was not.
3. The company's own name became an unrelated English word. The organisation being interviewed had its name rendered as a completely different, ordinary word — one that appears repeatedly through the document. The single most important proper noun in the file, wrong in every instance.
4. It dropped the three words that carried the point. At one juncture a participant explained why his team had adopted a particular tool: it was not better than the alternative, but it was good enough, and — critically — it was substantially cheaper. The built-in transcript captured the first two clauses and silently lost the third. Read as transcribed, the speaker sounds like he is dismissing the tool. What he was actually doing was explaining the commercial logic for buying it. Same sentence, inverted meaning, three missing words.
That fourth category is the one that should worry anyone using a transcript as a record. Fragmented speakers are obviously broken, so you go and check. A fluent sentence with a clause quietly missing looks perfectly fine.
What Botverse returned
Three speakers, correctly separated, and correctly named from the attendee list — not "Speaker 1 / Speaker 2 / Speaker 3", but the actual names of the people talking. Coherent timestamped paragraphs rather than shrapnel. The contractor interruption stayed an interruption. And the missing commercial clause was there.
Why diarization is the actual product
Turning speech into text stopped being the hard problem some years ago. Several vendors do it well enough that the difference barely shows. What still separates a usable transcript from a pile of text is knowing who said what — and that is an acoustic problem layered under an identity problem, which is why so many tools quietly fail at it and hand you "Speaker 0 / Speaker 1 / Speaker 2" instead.
Botverse closes that second half with a naming pass: given the attendee list, it reads the transcript the way a person would — self-introductions, how people address one another, role and topic cues — and assigns real names, with a confidence score and an honest best-effort label. It never invents content; it only assigns identity. On a three-person call with cross-talk, a dropped connection and someone wandering in about a box of screws, that is the difference between minutes you can send and a file you have to rewrite.
"Couldn't I just paste it into a chatbot?"
This is the question we get most often, and the answer is more absolute than people expect: you cannot put the audio in at all.
Claude, GPT, and Gemini accept text, images, and PDFs. None of them accept a raw WAV, MP3, or MP4 as a file to reason over. The recording behind this post is a 326 MB WAV — there is no path for it into a chat window. Not an expensive path, not a slow path. None.
And even if there were, the model would be solving the wrong problem. Diarization is acoustic — separating voices by their properties in the waveform. A model handed text has no waveform. It cannot recover who-said-what that was never in the text to begin with. The failure at the top of this post — eight speaker labels for three people — is not a failure a language model can fix by reading harder.
So the realistic do-it-yourself path is two steps: run some speech-to-text yourself, then paste the resulting transcript into a chat window to tidy it up. That second step is where the token cost lands, and it is worth seeing the number.
This transcript is about 11,000 words — roughly 15,000 tokens once speaker labels and timestamps are counted. Pasting it into a chat window doesn't cost you that once. It costs you that on every subsequent message, because the transcript sits in the context window and is re-processed with every turn:
Token counts are estimates for this transcript; costs are at Claude Opus 4.8 input pricing ($5 per million input tokens). Cheaper models shift the absolute numbers — Sonnet 5 is $3 per million, Haiku 4.5 is $1 — but not the shape: the transcript is re-read on every turn, and the audio still can't go in.
With Botverse the transcript never enters the model's context at all. Your agent sends a URL and gets back a job ID; the audio, the intermediate text, and the rendered document all stay on our infrastructure. The agent spends a few hundred tokens on the whole exchange regardless of whether the recording is 5 minutes or 3 hours.
How to run it
Two ways in, both one call.
From an agent, over MCP. Point transcribe_from_url at a recording and hand it the attendee list. The source can be a direct HTTPS URL or a share link from Dropbox, Google Drive, OneDrive, SharePoint, or Box — share links resolve automatically, so you don't need a download step:
const { job_id } = await callTool("transcribe_from_url", {
source_url: recordingUrl,
output_format: "docx",
options: {
attendees: ["Sarah Chen", "Mike Torres", "Priya Patel"],
language: "en-US",
max_speakers: 3
}
});
// Poll until done — the status reports a live stage:
// converting audio → transcribing → AI augmenting → rendering
let status;
do {
await new Promise(r => setTimeout(r, 8000));
status = await callTool("get_job_status", { job_id });
} while (status.state !== "complete");
const { url } = await callTool("get_download_url", { job_id });
For a local file, or anything too large to fetch from a URL, call get_upload_url first and then transcribe_media with the uploaded file — same options, same polling, up to 2 GB.
From the command line. Same pipeline, one line:
botverse transcribe interview.wav --to docx \
--attendees "Sarah Chen, Mike Torres, Priya Patel"
Ask for several formats in one call if you need them — txt for reading, json for structured segments with per-speaker confidence scores, srt/vtt for captions, docx/pdf for something you can attach to an email. Transcription is also a first-class workflow step, so it composes with transcode and convert in a single submitted job.
About $3 for a 60-minute meeting, billed per audio-minute from a prepaid wallet. No subscription, no minimums, credits never expire. One requirement worth stating plainly: you must have all parties' consent to record and transcribe.
Connect your agent or grab the CLI and try it on a call of your own. We would rather you ran the comparison yourself than took ours on faith.
Ready to connect your agent to Botverse?
Set up in five minutes. No contracts, no minimums.
Get started