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.
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 |
speaker_embedder/<filename> |
27 MB | CAM++ speaker embeddings (zh+en, 192-dim) | k2-fsa/sherpa-onnx |
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 |
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 |
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 β Streaming ASR, speaker embedding, diarization, punctuation, denoiser, audio tagging (Apache-2.0)
- pyannote/segmentation-3.0 β Speaker diarization segmentation (MIT)
- Qwen/Qwen3-ASR β Offline ASR model (Apache-2.0)
- frankyoujian/Edge-Punct-Casing β Punctuation model (paper)
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 (
.partfiles) - 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.