dsh-speech-plugin:DeepSeek Harness 的语音插件

前言

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye