Model · streaming speech-to-text

Hebrish (Shakshuka v1.0): Nemotron streaming fine-tune for code-switching plus tech dictation

The streaming line of Hebrish: text appears while you speak, trained on the same everything-in-it recordings as Sabich.

Which model? Shakshuka streams: text appears while you speak. Sabich transcribes offline, when you stop, and on past results it is the more accurate of the two. Both are trained on the same data, so use Sabich unless you need live text. See Sabich →

  • v1.0 · Shakshuka · 21 October 2026
  • Base: nvidia/nemotron-speech-streaming-en-0.6b
  • Licence: NVIDIA Open Model License Agreement; use under the Hebrish terms of use
  • Runs offline: NeMo · sherpa-onnx · transcribe.cpp
  • Every Shakshuka repo (.nemo, GGUF, sherpa-onnx and the PoC record) is gated: request access on Hugging Face. Requests are reviewed by hand.

About the model

Shakshuka is the streaming line of Hebrish: a fine-tune of NVIDIA's cache-aware streaming model, Nemotron Speech Streaming EN 0.6B, so text appears while you speak, in chunks of 80 ms to 1.12 s. Like the other Hebrish models it writes the Hebrew words in English speech in one romanized spelling, and it never writes Hebrew script.

Shakshuka v1.0 (2026-10-21) is the first full release. It is trained on Sabich's data: code-switched speech plus tech vocabulary, brand names, acronyms, numbers and currency in digits, Irish-English phrasing and everyday dictation. The two earlier checkpoints, PoC-1 and PoC-2, were trained on the code-switching mix only, beside Jachnun.

v1.0 was published straight after training and is not benchmarked yet. The numbers below are PoC-2's: 62.2% Hebrew term recall and 4.7% WER on the public benchmark, scored offline. Streaming at 560 ms chunks cost it nothing measurable against offline decoding.

It is not in the Hebrish apps yet. Run it in NVIDIA NeMo, as a sherpa-onnx streaming build (560 ms chunks) or as a GGUF in transcribe.cpp. Like Jachnun and Sabich, it takes an Israeli food name.

Which file should I download?

Every Shakshuka repo (.nemo, GGUF, sherpa-onnx and the PoC record) is gated: request access on Hugging Face. Requests are reviewed by hand. The links below work once access is granted and you are signed in.

Recommended

.nemo checkpoint 2.47 GB

Python, GPU inference, offline or cache-aware streaming, or further fine-tuning, at full precision.

Run with NVIDIA NeMo Download .nemo checkpoint →

transcribe.cpp Q8_0 730 MB

The recommended transcribe.cpp file. Whether an app loads this architecture depends on its transcribe.cpp version; transcribe-cli v0.1.3 does.

Run with transcribe.cpp Download transcribe.cpp Q8_0 →

transcribe.cpp Q4_K_M 475 MB

Smaller quant for devices short on memory.

Run with transcribe.cpp Download transcribe.cpp Q4_K_M →

transcribe.cpp F16 1.24 GB

Desktop GPU, half precision.

Run with transcribe.cpp Download transcribe.cpp F16 →

Results

Shakshuka PoC-2, run r6-nemotron-en30, evaluated 19 October 2026. Stock Nemotron was not scored on these test sets, so the reference column is stock Parakeet TDT 0.6B v2 on the same clips. Lower WER is better; higher term recall is better.

Newer releases not yet scored: Shakshuka v1.0 (run r8-nemotron-all, 2026-10-21) was published straight after training and has no test results yet. Its validation WER at the chosen checkpoint was 6.66% (raw, used only to pick the checkpoint; not a test score).

Test setStock Parakeet v2 (reference)Shakshuka PoC-2
Public benchmark, 84 clips: Hebrew term recall (offline)32.6%62.2%
Public benchmark: unseen-term recall (offline)32.5%54.7%
Public benchmark: WER (offline)9.5%4.7%
Public benchmark: English control WER (offline)2.7%2.5%
Code-switching, held-out split, 387 clips (normalised WER, offline)11.3%5.8%
Code-switching, held-out split (normalised WER, streaming at 560 ms)n/a5.65%
Hebrew terms held out of training: share correct (offline)25.9%44.4%
Speaker's own English, 73 clips (normalised WER)3.1%3.3%
LibriSpeech test-clean, 200 utterances (normalised WER)1.2%2.0%
Long form, 15 files (normalised WER)9.6%5.8%
  • Public benchmark: test set v1, clean subset (84 clips, 172 term occurrences, 139 distinct terms), round 3 on the leaderboard Space, scored 2026-10-19 with offline (full-context) decoding. Jachnun v1.0 on the same clips: 73.3% term recall, 70.1% unseen, 3.3% WER, 2.2% English control.
  • Held-out split: dataset revision 550bfcaa0f84, term-disjoint, never trained on. Jachnun v1.0 on the same split: 5.1% code-switching WER, 47.8% held-out terms, 1.7% own English, 1.2% LibriSpeech, 5.0% long form.
  • Streaming used cache-aware inference at 560 ms chunks (att_context_size [70, 6], tag r6-nemotron-en30-s560): 5.65% against 5.81% offline, no measurable loss. The 80 and 160 ms settings are not measured.
  • No forgetting verdict: stock Nemotron was not re-scored on this revision, so the English rows have no baseline of their own. PoC-2 drops all 8 number tokens in the held-out split.
  • WER is normalised: lowercase, punctuation removed.

Training

  • v1.0 · Shakshuka: Sabich's data at dataset revision e918e381 (blend all): 592.4 min of my own recordings (382.9 min of them code-switching) plus 66.0 min of LibriSpeech-PC replay, 658.4 min and 5,634 clips. Run name r8-nemotron-all.
  • Full fine-tune from stock Nemotron Speech Streaming EN 0.6B (cache-aware FastConformer + RNNT) in NeMo 2.7.3: AdamW, lr 3e-5, cosine schedule with 10% warmup, 20 epochs, batch 16, bf16, one L40S on Modal, 51 minutes. Best checkpoint at epoch 13.
  • Trained with full attention context (offline), not streaming-aware, like the PoC checkpoints. On PoC-2, streaming at 560 ms scored the same as offline decoding.
  • Before v1.0 came two proof-of-concept checkpoints on the code-switching mix only, trained beside the Parakeet runs with the same recipe: PoC-1 (r5-nemotron-en30, 2026-10-18, beside PoC-5) and PoC-2 (r6-nemotron-en30, 2026-10-19, 339.2 min of code-switching beside Jachnun v1.0).

Training data

Checkpoints and roadmap

Where the model is now and the checkpoints still to come. Planned stages are the current plan, not promises.

  1. PoC-1 (r5-nemotron-en30) Done 18 October 2026

    First Nemotron streaming fine-tune, trained beside PoC-5 on the code-switching mix. Published before any benchmark; now in the PoC record's history.

  2. PoC-2 (r6-nemotron-en30) Done 19 October 2026

    Trained beside Jachnun v1.0 on the same data. Scored 2026-10-19: 62.2% term recall on the public benchmark; 5.8% code-switching WER offline and 5.65% streaming at 560 ms on the held-out split.

  3. v1.0 · Shakshuka (r8-nemotron-all) Done 21 October 2026

    First full release, on Sabich's data. .nemo, sherpa-onnx int8 streaming build (560 ms chunks) and GGUF (Q8_0, Q4_K_M, F16), each export checked on two held-out clips.

  4. v1.0 benchmark Planned

    Score v1.0 offline and streaming, with stock Nemotron as the baseline.

  5. Small-chunk streaming Planned

    Measure accuracy at 80 and 160 ms chunks, not yet measured on any checkpoint.

Limitations

  • Trained on one voice so far: an English speaker with an Irish accent living in Jerusalem. Recordings from more speakers are the next step; contribute yours at hebrish.app/contact?topic=samples.
  • v1.0 is not benchmarked yet: no test-set numbers, offline or streaming.
  • On past results it trails the offline Parakeet models: PoC-2 was under one WER point behind Jachnun v1.0 on code-switching, and 11 points behind on term recall on the public benchmark.
  • Trained with full attention context; accuracy at the smallest chunks (80 and 160 ms) may be lower than offline.
  • NVIDIA Open Model License Agreement, not CC-BY-4.0: read it before shipping. Not made or endorsed by NVIDIA. The repos are gated, with access by request.

Related

HebrishShakshukaASRNemotronNeMostreamingcode-switchingHebrewEnglishsherpa-onnx

Work with me

Need speech AI, agent workflows or evals built for your team?

Everything on this site is open source and built in public. If you want the same kind of work done for your organisation, I take on consulting and build projects through DSR Holdings.