Blogs/AI

How to Evaluate Whisper Small Before Fine-Tuning

Written bySwathilakshmi B
Jul 20, 2026
6 Min Read
How to Evaluate Whisper Small Before Fine-Tuning Hero

Before training anything, we wanted to understand where the existing model performed well and where it could improve. This blog explains how we evaluated Whisper Small on technical audio before writing a single line of fine-tuning code.

This is not a general guide to speech-to-text. It documents the first step we took while improving a real product. In our application, users speak to an AI agent in real time. A speech-to-text model converts their speech into text, allowing the agent to understand and respond.

Whisper Small handled common language well, but it was less consistent with the technical terms frequently used in our users’ conversations. Improving the accuracy of these terms was important because the transcript directly influenced the AI agent’s understanding and responses.

After testing different models and adjusting parameters, we found that domain-specific vocabulary still needed more focused training. This led us to evaluate the base model systematically and fine-tune it using our own data.

What Is Speech-to-Text, and Why Does Fine-Tuning Matter?

Speech-to-text (STT) converts spoken audio into written text. It is commonly used in voice assistants, automatic subtitles, and meeting transcription. Although the process appears simple, STT systems must account for different accents, speaking speeds, and background noise.

Whisper is a capable open-source STT model that supports multiple languages and performs well across different speaking styles and recording conditions. However, like many general-purpose models, it can become less reliable when processing technical or domain-specific vocabulary.

Fine-tuning continues the training of an existing model using a smaller, targeted dataset. Instead of training from scratch, it helps the model adapt to the vocabulary and context of a specific use case.

Before fine-tuning, however, it is important to identify where the base model performs well and where it needs improvement. This process is called base model evaluation, and it is the main focus of this article.

What Were We Trying to Fix in This Project?

The project involved transcribing audio content focused on Artificial Intelligence and software development. Users were talking about machine learning models, coding tools, and technical frameworks, not casual, everyday conversation.

The base Whisper Small model was producing transcripts, but the transcripts kept getting specific words completely wrong. These weren't minor spelling variations. There were meaningful errors in the most important words in the content.

The types of vocabulary causing problems:

  • Model names
    • e.g., meta-llama/Llama-3.2-3B, mistralai/Mistral-Small, GPT-4
  • Framework names   
    • e.g., PyTorch, TensorFlow, Kubernetes
  • Acronyms   
    • e.g., API, NLP, LLM, STT
  • Tool names   
    • e.g., Hugging Face, LoRA, PEFT

Why this matters

When you're transcribing general conversation, a wrong word here or there is acceptable. But when the entire purpose of the transcript is to capture technical terms accurately, a single wrong word makes the output unreliable. 

The goal of this project was not to make Whisper slightly better; it was to make it accurate on these specific terms.

How We Created the Whisper Small Evaluation Dataset

The first practical step was collecting audio that actually matched the problem. There is no point in testing a model on random general speech if the project is about technical AI content. The test data must reflect the real-world use case.

01 Record domain-specific audio

10 short audio samples were recorded personally. Each one focused on AI and software development topics: model names, training techniques, framework tools. Content that Whisper would actually encounter in the real project.

Innovations in AI
Exploring the future of artificial intelligence
Murtuza Kutub
Murtuza Kutub
Co-Founder, F22 Labs

Walk away with actionable insights on AI adoption.

Limited seats available!

Calendar
Saturday, 25 Jul 2026
10PM IST (60 mins)

02 Write the ground truth transcripts

For each audio file, an exact transcript was written by hand, word for word, character for character. This is called the ground truth. Every technical term had to be spelled correctly and consistently across all 10 samples.

03 Verify and standardize

We reviewed the transcripts to maintain consistent formatting, for example, “PyTorch” instead of “pytorch” and “GPT-4” instead of “gpt4.” This step matters because the evaluation is only as reliable as its ground-truth transcripts. Formatting or transcription errors can distort the WER results and lead to incorrect conclusions about the model’s performance.

How We Evaluated Whisper Small Without Fine-Tuning

Test the Whisper Small with the 10 audio samples and their verified ground truth transcripts ready, the next step was to run them through Whisper Small exactly as it is, no modifications, no additional training. This gives us the baseline that tells us how bad the problem actually is.

Evaluation setup code


import torch

from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq, pipeline


device = "cuda" if torch.cuda.is_available() else "cpu"

torch_dtype = torch.float16 if torch.cuda.is_available() else torch.float32


model_id = "openai/whisper-small"


# Load model

model = AutoModelForSpeechSeq2Seq.from_pretrained(

    model_id,

    torch_dtype=torch_dtype,

    low_cpu_mem_usage=True

).to(device)


# Load processor

processor = AutoProcessor.from_pretrained(model_id)


# Create pipeline (Whisper-specific)

pipe = pipeline(

    "automatic-speech-recognition",

    model=model,

    tokenizer=processor.tokenizer,

    feature_extractor=processor.feature_extractor,

    torch_dtype=torch_dtype,

    device=0 if device == "cuda" else -1,

)

audio_path = "your_adio_path"  # change to your file


result = pipe(audio_path, return_timestamps=True)


print("Transcription:")

print(result["text"])


Each audio file was passed through this model. The output transcript was placed side-by-side with the ground truth and compared carefully, word by word.

Whisper Small Output vs. Ground-Truth Transcript

What was saidWhisper wroteStatus

PyTorch

pi torch

Failed

Kubernetes

cube ernities

Failed

GPT-4

G P T four (inconsistent)

Unstable

NLP pipeline

and LP pipeline

Failed

meta-llama/Llama-3.2-3B

meta llama llama 3.2 3 b

Failed

Hugging Face

hugging face

Passed

API

A.P.I / expanded wrong

Unstable

PyTorch

Whisper wrote

pi torch

Status

Failed

1 of 7

How We Measured Whisper Small’s Word Error Rate (WER)

Visual comparison shows you what is wrong. But you also need a number, a single objective metric that tells you how bad the problem is. That metric is called Word Error Rate (WER).

How WER works (in plain English)

Let’s say you have the correct transcript; it has 100 words. The model makes three kinds of mistakes.

  • Substitution: it replaces a word with a different word. "PyTorch" → "pi torch"
  • Deletion: it forgot to add the word or skipped the word ( not included in it )
  • Insertion: it adds a new word that was not in the audio

You count all those mistakes, divide by the total number of words in the correct transcript, and multiply by 100. That gives you the WER percentage.

WER formula

WER = (Substitutions + Deletions + Insertions) / Total Words × 100

A WER of 0% means the model does not make any mistakes the transcript is perfect. A WER of 30% means roughly 30 words in every 100 had some kind of error.

WER results across our 10 evaluation samples

  • Sample 01 - 62%
  • Sample 02 - 48%
  • Sample 03 - 71%
  • Sample 04 - 34%
  • Sample 05 - 58%
  • Sample 06 - 19%
  • Sample 07 - 65%
  • Sample 08 - 43%
  • Sample 09 - 77%
  • Sample 10 - 52%

Note: WER values are illustrative of the pattern observed. All results were documented in detail.

What We Learned from Whisper Small’s Transcription Errors

The WER number tells you how bad the transcript is. But the biggest question is, why is it failing, and on what specific words? That requires going through every error manually and looking for patterns.

Technical terms

Words like Transformer, Kubernetes, and PyTorch failed the most consistently. They're rare in everyday speech, so the model never properly learned them.

Innovations in AI
Exploring the future of artificial intelligence
Murtuza Kutub
Murtuza Kutub
Co-Founder, F22 Labs

Walk away with actionable insights on AI adoption.

Limited seats available!

Calendar
Saturday, 25 Jul 2026
10PM IST (60 mins)

Model names & IDs

Complex model identifiers like meta-llama/Llama-3.2-3B were almost always wrong. The slash, version numbers, and compound structure completely confused the model.

Acronyms

Short technical terms like API, NLP, and LLM were unpredictable, sometimes expanded incorrectly, sometimes replaced, and never reliably correct.

Mixed sentences

Sentences that started with everyday language and ended with a technical term caused the model to handle the beginning well and then fall apart right at the keyword.

The model wasn't failing randomly. It was failing in very specific, identifiable situations, which meant the fix could be equally targeted.

How the Evaluation Shaped Our Fine-Tuning Dataset

Every error, every WER score, and every pattern were noted in a documentation file. This documentation became the foundation for every decision that followed. Without it, any fine-tuning work would be based on guesswork.

Searching for open-source datasets

Before building anything custom, we checked whether existing public datasets could solve the problem. The conclusion was straightforward:

  • Most open-source speech datasets are built for general conversation
  • None of them contained the density of AI and technical vocabulary needed
  • Using them would improve general performance slightly, but wouldn't fix the actual failure points

The decision: build a custom dataset

The evaluation results made the path forward clear. A custom dataset would be built from scratch, targeted specifically at the vocabulary and sentence patterns where the model failed. 

Conclusion

Base model evaluation is not optional. It is the step that determines whether your fine-tuning effort will succeed or waste your time.

  • Always test your base model on the exact type of content you care about before touching any training code
  • Write accurate, consistent ground truth transcripts; your entire evaluation depends on their quality
  • Use WER to get an objective number, but always dig into the individual errors to understand the "why"
  • Look for patterns in the failures, not just the count. Patterns tell you what data to collect
  • Document everything. Our evaluation results will guide every fine-tuning decision you make

At F22 Labs, this evaluation-first approach is part of how we build and improve domain-specific AI systems for real-world products. You can learn more about our AI development services and how we support AI projects from evaluation through implementation.

Author-Swathilakshmi B
Swathilakshmi B
LinkedIn

AI/ML Intern focused on growing, experimenting, and contributing in the field of Artificial Intelligence.

Share this article

Phone

Next for you

How to Prepare a Dataset for Whisper Small Fine-Tuning Cover

AI

Jul 20, 20267 min read

How to Prepare a Dataset for Whisper Small Fine-Tuning

Preparing a reliable fine-tuning dataset starts with understanding where the base model needs improvement. When we evaluated Whisper Small on technical audio, it struggled with AI model names, technical terms, acronyms, and sentences that combined everyday language with technical vocabulary. The WER results confirmed that these errors followed clear patterns. We then looked for public datasets containing the language our users typically use, but none provided enough relevant technical vocabular

How to Build a Voice AI Agent with Whisper and LiveKit in 2026? Cover

AI

Jul 14, 202612 min read

How to Build a Voice AI Agent with Whisper and LiveKit in 2026?

Training a speech model like Whisper is often seen as the hardest part of building a voice AI system. In reality, it is only the beginning. After fine-tuning, what you have is simply a model checkpoint, a static artifact that cannot process live audio or interact with real users on its own. We tested this workflow in-house by turning a fine-tuned Whisper model into a real-time voice AI system using streaming audio, VAD, WebSockets, buffering, and LiveKit. This blog shares how we moved from a f

How to Prompt Diffusion Models for Better AI Images Cover

AI

Jul 14, 20269 min read

How to Prompt Diffusion Models for Better AI Images

Too Long? Read This First - Better diffusion model outputs start with clear, structured prompts rather than vague descriptions. - A strong image prompt usually defines the subject, action, setting, lighting, composition, style, and quality details. - Use positive prompts to describe what should appear and negative prompts to reduce unwanted artifacts, distortions, or extra elements. - Camera language, lighting terms, style references, and carefully chosen quality tags can give the model clearer