cd /news/natural-language-processing/parakeet-that-knows-what-a-makolet-i… · home › topics › natural-language-processing › article
[ARTICLE · art-151572] src=dev.to ↗ pub= topic=natural-language-processing verified=true sentiment=↑ positive

Parakeet that knows what a makolet is: an English-Hebrew code-switching fine-tune

A developer in Jerusalem released Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching, a fine-tune of NVIDIA's parakeet-tdt-0.6b-v2 that transcribes Hebrew code-switched words in Latin letters, cutting code-switching word error rate from 9.9% to 4.8% on a held-out test set while leaving English accuracy essentially unchanged (LibriSpeech test-clean WER 1.2% to 1.1%). The model ships as .nemo, GGUF, ONNX and sherpa-onnx and runs offline on an Android phone, with training data and audio published publicly on Hugging Face.

by read6 min views2 publishedOct 16, 2026

I live in Jerusalem and speak English, so I talk like this all day:

"I have to go to Bituach Leumi tomorrow."

"Can you grab some bamba from the makolet?"

"We're doing Motzei Shabbat at my savta's."

The sentences are English, but a few of the words are Hebrew, and nobody uses an English

word in their place. This is code-switching, and speech recognition handles it badly.

Today I'm releasing

**[Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching](https://huggingface.co/danielrosehill/Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching)**,

a fine-tune of NVIDIA's `parakeet-tdt-0.6b-v2`

that writes those Hebrew words correctly, in Latin letters. It comes as .nemo, GGUF, ONNX

and sherpa-onnx, and it runs offline on an Android phone.

Transcript
Stock Parakeet v2 I want to go to the Micollette today to buy my groceries.
This fine-tune I want to go to the makolet today to buy my groceries.

Makolet (מכולת) is the Israeli corner grocery shop. Stock v2 has never heard the word, so

it guesses an English-looking name.

On a held-out test set where none of the Hebrew words appear in training:

|  | Stock v2 | This fine-tune (v2) | 
|---|---|---|

| Code-switching WER | 9.9% | 4.8% | | Hebrew words never seen in training, correct | 29% | 50% | | Hebrew words seen in training, correct | 38% | 75% | | Long-form dictation WER (~3 min files) | 7.8% | 4.5% | | My plain English WER | 2.7% | 2.4% | | LibriSpeech test-clean WER | 1.2% | 1.1% |

Code-switching errors halved, and English did not get worse.

Parakeet v2 is one of the most accurate English models small enough to run on a phone. NVIDIA

also released v3, which adds 25 European languages, but in my own dictation v2 was more

accurate for English. Since most of what I say is English, I fine-tuned v2.

v2's tokenizer has no Hebrew characters. Replacing the tokenizer would re-initialise the

decoder and need far more data than I have. So the model writes Hebrew words in Latin letters, with one canonical spelling per word:

Before training, I ran stock v2 over every code-switched recording I had: 1,154 occurrences

of 615 Hebrew terms. It got 28% of them right.

The 165 terms it always gets right are mostly names, well-known places, and words that are

already English: Shabbat, Pesach, Bamba. The 390 it never gets right are the everyday

vocabulary of life in Israel: Misrad Hapnim, Bituach Leumi, tzaharon, rofe mishpacha,

Earlier attempts used a desktop microphone. This time every new recording was made on the

phone that runs the model (a OnePlus Nord 3), with its built-in microphone, in the rooms

where I actually dictate.

I built a small capture app in the style of Mozilla Common Voice: it shows a sentence, I

read it, play it back, keep it or retake it, and move on. Takes are pushed in batches to a

public Hugging Face dataset. The sentences come from a bank of about 7,700 prompts, each built around one or two Hebrew terms, and recording is weighted toward the words stock v2

gets wrong.

Everything is public, audio included:

Read-Aloud-Voice-Sentences`` English-Hebrew-Codeswitching-Sentences The code-switching literature is blunt about one risk: fine-tune only on mixed-language

speech and the model's English collapses. In one study, Whisper-small went from 3.4% to

13.3% WER on LibriSpeech after fine-tuning on code-switched data alone

(Liu et al. 2025). Mixing monolingual data back in fixes most of it. Even 10% replay of the original domain cuts forgetting sharply

(Pekarek Rosin & Siegert 2023). So the training mix, by audio duration, is about:

Share Data
~70% Code-switching takes
~20% My own plain English, recorded on the same phone
~10% LibriSpeech replay, with cased and punctuated LibriSpeech-PC transcripts

A version is only published if neither my own English nor LibriSpeech gets worse than stock

v2. Neither has so far.

|  | v1 | **v2 (current)** | 
|---|---|---|

| Code-switching training audio | 77 min | 120 min | | Plus English | ~30% | 29 min own + 17 min LibriSpeech | | Training time | 19 min, one GPU | 23 min, one GPU |

Both versions and stock v2 are scored on the same test split, so the bars compare like with

like:

What the extra 43 minutes did: words the model has recordings of improved from 67% to 75%,

and phone dictation got slightly better. Words it has never heard stayed flat (52% vs 50%

is a difference of 3 hits out of 113, which is noise). The real gain on unseen words came

in v1. The model learned how my Hebrew maps to the romanization, not only the training words, and almost doubled its recall on words it had never heard.

Training is cheap: about twenty minutes on one GPU. The bottleneck is recording.

My own test set is drawn from my own dataset, so I also built a separate, frozen benchmark:

the [English-Hebrew Code-Switching ASR Benchmark](https://huggingface.co/datasets/danielrosehill/English-Hebrew-Codeswitching-ASR-Benchmark),

with a [runner](https://github.com/danielrosehill/English-Hebrew-Codeswitching-ASR-Benchmark)

and a [leaderboard](https://huggingface.co/spaces/danielrosehill/English-Hebrew-Codeswitching-ASR-Leaderboard).

Its headline metric is term recall: the share of Hebrew words written with the canonical

spelling. A model can post a low WER and still mangle every Hebrew word.

The fine-tune gets 65.7% of Hebrew terms right, against 45.9% for Whisper Large V3 and 32.6%

for the stock Parakeet it started from, and it has the lowest WER of the group (4.2%). The benchmark is early and has known issues; all of them are documented on the leaderboard.

You want to… Get Run it with
Dictate on Android GGUF Q8_0 (730 MB) Offline Voice Input
Android with ≤ 4 GB RAM GGUF Q4_K_M (475 MB) Offline Voice Input
| Dictate on a desktop | GGUF Q8_0 | [Handy](https://github.com/cjpais/Handy) | 
| sherpa-onnx apps (Voxtype and others) | [sherpa-onnx int8](https://huggingface.co/danielrosehill/Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching-sherpa-onnx-int8) | sherpa-onnx | 
| Python on CPU | [ONNX](https://huggingface.co/danielrosehill/Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching-ONNX) (int8 / fp32) | [onnx-asr](https://github.com/istupakov/onnx-asr) | 
| GPU, or fine-tune it further | [`.nemo`](https://huggingface.co/danielrosehill/Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching) (2.47 GB) | NVIDIA NeMo | 

On Android, [Offline Voice Input](https://play.google.com/store/apps/details?id=dev.notune.transcribe)

is the one voice keyboard I found that loads arbitrary Parakeet weights. Import the Q8_0 file

and set the app as the system voice input, or use a keyboard whose mic key opens it

(SwiftKey, HeliBoard, FlorisBoard). On five held-out clips, Q8_0 matched the full-precision

model word for word.

Or just try it in the browser: the

demo Space runs stock v2 and the fine-tune side by side on your own audio.

Everything is collected on the

project page and in the

Hugging Face collection. v3 is planned at 180 minutes of code-switching audio, with a comparison of 0%, 10%, 20% and

30% English to find how little English the mix can get away with. The sentence bank keeps

growing: place names, hospitals, Israeli brands and acronyms, and the vocabulary of the 2026

election.

If you speak English in Israel and want this to work for your voice too, recordings from

other speakers are the most useful contribution there is. Get in touch through

[danielrosehill.com/contact](https://www.danielrosehill.com/contact). For professional

work or collaboration, reach me at [carrotcakeai.com](https://carrotcakeai.com).

The model, the data and the benchmark are all CC-BY-4.0, like the base model.

── more in #natural-language-processing 4 stories · sorted by recency
── more on @nvidia 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/parakeet-that-knows-…] indexed:0 read:6min 2026-10-16 · —