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. 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 https://arxiv.org/abs/2509.24310 . Mixing monolingual data back in fixes most of it. Even 10% replay of the original domain cuts forgetting sharply Pekarek Rosin & Siegert 2023 https://arxiv.org/abs/2307.07280 . 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 https://huggingface.co/danielrosehill/Parakeet-TDT-0.6B-v2-English-Hebrew-Codeswitching-GGUF 730 MB | Offline Voice Input https://play.google.com/store/apps/details?id=dev.notune.transcribe | | 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 https://huggingface.co/spaces/danielrosehill/English-Hebrew-Codeswitching-Parakeet-Demo runs stock v2 and the fine-tune side by side on your own audio. Everything is collected on the project page https://huggingface.co/spaces/danielrosehill/English-Hebrew-Codeswitching-Parakeet and in the Hugging Face collection https://huggingface.co/collections/danielrosehill/parakeet-v2-english-hebrew-codeswitching-finetune-6ad26d79c70d28a49ed71c78 . 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.