Automatic Speech Recognition
NeMo
English
Hebrew
parakeet
tdt
speaker-adaptation
english
hebrew
code-switching
tech-vocabulary
irish-english
dictation
Sabich / README.md
danielrosehill's picture
Card: Ubuntu app screenshot (Hebrish 0.6.3)
45d8a8e verified
|
Raw History Blame
16.6 kB
---
license: cc-by-4.0
language:
- en
- he
base_model: nvidia/parakeet-tdt-0.6b-v2
base_model_relation: finetune
pipeline_tag: automatic-speech-recognition
library_name: nemo
tags:
- parakeet
- tdt
- speaker-adaptation
- english
- hebrew
- code-switching
- tech-vocabulary
- irish-english
- dictation
datasets:
- Hebrish/Parakeet-V2-Blend-All
- danielrosehill/Read-Aloud-Voice-Sentences
- openslr/librispeech_asr
extra_gated_prompt: "Access to this model is by request and is governed by the Hebrish terms of use (https://hebrish.app/terms). Non-commercial use is free; commercial use needs a commercial licence from access-requests@hebrish.app."
extra_gated_fields:
Name: text
Organisation: text
Intended use: text
"I agree to use this model under the Hebrish terms of use (non-commercial unless I hold a commercial licence)": checkbox
---
# Sabich v1.0: Parakeet TDT 0.6B v2 for English-Hebrew code-switching, tech and general dictation
![Sabich banner: a sabich pita in round glasses typing on a laptop, with the words machshev, deploy and tzevet](https://cdn.hebrish.app/img/illustrations/sabich.webp)
A personal speech-recognition fine-tune trained on **everything**: English with Hebrew words in it (code-switching: teudat zehut, arnona, makolet), tech vocabulary (model and product names, CLI and cloud terms), brand names, acronyms, numbers and currency in digits, Irish-English phrasing and everyday email and message dictation, all in one speaker's voice. It is the kitchen-sink sibling of [Jachnun v1.0](https://huggingface.co/Hebrish/Jachnun), the pure code-switching model, and of [Boxty v1.0](https://huggingface.co/Hebrish/Parakeet-TDT-0.6B-v2-Tech-And-Accent), the no-Hebrew model.
**Name.** Each fine-tune line has a code name from a food, so models are easy to tell apart: the English-Hebrew code-switching line is named after Israeli foods (v1.0 is **Jachnun**), the no-Hebrew line after Irish foods (**Boxty**), and this kitchen-sink line is **Sabich**, the Israeli pita stuffed with a bit of everything. Later retrains of this line keep the name and bump the version (Sabich v1.1, …); the training run id is `r7-all`.
A full fine-tune of [`nvidia/parakeet-tdt-0.6b-v2`](https://huggingface.co/nvidia/parakeet-tdt-0.6b-v2) on one
speaker's read-aloud phone recordings (an Irish English speaker living in Israel), run `r7-all`, trained
2026-10-20. Output keeps v2's casing and punctuation; numbers are written in digits.
Sibling models from the same data revision: [Jachnun v1.0, English-Hebrew code-switching](https://huggingface.co/Hebrish/Jachnun) Β· [Boxty v1.0, English without Hebrew](https://huggingface.co/Hebrish/Parakeet-TDT-0.6B-v2-Tech-And-Accent).
**Access and terms of use.** Governed by the [Hebrish terms of use](https://hebrish.app/terms); access is by
request (button on this page, or [access-requests@hebrish.app](mailto:access-requests@hebrish.app)). Non-commercial
use is free; commercial use needs a commercial licence.
**Use it in the Hebrish app.** Sabich is the recommended model in the Hebrish apps, which download it, keep it updated and paste what you say at the cursor: [hebrish.app/download](https://hebrish.app/download). The Ubuntu app, version 0.6.3:
<img src="https://cdn.hebrish.app/apps/screenshots/desktop-dictate.png" alt="Hebrish 0.6.3 on Ubuntu, Dictate tab: a round Talk button, the microphone with its level meter, the hint 'Tap F14 to start and stop', and an empty text box ready for dictation" width="360">
## Results
All models scored on the same test clips (dataset revision `f956dbb184c2`, blend `all` test sets;
never trained on, never used for checkpoint selection). WER is normalised (lowercase, no punctuation).
| Model | Hebrew-free English WER (57 clips) | tech WER | own English WER (84) | LibriSpeech WER (200) | code-switching WER (422) | held-out Hebrew term recall | long-form WER |
|---|---|---|---|---|---|---|---|
| stock `nvidia/parakeet-tdt-0.6b-v2` | 1.79% | 2.51% | 2.81% | 1.23% | 11.82% | 23.77% | 10.34% |
| Jachnun v1.0, code-switching (`r6-en30`) | 1.23% | 1.74% | 1.56% | 1.20% | 5.42% | 46.91% | 5.84% |
| Boxty v1.0, no Hebrew (`r7-general`) | 1.04% | 1.35% | 2.56% | 1.18% | 11.52% | 23.46% | 11.20% |
| **this model** (`r7-all`) | 1.23% | 1.54% | 1.62% | 1.30% | 5.30% | 48.15% | 5.77% |
This model has the lowest code-switching WER and the highest held-out Hebrew term recall of the set, and is close to Boxty on tech dictation. LibriSpeech is 0.07 points above stock (about 3 words in 200 clips), within noise but a strict fail of the forgetting rule; general English is otherwise not lost. Differences from Jachnun v1.0 on code-switching are small (within about one WER point). Pick it if you dictate both mixed English-Hebrew and tech-heavy English.
**Public benchmark** ([leaderboard](https://huggingface.co/spaces/danielrosehill/English-Hebrew-Codeswitching-ASR-Leaderboard), frozen test set v1, clean subset: 84 clips, 172 Hebrew term occurrences; scored 2026-10-20 on the weights in this repo, first published at revision `640c1483` of its earlier name): term recall 73.8% (Jachnun v1.0: 73.3%), unseen-term recall 68.4% (70.1%), WER 3.27% (3.32%), English control WER 1.99% (2.17%). Level with Jachnun v1.0 within noise. None of the benchmark clips are in this model's training or validation data.
**In the Hebrish apps** it is the model called Sabich in the model picker; the app build is [`Hebrish/Sabich-sherpa-onnx-int8`](https://huggingface.co/Hebrish/Sabich-sherpa-onnx-int8) (sherpa-onnx int8, open, no access request).
## Training data
The exact training mix is published as [`Hebrish/Parakeet-V2-Blend-All`](https://huggingface.co/datasets/Hebrish/Parakeet-V2-Blend-All) (tag `r7-all`).
- Every one of the speaker's takes, code-switching and English: code-switching sentences, Hebrew names, Yiddish and religious terms, and every task subset (tech, brand names, acronyms, expanded acronyms, Irish English, currency, numerics, hard sentences, disfluency, repeated words, singing, weird voices, whispered, web addresses, spelled-out) except `name-cipher`, whose targets contradict the rest on purpose. No separate own-English pool: the English is the speaker's own Hebrew-free takes inside the primary set.
- Mix: 560.5 min of the speaker's takes (373.1 min code-switching)
plus 62.5 min of LibriSpeech-PC replay (cased, punctuated; CC-BY-4.0) = 623.0 min, 5,334 clips.
- Validation: 1 in 16 of the speaker's train takes by id hash, used only to pick the checkpoint.
<!-- training-categories:begin -->
## Data categories
Every category in the training data, what it is for, one real prompt, and which model line trains on it (Sabich = everything blend, Jachnun = code-switching, Boxty = no Hebrew). Generated by `scripts/build_training_categories.py` in the training repo.
| Category | What it trains | Example (said β†’ written) | Sabich | Jachnun | Boxty |
|---|---|---|---|---|---|
| Code-switching | Hebrew words inside English sentences, written in the canonical romanization (the core objective). | β€œDo you want amba on your sabich or just tahini?” | βœ“ | βœ“ | – |
| Israeli names and places | Israeli and Jewish first names, surnames and place names. | β€œHi Omri, the tiyul to Ein Gedi is still on for Saturday morning if you want to join us.” | βœ“ | βœ“ | – |
| Yiddish | Yiddish words in English; always also code-switching. | β€œThese rugelach are fresh and absolutely delicious.” | βœ“ | βœ“ | – |
| Jewish religious terms | Jewish religious and observance vocabulary; always also code-switching. | β€œWhere exactly did the Beis Hamikdash stand relative to the Old City walls?” | βœ“ | βœ“ | – |
| Plain English | Everyday English, kept so the model does not forget ordinary speech. | β€œDo we have any rice left, or should I make pasta for dinner tonight instead?” | βœ“ | βœ“ (English share) | βœ“ |
| Dictated email | Email register: greetings, requests, sign-offs. | β€œHi Dana, just following up on my email from last week, did you get a chance to look at it?” | βœ“ | βœ“ (English share) | βœ“ |
| Messages and notes | WhatsApp messages and notes to self. | β€œAre you still going to the gym tonight, or skipping again?” | βœ“ | βœ“ (English share) | βœ“ |
| Homophones | Sentences whose context settles a homophone (their / there, steak / stake). | β€œCould we hire a van for Saturday instead of borrowing Pete's?” | βœ“ | βœ“ (English share) | βœ“ |
| Numbers in digits | Numbers written in digits, not words (DeepSeek 4.1, 45 seconds). | β€œThe battery dropped from 80% to 15% in under three hours.” | βœ“ | βœ“ (English share) | βœ“ |
| Personal vocabulary | Daniel's own names, companies and project names. | β€œDaniel Rosehill writes the prompts, and Corn and Herman turn them into an episode.” | βœ“ | βœ“ (English share) | βœ“ |
| Tech vocabulary | AI and software terms, product names, commands. | β€œA GitHub Gist is still the fastest way to share a one-off shell script with someone.” | βœ“ | βœ“ (English share) | βœ“ |
| Talking to AI tools | Prompts and instructions dictated to AI assistants. | β€œOpen the model picker and switch to Sonnet for the rest of this.” | βœ“ | βœ“ (English share) | βœ“ |
| Linux admin | Linux commands, tools and system administration. | β€œRun a traceroute to the VPS from the home server and see where the latency jumps.” | βœ“ | βœ“ (English share) | βœ“ |
| Smart home | Home Assistant and smart-home devices and commands. | β€œSmartThings was my very first hub, before I found Home Assistant.” | βœ“ | βœ“ (English share) | βœ“ |
| Long dictation | Paragraph-length dictation, 50 to 110 words in one take. | β€œQuick update on the server situation. The WhatsApp bot stopped replying last night because uvicorn crashed after I updated Ubuntu. …” | βœ“ | βœ“ (English share) | βœ“ |
| Field corrections | Free speech the stock model got wrong, corrected by hand (Correct mode). | | βœ“ | βœ“ (English share) | βœ“ |
| Currency | Spoken amounts written as typed: fifty shekels becomes 50 NIS, twenty dollars $20. | The license is 99 dollars once, no subscription. β†’ β€œThe license is $99 once, no subscription.” | βœ“ | βœ“ (English share) | βœ“ |
| Numbers (not money) | Temperatures, decimals, percentages, units, times, dates and ordinals in digits. | It was minus two degrees Celsius in Berlin this morning. β†’ β€œIt was -2 degrees Celsius in Berlin this morning.” | βœ“ | – | βœ“ |
| Web addresses | Addresses said aloud (dot, slash, colon) written as typed. | The meeting notes are at example dot com slash notes slash october dash twenty. β†’ β€œThe meeting notes are at example.com/notes/october-20.” | βœ“ | – | βœ“ |
| Spelling out | Letters spelled aloud written as the word they spell. | My surname is B R E N N A N. β†’ β€œMy surname is Brennan.” | βœ“ | – | βœ“ |
| Acronyms | Letter-by-letter acronyms (API, SSH) and word acronyms (NASA, JSON) in their standard form. | β€œThe ROI on that campaign was higher than anyone expected.” | βœ“ | – | βœ“ |
| Expanded acronyms | Chat and business shorthand said as letters, written out (EOD becomes end of day). | The documentation is the weakest part of the project, IMO. β†’ β€œThe documentation is the weakest part of the project, in my opinion.” | βœ“ | – | βœ“ |
| Brand and product names | Company, product, AI model and open-source names in their official spelling. | β€œI asked Claude to review the pull request, and it caught a typo in the config.” | βœ“ | – | βœ“ |
| Procurement | Incoterms, POs, RFQs, lead times and payment terms. | β€œAsk them if they'll lower the MOQ for the first order and treat it as a trial.” | βœ“ | – | βœ“ |
| Idioms | Idioms ASR tends to spell as a sound-alike (free rein, toe the line). | β€œWe gave the contractor free rein on the kitchen layout, and honestly it turned out better than my plan.” | βœ“ | – | βœ“ |
| Hard sentences | Harvard sentences, tongue twisters, homographs, garden paths, rare words. | β€œThe birch canoe slid on the smooth planks.” | βœ“ | – | βœ“ |
| Irish English | Irish English words, grammar and Irish-language names with fadas. | β€œThe new lad at work is deadly, he sorted out the printer in 5 minutes.” | βœ“ | – | βœ“ |
| Disfluency reduction *(experimental)* | Read with uh, um and eh; the transcript stays clean. | Read with hesitations: uh, um, eh. β†’ β€œHonestly, I never properly thanked her for helping us last week, and it's bugging me now.” | βœ“ | – | βœ“ |
| Repeated words *(experimental)* | Words repeated the way people restart; the transcript stays clean. | Read repeating a word now and then (the the report). β†’ β€œHas anyone heard how she's doing today? She sounded really rough on the phone yesterday and I'm getting worried.” | βœ“ | – | βœ“ |
| False starts *(experimental)* | Abandoned starts and doubled words; the transcript drops them. | It's not that I β€” I just don't think we have time for it this week. β†’ β€œI just don't think we have time for it this week.” | βœ“ | – | βœ“ |
| Self-corrections *(experimental)* | A spoken correction (Tuesday, no, Wednesday); the transcript keeps only the corrected version. | Leave the box by the front door, no, by the back door, please. β†’ β€œLeave the box by the back door, please.” | βœ“ | – | βœ“ |
| Asides *(experimental)* | A remark to someone else in the room mid-dictation; it stays out of the transcript. | We need to buy a new washing machine β€” Ezra, not now, sweetie β€” before the old one breaks down completely, ideally under $600. β†’ β€œWe need to buy a new washing machine before the old one breaks down completely, ideally under $600.” | βœ“ | – | βœ“ |
| Paragraphs *(experimental)* | Whole passages in one take, for paragraph inference later. | β€œThings to sort out with the internet this week. The router keeps dropping the connection for a minute or so in the evenings. …” | βœ“ | – | βœ“ |
| Whispered *(experimental)* | Whispered speech (robustness). | Whispered. β†’ β€œHonestly, I think the kids are getting too much homework for their age, and nobody at school seems to listen.” | βœ“ | – | βœ“ |
| Singing *(experimental)* | Sung sentences (robustness). | Sung, any tune. β†’ β€œDo you think it's rude to give someone a gift card, or is it actually more useful than guessing what they like?” | βœ“ | – | βœ“ |
| Weird voices *(experimental)* | Put-on voices: deep, squeaky, robot, accents (robustness). | Read in a put-on voice. β†’ β€œDo you think it's rude if we don't reply to the wedding invitation until we know whether the kids can come?” | – | – | – |
| Name cipher (PII test) *(experimental)* | Experiment: real names read, swapped by rule in the transcript (Hannah becomes Sarah). | Can you tell Daniel the meeting moved to 3 PM? β†’ β€œCan you tell Dave the meeting moved to 3 PM?” | – | – | – |
βœ“ = in the training recipe. β€œEnglish share” = competes for Jachnun's 30% monolingual-English share. Experimental sets are recorded but off in the capture app by default. This is the current recipe; a published run's exact composition is in its blend file.
<!-- training-categories:end -->
## Training
NeMo 2.7.3 on one L40S (Modal), bf16. AdamW, lr 3e-05 (cosine, 10% warmup), 20 epochs,
batch 16, seed 7. Best checkpoint `best-epoch=19-val_wer=0.0463.ckpt`,
52.1 min of training.
## Usage
```python
import nemo.collections.asr as nemo_asr
from huggingface_hub import hf_hub_download
path = hf_hub_download("Hebrish/Sabich", "Sabich.nemo")
model = nemo_asr.models.ASRModel.restore_from(path)
print(model.transcribe(["clip.wav"])[0].text) # 16 kHz mono
```
GGUF builds for transcribe.cpp (Offline Voice Input on Android, Handy on Linux) are in [`Hebrish/Sabich-GGUF`](https://huggingface.co/Hebrish/Sabich-GGUF): Q8_0 (recommended),
Q4_K_M and F16.
## Limitations
- **One speaker.** It is adapted to one voice, accent and phone; others will see less benefit.
- The test sets are small (Hebrew-free English is 57 clips), so differences under about
one WER point are within noise.
- Disfluent and sung takes were trained on with clean targets, so the model may drop some fillers and repeated words.
- LibriSpeech WER is 0.07 points above stock (1.30% vs 1.23%): noise-level, but not an improvement on general read English.
- Its best epoch was the last of 20; a 30-epoch run (`r7-all-e30`) exists but is not evaluated or published.
- Numbers on the test set are 8 tokens only; the number score is not meaningful yet.
## Licence
CC-BY-4.0, from the base model's licence, with use governed by the Hebrish terms above. Base model by NVIDIA.