Fun-ASR

用大模型听懂中文方言,多语言流式识别一键部署

Fun-ASR 是一个基于大语言模型的开源语音识别(ASR)模型家族,专注于中文、方言、口音及多语言场景。它提供多种运行时支持,包括 FunASR、vLLM、流式推理和 llama.cpp,并支持 GGUF 格式量化,便于在边缘设备部署。项目解决了传统 ASR 在中文方言、多口音环境下识别率低的问题,同时通过 LLM 架构提升了长音频和复杂语义的理解能力。核心能力包括:多语言识别(覆盖31种语言)、中文方言适配、流式识别、以及与 llama.cpp 的集成实现轻量级推理。模型家族涵盖不同规模(如 Fun-ASR-Nano),满足从云端到端侧的性能需求。整体上,它降低了 LLM 在语音识别领域的应用门槛,适合开发者和研究者快速构建定制化语音系统。

开源 free 语音识别
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1552
维护状态 较活跃
是否开源 是
定价模式 free

项目数据

分类语音识别
开发团队QwenAudio
所属国家
官网地址
定价模式free
价格说明开源模型,提供在线Demo(Hugging Face Space),可免费体验,本地部署亦免费。
访问状态
是否开源是
开源协议Apache-2.0
主要语言C
技术栈/模型31-languages,asr,audio-language-model,chinese-dialects,fun-asr,fun-asr-nano,funasr,gguf,llama-cpp,llm-asr,multilingual-asr,on-device,pytorch,real-time-asr,speaker-diarization,speech-recognition,speech-to-text,transcription,transformers,whisper-alternative
GitHub 星标★ 1552
30天Star增速
HF 下载量
上线时间2025-12-15 00:00:00
最近更新2026-09-23 00:00:00
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-10
浏览次数5

使用教程

难度:入门 约 20 分钟 部署方式:本地安装 7 步

环境要求

  • Python 环境与 pip(README 使用 pip / python -m pip 安装依赖)
  • Transformers 路线需 transformers==5.17.0、torch==2.10.0、torchaudio==2.10.0、librosa==
  • FunASR 服务路线需 funasr>=1.3.26 与 vllm>=0.12.0(vLLM 通常需要 GPU)
  • 纯 CPU/边缘部署可走 llama.cpp + GGUF,无需 GPU、运行时不需要 Python
  • 需联网下载模型权重(ModelScope / Hugging Face)

安装与启动步骤

  1. 1克隆项目仓库

    从 GitHub 拉取 Fun-ASR 源码并进入项目目录,后续安装与脚本都在此目录执行。

    git clone https://github.com/QwenAudio/Fun-ASR.git
    cd Fun-ASR
  2. 2安装仓库依赖

    使用项目根目录的 requirements.txt 安装基础依赖,README 环境准备章节给出的标准步骤。

    pip install -r requirements.txt
  3. 3装 Transformers 依赖

    使用官方 Transformers 推理路线时安装指定版本包,不需要额外工具包或远程代码。

    python -m pip install 'transformers==5.17.0' 'torch==2.10.0' 'torchaudio==2.10.0' 'librosa==0.11.0' 'soundfile==0.13.1'
  4. 4装 FunASR 与 vLLM

    如使用 FunASR 推理与服务,安装 README 指定版本的 funasr 和 vllm。

    pip install "funasr>=1.3.26" "vllm>=0.12.0"
  5. 5跑 Python 转写示例

    加载 Fun-ASR-Nano-2512-hf,用 apply_transcription_request 做推理并打印识别文本,language 可改成 zh/ja 等。

    python - <<'PY'
    import torch
    from transformers import AutoModelForSpeechSeq2Seq, AutoProcessor
    
    torch.set_num_threads(4)
    model_id = "FunAudioLLM/Fun-ASR-Nano-2512-hf"
    revision = "d93b302ee7fd505e1b3576120fc142fc6f7820e1"
    audio = "https://huggingface.co/FunAudioLLM/Fun-ASR-Nano-2512/resolve/272c57b82523ada6fd87095e955f8e29100979ab/example/en.mp3"
    
    processor = AutoProcessor.from_pretrained(
        model_id, revision=revision, trust_remote_code=False, token=False
    )
    model = AutoModelForSpeechSeq2Seq.from_pretrained(
        model_id, revision=revision, trust_remote_code=False, token=False,
        dtype=torch.float32,
    ).to("cpu").eval()
    inputs = processor.apply_transcription_request(
        audio=audio, language="en",
        processor_kwargs={
            "return_tensors": "pt",
            "audio_kwargs": {"sampling_rate": 16000},
            "text_kwargs": {"padding": True},
        },
    )
    with torch.inference_mode():
        generated = model.generate(**inputs, max_new_tokens=128, do_sample=False)
    new_tokens = generated[:, inputs.input_ids.shape[1]:]
    print(processor.batch_decode(new_tokens, skip_special_tokens=True)[0])
    PY
  6. 6下载 GGUF 模型

    CPU/边缘路线用仓库自带脚本下载 nano 的编码器、LLM 与 FSMN-VAD,输出到 ./gguf 目录。

    bash runtime/llama.cpp/download-funasr-model.sh nano ./gguf
  7. 7跑命令行转写

    用 llama-funasr-cli 单文件二进制转写 audio.wav,内置 FSMN-VAD,可先替换成自己的音频路径。

    llama-funasr-cli --enc ./gguf/funasr-encoder-f16.gguf -m ./gguf/qwen3-0.6b-q8_0.gguf -a audio.wav --vad ./gguf/fsmn-vad.gguf

关键配置

配置项必填说明示例
model_id是Hugging Face 模型仓库名,决定用哪个 checkpoint(Nano 或 MLT)FunAudioLLM/Fun-ASR-Nano-2512-hf
revision否锁定模型版本,保证结果可复现,README 示例给出具体 commitd93b302ee7fd505e1b3576120fc142fc6f7820e1
language否指定识别语言;Base Nano 支持中英日及中文方言口音en
dtype否模型加载精度,示例在 CPU 上用 float32 推理torch.float32
max_new_tokens否生成的最大 token 数,长音频可适当调大128
sampling_rate否音频重采样目标采样率,示例使用 1600016000

如何确认成功

Python 脚本运行后终端打印出识别文本;llama-funasr-cli 执行后同样输出转写文字,且 ./gguf 下已生成三个 gguf 文件。

常见问题

Q:没有 GPU 能跑吗?

A:可以。README 提供 llama.cpp/GGUF 路线,单文件二进制、内置 FSMN-VAD、运行时不需要 Python;Transformers 示例也直接用 .to("cpu") 推理。

Q:支持哪些语言?

A:Fun-ASR-Nano-2512 支持中文、英文、日文以及中文方言和口音;多语言的 Fun-ASR-MLT-Nano-2512 是 800M 模型,支持 31 种语言。

Q:需要 Hugging Face token 吗?

A:README 的示例代码里显式传入 token=False,并设置 trust_remote_code=False,正常公开下载无需令牌。

Q:fsmn-vad.gguf 在哪下载?

A:它托管在共享仓库 FunAudioLLM/fsmn-vad-GGUF,不在 Nano GGUF 仓库内;nano 下载脚本会自动拉取,也可用 hf download 单独下载。

注意事项

  • 单独下载 VAD 模型可执行:hf download FunAudioLLM/fsmn-vad-GGUF --include "*.gguf" --local-dir ./gguf
  • 示例音频是 Hugging Face 上的远程 URL,运行时要保证网络可访问
  • llama.cpp 路线可直接使用 Releases 中的预编译二进制,无需自行编译
  • 语音识别模型体积较大,首次下载需要较长时间和足够磁盘空间

核心亮点

  • 基于 LLM 架构,对中文方言和口音识别准确率显著优于传统 ASR
  • 支持多运行时(FunASR、vLLM、llama.cpp),从云端到边缘灵活部署
  • 提供 GGUF 量化格式,便于在低资源设备上运行

不足之处

  • 项目仍处于成长阶段,文档和社区生态尚待完善
  • 模型家族规模较大,部分场景下推理资源消耗偏高

适用场景

  • 中文方言地区的智能客服和语音助手
  • 多语言会议或直播的实时字幕生成
  • 边缘设备上的离线语音指令识别

替代项目

FunASR、Whisper、WeNet

项目介绍

Fun-ASR 是语音识别领域的开源项目,由 QwenAudio 开发,2025 年首次发布。

在全站 13,109 个收录项目中,它的 GitHub 星标数(1,552)位列前 30%,在语音识别分类中处于中上游。

近 42 天,它的 GitHub 星标从 1,472 增加到 1,552,净增 80。

项目保持着较活跃的维护节奏,最近一次代码更新于 2026-09-23。提供在线Demo(Hugging Face Space),可免费体验,本地部署亦免费。从国内网络环境看,可用性暂无实测数据。

它主要面向的使用场景是:中文方言地区的智能客服和语音助手。同类可对比的替代方案包括 FunASR、Whisper、WeNet。

上一篇:awesome-diarization

下一篇:Recorder

同类项目推荐

obs-localvocal 开源

直播录屏时,本地AI实时生成字幕,保护隐私零延迟

OBS plugin for local speech recognition and captioning using AI

★ 1616 2026-09-10
LiveCaptions-Translator 开源

实时捕获系统音频,一键翻译成你懂的语言

Lightweight and powerful real-time audio/speech translation tool based on Windows Li···

★ 3755 2026-08-10
speechbrain 开源

一站式 PyTorch 语音工具箱,快速搞定识别、说话人验证等任务

A PyTorch-based Speech Toolkit

★ 11834 2026-08-26
whisper-diarization 开源

给语音转写加上说话人标签,会议记录一目了然

Automatic Speech Recognition with Speaker Diarization based on OpenAI Whisper

★ 5657 2026-08-13