## 使用问题

### 为什么在某些软件中无法输入或输入异常？

**情况一：完全无法输入**

部分程序以管理员权限运行，阻碍了客户端对键盘的监听。若想在这些程序上正常使用，可以用管理员权限运行客户端。

**情况二：能输入但标点符号后面的字不正常**

有两个原因：

1. **GUI 框架 IME 兼容性问题**：一些 GUI 框架的 IME 部分与系统 Unicode 输入字符不兼容。可以在 [config_client.py](../config_client.py) 的 `paste_apps` 列表中配置，强制在这些程序上使用粘贴输出。
2. **中文输入法干扰**：一些中文输入法（例如微信输入法）会干扰系统的 Unicode 字符输出。切换到英文键盘就能正常输出。解决方法：要么换别的输入法，要么在 [config_client.py](../config_client.py) 中改成粘贴输出。

### 按下按键没说话，松开后却输出了一些文字？

这是模型本身能力的限制。就算环境再安静，麦克风也会采集到微弱的底噪，强制让模型输出转录文字，模型就会产生幻觉（输出不存在的词句）。

如果对音量过低的音频直接不转录，又会导致悄悄话等低音量场景无法使用。所以只能使用时注意：真的需要说话打字时才按快捷键，不说话就别长按。

### 为什么没法打开麦克风？

1. 设置 > 隐私和安全性 > 麦克风，将「允许桌面应用访问麦克风」打开
2. 状态栏右下角音量图标 > 右键菜单 > 声音 > 麦克风的属性，关闭「允许应用程序独占控制该设备」
3. 状态栏右下角音量图标 > 右键菜单 > 声音 > 麦克风的属性，关闭「增强效果」

### 为什么要一直启用麦克风，而不是在录音的时候启用，闲置的时候关闭？

因为启用麦克风的时候，系统会有大约 0.5 秒的延迟，这会导致开头说的一两个字被吞掉，没有录制到。为了最好的体验，所以持续打开麦克风。

这也是 CapsWriter 体验优于其他语音输入软件的重要原因之一——按下按键就可以立马说话，不会吞字。

实测，持续打开麦克风对电脑整体的功耗影响很小。

### asset 文件夹里的录音文件会不会越积越多？

连续 24 小时不间断录音，体积也只有 2GB 左右。实测一个月下来录音文件不到 200MB，一年也不会超过 3GB，还没有微信聊天记录增长快，几年清理一次也不成问题。

所以自动删除录音的机制不会加。

## 不会做的功能

### 能实时显示预览/流式识别吗？这样就能看着文字确认自己说对了

这个需求想法很好，但实践上不会很好，不做。原因有二：

1. **准确率差**：当下的流式识别模型，不光有一到两秒的延迟，而且准确率会比非流式模型差很多。因为流式识别模型只能看到时间轴左侧的信息，看不到右侧的信息，上下文缺失了右侧的信息，准确率天然受限。
2. **输入效率降低**：流式识别输入需要先确定光标位置，再开始语音输入。而非流式识别可以先按下快捷键开始说话，鼠标再慢悠悠地找到需要输入的位置，点击切换光标，说完话松手上屏，效率更高。

CapsWriter 只专注于把输入做准、做快。流式识别在这里被判处永久死刑了，永远不会做。

### 能在屏幕上显示正在录音的 GUI 提示吗？

不做。因为这个软件叫 **CapsWriter**——按下大写锁定键（CapsLock）的时候，键盘的灯就会亮起来，松开的时候灯就暗掉，完全不需要在屏幕上再做一个提示，有点脱裤子放屁的意思。

而且这软件设计上就是要充当键盘、鼠标一样的基建工具，开机自启动后就在后台静默、可靠的运行。正如没有人需要在键盘打字时，屏幕提醒正在按哪个键——那么也没有必要在语音输入时，屏幕提醒你正在语音输入。

### 为什么不做成傻瓜式软件，打开后自动下载缺失的模型？

当下软件和模型是分开打包的：软件二进制约 100MB，每个模型从 500MB 到 1.5GB 不等。正常情况只有软件会更新，模型不需要更新，分开打包有利于减小更新体积。

分发渠道有两个：**GitHub Releases**和 **百度网盘**。

我也希望软件能检测到缺失模型后自动下载，但实际不可行：

- **GitHub**：大部分中国大陆用户访问 GitHub 不太顺畅，内置从 GitHub Releases 下载几百 MB 甚至 1GB+ 的模型文件，速度堪忧。
- **百度网盘**：国内下载比较稳，但百度网盘不提供第三方 API 接口供程序调用下载。

所以只能劳烦用户，要么用加速器到 GitHub Releases 下载模型，要么到百度网盘客户端中打开分享链接下载模型。

### 按快捷键录音时，能自动静音电脑扬声器，松开再恢复吗？这样能防止扬声器干扰麦克风

这个我不会做。建议使用桌面 USB 麦克风，50 块左右就能买到，麦克风离嘴近一些，比其他各种手段提升准确率都更有效得多。

再精妙的软件后期处理，也不如物理上的前期处理更有效。
