vLLM + GPU+ CUDA+ 批处理+ Fun-ASR-Nano+ SenseVoice+ Qwen3-0.6B

基于LLM-ASR的GPU批量语音转写服务

Fun-ASR-Nano采用SenseVoice编码器与Qwen3-0.6B解码器,vLLM入口用于高吞吐批处理。

✓ 支持中文、英语、日语及方言口音✓ vLLM支持高吞吐批处理 ✕ 需要按checkpoint选择语言范围✕ 该路径材料指定使用GPU

方案简介

这是一个面向 GPU 批处理的 LLM 语音识别方案,使用 Fun-ASR-Nano-2512 checkpoint,并通过 FunASR 的 AutoModelVLLM 调用 vLLM 运行时。Fun-ASR-Nano 是基于 SenseVoice 编码器和 Qwen3-0.6B 解码器的 LLM-ASR,适合需要批量处理多个音频文件、追求较高吞吐量的离线转写场景。\n\n方案既可以通过普通 AutoModel 处理单个文件,也可以使用 AutoModelVLLM 将多个音频路径组成列表后批量生成。材料中的 vLLM 示例设置 tensor_parallel_size=1,并通过 language="auto" 让模型自动处理语言参数。使用者应根据 checkpoint 的实际语言覆盖范围和目标硬件评测后再上线。

亮点与能力

  • LLM-ASR 转写:采用 Fun-ASR-Nano-2512 完成语音识别。\n- 多语言与方言支持:基础 Nano 支持中文、英语、日语,以及 7 种中文方言和 26 种地域口音。\n- 批量生成:一次向 generate 传入多个音频文件。\n- vLLM 加速路径:使用 AutoModelVLLM 作为高吞吐批处理入口。\n- 张量并行配置:示例明确提供 tensor_parallel_size=1。\n- OpenAI 兼容服务:FunASR 也可通过服务命令提供本地 OpenAI 兼容接口。

组成与分工

  • Fun-ASR-Nano-2512:提供 LLM-ASR checkpoint,负责将音频转写为文本。\n- SenseVoice 编码器:作为 Fun-ASR-Nano 的语音编码部分。\n- Qwen3-0.6B 解码器:作为 LLM-ASR 的文本解码部分。\n- AutoModelVLLM:FunASR 提供的 vLLM 调用入口,负责批量加载模型并执行生成。\n- vLLM:承担高吞吐批处理运行时。\n- GPU / CUDA:材料中的 Nano 示例使用 CUDA 设备;GPU 用户需准备匹配的 PyTorch / torchaudio CUDA wheel。

前置要求

基础环境需要 Python ≥ 3.8、PyTorch ≥ 1.13 和 torchaudio,并安装 FunASR。运行 GPU quickstart 前,应按照 NVIDIA driver 选择匹配的 PyTorch / torchaudio CUDA wheel。\n\n安装 FunASR:\n\n``bash\npip install funasr\n`\n\n如果基础 PyTorch 环境尚未安装,可使用材料中的命令:\n\n`bash\npip install torch torchaudio\npip install funasr\n`\n\n安装后检查 GPU 是否可见:\n\n`bash\npython - <<'PY'\nimport torch\nprint(torch.cuda.is_available())\nPY\n`\n\n只有输出 True 时才使用 device="cuda"`。

实施步骤

1. 安装 FunASR 与深度学习依赖\n准备 Python、PyTorch 和 torchaudio,再安装 FunASR。GPU 环境必须先选择与 NVIDIA driver 匹配的 CUDA wheel。\n\n``bash\npip install torch torchaudio\npip install funasr\n`\n\n### 2. 检查 GPU\n确认 torch.cuda.is_available() 输出 True。若不可见,应先修正 CUDA/PyTorch 环境,而不是直接使用 CUDA 设备。\n\n`bash\npython - <<'PY'\nimport torch\nprint(torch.cuda.is_available())\nPY\n`\n\n### 3. 初始化批处理入口\n从 funasr.auto.auto_model_vllm 导入 AutoModelVLLM,指定 FunAudioLLM/Fun-ASR-Nano-2512,并设置张量并行度。\n\n### 4. 提交多个音频\n将音频路径组成列表传递给 generate,并设置 language="auto"`。\n\n### 5. 评测与扩容\n使用目标音频、目标硬件和实际批量大小评测吞吐;不要把离线吞吐直接当作流式延迟或生产容量承诺。

使用与配置要点

最小批处理调用如下:\n\n``python\nfrom funasr.auto.auto_model_vllm import AutoModelVLLM\n\nmodel = AutoModelVLLM(model="FunAudioLLM/Fun-ASR-Nano-2512", tensor_parallel_size=1)\nresults = model.generate(["audio1.wav", "audio2.wav"], language="auto")\n`\n\n日常使用时,将待处理文件替换为实际音频路径列表,并根据部署规模调整张量并行配置。需要单文件、非 vLLM 路径时,材料提供 AutoModel 入口;需要服务化时可启动:\n\n`bash\nfunasr-server --device cuda\n`\n\n该服务提供本地 OpenAI 兼容接口,地址为 localhost:8000。验证批处理是否成功,应检查 results` 是否返回对应音频的识别结果;服务模式则访问材料声明的本地接口。

注意事项与常见问题

  • 基础 Fun-ASR-Nano 覆盖中文、英语、日语及中文方言、地域口音;需要 31 种语言时,应改用独立的 Fun-ASR-MLT-Nano-2512 checkpoint。\n- Nano 与 MLT-Nano 的语言范围不同,不能把 MLT-Nano 的覆盖范围归给基础 Nano。\n- 模型、运行时和后端能力需要分别选择;一个模型或适配器支持的能力,不代表所有服务后端都支持。\n- 使用 vLLM 时应按文档指定的 GPU 拆分引擎路径配置,并针对目标音频和硬件进行评测。\n- 历史评测与拆分引擎测量是独立记录,不能合并成通用速度排名或生产容量承诺。

优缺点

  • ✓ 支持中文、英语、日语及方言口音
  • ✓ vLLM支持高吞吐批处理
  • ✕ 需要按checkpoint选择语言范围
  • ✕ 该路径材料指定使用GPU

出处

本方案挖掘自开源项目 modelscope/FunASR,方案内容与实施命令均来自其 README 原文。

方案出处
modelscope/FunASR:Open-source speech recognition toolkit for training, inference, streaming ASR, V
20216 star Open-source speech recognition toolkit for training, inference, streaming ASR, VAD, punctuation, speaker diarization pipelines, and OpenAI-compatible/MCP serving.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。