前言¶
DSH 强调「一切皆插件」。语音播报和语音输入这类界面能力,可以作为一个独立插件接入,而不改 harness 仓库源代码。dsh-speech-plugin 解决的就是这个问题:给助手消息增加播报,给输入框增加麦克风。
这是什么¶
dsh-speech-plugin 是 DeepSeek Harness 的语音插件,维护者为 huangdejie,许可证为 MIT。
它提供三类能力:
- 每条助手消息的播报
- 会话级的自动播报开关
- 输入框的语音输入麦克风
播报与语音输入可分别使用阿里百炼或火山豆包,也可使用同一家。
核心功能¶
每条消息播报¶
点击消息操作条的喇叭,会朗读该条回复正文。插件会剥离 markdown 与表情符号,跳过代码块和图片。再次点击可停止。
自动播报¶
会话头部有喇叭开关。开启后,新完成的回复自动朗读,历史消息不播。偏好按浏览器本地存储,默认关闭。
自动播报按“新完成”触发。切换会话期间,旧会话仍在生成的消息完成时也会播报。
语音输入¶
点击麦克风开始说话,识别结果实时写入输入框草稿。再点一次麦克风可结束并发送,也可以直接点发送。
语音输入是开放麦克风,不做说话人分离;录音期间环境人声也会被识别。
双引擎组合¶
播报与语音输入可各自选择阿里百炼或火山豆包,也可都走同一家。
云端凭据缺失、失效或失败时,播报回退浏览器系统音色;语音输入按钮会禁用并提示原因。回退的系统音色质量取决于操作系统。macOS 可在系统设置 → 辅助功能 → 朗读内容中下载增强版中文音色。
安装与启用¶
先安装插件,再配置云端凭据,最后重启 dsh 验证。
安装¶
使用如下命令安装:
dsh plugin --profile web add dsh-speech-plugin
也可以从本地目录安装。先构建源码,再使用绝对路径安装:
git clone https://github.com/huangdejie/dsh-speech-plugin
cd dsh-speech-plugin && pnpm install && pnpm run build
dsh plugin --profile web add /绝对路径/dsh-speech-plugin
配置凭据¶
使用阿里百炼或火山豆包的 key:
export SPEECH_DASHSCOPE_API_KEY=sk-...
# 或
export SPEECH_VOLCENGINE_API_KEY=...
变量名不要写成 DSH_ 开头;否则 harness 启动报错。配置后重启 dsh。
凭据注意:
- 阿里百炼:一个 key 同时用于 TTS 与 ASR;账户欠费(Arrearage)会拒一切调用。
- 火山豆包:必须使用控制台 API Key,不是应用级 Access Token;资源 ID 须与开通版本对应。
验证¶
打开:
http://127.0.0.1:3080
点击消息播报,或授权麦克风后开始语音输入。浏览器要求先有一次显式点击才允许发声。
可选配置¶
如果需要分别指定播报和语音输入引擎,可在 profile 配置中写 engine 与 asrEngine。配置文件路径:
~/.dsh/profiles/web/cordis.patch.yml
示例:
engine: dashscope
asrEngine: volcengine
上面表示播报使用 dashscope,语音输入使用 volcengine。改配置后需重启 dsh 生效。
查看合成结果:
dsh --profile web --dump-config | grep -A8 dsh-speech
适用场景与注意¶
适合在 DSH web profile 中使用语音播报和语音输入。插件以独立方式安装,不修改 harness 仓库任何源代码;但它以当前 dsh 进程权限运行,安装前建议检查源码与许可证。
注意:
- 自动播报只对新完成的回复触发,历史消息不播。
- 切换会话期间,旧会话仍在生成的消息完成时也会播报。
- 语音输入不做说话人分离,环境人声也会进入识别。
- 云端回退的系统音色质量取决于操作系统。
结尾¶
dsh-speech-plugin 将消息播报、自动播报、语音输入做成一组可配置的 DSH 插件能力,并在云端不可用时提供系统音色回退。仓库地址:
https://github.com/huangdejie/dsh-speech-plugin