在上一篇介绍里,我尝试通过 Wine 和 Fcitx 5,让豆包输入法的 Windows 引擎在 Linux 桌面上工作。最近又往前推进了一步:除了拼音输入,现在也能边说边看转写,并在说完后调用官方智能文字整理,把口述变成更适合阅读的文字。

项目仍然开源在 GitHub。这一轮已经推进到 0.1.0-rc.2 源码预发布版,键盘引擎也从 0.9.0.0 升级到了 0.9.2.7。

边说边看,再一次性落字

之前的语音输入需要等识别结束后才能看到结果。现在,按住右 Alt 说话时,中间识别结果会通过 Fcitx 的预编辑区域显示出来,随着识别继续更新和修订;松开后,再一次性提交最终文字。也可以用右 Alt + 空格开启持续录音,适合稍长的口述。

这里借用了输入法本来就有的「预编辑」机制:就像拼音选词前的临时文字,听写预览也还没有写入正文。这样既能及时看到识别进度,也能在取消时直接清掉预览。在终端里,这一点尤其有用,临时结果不会被当成一串已经输入的命令。

从识别文字,到整理表达

这一轮另一个主要进展,是接通了豆包的官方智能文字整理。启用后,最终转写会交给官方服务处理口头语、标点和段落,也可以处理一些说话时的改口。它更适合把一段随口说出的想法,整理成消息、笔记或列表。

实现上,Linux 负责录音和交互,独立 Wine 环境中的官方 Windows 客户端与网络 SDK 负责请求整理服务,最后由 Fcitx 把结果交给当前应用。原有键盘桥接和这条整理链路各自运行,让新功能可以逐步接入。整理失败或超时会退回识别原文;如果已经取消或切换输入框,则不会继续落字。

过程中也遇到一个有意思的取舍:我曾加入本地规则,提前处理「三点,哦不,四点」一类改口。对照测试发现,它有时能清理长段落里残留的修正语句,但也可能把「周三提交,哦不,周四完成」错误拼成「周四提交完成」。因此,rc.2 之后的最新代码默认将完整原始转写直接交给官方模型,本地规则保留为可选实验。减少一层处理,反而能避免一类由规则引入的误改。

继续打磨 Linux 上的日常体验

键盘输入也有一些小改进。这一轮完善了候选翻页和设置入口,候选词排列现在会跟随 Fcitx 的界面偏好。感谢社区贡献者 @dunova 提交候选排列修复,也感谢通过 Issue 分享安装体验和兼容性问题的朋友。

项目目前仍是面向 Linux x86_64 的非官方实验,需要自行准备官方组件,语音还需要外部识别适配器。语音识别和智能整理使用云端服务,整理也会增加等待时间;账号同步、完整 Windows 功能和智能恢复原文尚未接通。

如果你也想在 Linux 上试试豆包键盘,或者对语音输入、Wine 与原生桌面的桥接感兴趣,欢迎看看 GitHub 仓库、源码预发布版和语音功能说明。欢迎试用,也欢迎反馈你所在桌面环境里的实际体验。

本文与前篇已合并整理为知乎文章:豆包输入法 for Linux。