dsh-voice-live:DeepSeek Harness 实时双工语音插件

前言

DeepSeek Harness (DSH) 采用插件化架构,开发者若想接入实时语音对话能力,通常需要自行处理 WebSocket 升级、流式识别与合成、麦克风权限管理等底层逻辑。dsh-voice-live 插件旨在解决这一痛点,将麦克风采集、火山引擎流式语音识别(ASR)、语音合成(TTS)以及浏览器端的语音控制整合在一起,提供开箱即用的实时双工语音支持。

这是什么

这是一个为 DeepSeek Harness 提供实时双工语音能力的插件,由用户 tangzheng202202 维护。插件通过主机端注册 /voice WebSocket 路由与客户端端渲染控制相结合的方式,实现了从用户说话到助手回复的全流程自动化。

核心功能

插件包含以下核心能力:
* 实时语音交互:支持点击麦克风开始采集,助手即时响应并朗读。
* 流式处理:集成火山引擎流式 ASR 与 TTS,延迟低。
* 服务端端点检测:服务器端检测约 1.5 秒静音后自动提交识别结果,无需手动停止。
* 打断与唤醒:支持在播放过程中打断,并提供唤醒词支持(默认关闭)。
* 实时字幕:将识别内容实时渲染到编辑器草稿中。
* 浏览器回声消除:利用浏览器原生 AEC 技术减少回声。

安装与启用

目前该插件尚未通过 npm 正式发布。建议直接在 DSH 仓库的 monorepo 中构建和运行。请克隆以下 fork 仓库并按照 DSH 的构建流程操作:

# 克隆 DSH Monorepo Fork
git clone https://github.com/tangzheng202202/deepseek-harness.git
cd deepseek-harness
# 在 monorepo 中构建并运行
# 具体路径需参考 DSH 官方文档,或自行 vendor 缺失的依赖包

典型用法

  1. 启动语音:在编辑器中点击麦克风按钮,系统开始采集语音并在草稿中实时显示识别结果。
  2. 自动提交:说话结束后,系统等待约 1.5 秒静音,自动触发识别结果提交,无需再次点击停止。
  3. 回复优先:默认开启“回复优先”模式,系统会先朗读一句确认语(如“好的,我去查一下”),随后再播放真正的回答。
  4. 打断交互:在助手回复过程中,如果用户再次说话,系统会立即停止播放并取消当前正在进行的语音合成任务,开始新的识别。

适用场景与注意

  • 适用场景:适合需要在 Web 端快速集成实时语音对话能力的开发者。
  • 注意事项:
    • 发布状态:目前 npm 发布被上游阻塞,因缺少 @deepseek-ai/dsh-compact 依赖,无法作为独立插件安装。
    • 唤醒词限制:唤醒词功能依赖 Web Speech API,默认关闭。Chrome 在中国大陆无法使用 Google 云识别服务,仅 Safari (macOS) 可用;本地离线引擎 sherpa-onnx 暂不可用。
    • 回声消除:依赖浏览器原生 AEC,受限于 Chrome 某些 Bug,当前为半双工模式(播放时停止采集)。
    • 实时字幕:目前仅显示在编辑器草稿中,暂无浮动字幕。
    • 服务端端点:需确保使用 bigmodel_async 并开启 enable_nonstream 参数。
  • 插件以主机进程权限运行,使用前请仔细检查源码与 MIT 许可证。

结语

dsh-voice-live 为 DSH 提供了基础的语音交互骨架,通过火山引擎实现流式语音能力。开发者可参考其源码实现,在 Monorepo 中集成使用。

羽毛球分组比赛记分
小程序二维码

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

小夜