StableLearn Logo

Search Content

AI Tools 3 min read

【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.

Cover image for 【Major Release】Fun-ASR-Nano Tech Guide: End-to-End Real-Time ASR Model

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:


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 torch matches 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

ParameterDescription
model_dirModel name (ModelScope ID) or local path
trust_remote_codeMust be set to True to load the Nano model’s custom architecture
remote_codeSpecifies model implementation code location, usually ./model.py
devicecuda:0 (GPU) or cpu
vad_modelRecommended to use fsmn-vad for long audio segmentation
batch_sizeBatch 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.

Share Article

More Articles

Related Posts

No related posts yet