FunASR 不是单个模型,而是 ModelScope(阿里达摩院开源体系)维护的一整套工业级语音识别工具链。到 v1.4.3 为止,它把 fsmn-vad 端点检测、ASR 主模型、ct-punc 标点恢复、cam++ 说话人分离,以及情感和音频事件检测,全部串进同一个 AutoModel 流水线。这一点和 Whisper 那条路线区别很实在:Whisper 想做说话人分离得额外引 pyannote,而 FunASR 的说话人模型是原生组件,一个 spk_model 参数就挂上了。
搜「FunASR 需要多大显存」的人,得到的答案通常小得不像这个时代该有的。SenseVoiceSmall 只有 234M 参数,官方 GGUF 仓库里三个文件的真实体积是:fp32 936MB、f16 470MB、q8 254MB。配套的 fsmn-vad 是 0.4M 参数,cam++ 是 7.2M,最重的 ct-punc 也才 290M。整条流水线权重合计不到 2GB,一张 Tesla T4 都装得下。瓶颈从来不在显存容量,而在吞吐、并发路数和长音频切分策略。
真正需要一张正经 GPU 常驻的,是新一代的大模型式 ASR:Fun-ASR-Nano 用 SenseVoice 编码器接 Qwen3 解码器,800M 参数,挂 vLLM 后官方标称 340 倍实时、中文 CER 8.20%;Fun-ASR-MLT-Nano 同样 800M 但覆盖 31 语种;Qwen3-ASR 1.7B 则一路拉到 52 语种。这些跑起来才谈得上显存规划。在 NexGPU 上,RTX 3090 24GB 是 $0.193/卡·时,按秒计费,转写跑完实例一停就不再计算算力费用。
01 —
FunASR v1.4.3 模型清单:到底该选哪一个
参数量、权重真实体积、适用场景,一次看清楚,别再拿 Whisper 的经验套过来
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| Fun-ASR-Nano | 800M | bf16 权重 ~1.6GB / vLLM 常驻建议 ≥ 8GB | 长音频靠 fsmn-vad 切段送入 | SenseVoice 编码器 + Qwen3 解码器的混合架构,中英日及方言。官方 benchmark:中文 CER 8.20%,vLLM 批处理下 340 倍实时。需要 GPU,没有可用的纯 CPU 路径。 |
| Fun-ASR-MLT-Nano | 800M | bf16 权重 ~1.6GB / vLLM 常驻建议 ≥ 8GB | 同上,VAD 分段 | Nano 的多语种版本,覆盖 31 种语言。做跨境客服、多语字幕、海外会议纪要时选它,中文场景反而是原版 Nano 更准。 |
| Qwen3-ASR | 1.7B | bf16 权重 ~3.4GB / 实际服务建议 ≥ 12GB | 52 语种 | 模型库里语种覆盖最广的一个。要建一个「什么语言丢进来都能转」的统一入口,就是它;代价是单条延迟高于 SenseVoice 这类非自回归模型。 |
| SenseVoiceSmall | 234M | fp32 936MB / f16 470MB / q8 GGUF 254MB | 单段音频 ≤ 30 秒,长音频需 VAD | 性价比之王。中文 CER 7.81%,比 Fun-ASR-Nano 还低;GPU 上 170 倍实时,纯 CPU 也有 17 倍实时。额外输出情感标签和音频事件(掌声、笑声、咳嗽、喷嚏)。40 万小时数据训练,处理 10 秒音频约 70ms。 |
| Paraformer-zh / Paraformer-zh-streaming | 220M | fp16 权重 ~440MB | streaming 版 chunk 可配,典型 600ms 级延迟 | 非自回归架构,一次并行出全句,天生带字级时间戳。中文 CER 10.18%,GPU 120 倍实时。做实时字幕、坐席质检这类要边说边出字的场景,streaming 版是 FunASR 里唯一正解。 |
| 流水线组件:fsmn-vad / ct-punc / cam++ | 0.4M / 290M / 7.2M | fp16 合计 < 1GB | 随主模型常驻 | 分别负责端点检测、中英标点恢复、说话人分离聚类。v1.4.3 新增 Silero VAD 适配器,阈值可调、输出毫秒级片段,并改进了已知说话人数量下的聚类效果。 |
02 —
GPU 选型:别为一个 ASR 服务去租 H100
按并发路数和音频总量选卡,以下为 NexGPU 列表价,按秒计费、无最低消费
SenseVoiceSmall 全流水线离线转写(VAD + ASR + 标点 + 说话人)
RTX 3090 24GB$0.193/卡·时
Ampere sm86 带完整 fp16 张量核,是能正经跑 FunASR 的最便宜的卡,24GB 装完不到 2GB 的权重后还剩大把空间给 batch_size_s=300 的长音频批处理。
Fun-ASR-Nano 800M 挂 vLLM,起 OpenAI 兼容转写 API
RTX 4090 24GB$0.540/卡·时
Ada 架构预填充明显快过 3090,vLLM 把 gpu-memory-utilization 设到 0.85 时约有 19GB 留给 KV 缓存,几十路并发转写请求扛得住。
Qwen3-ASR 1.7B 多语种服务 + 后处理链同时常驻
RTX 5090 32GB$0.723/卡·时
32GB 足够把 1.7B 主模型、标点和说话人模型一起放下;注意 Blackwell 是 sm120,官方 Windows 预编译只到 sm86,Linux 上请配 cu128 及以上的 PyTorch,否则会掉回 CPU。
上万小时音档批量归档转写,多模型多进程并行
A100 PCIE 80GB$0.824/卡·时
80GB 可以把 Fun-ASR-Nano、Qwen3-ASR 和整条后处理链塞进同一张卡并开满批量,等于把一张卡当一个转写集群用,单位小时成本反而最低。
03 —
四步在 NexGPU 上把 FunASR 跑起来
从开实例到 OpenAI 兼容接口,全程走 SSH 或 Jupyter,不用申请配额
- 01
开实例,选 PyTorch 或 vLLM 预置镜像,装 funasr
在 console.nexgpu.net 选一张 RTX 3090 24GB,从 2,000+ 预置镜像里挑 PyTorch 或 vLLM 环境,CUDA 和驱动已经配好。SSH 进去只剩一条 pip。工具链本体是 MIT 协议,模型权重另按各自 model card 的开源许可协议走。
pip install torch torchaudio && pip install -U funasr - 02
用 AutoModel 一次性串起 VAD、ASR、标点和说话人
FunASR 的核心 API 就是 AutoModel。把 vad_model、punc_model、spk_model 一起传进去,它会自动完成长音频切分、逐段识别、标点恢复和说话人聚类。batch_size_s=300 表示按累计 300 秒音频组一个 batch,是长音频吞吐的主要旋钮。
from funasr import AutoModel model = AutoModel(model="iic/SenseVoiceSmall", vad_model="fsmn-vad", punc_model="ct-punc", spk_model="cam++", device="cuda") print(model.generate(input="audio.wav", batch_size_s=300)) - 03
起 funasr-server,对外暴露 OpenAI 兼容的转写接口
v1.4.x 自带 funasr-server,直接给出 OpenAI 语音转写风格的 HTTP 端点,后端可以走 vLLM 跑 Fun-ASR-Nano。前端代码不用改,把 base_url 指过来就行。实时场景则改用 Paraformer-zh-streaming 的 WebSocket 服务。
pip install vllm fastapi uvicorn python-multipart && funasr-server --device cuda - 04
批量出字幕、时间戳和说话人标签
命令行工具支持通配符批处理,--spk 打开说话人分离,--timestamps 输出字级时间戳,--output-format 可选 json 或 srt。v1.4.2 之后标点感知的句子对齐会保留字幕断句,直接出来的 SRT 不用再手工重排。
funasr *.wav --spk --timestamps --output-format srt
算一笔实账:1,000 小时会议录音转写要花多少
假设要把 1,000 小时中文会议录音转成带标点、带说话人标签的文本。SenseVoiceSmall 在 GPU 上官方标称 170 倍实时,但串上 VAD、标点和说话人聚类之后端到端会降下来,按 100 倍实时保守估:1,000 ÷ 100 = 10 卡时。选 RTX 3090 24GB,算力成本就是 10 × $0.193 = $1.93。 真正的大头在存储。16kHz、16bit、单声道 WAV 是 32,000 字节/秒,也就是 115.2MB/小时,1,000 小时 = 115.2GB。NexGPU 存储中位价 $0.414/GB·月,整月挂着是 115.2 × 0.414 = $47.69;但这活儿只需要挂三天,115.2 × 0.414 × 3 ÷ 30 = $4.77。 出口流量可以忽略不计:1,000 小时的转写文本按 UTF-8 大约 30MB,0.03 × $0.0081 ≈ $0.0002。 合计约 $1.93 + $4.77 ≈ $6.70。这里有一条计费规则务必记住:实例一停,算力立刻停止计费;存储卷则要销毁才停。转写跑完记得把卷删掉,否则那 $47.69/月 会一直挂在账上——而这笔钱比整个转写任务的算力费贵二十倍。
04 —
