[App Sharing] 【deepin首发】水滴语音输入法 - 完全离线的中文语音输入法
Tofloor
poster avatar
d***n@outlook.com
deepin
14 hours ago
Author

【首发】水滴语音输入法 - 完全离线的中文语音输入法(测试版)

前段时间看到这个项目https://github.com/LeonardNJU/VocoType-linux,我试了一下,虽然可以用,但是在deepin上有不少问题,而且识别方面也有一些问题需要解决。正好过节有时间,我搓了一个完全离线的中文语音输入法,基于 Fcitx5 框架。目前核心功能已经没问题了,但细节和体验都还有很多不足。现在先拿出来请大家尝个鲜,后面继续改进和开源。

录屏.gif

截图_vinput-settings_20260218175817.png

项目初衷

市面上的语音输入法大多需要联网,语音数据会上传到云端处理。而且在linux下基本上就没有一个真正可用的免费中文语音输入法。随着大模型技术的成熟,做一个完全离线的方案,保护用户隐私,同时也能在没有网络的环境下使用,已经可行了。虽然离线识别的准确率可能不如云端,但对于日常使用我现在测试感觉应该够用了。

主要特性

  • 完全离线 - 所有处理都在本地完成,不上传任何数据。
  • 实时流式识别 - 边说边出字,无需等待
  • 智能标点符号 - 根据停顿自动插入逗号(还在调试中)
  • 文本规范化 - 自动转换数字、日期、货币等
  • 热词支持 - 可以添加专业术语提高识别率
  • CPU识别 - 不需要使用GPU,因此不用好显卡也能流畅使用(只要你是在最近5年配置的机器估计都没问题)

技术栈

  • Rust - 核心引擎
  • sherpa-onnx - 语音识别引擎
  • FUNASR - 阿里达摩院的语音识别框架
  • PipeWire - 音频捕获
  • Fcitx5 - 输入法框架
  • egui - 图形设置界面

系统要求

  • 操作系统:Deepin V23 V25 / Debian 12 / Ubuntu 22.04+
    目前只测试了deepin 25,由于基本都是静态链接和编译,依赖很少,理论上都能运行。
  • 桌面环境:目前只支持 Fcitx5 的环境,后续看有多少人需要ibus
  • 内存:建议 4GB 以上,这个程序运行时只用不到400M内存,远低于其他基于大模型的同类输入法
  • 磁盘空间:约 300M(包含模型文件)
  • 音频:需要麦克风和 PipeWire

安装方法

1. 下载安装包

# 下载地址
wget http://107.173.178.157/droplet-voice-input_0.1.0_amd64.deb

还没打算做网站,现在软件还不成熟。

# 安装
sudo dpkg -i droplet-voice-input_0.1.0_amd64.deb
sudo apt-get install -f  (如果需要的话)

2. 重启 Fcitx5

fcitx5 -r

或者注销重新登录。

3. 添加输入法

在 Fcitx5 配置中添加"水滴语音输入法"。

4. 开始使用

fcitx切换到语音输入法后(任务栏图标是个麦克风)

  • 按键切换模式:按一次Space键开始,再按一次停止
    按了space后,光标所在位置会浮窗提示“开始录音”
    注意:设置中的键盘设置和切换模式现在还没有做,目前就这一种方式

已知问题

1. 标点符号识别

逗号的插入还不够准确,有时候明显停顿了也不会插入逗号,有时候又会插入多余的逗号。我已经调整了几次参数,但还是不够理想。

测试建议

  • 说话时在需要逗号的地方停顿 0.5 秒左右
  • 如果逗号太少或太多,可以在设置中调整"停顿比例"参数

2. 末尾字丢失

说话比较轻或者末尾发音较短时,最后一个字可能会丢失。我调整了 VAD 参数,应该有所改善,但可能还不够完美。

3. 背景噪音干扰

环境中有其他人说话时,可能会被误识别。目前提高了 VAD 启动阈值来减少干扰,但可能会导致轻声说话时无法触发识别。尽量在一个人安静的地方使用,后面应该有办法改善。

4. GUI 设置界面黑屏(虚拟机环境)

在虚拟机中运行设置界面时,可能会出现黑屏。这是 egui 与虚拟机 GPU 加速的兼容性问题。

临时解决方案

LIBGL_ALWAYS_SOFTWARE=1 vinput-settings

5. 识别准确率

离线模型的准确率肯定不如云端,特别是:

  • 方言、口音较重时识别率会下降
  • 专业术语、生僻词可能识别不准(可以通过添加热词改善)
  • 语速过快或过慢都会影响识别

6. 性能问题

  • 首次启动可能较慢(需要加载模型)
  • 内存占用较大(模型在内存中) 需要300M-400M存放模型,这个内存使用已经是同类输入法中最低的了
  • CPU 占用较高(实时识别需要计算) 对于最近几年的机器应该毫无负担,老机器可能有感觉,欢迎大家给我反馈

配置文件

配置文件位于:~/.config/vinput/config.toml

可以手动调整参数,例如:

# 标点配置
[punctuation]
pause_ratio = 1.8          # 停顿检测阈值(1.5-2.5)
min_tokens = 5             # 开始检测的最小词数

# VAD 配置
[vad]
start_threshold = 0.7      # 启动阈值(0.5-0.9)
min_silence_duration = 700 # 最小静音时长(毫秒)

# 端点检测
[endpoint]
trailing_silence_ms = 1000 # 结束后等待时长(毫秒)

使用技巧

  1. 说话清晰:尽量吐字清楚,语速适中
  2. 环境安静:减少背景噪音干扰
  3. 适当停顿:需要逗号的地方停顿 0.5 秒左右
  4. 添加热词:专业术语可以添加到热词列表提高识别率
  5. 调整参数:根据自己的说话习惯调整 VAD 和标点参数

反馈渠道

这个项目还不成熟,肯定存在各种问题。非常欢迎大家测试并反馈:

  • Bug 反馈:描述问题、复现步骤、系统环境
  • 功能建议:希望增加什么功能
  • 参数调优:分享你觉得好用的参数配置
  • 使用体验:识别准确率、响应速度、易用性等

可以在本帖回复,或者提交到项目仓库(待补充)。

后续计划

如果大家反馈还不错,我会继续完善:

  • 优化标点符号识别算法
  • 改进 VAD 参数自适应
  • 支持更多语音模型
  • 优化性能和内存占用
  • 完善文档和教程
  • 支持 Wayland 热键
  • 提供 RPM、Arch 等其他发行版的安装包

致谢

感谢以下开源项目:

免责声明

本软件为个人学习项目,仅供测试使用。使用过程中如遇到任何问题,作者不承担任何责任。建议在非重要场合测试,重要文档请及时保存。


再次感谢大家的支持和测试!
如果你觉得这个项目有意思,欢迎点赞、收藏、转发!


附件

  • 安装包:droplet-voice-input_0.1.0_amd64.deb (218 MB)
  • 使用文档:(待补充)
  • 源代码:(待补充)

下载地址 http://107.173.178.157/droplet-voice-input_0.1.0_amd64.deb

版本:v0.1.0 (测试版)
发布日期:2026-02-18
适用系统:Deepin V25

Reply Favorite View the author
All Replies
mozixun
Moderator
12 hours ago
#1

大佬厉害blush

Reply View the author
whatsup
deepin
8 hours ago
#2

老罗,你吵到我用TNT了!

Reply View the author