FireRedASR

FireRedTeamApache-2.0更新放缓

开源工业级语音识别模型,支持普通话、中文方言和英语,在公开普通话 ASR 榜单上刷新 SOTA,还能精准识别歌词。

Open-source industrial-grade ASR models supporting Mandarin, Chinese dialects and English, achieving a new SOTA on public Mandarin ASR benchmarks, while also offering outstanding singing lyrics recognition capability.

暂无版本2,014star168fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/FireRedTeam/FireRedASR.git
conda create --name fireredasr python=3.10
conda activate fireredasr
pip install -r requirements.txt
硬件要求按 README 说明

README 未说明显存要求;Python 示例中通过 use_gpu 参数控制是否用 GPU,未列出支持的 GPU 厂商或型号。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

开源工业级语音识别模型,中文方言英语都能转写,中文基准刷到 SOTA

开源工业级语音识别模型,支持普通话、中文方言和英语,在公开普通话 ASR 榜单上刷新 SOTA,还能精准识别歌词。

核心能力

  • 提供 AED 与 Encoder-Adapter-LLM 两种架构可选
  • FireRedASR-LLM 在 aishell1 上 CER 低至 0.76
  • 支持普通话、中文方言与英语识别
  • 具备出色的歌词识别能力
  • 提供命令行与 Python 两种调用方式

容易踩的坑

模型权重需从 HuggingFace 单独下载并放到 pretrained_models 目录;用 FireRedASR-LLM-L 还需额外下载 Qwen2-7B-Instruct 并建软链接;音频需先转成 16kHz 16-bit PCM 单声道 wav;AED 最长 60s、LLM 最长 30s,超长会幻觉或位置编码报错;LLM 批量 beam search 时句长差异大会导致短句重复。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    [Paper] [Model] [Blog] [Demo]

    FireRedASR2S has been open-sourced! Welcome to try it! https://github.com/FireRedTeam/FireRedASR2S

    FireRedASR2S is a state-of-the-art (SOTA), industrial-grade, all-in-one ASR system with ASR, VAD, LID, and Punc modules. All modules achieve SOTA performance.

    FireRedASR is a family of open-source industrial-grade automatic speech recognition (ASR) models supporting Mandarin, Chinese dialects and English, achieving a new state-of-the-art (SOTA) on public Mandarin ASR benchmarks, while also offering outstanding singing lyrics recognition capability.

    🔥 News

    Method

    FireRedASR is designed to meet diverse requirements in superior performance and optimal efficiency across various applications. It comprises two variants:

    • FireRedASR-LLM: Designed to achieve state-of-the-art (SOTA) performance and to enable seamless end-to-end speech interaction. It adopts an Encoder-Adapter-LLM framework leveraging large language model (LLM) capabilities.
    • FireRedASR-AED: Designed to balance high performance and computational efficiency and to serve as an effective speech representation module in LLM-based speech models. It utilizes an Attention-based Encoder-Decoder (AED) architecture.

    Model

    Evaluation

    Results are reported in Character Error Rate (CER%) for Chinese and Word Error Rate (WER%) for English.

    Evaluation on Public Mandarin ASR Benchmarks

    Model#Paramsaishell1aishell2ws_netws_meetingAverage-4
    FireRedASR-LLM8.3B0.762.154.604.673.05
    FireRedASR-AED1.1B0.552.524.884.763.18
    Seed-ASR12B+0.682.274.665.693.33
    Qwen-Audio8.4B1.303.109.5010.876.19
    SenseVoice-L1.6B2.093.046.016.734.47
    Whisper-Large-v31.6B5.144.9610.4818.879.86
    Paraformer-Large0.2B1.682.856.746.974.56

    ws means WenetSpeech.

    Evaluation on Public Chinese Dialect and English ASR Benchmarks

    Test SetKeSpeechLibriSpeech test-cleanLibriSpeech test-other
    FireRedASR-LLM3.561.733.67
    FireRedASR-AED4.481.934.44
    Previous SOTA Results6.701.823.50

    Usage

    Download model files from huggingface and place them in the folder pretrained_models.

    If you want to use FireRedASR-LLM-L, you also need to download Qwen2-7B-Instruct and place it in the folder pretrained_models. Then, go to folder FireRedASR-LLM-L and run $ ln -s ../Qwen2-7B-Instruct

    Setup

    Create a Python environment and install dependencies

    $ git clone https://github.com/FireRedTeam/FireRedASR.git
    $ conda create --name fireredasr python=3.10
    $ conda activate fireredasr
    $ pip install -r requirements.txt
    

    Set up Linux PATH and PYTHONPATH

    $ export PATH=$PWD/fireredasr/:$PWD/fireredasr/utils/:$PATH
    $ export PYTHONPATH=$PWD/:$PYTHONPATH
    

    Convert audio to 16kHz 16-bit PCM format

    ffmpeg -i input_audio -ar 16000 -ac 1 -acodec pcm_s16le -f wav output.wav
    

    Quick Start

    $ cd examples
    $ bash inference_fireredasr_aed.sh
    $ bash inference_fireredasr_llm.sh
    

    Command-line Usage

    $ speech2text.py --help
    $ speech2text.py --wav_path examples/wav/BAC009S0764W0121.wav --asr_type "aed" --model_dir pretrained_models/FireRedASR-AED-L
    $ speech2text.py --wav_path examples/wav/BAC009S0764W0121.wav --asr_type "llm" --model_dir pretrained_models/FireRedASR-LLM-L
    

    Python Usage

    from fireredasr.models.fireredasr import FireRedAsr
    
    batch_uttid = ["BAC009S0764W0121"]
    batch_wav_path = ["examples/wav/BAC009S0764W0121.wav"]
    
    # FireRedASR-AED
    model = FireRedAsr.from_pretrained("aed", "pretrained_models/FireRedASR-AED-L")
    results = model.transcribe(
        batch_uttid,
        batch_wav_path,
        {
            "use_gpu": 1,
            "beam_size": 3,
            "nbest": 1,
            "decode_max_len": 0,
            "softmax_smoothing": 1.25,
            "aed_length_penalty": 0.6,
            "eos_penalty": 1.0
        }
    )
    print(results)
    
    
    # FireRedASR-LLM
    model = FireRedAsr.from_pretrained("llm", "pretrained_models/FireRedASR-LLM-L")
    results = model.transcribe(
        batch_uttid,
        batch_wav_path,
        {
            "use_gpu": 1,
            "beam_size": 3,
            "decode_max_len": 0,
            "decode_min_len": 0,
            "repetition_penalty": 3.0,
            "llm_length_penalty": 1.0,
            "temperature": 1.0
        }
    )
    print(results)
    

    Usage Tips

    Batch Beam Search

    • When performing batch beam search with FireRedASR-LLM, please ensure that the input lengths of the utterances are similar. If there are significant differences in utterance lengths, shorter utterances may experience repetition issues. You can either sort your dataset by length or set batch_size to 1 to avoid the repetition issue.

    Input Length Limitations

    • FireRedASR-AED supports audio input up to 60s. Input longer than 60s may cause hallucination issues, and input exceeding 200s will trigger positional encoding errors.
    • FireRedASR-LLM supports audio input up to 30s. The behavior for longer input is currently unknown.

    Acknowledgements

    Thanks to the following open-source works:

    Citation

    @article{xu2025fireredasr,
      title={FireRedASR: Open-Source Industrial-Grade Mandarin Speech Recognition Models from Encoder-Decoder to LLM Integration},
      author={Xu, Kai-Tuo and Xie, Feng-Long and Tang, Xu and Hu, Yao},
      journal={arXiv preprint arXiv:2501.14350},
      year={2025}
    }