为 Linux 桌面带来离线、低延迟的语音输入 —— 基于 VocoType 的 linux全平台输入法公布!

朋友们好!

想和大家分享一个我的自制开源项目:VocoType-ibus —— 一个基于 VocoType 核心引擎开发的 Linux IBus 输入法,实现了在 Wayland/GNOME 环境下 系统级、全离线、低延迟 的语音输入体验。

GitHub 仓库:GitHub - LeonardNJU/VocoType-linux: 基于VocoType-cli (Ali FunASR)的ibus语音输入法, 使之能在linux上使用. 原项目链接:https://github.com/233stone/vocotype-cli

:glowing_star: 为什么做这个项目?

在日常使用 Fedora + Wayland + IBus 的过程中,我发现 Linux 下一直缺少一个 真正好用、即按即说、支持中文的离线语音输入方案。而 VocoType 项目基于 FunASR Paraformer 的识别引擎效果非常好,于是决定将它封装成 IBus 引擎,让语音输入能像普通输入法一样,在任意输入框中直接使用。

:fire: 功能亮点

  • 即按即说:按住 F9 说话,松开立即识别上屏,实测延迟在 0.1 秒级别

  • 全离线运行:识别模型本地运行,无需网络,隐私无忧

  • 系统级集成:通过 IBus 在任何应用中使用(浏览器、IDE、终端、文档……)

  • 一键安装:提供自动化安装脚本,支持麦克风检测与模型自动下载

:hammer_and_wrench: 技术实现

  • vocotype-cli 封装为 IBus 输入法引擎

  • 适配 Wayland + IBus 交互链路,实现“输入法式”的语音输入流程

  • 保持与上游一致的中文/中英混合识别能力

:pushpin: 适合谁用?

  • 习惯在 Linux 下写代码、写文档,希望用语音提升输入效率的同学

  • 对 AI 落地应用、开源项目集成感兴趣的同学

  • 正在寻找 Linux 端中文语音输入方案的小伙伴

:rocket: 后续可能

  • 已有朋友在适配 fcitx 版本,未来或许实现 Linux 输入法框架全覆盖

  • 欢迎试用、反馈,如果你对语音应用、输入法开发或工程整合感兴趣,也欢迎一起来完善代码

:movie_camera: 附注

近期我会在 B 站发布一个简单的演示视频,展示实际使用效果。如果你也喜欢“用说话写代码”的 vibe,不妨试试看,期待你的反馈和建议!

2026.01.08 EDIT: fcitx版本已完成! 项目地址更新:

9 个赞

可惜我用fcitx也不会做这方面开发…

没关系,前些天群里不是有人说会做fcitx扩展嘛,期待一下,另外我自己的台式机其实用的也是arch+kde+fcitx,所以我也有可能会把它扩展到这上面来

但是我好些天都在摸鱼了,我得先把我自己的任务做了,再回来搞这个哈哈

1 个赞

朋友们! 现在fcitx版本已出炉!

欢迎各位尝试使用~

仓库地址已更新至

有没有考虑过,附加一个小的纯语言模型用于输入后处理?

比如基于qwen的0.6b基座微调一个。CPU运行性能损耗应该很少,并且响应速度还可以。

我试过 ollama 跑 qwen2.5:1.5b 在本地,速度还可以。主要的瓶颈在于小的模型的 instruction following 能力很差,经常会有多余的输出、直接去回答你的输入中的问题等表现:

引自我的博客

Voxtype is highly customizable and that’s why I choose it. A fancy voice-to-text tool, in my opinion, should at least have the following features:

  • LLM post-processing. This is critical: LLM polishes the raw transcription, adds punctuation, corrects grammar and makes the text more polite and official. This is the key to mimicking the Typeless experience. A large-enough model like DeepSeek-V3.2 is required, since tiny-size models are not good at instruction following. You won’t want your model to answer the question in your voice note or tell you whom she is, but to polish the text (I met such problem when using ollama to run models like qwen2.5:1.5b locally.)!

按我的理解这应该也很难通过微调变好,这种问题在发布之初早微调过了

1 个赞

对目前而言, 我觉得对当前vocotype(这个轻量的输入法)来说就算是0.6b也让体积能翻倍了, 而且耗时损耗都会翻倍. 因此对我来说,我觉得没必要(当然这个功能真的是一个很好的功能!).
我认为一个输入法能够把我说的东西原原本本的显示出来就可以了。删点标点符号啥的,我自己也能删,为此运行一个小模型并不值当。
当然如果你能实现出对应功能的话,可以先实现出来,然后我们看看效果如何。如果最后效果确实很好的话,欢迎PR!

加上了!
[更新]
最近在一些朋友的推荐下, 了解了关于使用LLM进行后处理的功能; 感觉确实挺好用的, 不过对模型能力有相当的要求, 而且也给本地部署提出了相当的挑战
由于vocotype-linux一直是一个以轻量离线为主要功能的输入法, 本地部署一个哪怕0.8b的小模型都给运算负担提升了1-2倍,因此我一直没有加上这个功能,因为原本的语中文识别已经足够准确,而需要补强的内容实际上手动改几下更快

不过最近我做了一些实验, 发现其实增加后处理功能也不算麻烦,且确实有收益。因此在v2.2.0版本中我加入了关于长句的后处理功能:

  • 对于更长的句子,大家输入可能得花二三十秒,此时应该就不会很介意2-4秒以内的后处理额外时长. 因此,在这个版本的用户可以通过shift+F9来手动启用长句后处理功能.
  • 本地起小模型确实会让算力资源消耗变高; 所以我在提供本地自动起小模型的同时也提供了接入api的方法,你可以接入任意兼容open ai格式的api作后处理(个人试过GPT4o, 效果挺好,也便宜得很)
  • 目前本地起小模型的策略是当使用长句功能时启动小模型; 这样在你说话的二三十秒内,模型应该已经加载完毕。这样在你说话的时候,就可以直接吞吐,再提交完编辑后会有一分钟保活。如果这一分钟内再次使用长句功能,就可以直接使用,并且重置保活时间。保活时间结束后,模型将被卸载,以释放内存显存和资源消耗。

此外,我们还能做些什么呢?我们可以语音编辑!
请看VCR:

显示不了的话URL在这: https://github.com/user-attachments/assets/4b936014-9477-4794-8d04-aa31d34577a0
没错, 是便捷的语音编辑功能!
现在这一功能主要适配了ibus输入端(因为主包自己轻薄本用的就是这个), 支持:

  • 各类改写
  • 光标移动
  • 更新文本
  • 翻译文本
  • 修改语气
  • 增长废话
  • 甚至是生成内容(比方说写好评, 虽然我也想不到什么样的人会在电脑上给商家写好评(bushi)

最新的功能在v2.2.1里, 但老实说我也不很觉得这些基于LLM后处理的功能稳定性,资源开销和响应速度能与原vocotype本体的语音识别媲美; 因此,这些新功能位于v2.2 pre-release. 如果大家觉得这些功能实用好用,我们就在做一些稳定性修复后,将其归入stable release; 如果大家在使用中有什么不便之处bug,可以提issue或是就在这里吐槽(轻喷! :pleading_face:)
本次更新报告到此结束.

4 个赞