A unified, extensible, future-proof toolkit for locally running state-of-the-art LLM-based ASR models.
简体中文 · Features · Installation · Models · Quick Start · Architecture
@register_model decorator.pip install modern-asr
Dependencies and model weights are installed automatically the first time you use a model — just type its name:
from modern_asr import ASRPipeline
pipe = ASRPipeline("sensevoice-small")
pipe = ASRPipeline("mimo-asr-v2.5")
pipe = ASRPipeline("whisper-small")
For offline/air-gapped environments, pre-install everything:
pip install modern-asr[all-models]
Available extras: transformers, vllm, onnx, firered-asr, sensevoice, fun-asr, qwen-asr, mimo-asr, glm-asr, whisper, moonshine, all-models, all-backends, all.
Requirements: Python ≥ 3.10.
| Series | Model ID | Params | Languages | Extra |
|---|---|---|---|---|
| Whisper (OpenAI) | whisper-tiny | 39M | 99+ | whisper |
whisper-base | 74M | 99+ | whisper | |
whisper-small | 244M | 99+ | whisper | |
whisper-medium | 769M | 99+ | whisper | |
whisper-large-v3 | 1.5B | 99+ | whisper | |
whisper-large-v3-turbo | 809M | 99+ | whisper | |
| SenseVoice (Alibaba) | sensevoice-small | 234M | zh/en/ja/ko/yue | sensevoice |
| Qwen3-ASR (Alibaba) | qwen3-asr-0.6b | 0.6B | 22 dialects | qwen-asr |
| | qwen3-asr-1.7b | 1.7B | 22 dialects | qwen-asr |
| FunASR / Paraformer (Alibaba) | funasr-nano | 0.8B | zh/en | fun-asr |
| | paraformer-zh | 0.2B | zh | fun-asr |
| | paraformer-large | 0.7B | zh | fun-asr |
| FireRedASR (Xiaohongshu) | fireredasr-aed | 1.1B | zh | firered-asr |
| | fireredasr-llm | 8.3B | zh | firered-asr |
| MiMo-ASR (Xiaomi) | mimo-asr-v2.5 | 8B | zh/dialects | mimo-asr |
| MiDasheng (Xiaomi) | midashenglm-7b | 7B | audio understanding | mimo-asr |
| GLM-ASR (Zhipu AI) | glm-asr-nano-2512 | 1.5B | zh/en/yue | glm-asr |
| Granite Speech (IBM) | granite-speech-3.3-8b | 8B | en | transformers |
| Moonshine (Useful Sensors) | moonshine-tiny | 27M | en | moonshine |
# List all available models
python -m modern_asr list
from modern_asr import ASRPipeline
# Chinese with SenseVoice
pipe = ASRPipeline("sensevoice-small")
result = pipe("audio.wav", language="zh")
print(result.text)
# Switch to Qwen3-ASR for dialects
pipe.switch_model("qwen3-asr-0.6b")
result = pipe("audio.wav", language="zh")
print(result.text)
# English with Whisper
pipe.switch_model("whisper-small")
result = pipe("audio.wav", language="en")
print(result.text)
Modern ASR is built on three layers:
from modern_asr.core.audio_llm import AudioLLMModel
from modern_asr.core.registry import register_model
@register_model("my-model-1b")
class MyModel1B(AudioLLMModel):
HF_PATH = "org/MyModel-1B"
SUPPORTED_LANGUAGES = {"zh", "en"}
CHUNK_DURATION = 30.0
@property
def model_id(self) -> str:
return "my-model-1b"
The registry auto-discovers it at runtime. That's it.
Full documentation with Material for MkDocs:
mkdocs serve
See Contributing Guide for development setup, code style, and PR checklist.
Apache-2.0
12 commits
Python
100.0%
A unified, extensible, future-proof toolkit for locally running state-of-the-art LLM-based ASR models.
简体中文 · Features · Installation · Models · Quick Start · Architecture
@register_model decorator.pip install modern-asr
Dependencies and model weights are installed automatically the first time you use a model — just type its name:
from modern_asr import ASRPipeline
pipe = ASRPipeline("sensevoice-small")
pipe = ASRPipeline("mimo-asr-v2.5")
pipe = ASRPipeline("whisper-small")
For offline/air-gapped environments, pre-install everything:
pip install modern-asr[all-models]
Available extras: transformers, vllm, onnx, firered-asr, sensevoice, fun-asr, qwen-asr, mimo-asr, glm-asr, whisper, moonshine, all-models, all-backends, all.
Requirements: Python ≥ 3.10.
| Series | Model ID | Params | Languages | Extra |
|---|---|---|---|---|
| Whisper (OpenAI) | whisper-tiny | 39M | 99+ | whisper |
whisper-base | 74M | 99+ | whisper | |
whisper-small | 244M | 99+ | whisper | |
whisper-medium | 769M | 99+ | whisper | |
whisper-large-v3 | 1.5B | 99+ | whisper | |
whisper-large-v3-turbo | 809M | 99+ | whisper | |
| SenseVoice (Alibaba) | sensevoice-small | 234M | zh/en/ja/ko/yue | sensevoice |
| Qwen3-ASR (Alibaba) | qwen3-asr-0.6b | 0.6B | 22 dialects | qwen-asr |
| | qwen3-asr-1.7b | 1.7B | 22 dialects | qwen-asr |
| FunASR / Paraformer (Alibaba) | funasr-nano | 0.8B | zh/en | fun-asr |
| | paraformer-zh | 0.2B | zh | fun-asr |
| | paraformer-large | 0.7B | zh | fun-asr |
| FireRedASR (Xiaohongshu) | fireredasr-aed | 1.1B | zh | firered-asr |
| | fireredasr-llm | 8.3B | zh | firered-asr |
| MiMo-ASR (Xiaomi) | mimo-asr-v2.5 | 8B | zh/dialects | mimo-asr |
| MiDasheng (Xiaomi) | midashenglm-7b | 7B | audio understanding | mimo-asr |
| GLM-ASR (Zhipu AI) | glm-asr-nano-2512 | 1.5B | zh/en/yue | glm-asr |
| Granite Speech (IBM) | granite-speech-3.3-8b | 8B | en | transformers |
| Moonshine (Useful Sensors) | moonshine-tiny | 27M | en | moonshine |
# List all available models
python -m modern_asr list
from modern_asr import ASRPipeline
# Chinese with SenseVoice
pipe = ASRPipeline("sensevoice-small")
result = pipe("audio.wav", language="zh")
print(result.text)
# Switch to Qwen3-ASR for dialects
pipe.switch_model("qwen3-asr-0.6b")
result = pipe("audio.wav", language="zh")
print(result.text)
# English with Whisper
pipe.switch_model("whisper-small")
result = pipe("audio.wav", language="en")
print(result.text)
Modern ASR is built on three layers:
from modern_asr.core.audio_llm import AudioLLMModel
from modern_asr.core.registry import register_model
@register_model("my-model-1b")
class MyModel1B(AudioLLMModel):
HF_PATH = "org/MyModel-1B"
SUPPORTED_LANGUAGES = {"zh", "en"}
CHUNK_DURATION = 30.0
@property
def model_id(self) -> str:
return "my-model-1b"
The registry auto-discovers it at runtime. That's it.
Full documentation with Material for MkDocs:
mkdocs serve
See Contributing Guide for development setup, code style, and PR checklist.
Apache-2.0
12 commits
Python
100.0%