DeepSeek Harness (DSH) 的核心架构允许通过插件扩展 Web 界面。dsh-audio-input 是一个 Web 插件,它为消息编辑器添加了一个麦克风按钮。它使用 macOS 原生 Speech 框架 (SFSpeechRecognizer) 运行小型辅助进程,无需云 API 密钥,音频不会离开机器。
核心功能¶
- 在消息编辑器中添加麦克风按钮。
- 使用原生 Apple Speech 框架 (SFSpeechRecognizer)。
- 在 Mac 上运行小型辅助进程。
- 支持本地和远程模式。
- 无需云 API 密钥,音频不离开机器。
前置要求¶
- 在 macOS 上运行 dsh 服务器(Web 配置文件)。
- 远程客户端需要 macOS 以进行远程语音识别。
- Xcode 命令行工具(仅用于从源代码重新构建)。
安装与配置¶
在服务器 Mac 上执行以下步骤。
1. 安装插件¶
运行安装命令,将插件添加到 Web 配置文件。
dsh plugin --profile web add link:/path/to/dsh-audio-input
2. 配置远程令牌¶
编辑 ~/.dsh/profiles/web/cordis.patch.yml,添加 remoteToken 配置。这是远程模式的安全密钥。
- id: audio-input
config:
remoteToken: 'choose-any-secret-string'
3. 重启服务¶
修改配置后,必须重启 dsh web 服务。
# 停止服务 (Ctrl-C)
# 然后重新启动
dsh web
远程端设置¶
如果你需要从其他 Mac 进行语音输入,必须在远程 Mac 上配置辅助进程。
1. 下载辅助二进制¶
从服务器下载编译好的二进制文件。
curl -o ~/dsh-audio-speech http://<SERVER-IP>:3080/audio-input/helper
chmod +x ~/dsh-audio-speech
2. 运行辅助进程¶
在远程 Mac 上启动辅助进程,指定服务器地址和令牌。
~/dsh-audio-speech --remote http://<SERVER-IP>:3080 --token 'choose-any-secret-string'
3. 授予系统权限¶
首次运行时,macOS 会提示授权麦克风和语音识别权限。请进入系统设置中的隐私与安全选项进行允许。
典型用法¶
- 点击消息编辑器工具行右侧的麦克风按钮。
- 说话,转录文本会实时显示在编辑器上方的预览条中。
- 再次点击麦克风按钮停止录音。
- 文本会自动插入到编辑器草稿中,检查无误后发送。
配置参考¶
在 cordis.patch.yml 的 config 节点下,可配置以下选项:
| Key | Default | Meaning |
|---|---|---|
| locale | ‘en-US’ | BCP 47 识别器区域设置,例如 ‘zh-CN’ |
| onDevice | false | 强制使用设备端识别(完全离线,语言支持较少) |
| remoteToken | ’‘ | 远程辅助进程的共享密钥,留空则禁用远程功能 |
故障排查¶
- 运行报错语法错误:下载的文件可能是 HTML 页面而非二进制文件。请使用
file ~/dsh-audio-speech检查是否为Mach-O 64-bit executable arm64。 - 远程离线:检查远程 Mac 上的辅助进程是否正在运行,且
--remote地址和--token与服务器配置一致。 - 权限被拒:请前往系统设置 → 隐私与安全,手动开启麦克风和语音识别权限。
- 重复点击提示:更新插件后请重启
dsh web服务以加载新的客户端包。
安全说明¶
remoteToken 是唯一的安全屏障,用于验证远程辅助进程与服务器之间的连接。请确保该密钥的强度足以保护你的 dsh 服务。