Hebrish
Experimental Early days, and every version gets better. Roadmap

Blog · Training and data

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.

Cartoon: a smiling sabich pita being filled from two jars, one labelled makolet and one labelled Kubernetes.

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

Round R7: stock Parakeet, the code-switching-only run and the everything run on four measures. Values are in the table below. Stock Parakeet Code-switching only Everything Code-switching WER, %lower is better Stock Parakeet: 11.82%Stock Parakeet11.82% Code-switching only: 5.42%Code-switching only5.42% Everything: 5.30%Everything5.30% Held-out Hebrew terms right, %higher is better Stock Parakeet: 23.8%Stock Parakeet23.8% Code-switching only: 47.2%Code-switching only47.2% Everything: 48.1%Everything48.1% Tech dictation WER, %lower is better Stock Parakeet: 2.51%Stock Parakeet2.51% Code-switching only: 2.32%Code-switching only2.32% Everything: 1.54%Everything1.54% LibriSpeech WER, %lower is better Stock Parakeet: 1.23%Stock Parakeet1.23% Code-switching only: 1.25%Code-switching only1.25% Everything: 1.30%Everything1.30%
Round R7, dataset revision f956dbb184c2. Each panel has its own scale. Source: ASR-Training docs/training.md, "R7: three blends at once".
MeasureStock ParakeetCode-switching onlyEverything
Code-switching WER11.82%5.42%5.30%
Held-out Hebrew terms right23.8%47.2%48.1%
Tech dictation WER2.51%2.32%1.54%
Speaker's English WER2.81%1.81%1.62%
LibriSpeech WER1.23%1.25%1.30%
Long-form WER10.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).

← All posts · More in Training and data · Archive · Search · Benchmarks · Sabich · RSS feed