OpenASR is built on a mountain of open work. This page is our thank-you to the projects, models, and communities that make it possible. The formal, legally-required attributions live in NOTICE — this is the human version.
OpenASR's entire native runtime runs on ggml, the tensor library behind llama.cpp and whisper.cpp. Every model we support executes through a thin Rust layer over a ggml fork. None of this would exist without Georgi Gerganov and the ggml / llama.cpp / whisper.cpp communities — their work is the foundation we stand on, and we send fixes back upstream where we can.
- ggml — https://github.com/ggml-org/ggml
- llama.cpp — https://github.com/ggml-org/llama.cpp
- whisper.cpp — https://github.com/ggml-org/whisper.cpp
OpenASR does not train models. We re-implement open model architectures on ggml
and republish redistributable .oasr packs. Each pack preserves its original
authors, upstream source, revision, license, and credits — both embedded in the
pack metadata and on its page in our Hugging Face catalog:
https://huggingface.co/OpenASR
Rather than restate that information here, follow the links — every model page credits the people who built the original.
Speech recognition
- Whisper — https://huggingface.co/OpenASR/whisper-small
- Cohere Transcribe — https://huggingface.co/OpenASR/cohere-transcribe-03-2026
- Qwen3-ASR — https://huggingface.co/OpenASR/qwen3-asr-0.6b
- MOSS-Transcribe-Diarize (OpenMOSS) — https://huggingface.co/OpenASR/moss-transcribe-diarize
- Moonshine — https://huggingface.co/OpenASR/moonshine-tiny
- X-ASR (Zipformer) — https://huggingface.co/OpenASR/xasr-zh-en
- Dolphin CN-Dialect Small/Base (DataoceanAI) — https://huggingface.co/OpenASR/dolphin-cn-dialect-small
- Dolphin Small/Base (DataoceanAI, multilingual) -- https://huggingface.co/OpenASR/dolphin-small (40 languages plus Chinese dialects; WeNet/ESPnet E-Branchformer, CTC + attention rescoring).
- SenseVoice (FunAudioLLM, Alibaba Group; FunASR Model License v1.1) -- https://huggingface.co/OpenASR/sensevoice-small
- Parakeet-CTC (NVIDIA NeMo) and wav2vec2 / data2vec (Meta AI) run from user-imported packs.
- Parakeet TDT 0.6B v3 (NVIDIA, CC-BY-4.0) -- https://huggingface.co/OpenASR/parakeet-tdt-0.6b-v3 (25 European languages; FastConformer + Token-and-Duration Transducer, trained with NeMo on the Granary corpus; original weights: https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3).
- FireRedASR2-AED (FireRedTeam, Apache-2.0) -- https://huggingface.co/OpenASR/firered-aed-l-v2 (Mandarin + English bilingual, plus Chinese dialects; Conformer encoder + Transformer decoder attention-based encoder-decoder; original weights: https://huggingface.co/FireRedTeam/FireRedASR2-AED).
- FireRedASR2-LLM (FireRedTeam, Apache-2.0) -- https://huggingface.co/OpenASR/firered2-llm (Mandarin + English bilingual; Conformer encoder + adapter + Qwen2 LLM decoder; original weights: https://huggingface.co/FireRedTeam/FireRedASR2-LLM).
- MiMo-V2.5-ASR (Xiaomi MiMo team, MIT) -- https://huggingface.co/OpenASR/mimo-v2.5-asr (Mandarin Chinese, English, and Cantonese; 1.2B RVQ tokenizer + 8B Qwen2 decoder; original weights: https://huggingface.co/XiaomiMiMo/MiMo-V2.5-ASR).
- Fun-ASR-Nano (FunAudioLLM, Apache-2.0) -- https://huggingface.co/OpenASR/funasr-nano (Mandarin + English; SAN-M/DFSMN encoder + adaptor + Qwen3-0.6B decoder; original weights: https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512).
- Granite Speech 4.1 2B (IBM Granite, Apache-2.0) -- https://huggingface.co/OpenASR/granite-speech-4.1-2b (English, French, German, Spanish, Portuguese, Japanese; Conformer encoder + Q-Former + 2B Granite decoder; original weights: https://huggingface.co/ibm-granite/granite-speech-4.1-2b).
- Qwen3-ForcedAligner 0.6B (Alibaba Qwen team, Apache-2.0) --
https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B (optional word-level
timestamp refinement via
--word-timestamps=aligned; OpenASR pack staged, not yet public).
Speaker diarization
- pyannote segmentation-3.0 (pyannote.audio, MIT) -- https://huggingface.co/OpenASR/pyannote-segmentation-3.0 (default overlap-aware speaker segmenter; source weights come from the pinned onnx-community mirror).
- ReDimNet2-B6 speaker embedder (PalabraAI, MIT) --
https://huggingface.co/OpenASR/redimnet2-b6-cn (192-d ggml-graph embedder
from the upstream
b6-vb2+vox2+cnc2_v0-lm.ptcheckpoint; https://github.com/PalabraAI/redimnet2). - DiariZen Large-s80-md-v2 (BUT Speech@FIT, CC BY-NC 4.0 weights) -- https://huggingface.co/BUT-FIT/diarizen-wavlm-large-s80-md-v2 (evaluated as an optional segmenter; OpenASR has not published or made this pack downloadable).
- FireRedVAD Stream-VAD (FireRedTeam, Apache-2.0) -- the voice-activity detection engine, backing realtime endpointing, long-form speech slicing, and diarization — see NOTICE.
- The BUT Speech@FIT PLDA parameters (via the pyannote community bundle) power diarization refinement — see NOTICE for the vendored-asset attributions.
Translation (experimental)
OpenASR's native runtime is written from scratch, but several components are clean-room reimplementations whose designs we learned by studying open reference code. We did not reuse their source; the ideas and the debugging trails deserve credit all the same:
- icefall / k2 (Next-gen Kaldi) — X-ASR's Zipformer2 transducer encoder, joiner, and streaming decoder reimplement the icefall recipe, and our importer follows its checkpoint tensor naming. https://github.com/k2-fsa/icefall
- WeNet — the Dolphin family reproduces WeNet's E-Branchformer encoder layout, state-dict naming, and attention-rescoring decode. https://github.com/wenet-e2e/wenet
- pyannote.audio — our pure-Rust segmentation and speaker-embedding forward passes port pyannote.audio's processing pipeline (beyond the model weights credited above). https://github.com/pyannote/pyannote-audio
- sherpa-onnx (k2-fsa) — the diarization clustering default follows sherpa-onnx's average-linkage approach. https://github.com/k2-fsa/sherpa-onnx
- torchaudio —
torchaudio.compliance.kaldiis the numeric parity oracle behind our from-scratch fbank frontends. https://github.com/pytorch/audio - CrispASR — we studied its Qwen ASR GGUF implementation while designing our own Qwen family runtime. https://github.com/CrispStrobe/CrispASR
- transcribe.cpp — its convention of reserving a decode session's KV-cache buffer once instead of reallocating per step inspired the CPU per-token decode step buffer's own reuse-instead-of-reallocate-every-step pool. https://github.com/handy-computer/transcribe.cpp
- Handy — side-by-side comparison with Handy's push-to-talk dictation shaped our desktop insertion and recording-stop behavior. https://github.com/cjpais/Handy
- Ollama — the "pull a model and it just runs" experience is what OpenASR aims to bring to speech recognition. https://github.com/ollama/ollama
- Hugging Face hosts our model catalog and every
.oasrpack we publish — https://huggingface.co/OpenASR - hf-mirror.com keeps model downloads fast and reliable for users far from the Hub.
- The demo and test clip
fixtures/jfk.wavis a public-domain excerpt of John F. Kennedy's 1961 inaugural address, distributed via the whisper.cpp project. - The performance harness uses a LibriSpeech test-clean clip.
OpenASR is written in Rust and leans on the wider crate ecosystem for audio I/O,
linear algebra, FFT, serialization, HTTP, and the CLI. The full dependency set and
its licenses live in the workspace Cargo.toml files and are gated by
cargo deny.
If you are reading this — trying OpenASR, filing an issue, or sending a patch — thank you. See CONTRIBUTING.md to get involved.