Paraformer 出自阿里达摩院(现 FunAudioLLM 团队)的 INTERSPEECH 2022 论文,作者是 Zhifu Gao、Shiliang Zhang、Ian McLoughlin 和 Zhijie Yan。它解决的是自回归 Transformer 一个 token 一个 token 吐字太慢的问题:用 CIF(continuous integrate-and-fire)predictor 先预测这段音频该出多少个字,再用 glancing language model sampler 把语义 embedding 注回去补上下文建模,最后交给单步非自回归 decoder 一次性解完。论文在 AISHELL-1、AISHELL-2 和一个两万小时的工业语料上验证,推理相比自回归基线快十倍以上。
到 2026 年,Paraformer 在 FunASR 的 model zoo 里已经不是旗舰了 —— 上面站着 Fun-ASR-Nano(800M)、Qwen3-ASR(1.7B)、GLM-ASR-Nano(1.5B)这些 LLM 式识别模型,旁边还有 SenseVoiceSmall(234M,顺带出情绪和音频事件标签)。但官方的模型选型文档写得很直白:场景是纯中文、要字级时间戳或者要热词定制,就选 Paraformer。它是成熟的非自回归路径,220M 参数、Apache-2.0 权重、六万小时以上训练数据,工程上没有惊喜,这在生产环境里是优点。
显存从来不是 Paraformer 的瓶颈 —— 真正卡人的是吞吐和链路。它是非自回归架构、没有 LLM decoder,所以 FunASR 官方明确说明 vLLM 加速路径不支持 Paraformer(vLLM 只服务 Fun-ASR-Nano、GLM-ASR-Nano 这类带 LLM 解码器的模型)。这意味着你租一张 H100 也换不来 vLLM 的连续批处理红利,正确做法是用便宜的卡开多进程、把 batch_size_s 拉满。NexGPU 上 RTX 3090 24GB 只要 $0.193/卡·时,按秒计费、无最低消费,把一万小时存量录音灌完的成本可能还不够一顿午饭。
01 —
Paraformer 家族有哪些版本,各要多少显存
以 FunASR v1.4.3 的模型注册表为准,别再照着 2024 年的博客抄 model id
| 版本 | 参数量 | 显存 | 上下文 | 说明 |
|---|---|---|---|---|
| paraformer-zh(实际落点是 SeACo-Paraformer-large) | 220M | fp32 权重约 0.9GB / fp16 约 0.45GB;单卡推理预算 4GB | 由 fsmn-vad 切段,单段默认上限 60 秒(max_single_segment_time=60000) | FunASR 里写 model="paraformer-zh" 拿到的其实是 iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch,也就是 ICASSP 2024 的 SeACo-Paraformer,带热词定制分支。想要原版请写 model="paraformer"。 |
| paraformer(Paraformer-large,vocab8404) | 220M | fp32 权重约 0.9GB;2GB 显存即可起跑 | 同样依赖 VAD 切段处理长音频 | 原版单步非自回归 large,中英混说、带字级时间戳,没有热词分支。ONNX 导出走这个入口最省事。 |
| paraformer-zh-streaming(...vocab8404-online) | 220M | 单路常驻约 2GB,多路并发按路数线性叠加 | chunk_size=[0, 10, 5],对应 600ms 输出粒度;encoder_chunk_look_back=4,decoder_chunk_look_back=1 | 流式听写用这个。chunk_stride = chunk_size[1] * 960,喂音频的步长必须跟它对齐,否则输出会漂。 |
| paraformer-en(vad-punc,vocab10020) | 220M | 约 2GB(VAD 与标点已内置在 pipeline 里) | 内置 VAD + PUNC,长音频开箱即用 | 英文离线转写。注意 FunASR v1.4.1(2026/08/04)才修好 Hugging Face 上这个 alias 的解析,老版本会拉错权重。 |
| 配套链路:fsmn-vad + ct-punc + cam++ | 0.4M + 290M + 7.2M ≈ 298M | fp32 权重合计约 1.2GB,与 ASR 同卡共存 | VAD 负责切段,标点按句还原,cam++ 出说话人 | 全家桶加起来约 518M 参数、fp32 权重约 2.1GB。ct-punc 比 ASR 本体还大,很多人只算 ASR 显存结果算漏了一半。 |
| 同门更新款:SenseVoiceSmall / Fun-ASR-Nano-2512 | 234M / 800M | fp32 约 0.9GB / 约 3.2GB | SenseVoice 覆盖中英日粤韩五语种;Fun-ASR-Nano 覆盖中英日与 7 种方言、26 种口音 | 如果你要的是多语种、情绪与音频事件标签,或者方言口音场景,Paraformer 不是最优解,直接上这两个。Fun-ASR-Nano 还能走 vLLM,RTFx 可以到 340。 |
02 —
跑 Paraformer 该租哪张卡
220M 的模型不需要旗舰卡,把钱花在卡数和吞吐上更划算
单卡跑 paraformer-zh 全流水线做批量转写与效果验证
RTX 3090 24GB$0.193/卡·时
全链路 fp32 权重约 2.1GB,24GB 显存连十分之一都用不满,而 3090 是 NexGPU 上单价最低的现代 CUDA 卡,性价比压倒一切。
paraformer-zh-streaming 流式听写常驻服务,多路并发
A10 24GB$0.414/卡·时
数据中心卡为 7×24 常驻负载设计,单路只吃约 2GB,24GB 能塞下十路以上流式会话而不用担心长时间满载掉频。
上万小时存量音频灌批,batch_size_s 拉满、多进程压吞吐
RTX 4090 24GB$0.540/卡·时
Paraformer 用不上 vLLM,纯靠单卡算力和并行度堆吞吐,4090 的解码速度换来的墙钟时间缩短通常比 3090 的低单价更值。
微调 SeACo-Paraformer 做行业热词,train_ds.py 多卡训练
RTX A6000 48GB$0.817/卡·时
训练要同时放下权重、梯度、优化器状态和激活,48GB 让你把 batch 开大而不用反复调 accum step;单节点最多可挂 14 卡直接 torchrun。
03 —
在 NexGPU 上四步跑起 Paraformer
从空实例到能对外提供 OpenAI 兼容转写接口
- 01
开实例,装 FunASR
在 NexGPU 控制台选 PyTorch 预置镜像开一台 RTX 3090,SSH 进去装 funasr。官方要求 Python 3.8–3.13、PyTorch ≥ 1.11.0,预置镜像已经带好匹配 CUDA 的 torch,不要自己再装一遍覆盖掉。
pip3 install -U funasr modelscope && python -c "import torch; print(torch.cuda.is_available())" - 02
一行拉起离线全流水线转写
AutoModel 把 ASR、VAD、标点、说话人串成一条链路。vad_kwargs 控制单段最长 60 秒,batch_size_s 是按音频总时长动态组批(不是按条数),长音频批量转写把它拉到 300 以上收益最明显。device 支持 cuda:0 / cpu / mps / xpu。
from funasr import AutoModel model = AutoModel(model="paraformer-zh", vad_model="fsmn-vad", vad_kwargs={"max_single_segment_time": 60000}, punc_model="ct-punc", spk_model="cam++", device="cuda:0") print(model.generate(input="meeting.wav", batch_size_s=300)[0]["text"]) - 03
对外提供服务:OpenAI 兼容接口或流式 WebSocket
funasr-server 直接起一个 POST /v1/audio/transcriptions 的 OpenAI 兼容端点,跑在 8000 端口,现有用 Whisper API 的代码改个 base_url 就能切过来。要做实时字幕就换 paraformer-zh-streaming,chunk_size=[0, 10, 5] 对应 600ms 粒度,喂数据的步长必须等于 chunk_size[1] * 960,音频固定 16kHz 单声道 PCM16。
pip install fastapi uvicorn python-multipart && funasr-server --model paraformer-zh --device cuda - 04
按需微调热词,或导出 ONNX 下沉到 CPU
行业术语、人名、产品名识别不准,就用 SeACo-Paraformer 的热词分支微调,train_ds.py 配 torchrun 多卡。若最终要在 CPU 侧大并发跑,用 export 导出 ONNX 再走 funasr-onnx,GPU 只用来训练和验证,这是最省钱的分工。
torchrun --nnodes 1 --nproc_per_node 2 funasr/bin/train_ds.py ++model=paraformer-zh ++train_data_set_list=train.jsonl ++train_conf.max_epoch=20
把一千小时录音转写完要花多少钱
算一笔实账。假设你有 1,000 小时中文会议录音要全量转写,也就是 3,600,000 秒音频。Hugging Face 上 funasr/paraformer-zh 的模型卡标称 GPU 上 120 倍实时,按这个吞吐:3,600,000 ÷ 120 = 30,000 秒 ≈ 8.33 小时墙钟。租 RTX 3090 24GB,$0.193/卡·时,8.33 × $0.193 ≈ $1.61。想更快就换 RTX 4090 24GB,$0.540/卡·时,吞吐保守按 200 倍实时估:3,600,000 ÷ 200 = 18,000 秒 = 5 小时,5 × $0.540 = $2.70 —— 快了四成,贵了六成,这笔账你自己权衡。真正的省法是并行:开 8 张 3090 同时灌,墙钟压到 8.33 ÷ 8 ≈ 1.04 小时,总卡时还是 8.33,成本仍然是 $1.61,因为我们按秒计费、并行不加价。再算周边:300GB 原始音频落盘一天,$0.414/GB·月 ÷ 30 × 300 ≈ $4.14;转写结果 JSONL 约 200MB 拉回本地,0.2 × $0.0081 ≈ $0.002。一次全量转写合计不到 $6,而且实例一停计算就不计费,盘删掉存储也立刻停 —— 没有最低消费、没有开通费、不用提配额申请。
04 —
