Model & data planning
How much training data do you need for code-switching asr?
Updated 2026-08-01 · 4 min read

Short answer
For code-switching asr, volume matters less than composition. Recognising speech that switches between an Indian language and English several times per sentence. The corpus profile that works is genuinely code-mixed spontaneous speech, per-token language id labels, a fixed rule for script of english tokens. Start with a pilot sized to move switch-point accuracy, mixed-utterance wer measurably, confirm the gain on held-out data recorded under deployment conditions, then scale the configuration that worked rather than scaling everything.
Key takeaways
- Success is measured on switch-point accuracy, mixed-utterance wer, language id token accuracy.
- The most common failure is concatenating monolingual data and calling it code-mixed
- Data profile: genuinely code-mixed spontaneous speech, per-token language id labels, a fixed rule for script of english tokens.
What the model actually needs
Recognising speech that switches between an Indian language and English several times per sentence.
- Genuinely code-mixed spontaneous speech
- Per-token language ID labels
- A fixed rule for script of English tokens
Metrics that tell you when you have enough
Collect against a metric, not against a number of hours. When a pilot batch moves the metric and a second batch of the same profile moves it less, you are at the point where composition, not volume, is the constraint.
- Switch-point accuracy
- Mixed-utterance WER
- Language ID token accuracy

Common mistakes
- Concatenating monolingual data and calling it code-mixed
- Leaving script conventions to individual annotators
A sensible collection sequence
| Phase | Volume | Purpose |
|---|---|---|
| Pilot | 10–20 hours | Validate format, acoustics and annotation against your pipeline |
| First production batch | 100–300 hours | Move the primary metric and expose composition gaps |
| Targeted top-up | 50–150 hours | Fill the specific dialects, conditions or edge cases the eval exposed |
| Evaluation set | 5–20 hours | Held-out, deployment-condition data never used for training |
Services that supply this data
This use case is normally served by conversational speech data, asr training data, transcription services. Most programmes combine two of them, because raw collection without matched annotation rarely moves an applied metric on its own.
Hold back an honest evaluation set
Reserve deployment-condition data that never enters training. Teams that evaluate on data recorded in the same sessions as their training data consistently overestimate real-world performance, then discover the gap after launch.
Frequently asked questions
What data profile suits code-switching asr?
Genuinely code-mixed spontaneous speech, Per-token language ID labels, A fixed rule for script of English tokens
Which metrics should we track?
Switch-point accuracy, Mixed-utterance WER, Language ID token accuracy
What goes wrong most often?
Concatenating monolingual data and calling it code-mixed
Can we start small?
Yes. A 10–20 hour pilot delivered in your ingest format is the standard first step, and it usually exposes format or annotation mismatches that would have been expensive at volume.
Related reading
Turn this into a dataset specification
Tell us the languages, speaker count and minutes. You get a written scope, a protocol and a fixed price within one working day.