Skip to content

[Ground Truth] Adding Scribe v2 as an additional ground truth source - #6

Draft
angelos-p wants to merge 3 commits into
pipecat-ai:mainfrom
angelos-p:scribe-ground-truth
Draft

[Ground Truth] Adding Scribe v2 as an additional ground truth source#6
angelos-p wants to merge 3 commits into
pipecat-ai:mainfrom
angelos-p:scribe-ground-truth

Conversation

@angelos-p

@angelos-p angelos-p commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator

Some additional fixes were made to the ElevenLabs setup and to the WER calculations. In particular, the language code was not being passed correctly to Pipecat, which was causing significantly worse performance. I also added better support for model_names and wer_labels to help with evaluating multiple ground truths.

Scribe v2 is a more accurate model than Gemini 3 Flash on clean third party benchmarks, and it is also faster to run because it does not rely on reasoning. https://artificialanalysis.ai/speech-to-text#summary

Based on my results, the Scribe GT outputs contain far fewer hallucinations and are a better indicator of actual model performance. That said, any benchmark that does not use human-verified ground truth with strong QA will inevitably have limitations.

I also changed the WER calculation to cap scores at 100%. Previously, if the ground truth itself was hallucinated, WER could exceed 1000%, meaning that a single bad sample could disproportionately skew the overall average. The same issue could happen if a transcription model entered a looping failure mode. Neither case is representative of real-world performance. Capping WER at 100% still penalizes these failures, but prevents a small number of pathological cases from dominating the overall results.

After making these changes, I got the following results. I included both Gemini Flash and Scribe v2 as ground truths. I used the default settings and followed the README instructions exactly. I am happy to produce my results.db file if requested.

      service = soniox (scribe GT)
     gt_group = 0
      avg_wer = 1.56%
  perfect_pct = 82.9%
perfect_count = 829
total_samples = 1000

      service = elevenlabs_v2_realtime (scribe GT)
     gt_group = 0
      avg_wer = 2.08%
  perfect_pct = 81.71%
perfect_count = 813
total_samples = 995

      service = deepgram (scribe GT)
     gt_group = 0
      avg_wer = 2.66%
  perfect_pct = 75.58%
perfect_count = 752
total_samples = 995

      service = assemblyai (scribe GT)
     gt_group = 0
      avg_wer = 3.5%
  perfect_pct = 68.07%
perfect_count = 680
total_samples = 999

      service = soniox (gemini GT)
     gt_group = 1
      avg_wer = 2.4%
  perfect_pct = 78.5%
perfect_count = 785
total_samples = 1000

      service = elevenlabs_v2_realtime (gemini GT)
     gt_group = 1
      avg_wer = 3.14%
  perfect_pct = 77.09%
perfect_count = 767
total_samples = 995

      service = deepgram (gemini GT)
     gt_group = 1
      avg_wer = 3.58%
  perfect_pct = 70.95%
perfect_count = 706
total_samples = 995

      service = assemblyai (gemini GT)
     gt_group = 1
      avg_wer = 4.25%
  perfect_pct = 64.76%
perfect_count = 647
total_samples = 999

@angelos-p
angelos-p marked this pull request as draft April 17, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant