乐于分享
好东西不私藏

开源软件推荐0072:一个完全离线的语音输入工具CapsWriter-Offline

开源软件推荐0072:一个完全离线的语音输入工具CapsWriter-Offline

前言

如今,大模型和 AI 助手越来越普及,语音输入也逐渐成为许多人的主要输入方式。无论是写文章和AI交流、回复消息、记录灵感,还是整理会议内容,相比键盘输入,语音往往能够带来更高的效率。

不过,目前大多数语音输入方案都存在一些共同的问题:

  • 需要联网,离线环境无法使用
  • 语音数据上传到云端,存在隐私顾虑
  • 延迟较高,连续输入体验一般
  • 对开发者来说,可定制能力有限

如果你希望拥有一款完全离线、无需联网、识别速度快、支持无限时长、可自由配置的语音输入工具,那么 CapsWriter-Offline 非常值得体验。

它是一款开源离线语音输入工具,最大的亮点是完全离线和代码开源,它的架构图如下,所有语音数据都在本地处理,不经过任何云端服务器。这意味着:没有网络限制、没有隐私泄露风险、没有订阅费用,而且响应速度极快。对于需要在保密电脑上工作、或者网络环境不稳定的用户来说,简直是福音

当然也有人会问:离线识别准确率行吗?答案是:现在真行。随着 Qwen3-ASR 等本地模型的发展,离线语音识别的准确率已经达到可用级别,配合软件自带的热词纠正系统,日常输入完全够用。

按住快捷键即可开始说话,松开后自动将识别结果输入到当前光标所在位置,整个过程几乎没有学习成本。除了实时语音输入之外,它还支持音视频文件转录、热词替换、文本后处理等功能,并持续集成新的本地语音识别模型,在中文识别准确率和响应速度方面表现出色。

适合哪些人

  • 程序员
  • 自媒体创作者
  • 写作者
  • 办公人员
  • 经常写文档的人

本文将从下载安装到高级配置,带你完整体验 CapsWriter-Offline,让你的 Windows 电脑秒变本地 AI 语音输入助手。


一、软件获取

1.1 下载软件本体

首先去 GitHub Releases 页面[1] 下载最新的软件本体压缩包,如果不能访问外网,文章最下方提供百度网盘备份。

解压后你会看到类似这样的目录结构:

CapsWriter-Offline/├── start_server.exe       # 服务端(模型推理引擎)├── start_client.exe       # 客户端(键盘监听、结果输出)├── config_server.py       # 服务端配置文件├── config_client.py       # 客户端配置文件├── hot.txt                # 音素热词文件├── hot-rule.txt           # 规则替换文件├── hot-server.txt         # 服务端热词文件├── LLM/                   # LLM 角色文件夹├── models/                # 模型文件夹(需要自行下载放入)└── docs/                  # 帮助文档

1.2 下载模型

软件本体不包含模型,需要单独下载。模型同样在 GitHub Releases[2] 页面,最下方同样有百度网盘备份。

目前支持四种引擎:

引擎名
准确率
速度
支持显卡加速
Paraformer
★★★☆☆
★★★★★
SenseVoice-Small
★★★☆☆
★★★★★
Fun-ASR-Nano
★★★★☆
★★★★☆
Qwen3-ASR-1.7B
★★★★★
★★★☆☆

怎么选? 很简单:

  • 独显电脑:优先用 Qwen3-ASR-1.7B-q5_k,准确率最高,加上显卡加速后延迟也很低
  • 集显电脑:尝试 Qwen3-ASR-1.7B-q4_k,如果觉得慢就降到 Fun-ASR-Nano
  • 性能较差的电脑:建议用 SenseVoice-Small,兼顾速度和准确率
  • Paraformer:最次选

下载后将模型压缩包解压,放入 models/ 文件夹中对应模型的目录下。目录结构是这样的:

models/├── SenseVoice-Small/│   └── Sensevoice-Small-ONNX/│       ├── SenseVoice-Encoder.fp16.onnx│       ├── SenseVoice-CTC.fp16.onnx│       └── tokenizer.bpe.model├── Fun-ASR-Nano/│   └── Fun-ASR-Nano-GGUF/│       ├── Fun-ASR-Nano-Encoder-Adaptor.fp16.onnx│       ├── Fun-ASR-Nano-CTC.fp16.onnx│       ├── Fun-ASR-Nano-Decoder.q5_k.gguf│       └── tokens.txt├── Qwen3-ASR/│   └── Qwen3-ASR-1.7B/│       ├── qwen3_asr_encoder_frontend.onnx│       ├── qwen3_asr_encoder_backend.onnx│       └── qwen3_asr_llm.gguf└── Paraformer/ (可选)

1.3 安装运行环境

启动软件前需要确保系统已安装 VC++ 运行库。如果启动时提示缺少 DLL,去 微软官网[3] 下载安装 vc_redist.x64.exe 即可。

如果要用文件转录功能(把音视频文件拖到客户端转字幕),还需要安装 FFmpeg 并配置到系统 PATH 环境变量中,可见我的另一篇文章开源软件推荐0063:音视频处理FFmpeg


二、软件配置

2.1 切换快捷键配置

打开根目录的 config_client.py,找到这一段:

# 快捷键配置列表    shortcuts = [        {'key''caps_lock',     # 监听大写锁定键'type''keyboard',     # 是键盘快捷键'suppress'True,      # 阻塞按键(短按会补发)'hold_mode'True,      # 长按模式'enabled'True# 启用此快捷键        },        {'key''x2','type''mouse','suppress'True,'hold_mode'True,'enabled'True        },    ]

默认有两种触发方式:Caps 和鼠标侧键,可根据如下表格根据顺手需求修改

2.2 热词配置(强烈推荐)

这是 CapsWriter 的灵魂功能之一。如果你有专业术语、人名、英文品牌等常被识别错的词,在 hot.txt 中记下即可:

# 每行一个热词,用 | 分隔别名CapsWriter | Caps RiderClaude | Cloud | 克劳德 | 克劳得Llama.cpp | 拉马点 CPP

更妙的是,它支持自定义短语功能。你可以把长文本绑定到一个简短的口令上:

18200006666 | 我的手机号 | input my phone上海市浦东新区张江高科技园区 |  addresshello@example.com | 我的邮箱

以后说「address」,就会自动上屏我的地址,不用一个个位置念了。

除了音素热词,还有规则替换功能(hot-rule.txt),支持正则表达式,适合做单位转换、符号修正:

毫安时     =      mAh赫兹      =      Hz(艾特)\s*(QQ)\s*点\s*   =   @qq.

修改热词文件后无需重启,3 秒内自动生效,非常方便。

2.3 LLM 角色配置(可选)

如果你希望语音识别后经过大模型润色,或者用它来做翻译、问答助手,可以配置角色功能。

角色文件在 LLM/ 文件夹中,每个 .py 文件定义一个角色。预置了三个角色:

文件名
触发前缀
输出方式
用途
default.py
(默认)
打字
润色识别结果(默认关闭)
翻译.py
翻译
弹窗
翻译选中文字
小助理.py
小助理
弹窗
本地模型问答助手
大助理.py
大助理
弹窗
云端模型问答助手

例如,你用鼠标选中一段英文,然后说「翻译这段文字」,客户端检测到「翻译」前缀后会自动调用 LLM API,将翻译结果显示在浮动窗口中。

支持的服务商包括:Ollama(本地)、LM Studio(本地)、OpenAI、DeepSeek、月之暗面、智谱 AI 等。

小提示:Qwen3-ASR 准确率已经很高,配合热词基本不需要 LLM 润色。开启润色会增加延迟,追求极速体验的话可以关闭。

2.4 其他常用设置

在 config_client.py 中还有一些实用的配置项:

paste = False# 是否用粘贴代替打字输出(解决某些软件 IME 兼容问题)paste_apps = ['WeXin.exe''Telegram.exe']  # 强制使用粘贴的应用列表restore_clip = True# 粘贴后恢复剪贴板内容hot_thresh = 0.85# 热词替换阈值(越高越精准)

三、软件使用

3.1 启动

第一步:双击 start_server.exe 启动服务端,它会自动最小化到系统托盘。服务端负责加载模型、进行语音识别推理。

第二步:双击 start_client.exe 启动客户端,同样自动最小化到托盘。客户端负责监听键盘、录音、将识别结果输出到光标位置。

启动后,任务栏右下角会出现两个图标,右键点击可以打开菜单。

3.2 语音输入

默认快捷键:

  • 按住 CapsLock 键 → 说话 → 松开 → 自动上屏
  • 按住鼠标侧键 X2 → 说话 → 松开 → 自动上屏

就这么简单。软件默认会去除末尾的逗句号,让输入更干净。

使用技巧:

  • 想好了再说:先按住快捷键,整理思路,再说出来,松开即上屏
  • 悄悄话也能识别:低音量场景同样支持
  • 支持中英文混合:Qwen3-ASR 在多语言混说的场景下表现优秀

3.3 文件转录

这是一个非常实用的功能:直接把音视频文件(MP3、MP4、M4A 等)拖拽到 start_client.exe 上,软件会自动提取音频、进行识别,生成三种文件:

  • .srt 字幕文件(可导入剪辑软件或播放器)
  • .txt 纯文本文件
  • .json 时间戳文件

对于需要做视频字幕、会议转写的朋友来说,这个功能省心省力。

3.4 托盘菜单

右键点击客户端托盘图标,可以看到实用的菜单项:

  • 隐藏/显示窗口:隐藏烦人的黑窗口

  • 添加热词:弹窗输入热词,立即生效

  • 复制结果:复制最近一次识别结果

  • 清除 LLM 记忆:清除 LLM 角色的对话历史

3.5 常见问题

Q:按下没反应?A:确认 start_client.exe 还在运行。如果在管理员权限的程序中输入,也需要以管理员权限运行客户端。

Q:识别结果没字(空白)?A:到 年/月/assets 文件夹中检查录音文件,看是不是麦克风没录到音。检查系统麦克风权限是否开启。

Q:如何开机自启?AWin + R 输入 shell:startup 打开启动文件夹,将服务端、客户端的快捷方式放进去即可。

Q:为什么在某些软件中输入异常?A:部分程序(如某些浏览器、游戏)与系统 Unicode 输入不兼容,或中文输入法干扰。可以在 config_client.py 的 paste_apps 列表中配置这些程序,强制使用粘贴输出。

Q:录音文件会不会越来越多?A:连续 24 小时不间断录音,体积也只有 2GB 左右。实测一个月下来不到 200MB,一年不超过 3GB,几年清理一次即可。

四、软件获取

  1. 关注公众号「程序员 aabond」,在后台回复「CapsWriter0072」,即可获下载地址链接
Reference
[1] 

GitHub Releases 页面: https://github.com/HaujetZhao/CapsWriter-Offline/releases/latest

[2] 

GitHub Releases: https://github.com/HaujetZhao/CapsWriter-Offline/releases/tag/models

[3] 

微软官网: https://aka.ms/vs/17/release/vc_redist.x64.exe