LIFE · Research Report

Transcription & Diarization Stack

Ranked options for meeting / interview / voice-note transcription with named speakers and automatic KB ingestion — verified against primary sources.
10 June 2026105-agent deep-research run + direct source verificationCanonical doc: ~/LIFE/specs/transcription-diarization-research-2026-06-10.md

The ranking

Cost is a non-factor at LIFE's volume (every option is under ~$20/month). The decision hinges on accuracy, privacy posture, and who can label speakers by name.
1

Speechmatics

Best overall managed API

The only single vendor with accuracy + diarization + native speaker-ID-by-name (enroll 5–30s clips, batch mode, encrypted & account-scoped). SOC 2 · ISO 27001 · HIPAA · GDPR. UK company. Free 40 h/month, then ~$0.24/hr. Risk: not in AA-WER top 5 — must win the A/B on our own recordings.

2

ElevenLabs Scribe v2

Best raw accuracy · current spec primary

#1 on AA-WER (2.2%), 48-speaker diarization, async webhooks, ~$0.22/hr, key already held. Gaps: no enrolled speaker ID, and zero-retention + EU residency are Enterprise-tier only.

3

pyannoteAI Precision-2

Best speaker-ID layer (composable)

/v1/voiceprint (≤30s clip) + /v1/identify names diarized speakers with confidence scores. +28% vs open-source pyannote. Jobs & voiceprints auto-delete after 24h. Pair with Scribe v2 or AssemblyAI.

4

AssemblyAI Universal (EU)

Best value · cleanest EU story

$0.15/hr. Dublin endpoint where data never leaves the EU and is automatically excluded from training. Caveats: must set TTL (default keeps transcripts indefinitely); speaker naming is DIY — needs pyannoteAI on top.

Word error rate — independent benchmark

Artificial Analysis AA-WER v2.0 (lower is better). The only independent accuracy data that survived adversarial verification. Caveat: 50% voice-agent audio, so validate on real LIFE meetings. No public diarization-error benchmark exists for any vendor.
ElevenLabs Scribe v2
2.2% WER
Azure MAI-Transcribe-1.5
2.4%
Gemini 3 Pro
2.9%
Mistral Voxtral Small
3.0%
Speechmatics
unverified
Speechmatics did not appear in the verified top-5 — its real-world position is the key unknown the A/B test resolves.

Price per audio hour (batch, June 2026)

AssemblyAI Universal
$0.15
ElevenLabs Scribe v2
$0.22
Speechmatics
$0.24*
Deepgram Nova-3
$0.26
OpenAI / Azure (current)
$0.36
Gemini 3.1 Pro
~$1.09 est.
*Speechmatics: first 40 h/month free — covers a full pilot at $0. AssemblyAI +10% from 1 July 2026.

Requirement scorecard

ProviderDiarizationNamed speakers (enrolled)EU residencyNo-trainingRetention control
SpeechmaticsYesNative, batchEnterprise multi-regionGDPR/ISO postureGood
ElevenLabs Scribe v248 speakersNoEnterprise onlyEnterprise defaultZRM enterprise-only
pyannoteAIBest-in-classVoiceprint APIUnverified24h auto-delete24h default
AssemblyAI (EU)YesDIY onlyDublin, never leavesAuto on EUMust set TTL
DeepgramYesNoEU endpointSOC 2 1+2Good
OpenAI (current tool)Not in our toolNoNoAPI default no-train30d API logs
Turnkey (Otter, Fireflies…)YesTheir cloud3rd party holds allPolicy variesRejected

Zoom changes the speaker-ID problem

No app to download, no "Connect Zoom" button. One account-level Server-to-Server OAuth internal app (created once by an admin, no Marketplace review) + the recording.completed webhook gives the backend every cloud recording automatically. The team's only job: press Record to cloud.
Named speakers come free for Zoom meetings. Zoom's TIMELINE file (Business plan) is who-spoke-when with real display names. Join it against the ASR's word timestamps → named transcript with no voice enrollment. Voiceprints are only needed for non-Zoom audio (voice memos, in-person interviews).
Zoom retention ≈ zero. Zoom's ToS bars training on customer audio, and cloud recordings can auto-delete after as little as 1 day — ingest on webhook, then wipe.

One pipeline, three doors

Zoom cloud recording S2S app · recording.completed Drive "KB Inbox" drag-drop a voice memo Slack / hub drag-drop #knowledge-eater · upload UI Transcription service provider-agnostic · A/B winner Speaker naming Zoom: TIMELINE join other: enrolled voiceprints Cleanup pass tidy Markdown · registry prompt LIFE KB auto-classify · publish Source audio deleted Zoom auto-delete N days · R2 90-day lifecycle
Everything to the right of the doors already exists or is specced (kb-ingestion-pipeline-spec). New work: Zoom S2S webhook ingress, TIMELINE name-join, one-time voiceprint enrollment, engine A/B.

How to pick the engine

Transcribe 3–5 real LIFE meetings + 2 voice notes with Speechmatics (free tier) and Scribe v2 (key already held). If Scribe's accuracy edge doesn't clearly show on our audio → Speechmatics wins (native naming, UK/EU posture, price). If Scribe clearly wins → run Scribe v2 + pyannoteAI identify, and price ElevenLabs Enterprise for zero-retention + EU residency before committing production audio.

Open items

  1. Collect 3–5 real recordings and run the A/B validation gate (already required by the ingestion spec §9).
  2. Confirm LIFE's Zoom plan is Business (TIMELINE needs it); enable transcript + per-participant audio + auto-delete settings.
  3. Confirm Speechmatics self-serve processing region + DPA; pyannoteAI SOC 2/ISO status.
  4. If Scribe wins: ElevenLabs Enterprise quote for ZRM + EU residency.
  5. If AssemblyAI is ever used: set the deletion TTL explicitly (default keeps transcripts indefinitely).
Sources verified 2026-06-10 against primary pages: artificialanalysis.ai · docs.speechmatics.com · speechmatics.com/pricing · docs.pyannote.ai · pyannote.ai changelog · assemblyai.com docs (retention, EU endpoint) · developers.deepgram.com · elevenlabs.io docs/blog · developers.zoom.us · support.zoom.com. Full citations and verification notes in ~/LIFE/specs/transcription-diarization-research-2026-06-10.md.