Code-switching and domain vocabulary in one ASR fine-tune: can you have both?
The first controlled comparison of a code-switching-only fine-tune and one trained on everything: what it showed, and why it set the Sabich training formula.

Hebrish began with one goal: write the Hebrew words in English speech correctly. That model line is Jachnun. Daniel's dictation has a second problem that stock models get wrong too: tech vocabulary. Product names, acronyms, command-line words. Training one model for each is simple. Training one model for both raises the question this post is about: does teaching a speech model a second specialised vocabulary cost it accuracy on the first?
Why it might not work
Fine-tuning moves a model towards whatever is in its training mix. With only a few hours of data, every minute spent on tech sentences is a minute not spent on code-switching. Hebrew terms might be seen less often, and the model might start writing tech words where Hebrew ones belong. The opposite outcome is also plausible. Both kinds of data teach the same skill: writing a word stock English models don't know, inside an ordinary English sentence. If that is what the model learns, the two should help each other.
The comparison: round R7, 2026-10-20
Two runs were trained from the same base (stock Parakeet TDT 0.6B v2) on the same dataset revision (f956dbb184c2), with the same recipe: 20 epochs, learning rate 3e-5, seed 7. Only the training mix differed.
Code-switching only
- 373.1 min of code-switching
- 106.7 min of the speaker's plain English
- 53.5 min LibriSpeech replay
- 533.3 min in all
Everything
- The same 373.1 min of code-switching
- 187.4 min of every other task: tech dictation, acronyms, brand names, numbers, disfluencies and more
- 62.5 min LibriSpeech replay
- 623.0 min in all
Both were scored, with stock Parakeet, on the same held-out test sets: 422 code-switching clips, the speaker's English and tech dictation, 200 LibriSpeech clips and 17 long recordings.
The results
f956dbb184c2. Each panel has its own scale. Source: ASR-Training docs/training.md, "R7: three blends at once".| Measure | Stock Parakeet | Code-switching only | Everything |
|---|---|---|---|
| Code-switching WER | 11.82% | 5.42% | 5.30% |
| Held-out Hebrew terms right | 23.8% | 47.2% | 48.1% |
| Tech dictation WER | 2.51% | 2.32% | 1.54% |
| Speaker's English WER | 2.81% | 1.81% | 1.62% |
| LibriSpeech WER | 1.23% | 1.25% | 1.30% |
| Long-form WER | 10.34% | 5.93% | 5.77% |
- The Hebrew words didn't suffer. Code-switching WER and held-out term recall were level or slightly better with everything in the mix. Those differences are small enough to be noise. The point is that there was no loss.
- Tech improved, and only when tech was trained. The code-switching-only run barely moved tech WER from stock (2.51% to 2.32%). The everything run brought it to 1.54%. Code-switching data doesn't teach tech words by accident.
- One small cost: LibriSpeech, the general-English check, was 0.07 points worse than stock, about three words across 200 clips. That was accepted as noise.
How it set the formula
The everything run was published the same day as Sabich v1.0. From 2026-10-21 it has been the recommended model in the apps. Since 2026-10-25, Sabich is the speech-recognition line that gets retrained. Every release since has used the same idea: one model, every kind of recording. One refinement came from the data side: code-switching and tech never share a sentence, so each recording teaches one thing.
The later public benchmark points the same way. On test set v2, Sabich v2.2 has 2.76% tech WER against stock's 7.54%, and 70.1% Hebrew term recall against 19.9%. Those runs also had more data, though, so they don't isolate the effect the way R7 does.
A gap in the literature
Published work on adapting speech models tends to treat these as separate problems. Code-switching papers teach a model to handle two languages in one sentence, AsyncSwitch for Malay-English for example. Domain-adaptation papers teach it a field's vocabulary. A search while writing this post found no study that fine-tunes one ASR model for code-switching and a technical domain together and measures whether they interfere. That doesn't mean none exists, but if it does, it isn't easy to find.
R7 is one data point, not a study. It covers one speaker, one base model, one seed and small test sets. The dataset and the benchmark are public, so the comparison can be repeated, and the next test is the same comparison on many voices (accent transfer in ASR explains why that matters).