【Major Release】Fun-ASR-Nano Tech Guide: End-to-End Real-Time ASR Model
Fun-ASR-Nano-2512 (released 2025-12-15) is a real-time ASR model supporting 31 languages and 7 dialects. This guide covers installation, AutoModel inference, and VAD usage.
Published 277 days ago. Content may be outdated.
1. 🚀 Major Release: Fun-ASR-Nano-2512
On December 15, 2025, the FunAudioLLM team officially launched Fun-ASR-Nano-2512. This is an end-to-end Automatic Speech Recognition (ASR) large model trained on tens of millions of hours of real speech data, designed for high-precision, low-latency scenarios.
Core Highlights
- Extreme Performance: Supports low-latency real-time transcription with powerful context understanding capabilities.
- Comprehensive Coverage:
- 31 Languages: Focused optimization for East Asian and Southeast Asian languages, supporting mixed recognition (e.g., Chinese-English, Japanese, Korean).
- 7 Major Chinese Dialects: Wu, Cantonese, Hokkien, Hakka, Gan, Xiang, Jin.
- 26 Accents: Covering 20+ regional accents including Henan, Shaanxi, Sichuan, Chongqing, Yunnan, Guizhou, Guangdong, etc.
- Noise Resistance: Deeply optimized for far-field and high-noise environments (conference rooms, in-vehicle, industrial sites), achieving a recognition rate of up to 93%.
- Music Lyric Recognition: Accurately recognizes lyric content even with background music interference.
Official Resources:
- 📦 Model Download (ModelScope): Fun-ASR-Nano-2512
- 📦 Code Repository: GitHub - FunAudioLLM/Fun-ASR
- 🎮 Online Demo: ModelScope Studio
2. Environment Installation
Deployment of Fun-ASR is very concise. A Python 3.8+ environment is recommended.
# 1. Clone code or install dependencies directly
pip install -r requirements.txt
# Or manually install core libraries (FunASR)
pip install funasr modelscope
Note:
- GPU inference is recommended. Please ensure
torchmatches your CUDA version. - Windows users are advised to use Conda for dependency management.
3. Quick Start: AutoModel Inference
The official recommendation is to use the AutoModel interface, which automatically handles model downloading and loading with minimal code.
3.1 Basic Recognition Example
from funasr import AutoModel
def main():
# Specify ModelScope Model ID, auto-download
model_dir = "FunAudioLLM/Fun-ASR-Nano-2512"
# Initialize model
# trust_remote_code=True is mandatory because the Nano model contains custom code
model = AutoModel(
model=model_dir,
trust_remote_code=True,
remote_code="./model.py", # Load custom model implementation
device="cuda:0", # Use GPU, change to "cpu" for CPU
)
# Inference on audio
wav_path = f"{model.model_path}/example/zh.mp3"
res = model.generate(input=[wav_path], cache={}, batch_size=1)
print("Recognition Result:", res[0]["text"])
if __name__ == "__main__":
main()
3.2 Advanced: Integrating VAD (Voice Activity Detection)
For long audio files, it is recommended to combine a VAD model for segmentation to improve recognition accuracy and stability. Fun-ASR seamlessly integrates fsmn-vad.
# Initialize model with VAD
model = AutoModel(
model=model_dir,
trust_remote_code=True,
vad_model="fsmn-vad",
vad_kwargs={"max_single_segment_time": 30000}, # Max single segment duration 30s
remote_code="./model.py",
device="cuda:0",
)
res = model.generate(input=[wav_path], cache={}, batch_size=1)
print("VAD + ASR Result:", res[0]["text"])
4. Direct Inference Mode
If you need lower-level control or wish to bypass the AutoModel wrapper, you can directly call the FunASRNano class.
from model import FunASRNano
def main():
model_dir = "FunAudioLLM/Fun-ASR-Nano-2512"
# Load model
m, kwargs = FunASRNano.from_pretrained(model=model_dir, device="cuda:0")
m.eval()
# Inference
wav_path = f"{kwargs['model_path']}/example/zh.mp3"
res = m.inference(data_in=[wav_path], **kwargs)
# Result extraction is slightly different
print("Direct Inference Result:", res[0][0]["text"])
if __name__ == "__main__":
main()
5. Common Parameters
| Parameter | Description |
|---|---|
model_dir | Model name (ModelScope ID) or local path |
trust_remote_code | Must be set to True to load the Nano model’s custom architecture |
remote_code | Specifies model implementation code location, usually ./model.py |
device | cuda:0 (GPU) or cpu |
vad_model | Recommended to use fsmn-vad for long audio segmentation |
batch_size | Batch size, adjust according to VRAM, default is 1 |
6. Summary
The release of Fun-ASR-Nano-2512 fills the gap for high-performance, multi-language, noise-resistant ASR models. Combined with CosyVoice 3.0, the FunAudioLLM family now provides a complete “Listen (ASR)” and “Speak (TTS)” solution, making it ideal for building full-duplex voice assistants, digital human interactions, and other applications.
More Articles
Related Posts
No related posts yet