# Speaker diarization: transcribe with speaker labels

See who spoke when in a recording with several speakers, with the text in speaker turns, captions, and word timings.

## How it works

1. Add your multi-speaker audio or video recording, up to 10 GB with no sign-up.
2. Keep Label speakers on. Audo detects which of 60 languages is spoken.
3. Read each speaker's turns, click a line to hear it, and download TXT, VTT, SRT, or JSON with word timings.

## Where speaker labels matter most

Label up to 8 voices in recorded calls, group sessions, and shows, in the browser or through the API.

### Calls: Sales calls, customer interviews, and support recordings

See what the customer said and what your colleague said, without typing times by hand. Click any sentence to hear it and check the wording before you share notes. For an interview between two people, use Interview transcription.

### Focus groups & meetings: Roundtables, panels, depositions, and recorded meetings

Up to 8 people are labeled, and signed in, a recording can be up to 10 hours long. To also cut a recorded meeting down to its main points, use Meeting shortener.

### Shows & video: Co-hosted podcasts and multi-guest video episodes

Download text in speaker turns for an article, VTT captions with each speaker's label for web players, and SRT subtitles without labels for YouTube. To cut the audio or video by its words, open the result in the Text-based editor. For whole episodes, see Podcast transcription.

### Developers & agents: Speaker diarization through the API or MCP

There is no Python environment or GPU to set up. Send one request to the Free API or the REST API, or connect the MCP server to Claude Code, Cursor, or ChatGPT. The JSON result gives a speaker number for every word.

## Who spoke when, timed to every word

Audo's speaker diarization splits audio (WAV, MP3, M4A, AAC, FLAC, OGG, Opus, WebM, AIFF) and video (MP4, MOV, MKV, WebM, AVI) into labeled speaker turns, in 60 languages, for up to 8 voices, on files up to 10 GB without an account and up to 10 hours signed in, with the first 2 minutes free, 3 times a day, and no sign-up. A 2-minute recording is usually ready in under 10 seconds. Recent hour-long recordings came back in under 2 minutes.

Diarization tells you who spoke when, not who each person is. The first voice heard becomes Speaker 1, the second Speaker 2, and a voice that comes back keeps its number. Replace the labels with real names wherever you use the text. To cut the audio or video by its words, press Open in editor after transcribing, which opens the Text-based editor.

No caption mixes two speakers. If a recording is noisy, run it through Remove noise first, so background voices aren't taken for another speaker.

How speaker diarization differs from plain transcription, speaker recognition, and voice isolation

| Task | Question answered | How Audo handles it |
|---|---|---|
| Speaker diarization | Who spoke when across a conversation? | Labels up to 8 voices, Speaker 1 to Speaker 8, in TXT, VTT, and JSON |
| Speech-to-text alone (plain Whisper) | What words were spoken? | Included, in 60 languages |
| Speaker recognition | Which known person is speaking? | Not done: speakers are numbered, never named |
| Voice isolation | How do I remove noise or music from behind speech? | Done by Remove noise, Audio enhancer, and Voice isolator |

Tool: Transcribe (`transcribe_audio`). The same tool's other pages: https://audo.ai/transcribe.md, https://audo.ai/podcast-transcription.md, https://audo.ai/interview-transcription.md, https://audo.ai/srt-file-generator.md, https://audo.ai/text-based-editor.md. Price: 3 credits a minute — $0.03/min ($1.80/hr), pay-as-you-go with no monthly subscription — of input for whole files, charged only when a job succeeds.

## Free API

```bash
curl -F file=@meeting.mp3 -F format=txt -F speaker_labels=true https://audo.ai/api/try/transcribe -D response.headers -o response.body
```

Read response.headers and response.body before naming media. Handle 202, 200 JSON and errors with the complete response client at https://audo.ai/docs/api?utm_source=markdown&utm_medium=agent#responses.

Free for the first 2 minutes of each file, 3 times a day per person, with no key or account. Uploads up to 10 GB, 2 at once from one address. The response is the result itself; a job that runs longer than about 30 seconds returns 202 with a link to check on it. With an API key (`-H "Authorization: Bearer $AUDO_API_KEY"`), omitting free runs the full job with credits if the balance covers it, otherwise the free allowance if quota remains. Set free=true to prohibit spending; for paid runs use free=false with an approved positive max_credits. A free result cut short comes with finishUrl (and the Audo-Finish-Url header when the response is the file itself): give it to the person, who pays there (from $5, no sign-up), and the whole file runs; keep checking the status link, whose finishedBy names the whole-file job and its own status link. Details: https://audo.ai/docs/api.md

## Options

Form fields with the same names as the MCP tool's inputs:

- `language`: The spoken language, as a code such as en or ja. Default: detected.
- `verbatim`: Keeps filler words such as um and uh, so they can be cut later. Default true.
- `speaker_labels`: Labels who speaks when: Speaker 1, Speaker 2, and so on, in the order they first speak, up to 8 people. No names. Default true.
- `format`: what the free API returns: json (default), srt, vtt, or txt.

## Speakers

Transcription includes automatic speaker diarization and labels who speaks when, unless `speaker_labels` is false: Speaker 1, Speaker 2, and so on, numbered in the order people first speak, without real names. It finds at most 8 speakers.

- JSON: every word and sentence has `speaker` (a number from 1), and the transcript has `speaker_count`. A sentence never spans two speakers.
- TXT: with two or more speakers, one paragraph per turn, starting "Speaker 1: ".
- VTT: with two or more speakers, each cue names its speaker in a voice span, such as `<v Speaker 1>`.
- SRT: no names, so it stays clean for YouTube.
- No caption spans two speakers.
- The job's result has `speaker_labels` (`on`, `off`, or `failed`) and `speaker_count`.
- Reading the transcript: MCP `get_transcript` gives `speaker_count` and each sentence's `speaker`; the REST transcript endpoint gives `speakerCount` and `speaker`.

If labeling fails, the job still succeeds with every word, just without speakers: `speaker_labels` is `failed`, and the result has a `warning`.

## Languages

60 languages, detected automatically. To name one, set `language` to its code: `af` Afrikaans, `ar` Arabic, `hy` Armenian, `as` Assamese, `az` Azerbaijani, `bn` Bengali, `bs` Bosnian, `bg` Bulgarian, `yue` Cantonese, `ca` Catalan, `zh` Chinese (Simplified), `cs` Czech, `da` Danish, `nl` Dutch, `en` English, `et` Estonian, `fil` Filipino, `fi` Finnish, `fr` French, `gl` Galician, `de` German, `el` Greek, `gu` Gujarati, `he` Hebrew, `hi` Hindi, `hu` Hungarian, `is` Icelandic, `id` Indonesian, `it` Italian, `ja` Japanese, `kn` Kannada, `kk` Kazakh, `ko` Korean, `lv` Latvian, `lt` Lithuanian, `mk` Macedonian, `ms` Malay, `ml` Malayalam, `mr` Marathi, `ne` Nepali, `nb` Norwegian Bokmål, `or` Odia, `fa` Persian, `pl` Polish, `pt` Portuguese, `pa` Punjabi, `ro` Romanian, `ru` Russian, `sk` Slovak, `sl` Slovenian, `es` Spanish, `sw` Swahili, `sv` Swedish, `ta` Tamil, `te` Telugu, `th` Thai, `tr` Turkish, `uk` Ukrainian, `ur` Urdu, `vi` Vietnamese.

## From an assistant (MCP)

Add https://audo.ai/mcp and sign in (setup for each assistant: https://audo.ai/setup.md). The tool is `transcribe_audio`:

> Transcribes speech in an audio or video file, with a start and end time for every word and who speaks when (Speaker 1, Speaker 2, and so on, in the order they first speak). Use it when the person wants text or captions, or wants to cut by words. Not for lining up a script they already have (align_script). It costs 3 credits a minute, charged only if the job succeeds. Returns TXT, SRT, VTT, and JSON files, which get_transcript reads, or job_id for get_job if it takes longer.

Example: "Use Audo to run speaker diarization on panel-call.mp4 and return the speaker-labeled transcript."

## Questions

**Is there a free speaker diarization tool online?** Yes. Audo runs online speaker diarization and multi-speaker transcription for free on the first 2 minutes of each file, 3 times a day, with no sign-up. Whole recordings cost $0.03 a minute ($1.80 an hour), with no subscription — see pricing.

**How do speaker labels in transcription work?** Each voice is labeled Speaker 1, Speaker 2, and so on, up to 8 speakers, in the order people first talk. The plain text is grouped into speaker turns, VTT captions mark each cue with <v Speaker N>, and the JSON gives a speaker number for every word. SRT has no speaker labels, so video subtitles stay clean. A recording with one speaker has no labels.

**Does OpenAI Whisper do speaker diarization on its own?** No. Plain Whisper transcribes spoken words and timestamps without separating who spoke when, so developers normally combine it with a separate diarization model such as pyannote. Audo does both together, from one upload in the browser, one API request, or one MCP call.

**What is the difference between speaker diarization, speaker recognition, and voice isolation?** Speaker diarization works out who spoke when, without knowing who anyone is. Speaker recognition matches a voice to a known person, which this tool doesn't do. Voice isolation removes background noise or music from behind speech and doesn't label speakers. For a noisy recording, use Voice isolator.

**How many speakers and how long a recording can Audo handle?** Audo labels up to 8 speakers on files up to 10 GB without an account, and up to 10 hours long when signed in. A 2-minute recording is usually ready in under 10 seconds. Recent hour-long recordings came back in under 2 minutes. A one-hour recording costs $1.80.

**What happens when two people talk at once or one mic is faint?** The labels are most accurate when people take turns. When two people talk at once, each word goes to one speaker, so some words in the overlap can be labeled wrong. If noise covers a speaker, or one person is far from the microphone, run the recording through Remove noise or Balance audio first.

**Can I call speaker diarization from an API, Claude Code, or Cursor?** Yes. Send an audio or video file with speaker_labels=true to /api/try/transcribe, with no key, for the free part. Run whole files through /api/v1/jobs with a key, or add Audo's MCP server to Claude Code, Cursor, ChatGPT, or Claude.

**What happens to my files?** They stay private. Files are deleted after 24 hours, and free results after 1 hour.

## More

- Every tool: https://audo.ai/llms.txt
- OpenAPI: https://audo.ai/api/openapi.json
- This page for people: https://audo.ai/speaker-diarization?utm_source=markdown&utm_medium=agent
