MiMo-V2.5-ASR
Xiaomi MiMo's end-to-end 8B speech model — state-of-the-art Mandarin, English, and Cantonese recognition, fully on-device
Opens the desktop app and downloads this model for you.
Don't have the app yet? Download OpenASR Desktop
let's line up this week's release plan,
the beta build can ship on Friday,
then loop in design and QA,
Why it fits
MiMo-V2.5-ASR is a state-of-the-art end-to-end automatic speech recognition model developed by
the Xiaomi MiMo team. Audio first passes through the MiMo-Audio-Tokenizer, a 1.2B-parameter
transformer operating at 25 Hz that uses an eight-layer residual vector quantization (RVQ) stack
to produce 200 discrete tokens per second; a patch encoder then aggregates four consecutive time
steps into a single patch, downsampling the sequence to a compact 6.25 Hz representation. The
tokenizer was trained from scratch on a 10-million-hour corpus, jointly optimizing semantic and
reconstruction objectives (huggingface.co/XiaomiMiMo/MiMo-Audio-Tokenizer). Those tokens feed an
8B-parameter transformer decoder with Flash Attention support, trained through large-scale
mid-training, high-quality supervised fine-tuning, and a novel reinforcement-learning algorithm
(huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR). On Xiaomi's published benchmarks the model achieves
2.52% CER on AiShell-2 and 2.41% on Fleurs-Zh for Mandarin -- leading both FunASR-1.5 and
Seed-ASR 2.0 -- alongside 5.73% average WER across eight English Open ASR Leaderboard test
sets with 1.45% on LibriSpeech-Clean. For Cantonese, the model scores 3.28% CER on
Fleurs-Yue and 7.21% CER on a second Cantonese test set (Xiaomi's published MiMo-V2.5-ASR
benchmark results). It handles code-switched Mandarin-English speech without language tags,
generates punctuation natively from prosody and semantics, and is designed for noisy,
multi-speaker, and overlapping-conversation scenarios. This OpenASR pack ships the q4_k build
under an MIT license inherited from the upstream model, running entirely on-device via the
.oasr format -- no cloud upload, no Python at inference time. OpenASR's catalog entry supports
English, Cantonese, and Mandarin Chinese; the base model's broader dialect training on Wu,
Hokkien, and Sichuanese provides additional architectural depth but those dialects are not
shipped as supported languages in this pack.
What you can do with it
- 🥇 State-of-the-art Mandarin accuracy — 2.52% CER on AiShell-2 and 2.41% on Fleurs-Zh, leading both FunASR-1.5 and Seed-ASR 2.0 on both benchmarks (Xiaomi's published MiMo-V2.5-ASR benchmark results)
- 🇬🇧 Strong English recognition — 5.73% average WER across eight Open ASR Leaderboard test sets, including 1.45% WER on LibriSpeech-Clean (Xiaomi's published MiMo-V2.5-ASR benchmark results)
- 🗣️ Cantonese and dialect depth — 3.28% CER on Fleurs-Yue for Cantonese; the underlying model is also trained on Wu, Hokkien, and Sichuanese dialects (Xiaomi's published MiMo-V2.5-ASR benchmark results; huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR)
- 🔀 Seamless Mandarin-English code-switching — transcribes mixed-language speech with no language tags required (huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR)
- ✍️ Native punctuation from prosody — generates punctuation directly from speech rhythm and semantics, delivering ready-to-use transcripts with no post-processing needed (huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR)
- 🏗️ 1.2B audio tokenizer + 8B decoder pipeline — a residual vector quantization tokenizer trained on 10 million hours of audio compresses speech at 25 Hz into discrete tokens, fed into an 8B-parameter transformer decoder with Flash Attention support (huggingface.co/XiaomiMiMo/MiMo-Audio-Tokenizer; huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR)
Other models
Developer details CLI commands, file hashes, and per-quant downloads — for scripting and verification.
Model facts
Usage
These are CLI / local-server examples. The desktop app runs this model without typing a command — use Install above.
$ openasr pull mimo-v2.5-asr:q4 ↓ mimo-v2.5-asr.oasr 5.4 GB ✓ verified sha256 $ openasr transcribe meeting.wav --backend native --model-pack ~/.openasr/models/mimo-v2.5-asr/q4_k/mimo-v2.5-asr-q4_k.oasr ✓ local transcript · 0 bytes sent
$ openasr serve --backend native --model-pack ~/.openasr/models/mimo-v2.5-asr/q4_k/mimo-v2.5-asr-q4_k.oasr --addr 127.0.0.1:8080 ▶ http://127.0.0.1:8080 · model=mimo-v2.5-asr · 0 bytes will leave this host
from openai import OpenAI client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="local") audio = open("meeting.wav", "rb") text = client.audio.transcriptions.create(model="mimo-v2.5-asr", file=audio)