--- language: en tags: - speech-recognition - asr - speaker-diarization - audio-tagging - speech-enhancement - onnx - sherpa-onnx - flutter - android library_name: sherpa-onnx pipeline_tag: automatic-speech-recognition --- # Mum's Ears — ONNX Model Repository Central model store for Mum's Ears, an Android speech-to-text app built with Flutter and [sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx). All models are downloaded at runtime with SHA-256 checksum verification. --- ## Folder Structure mums-ears-models/ ├── en/ # English streaming ASR + punctuation ├── de/ # German streaming ASR ├── es/ # Spanish streaming ASR ├── fr/ # French streaming ASR ├── zh/ # Chinese streaming ASR ├── qwen3-asr/ # Qwen3-ASR (offline, 938 MB) ├── audio_tagging/ # CED Tiny audio event classification ├── denoiser/ # DPDFNet8 speech enhancement ├── speaker_embedder/ # CAM++ speaker embedding └── pyannote_model.onnx # Speaker diarization segmentation --- ## Model Inventory ### Streaming ASR (per-language) Each language folder contains a streaming Zipformer transducer model fine-tuned for real-time captioning. | File | Size | Purpose | |------|------|---------| | `encoder.onnx` | 70 MB (154 MB zh) | Acoustic encoder | | `decoder.onnx` | 1 MB (5 MB zh) | Prediction decoder | | `joiner.onnx` | 1 MB | Joint network | | `tokens.txt` | < 1 MB | Token vocabulary | **Languages:** `en`, `de`, `es`, `fr`, `zh` ### Punctuation (English) | File | Size | Purpose | |------|------|---------| | `en/model_punct.int8.onnx` | 7 MB | Online punctuation model (int8 quantized) | | `en/bpe_punct.vocab` | < 1 MB | BPE vocabulary | ### Speaker Diarization | File | Size | Purpose | Original Source | |------|------|---------|-----------------| | `pyannote_model.onnx` | 14 MB | Speaker segmentation (pyannote 3.0) | [csukuangfj/sherpa-onnx-pyannote-segmentation-3-0](https://huggingface.co/csukuangfj/sherpa-onnx-pyannote-segmentation-3-0) | | `speaker_embedder/` | 27 MB | CAM++ speaker embeddings (zh+en, 192-dim) | [k2-fsa/sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx/releases/tag/speaker-recongition-models) | ### Audio Tagging | File | Size | Purpose | Original Source | |------|------|---------|-----------------| | `audio_tagging/model.int8.onnx` | 27 MB | CED Tiny audio event classifier (int8) | [k2-fsa/sherpa-onnx-ced-tiny-audio-tagging-2024-04-19](https://huggingface.co/k2-fsa/sherpa-onnx-ced-tiny-audio-tagging-2024-04-19) | | `audio_tagging/class_labels_indices.csv` | < 1 MB | Audio event class labels | Same | ### Speech Enhancement (Denoiser) | File | Size | Purpose | Original Source | |------|------|---------|-----------------| | `denoiser/dpdfnet8.onnx` | 14 MB | DPDFNet8 speech denoiser | [k2-fsa/sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx/releases/download/speech-enhancement-models/dpdfnet8.onnx) | ### Qwen3-ASR (Offline) Large offline ASR model (int4 quantized, ~938 MB total). Optional — requires ≥ 4 GB free RAM. | File | Size | Purpose | |------|------|---------| | `qwen3-asr/encoder.int8.onnx` | ~400 MB | Audio encoder | | `qwen3-asr/decoder.int8.onnx` | ~400 MB | Language model decoder | | `qwen3-asr/conv_frontend.onnx` | ~100 MB | Convolutional frontend | | `qwen3-asr/tokenizer/vocab.json` | < 1 MB | Tokenizer vocabulary | | `qwen3-asr/tokenizer/merges.txt` | < 1 MB | BPE merge rules | | `qwen3-asr/tokenizer/tokenizer_config.json` | < 1 MB | Tokenizer config | --- ## Attribution Models in this repository are sourced from the following open-source projects: - **[k2-fsa/sherpa-onnx](https://github.com/k2-fsa/sherpa-onnx)** — Streaming ASR, speaker embedding, diarization, punctuation, denoiser, audio tagging (Apache-2.0) - **[pyannote/segmentation-3.0](https://huggingface.co/pyannote/segmentation-3.0)** — Speaker diarization segmentation (MIT) - **[Qwen/Qwen3-ASR](https://huggingface.co/Qwen/Qwen3-ASR)** — Offline ASR model (Apache-2.0) - **[frankyoujian/Edge-Punct-Casing](https://github.com/frankyoujian/Edge-Punct-Casing)** — Punctuation model ([paper](https://arxiv.org/abs/2407.13142)) The "kroko" streaming ASR models (en/de/es/fr) are custom fine-tuned variants. The Chinese streaming model is int8-quantized. --- ## Download & Verification Models are downloaded by the app's built-in download manager with: - **Resumable downloads** via HTTP Range headers (`.part` files) - **SHA-256 checksum verification** before accepting any file - **Mirror fallback** — if the primary URL fails, the original source URL is tried automatically - **WiFi-only mode** (default, toggleable) All checksums are defined in `lib/services/model_checksums.dart`.