--- language: - am library_name: nemo pipeline_tag: automatic-speech-recognition license: other license_name: openmdw-1.1 license_link: https://openmdw.ai/license/1-1/ base_model: nvidia/nemotron-3.5-asr-streaming-0.6b tags: - speech - asr - amharic - streaming - realtime - addis-ai --- # Addis Scribe Streaming **Realtime Amharic speech recognition by Addis AI.** Text appears while people speak, in 0.32-second steps, and is final about 30 ms after they stop. Built on NVIDIA Nemotron 3.5 ASR Streaming (0.6B), trained on 5,000+ hours of quality-checked Amharic speech. | | Addis Scribe Streaming | [Google Chirp 3](https://cloud.google.com/speech-to-text/v2/docs/chirp_3-model) (streaming) | |---|---|---| | Word error rate, natural speech | **28.4%** | 32.5% | | Character error rate, natural speech | **13.1%** | 16.5% | | Final text after the speaker stops | **30 ms** | 1,411 ms | | First words on screen | **1.56 s** | 6.67 s | ## Streaming support "Streaming" here means the model reads each new piece of audio once, keeps what it learned in a cache, and updates the text without re-reading earlier audio. Cost and delay stay flat however long someone talks. | System | Streaming | How it handles live audio | |---|---|---| | **Addis Scribe Streaming** | **Native** | Cache-aware: each 0.32 s (or 1.12 s) chunk is processed once. | | [Google Chirp 3](https://cloud.google.com/speech-to-text/v2/docs/chirp_3-model) | Native (cloud API) | Server-side streaming over the network. | | [Shook](https://huggingface.co/b1n1yam/shook-medium-amharic-2k) (Whisper medium) | Not supported | Whisper models transcribe complete audio, not a live stream. Our benchmark runs it live using the method of [WhisperLiveKit](https://github.com/QuentinFuxa/WhisperLiveKit), a widely used open-source tool for live Whisper: once per second it transcribes all audio received so far and displays a word once two consecutive transcriptions contain it. Because each pass covers the whole recording so far, the delay grows the longer someone speaks: measured median 10.8 s after speech ends. | | [Hohe](https://huggingface.co/snapwre/hohe-asr-amharic) (wav2vec2-BERT) | No | Offline only: needs the whole recording before it can answer. | ## Benchmarks Every system is scored with the same text normaliser (Unicode NFC, punctuation and symbols removed). WER = word error rate, CER = character error rate; lower is better. ### Natural speech: 100 [WAXAL](https://huggingface.co/datasets/google/WaxalNLP) Amharic test clips 22 speakers, 29 minutes, human transcripts. None of it was used in training. Clips were picked at random (fixed seed) from WAXAL `amh` test, 2 to 30 s long. | System | Mode | WER | CER | Final text after speech ends | First words | |---|---|---|---|---|---| | **Addis Scribe Streaming** | **streaming 0.32 s** | **28.4%** | **13.1%** | **30 ms** | **1.56 s** | | Addis Scribe Streaming | streaming 1.12 s | 27.3% | 12.4% | 34 ms | 2.21 s | | [Google Chirp 3](https://cloud.google.com/speech-to-text/v2/docs/chirp_3-model) (am-ET) | streaming, realtime | 32.5% | 16.5% | 1,411 ms | 6.67 s | | Google Chirp 3 (am-ET) | batch, whole file | 29.2% | 13.5% | n/a | n/a | | [Shook](https://huggingface.co/b1n1yam/shook-medium-amharic-2k) (Whisper medium) | live, WhisperLiveKit method (1 s updates) | 35.0% | 16.6% | 10,839 ms | 3.66 s | | Shook (Whisper medium) | offline | 35.0% | 16.6% | n/a | n/a | | [Hohe](https://huggingface.co/snapwre/hohe-asr-amharic) (wav2vec2-BERT) | offline only | 25.4% | 11.2% | n/a | n/a | Latency for Addis Scribe and Shook is measured on one NVIDIA A100 with no network hop, with audio fed at real-time speed; Google's figures include the network round trip to its EU endpoint from the benchmark machine. ### [FLEURS](https://huggingface.co/datasets/google/fleurs) Amharic test (read sentences) | System | Mode | WER | CER | |---|---|---|---| | **Addis Scribe Streaming** | **streaming 0.32 s** (first 150 clips) | **19.8%** | 8.2% | | Hohe | offline (same 150 clips) | 20.6% | 7.9% | | Addis Scribe Streaming | offline (all 516 clips) | 20.6% | 7.7% | | Hohe | offline (all 516 clips) | 20.2% | 7.3% | | Previous Addis AI Nemotron | streaming 0.32 s (first 150 clips) | 35.0% | 17.0% | Every per-clip transcript, latency and the scoring script are in [`benchmark/`](benchmark/), so these numbers can be reproduced exactly. ## Quickstart ```python from stream_infer import AmharicStreamer scribe = AmharicStreamer("addis-scribe-streaming.nemo", chunk="320ms") # or "1120ms" for frame in microphone_frames(): # float32 mono, 16 kHz, any frame size print(scribe.feed(frame)) # transcript so far final_text = scribe.finish() # at end of speech; scribe.reset() for the next utterance ``` Command line: `python stream_infer.py addis-scribe-streaming.nemo speech_16k.wav [320ms|1120ms]`. Requires [NVIDIA NeMo](https://github.com/NVIDIA/NeMo) 3.0 with `numba-cuda[cu12]`, `numpy<2.4` and `nvidia-nvjitlink-cu12>=12.9`. Fed 100 ms frames like a live microphone, `AmharicStreamer` reproduces the reference streaming transcripts exactly (100 of 100 benchmark clips). ## Model | | | |---|---| | Architecture | Cache-aware FastConformer encoder, hybrid RNNT + CTC, 0.6B parameters | | Decoding | Greedy RNNT; language prompt `am-ET` (index 49) | | Chunk sizes | 0.32 s (default) or 1.12 s | | Input / output | 16 kHz mono audio / Amharic text without punctuation | | Files | `addis-scribe-streaming.nemo`, `serving.json`, `stream_infer.py`, `SHA256SUMS` | ## Training Trained on 5,000+ hours of quality-checked Amharic speech, then refined on human-transcribed speech. FLEURS, WAXAL test and the evaluation speakers were never used in training. ## Limits - On natural conversational speech it is about 3 WER points behind Hohe, which is offline only. - No punctuation (training text had punctuation removed). - Tested on Amharic only; other languages are out of scope. ## References | | | |---|---| | Base model | [NVIDIA Nemotron 3.5 ASR Streaming 0.6B](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b) | | Toolkit | [NVIDIA NeMo](https://github.com/NVIDIA/NeMo) | | Google Chirp 3 | [Chirp 3 model documentation](https://cloud.google.com/speech-to-text/v2/docs/chirp_3-model) | | Hohe | [snapwre/hohe-asr-amharic](https://huggingface.co/snapwre/hohe-asr-amharic) | | Shook | [b1n1yam/shook-medium-amharic-2k](https://huggingface.co/b1n1yam/shook-medium-amharic-2k) | | WhisperLiveKit | [QuentinFuxa/WhisperLiveKit](https://github.com/QuentinFuxa/WhisperLiveKit) | | WAXAL (natural-speech test set) | [google/WaxalNLP](https://huggingface.co/datasets/google/WaxalNLP), `amh` test split, CC-BY-SA-4.0 | | FLEURS (read-speech test set) | [google/fleurs](https://huggingface.co/datasets/google/fleurs), `am_et` test split | ## License Built on [NVIDIA Nemotron 3.5 ASR Streaming 0.6B](https://huggingface.co/nvidia/nemotron-3.5-asr-streaming-0.6b), used under the [OpenMDW-1.1](https://openmdw.ai/license/1-1/) license. © Addis AI.