20ms上屏:Linux上最快的离线语音输入法,比Whisper快50倍
在 Linux 上做语音输入,你还在忍受 Whisper 的 10 秒等待吗?一个基于 Paraformer 模型的新方案,把推理速度干到了 20 毫秒。
一、痛点:Linux 语音输入的”速度困境”
对 Linux 用户来说,语音输入一直是个”能用但不好用”的功能。
Whisper 虽然识别精度高,但本地推理动辄 110 秒,说完一句话要等半天才能上屏;Vosk 速度快一些(200500ms),但中英文混合识别需要额外模型,且生态支持有限。
最近,一个名为 ibus-libpinyin-voice 的项目给出了一个令人惊喜的解决方案:基于阿里达摩院的 Paraformer 模型,通过 ONNX Runtime 量化推理,实现了 20~80ms 的极速上屏——比 Whisper 快 1050 倍,比 Vosk 快 310 倍。
二、项目概览:ibus-libpinyin 的”语音进化”
这个项目基于经典的 ibus-libpinyin 输入法引擎,在其基础上集成了离线语音输入功能。
核心参数:
| 项目 | 参数 |
|---|---|
| 推理速度 | 20~80ms(纯 CPU) |
| 模型大小 | ~228MB(Paraformer 量化版) |
| 音频格式 | 16kHz / 16bit / 单声道 |
| 特征维度 | 80 维 FBank → LFR(7,6) → 560 维 |
| 词汇量 | 8404 字符(Paraformer)/ 25055 字符(SenseVoice) |
| 运行环境 | 完全离线,无需联网 |
| GPU 需求 | 无,纯 CPU 运行 |
与主流方案对比:
| 特性 | ibus-libpinyin-voice | Whisper(本地) | Vosk |
|---|---|---|---|
| 推理速度 | 20~80ms | 1~10s | 200~500ms |
| 需要 GPU | ❌ 不需要 | 推荐 GPU | ❌ 不需要 |
| 中英文混合 | ✅ 原生支持 | ✅ 支持 | ⚠️ 需额外模型 |
| 集成方式 | IBus 输入法引擎 | 独立程序 | 独立程序 |
| 离线运行 | ✅ | ✅ | ✅ |
三、技术深挖:用的什么模型?
3.1 核心模型:Paraformer(阿里达摩院)
项目使用的是阿里达摩院语音实验室开源的 Paraformer-large ASR 模型。
Paraformer 是一种非自回归端到端语音识别框架,与传统的自回归模型(如 Whisper)有本质区别:
自回归模型(Whisper):逐 token 生成,每一步都要等上一步完成,天然慢
非自回归模型(Paraformer):并行预测所有 token,一次推理出结果,天然快
这正是 Paraformer 能在纯 CPU 上实现 20~80ms 推理的根本原因。
3.2 模型矩阵:三个模型各司其职
项目支持三个 ONNX 量化模型,按需加载:
① Paraformer(必需)—— 基础语音识别
来源:阿里达摩院 / ModelScope
大小:~228MB
词汇量:8404 字符
能力:中文 + 英文混合识别
路径:
~/.cache/modelscope/hub/models/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/
② SenseVoice(可选)—— 增强中英混合
来源:阿里达摩院 / ModelScope
大小:~231MB
词汇量:25055 字符(比 Paraformer 多 3 倍)
能力:更好的中英文混合识别,更多词汇覆盖
路径:
~/.cache/modelscope/hub/models/iic/SenseVoiceSmall-onnx/
③ 标点模型(可选)—— 自动加标点
来源:阿里达摩院 / ModelScope
大小:~270MB
能力:自动识别句号、问号、感叹号等
路径:
~/.cache/modelscope/hub/models/iic/punc_ct-transformer_zh-cn-common-vocab272727-onnx/
如果 SenseVoice 或标点模型不存在,引擎会自动回退到 Paraformer + 默认逗号模式。
3.3 推理管线:从音频到文字的四步走
长按右侧 Control 键 ↓ PulseAudio 录音(16kHz/16bit/单声道) ↓ kaldi-native-fbank 特征提取 → 80 维 FBank → LFR(7,6) 拼接 → CMVN 归一化 ↓ ONNX Runtime 推理(Paraformer 量化模型) → logits → argmax 解码 → token 合并 ↓ 文本上屏(自动补逗号)
整个管线从录音结束到文字上屏,通常在 20~80ms 内完成。
四、配置要求:需要什么硬件和软件?
4.1 硬件要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 任意 x86_64 | 双核以上 |
| 内存 | 2GB 可用 | 4GB 以上 |
| GPU | 不需要 | — |
| 麦克风 | 任意 | — |
| 硬盘 | ~800MB(三个模型) | — |
关键点:不需要 GPU。 这是项目最大的卖点之一。使用量化 ONNX 模型后,普通笔记本的 CPU 就能跑。
4.2 软件依赖
基础编译依赖(必须):
sudo apt install ibus libpinyin-dev libpinyin-utils libsqlite3-dev \ libglib2.0-dev libgtk-3-dev libibus-1.0-dev \ python3 lua5.1 liblua5.1-dev gettext
语音功能依赖(可选但必要):
sudo apt install libonnxruntime-dev libpulse-dev
4.3 编译安装
git clone https://github.com/wsyb/ibus-libpinyin-voice.git cd ibus-libpinyin-voice # 基础编译(不含语音) ./autogen.sh ./configure --prefix=/usr # 启用语音功能 ./autogen.sh ./configure --prefix=/usr --enable-onnxruntime make -j$(nproc) sudo make install ibus restart
4.4 模型下载
模型通过 install.sh 自动从 ModelScope 下载,也可以手动放置:
# Paraformer(必需,~228MB) # install.sh 会自动下载到: # ~/.cache/modelscope/hub/models/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx/ # SenseVoice(可选,~231MB) # ~/.cache/modelscope/hub/models/iic/SenseVoiceSmall-onnx/ # 标点模型(可选,~270MB) # ~/.cache/modelscope/hub/models/iic/punc_ct-transformer_zh-cn-common-vocab272727-onnx/
五、使用体验:长按 Control,松开即上屏
操作极其简单:
长按键盘右侧 Control 键 → 听到提示音后开始说话
松开 Control 键 → 录音结束,本地识别,文字即刻上屏
没有复杂的配置,没有联网步骤,没有 GPU 调用。按住说话,松开出字。
已知限制
不支持实时显示:不是边说边出字,而是松开后一次性输出
标点识别有限:默认全部输出逗号,需要可选的标点模型
模型需手动下载:首次使用需要从 ModelScope 下载模型
六、技术亮点:为什么这么快?
6.1 非自回归架构
传统的 Whisper 是自回归模型,生成每个 token 都要等前一个完成。Paraformer 使用非自回归架构,所有 token 并行预测,一次出结果。
6.2 ONNX 量化
模型经过 INT8 量化,体积从 GB 级压缩到 ~228MB,推理速度大幅提升,内存占用控制在 2GB 以内。
6.3 轻量特征提取
使用 kaldi-native-fbank(C++ 实现)进行音频特征提取,计算开销极低。
6.4 深度集成
作为 IBus 输入法引擎的原生模块,省去了独立程序之间的进程间通信开销。
七、生态价值:Linux 语音输入的新可能
这个项目的意义不仅在于”快”,更在于它为 Linux 桌面生态提供了一个实用的语音输入基础设施:
隐私友好:完全离线,不上传任何音频数据
资源友好:不需要 GPU,普通笔记本就能跑
生态友好:基于 IBus 框架,与现有输入法无缝集成
扩展友好:支持 SenseVoice 和标点模型的可选加载
对于需要在 Linux 上高效输入中文的用户——尤其是开发者、写作者、无障碍需求用户——这是一个值得关注的方案。
八、结语
20 毫秒,比眨眼还快。
当 Whisper 还在用 GPU 跑 10 秒推理的时候,Paraformer 已经在纯 CPU 上实现了 20ms 上屏。这不是”快一点”,而是”快一个数量级”。
在 AI 模型越来越大的今天,ibus-libpinyin-voice 提醒我们:有时候,最好的方案不是更大的模型,而是更聪明的架构选择。
相关链接
GitHub: wsyb/ibus-libpinyin-voice[1]
上游项目: libpinyin/ibus-libpinyin[2]
Paraformer 模型(ModelScope)[3]
SenseVoice 模型(ModelScope)[4]
阿里达摩院 Paraformer 论文[5]
引用链接
[1]GitHub: wsyb/ibus-libpinyin-voice: https://github.com/wsyb/ibus-libpinyin-voice
[2]上游项目: libpinyin/ibus-libpinyin: https://github.com/libpinyin/ibus-libpinyin
[3]Paraformer 模型(ModelScope): https://www.modelscope.cn/models/iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-onnx
[4]SenseVoice 模型(ModelScope): https://www.modelscope.cn/models/iic/SenseVoiceSmall-onnx
[5]阿里达摩院 Paraformer 论文: https://arxiv.org/abs/2206.08317