Transcription Models Compared: Who Actually Said That?
Ben Berndt says reviewing his roughly 900 hours of podcast is impossible. I wanted to know how far machines can get.
In June, Ben Berndt read out a letter on his German podcast {ungeskriptet} ("unscripted"). It came from North Rhine-Westphalia's media regulator, the Landesanstalt für Medien NRW, and asked him to review his entire output for journalistic diligence.1 Ben did the math on air: roughly three hundred episodes, each about three hours long, around nine hundred hours in total. Half a working year, he estimated. "That's absolutely impossible."
His math holds up. I count 331 episodes of 20 minutes or longer, 898 hours of audio in total, just two hours short of his estimate.2
I get the sentence. Listening to nine hundred hours, taking notes and checking every claim isn't something anyone does on the side.
Still, I couldn't let go of the question of how far machines can get. Nobody asked me to do this, not Ben and not the regulator. The regulator closed its review in September anyway.3 I was interested in the question behind it, and I'm telling this story as a curious researcher. Honestly, it was also a lot of fun.
The Review System From the Health Insurance Study
Here's the twist. For my study of German statutory health insurance websites, I examined 56,198 public pages from 84 websites and sub-portals, data as of May 2026.4 For that, I built a process that turns sheer volume into a work list. A model looks for passages worth a closer look. Every passage needs a location, a verbatim quote and a clear boundary for what it does and doesn't say. Anything that can't be backed up gets dropped. A human makes the final call.
For Ben's podcast, I barely had to invent anything new. I mostly just applied it. A page becomes an episode, a location becomes a timestamp, a quote becomes the spoken words.
One field was new, and it took most of the work: who's speaking?
Why Speaker Recognition Decides Everything
On an insurer's website, the insurer is always the one speaking. On the podcast, there's Ben, usually with one guest, sometimes two, and in the Q&A episodes he talks alone. Whether Ben makes a claim or his guest does, and whether Ben pushes back, makes a big difference. That was exactly the point in the regulator's case: a guest's statement that went unchallenged in the conversation.3 For a review like this, a sentence without a speaker is worthless.
Working out who speaks when is called diarization. Picture a stack of index cards, each holding a few seconds of conversation. The model listens to the sound of the voice and sorts every card onto a pile: voice A, voice B, voice C.
Not every transcription model can do that. OpenAI's Whisper was built for transcription and translation; telling speakers apart isn't one of its tasks.5 What you get is clean running text in which Ben and his guest merge into a single voice. Deepgram nova-3 separates the speakers but only calls them "Speaker 0" and "Speaker 1".6 The model has no idea which one is Ben.
So I created a voiceprint of Ben. A second model, SpeechBrain ECAPA, compares every detected voice against it.7 Very similar voices are Ben, clearly different ones are guests, and everything in between goes onto a review list. A language model pulls the guests' names from the title, the description and the first minutes, and only when it can quote the name verbatim.
Across the whole archive, this is what it looks like:2
- 331 episodes of 20 minutes or longer, 898 hours of audio, about 9.7 million words.
- Ben speaks for 251.7 hours, that's 29.0 percent of the speaking time. The guests account for 615.0 hours.
- In 318 episodes, the system found exactly one Ben. 85 episodes are flagged "review" or "too little speech".
The known weakness: short interjections like "yeah" or "exactly" often slip into the other person's section. For Ben's share of speaking time, that doesn't matter. For a quote, it does. That's why I listen to every passage before I quote it.
Deepgram nova-3 and Whisper Head to Head
The foundation is Deepgram nova-3. It delivers words with timestamps plus the speaker separation. I transcribed most of the archive directly with Deepgram and the oldest episodes with the same model via Cloudflare. Estimated cost: $245.79.2
After that, Whisper ran as a second pass over every episode, specifically whisper-large-v3-turbo on Cloudflare Workers AI.8 That came to 18,246 requests for a total of $28.74. Whisper is only allowed to improve words. Deepgram's speaker assignment stays in place. A new word only gets a speaker if timing and text clearly match.
Sounds like a clean division of labor. In practice, it's a tug of war. Have a listen. The clips are in German, with translations below each box.
Listening example 1 · Whisper gets the technical term
Philemon Schibli in "Professioneller Tripsitter packt aus!", from 0:48, 13 seconds
- Deepgram nova-3
- „… Ich arbeite mit Pilzen, Silizubin und dann starten wir den Prozess …“
- Whisper Large V3 Turbo
- „… Ich arbeite mit Pilzen, Psilocybin. und dann starten wir den Prozess …“
Whisper gets the technical term. "I work with mushrooms, psilocybin, and then we start the process." Deepgram writes a word that doesn't exist. The pipeline adopted Whisper's version automatically, before I had listened to the clip. The full stop in the middle of the sentence is how Whisper delivered it.
Listening example 2 · One sentence, two errors, one per model
Joachim Steinhöfel in "EILMELDUNG: Ich verklage die Landesanstalt für Medien NRW", from 12:32, 10 seconds
- Deepgram nova-3
- „… Süddeutsche, FAZ, Bildhaltung und so weiter, da gibt es den Presserat.“
- Whisper Large V3 Turbo
- „… Süddeutsche, FHZ, Bildzeitung und so weiter, da gibt es den Presserat.“
- + Name check
- „… Süddeutsche, FAZ, Bildzeitung und so weiter, da gibt es den Presserat.“
Neither model gets the sentence right on its own. "Süddeutsche, FAZ, Bild and so on, that's where the Press Council comes in." Three German newspapers. Deepgram recognizes the FAZ, then hears "Bildhaltung" (posture). Whisper gets "Bildzeitung" but turns the FAZ into an "FHZ". It only comes out right when you combine both and let a language model check the newspaper name.
Listening example 3 · Both mishear the name
Uwe Boll in "Wir dürfen seinen Film nicht sehen (Filmemacher)", from 2:28:43, 10 seconds
- Deepgram nova-3
- „… sowohl schausten als auch wohl halalien, so hat keine Konsequenzen.“
- Whisper Large V3 Turbo
- „… sowohl schausten als auch Hulhalali und so hat keine Konsequenzen.“
- + Name check
- „… sowohl schausten als auch Hayali und so hat keine Konsequenzen.“
He means Dunja Hayali, a presenter at the German public broadcaster ZDF. "… both Schausten and Hayali, and it has no consequences." I listened to the clip: both models miss the name, Whisper comes a little closer. Both recognized Bettina Schausten, just in lowercase.
Search the archive for "Hayali" and neither model would have led you to this passage. With rare names, neither model is reliable. A language model, on the other hand, knows that in a list of ZDF people, "Hulhalali" most likely means Dunja Hayali. So I have Claude Haiku 5.5 look for suspicious names, and Claude Sonnet 5.5 checks the unclear cases. So far, that has corrected 114 names in 5 episodes.2 Every one of these corrections is flagged as a model correction and hasn't been listened to yet.
And then there's the number you honestly have to mention: across the whole archive, Whisper changed 279,866 word groups. Five of them have been confirmed against the audio.2 The rest are plausible but unchecked. When someone tells you a transcript has been "corrected", it's worth asking: by whom?
What Else I Noticed
Whisper smooths. A spoken "glaub" (the clipped, spoken form of "I think") tends to become the written "glaube". Sounds minor, but it changes the wording, and wording is the whole point of a quote. I built a dedicated safeguard for cases like this.
Whisper invents. Over pure music, in my own video tests, it wrote sentences like "Vielen Dank fürs Zuschauen" ("Thanks for watching") when nobody was speaking.
Whisper swallows. In an early test with ten passages, I confirmed six Whisper improvements by ear. In one spot, though, a short "Ja." from the guest was missing, which Deepgram had gotten right.
A model as referee didn't work. I had an audio language model (Clef-omni) decide which of the two versions matched the sound. In this test, its judgments weren't reliable.
And YouTube happily translates along. Without a language setting, the interface returns auto-translated English titles. Some episodes also carry an AI-dubbed English audio track. If you're not careful, you end up transcribing the dub.
From Transcript to a Review List of Claims
With clean text and clear speakers, the process from the insurance study takes over. Per episode, it looks like this:
- The text is frozen and given a checksum, so it stays traceable which version a finding refers to.
- A language model (DeepSeek V4.1 Flash via Cloudflare) reads section by section and flags verifiable claims: verbatim quote, speaker, timestamp, reason for review, priority.
- A program checks whether the quote appears word for word in the transcript. Made-up quotes don't get through.
- A second model reads selected findings with three minutes of surrounding conversation, without seeing the first model's assessment.
- What comes out is a list with links to the exact second in the video. From there, it's human work: listen, find sources, put things in context.
I ran the pilot on two episodes, just under four and a half hours together: the conversation with Ben's lawyer Joachim Steinhöfel and the one with filmmaker Uwe Boll. It produced 61 findings, 10 of them high priority, 5 from Ben himself. The model costs came to about $0.37.9
This isn't a list of false statements. A finding means: this is worth a look. Whether the statement is true, the list doesn't say. And the run over the 50 most recent episodes is still to come.
Ben is right: nobody reviews nine hundred hours in passing. With a list like this, though, the question shifts. "Who's going to listen to all of it?" becomes "Which passages first?"
What This Means for Regulated Companies
With the health insurers, I've so far looked at websites. But regulated organizations have long been speaking on Instagram, LinkedIn and YouTube, in podcasts and webinars. Agencies often run these channels. And I know from experience that they don't always bring the same care as the organization itself. Unfortunately, that's how it is, and I've noticed it more than once.
Spoken content adds another layer. Someone usually proofreads a web text before it's approved. Hardly anyone in-house listens to an hour-long video again after it's published just to check whether a sensitive claim was left standing without context at minute 42.
What this project showed me: text, audio and video can be captured with the same method. For the editorial team or management in-house, that means public statements from every channel end up on one shared list, whether they're on the website, in a Reel or in a podcast. They still need to be reviewed. But you can see where to look, what's critical and what's fine. That puts the organization back in control of what it says.
Frequently Asked Questions
Is Deepgram or Whisper better for German podcasts?
In my archive, neither on its own. Deepgram nova-3 delivers word timestamps and speaker separation. Whisper often recognizes technical terms better but makes its own mistakes and smooths spoken language. The combination worked best: Deepgram as the scaffold, Whisper as a second pass, names checked by a language model. That holds for this podcast. I haven't run a general benchmark.
Can Whisper tell who is speaking?
No. Whisper delivers text and timestamps without speaker separation. For that, you need diarization, from Deepgram for example. Which speaker is which person is then settled by voice matching.
What does it cost to transcribe 900 hours of podcast?
For me, about $245.79 for Deepgram nova-3 and $28.74 for the Whisper pass, estimated from audio duration and rates. On top of that comes the work for alignment, speaker assignment and review.
Does the system replace a fact-check?
No. It delivers a list of passages with quote, speaker and timestamp. Whether a statement is true is then checked by a person.
What's Next
I'm currently considering putting the methodology on GitHub so anyone can produce speaker-labeled transcripts the same way. I won't release the data itself. The content belongs to Ben and his guests.
If you'd like to try this, or you're sitting on an archive and facing the same question: write to me. The audio clips above are short quotations from publicly available episodes, each linked to its place in the original.
More from the Lab
- German Health-Insurance Websites: What to Review First: the study the process comes from.
- AußenBlick GKV: archive, evidence chain and claim boundaries of the insurance study.
Sources & References