全部插件

DSH / BUNDLE / CLIENT-UI

dsh-voice-live

v0.1.0tangzheng202202 / dsh-voice-live118f563533

可安装组合包UI 与客户端插件社区 · Topic 自动分析Web UI

概览

dsh-voice-live

Real-time duplex voice for DeepSeek Harness: Volcengine streaming ASR/TTS, agent reply narration, barge-in, wake word, live captions. | 实时双工语音插件:火山流式 ASR/TTS、回复朗读、打断、唤醒词、实时字幕。

README / ZH

插件文档

目录摘要

Real-time duplex voice for DeepSeek Harness: Volcengine streaming ASR/TTS, agent reply narration, barge-in, wake word, live captions. | 实时双工语音插件:火山流式 ASR/TTS、回复朗读、打断、唤醒词、实时字幕。

dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。

在 GitHub 阅读完整 README

LIMITATIONS

已知限制

- **唤醒词**以 Web Speech API 实现(Chrome/Safari、zh-CN、识别文本包含唤醒词即触发),默认关闭(持续占用麦克风)。两个约束如实记录、不遮掩: - Chrome 的 Web Speech 识别走 Google 云端识别服务,国内网络不可达——设置里的「检测唤醒可用性」探针会显示具体 `onerror` 原因(如 `network`),不再静默失败;macOS 上可用浏览器是 Safari(Apple 服务)。 - 首选本地离线引擎 sherpa-onnx WASM 关键词检测被上游阻断:`sherpa-onnx-wasm` npm 包已删除(npm/jsdelivr/unpkg/npmmirror 均 404),当前 GitHub release 资产均为专用构建、wasm 内无 KWS 内核(已核实无 `sherpa_onnx_*_kws` 符号)。vosk-browser 作为备选评估过,但其固定中文词表无法约束「小戴」这类自定义词。`WakeWordDetector` 接口保留未来本地 WASM 引擎的接入缝(待有可用分发)。 - **回声消除**依赖浏览器对 WebRTC 麦克风轨的 AEC(Chrome AEC3)。`VoiceController.getMicAec()` 可读取浏览器实际采纳值。`new Audio()` 播放不在 Chrome AEC 覆盖内(Chromium bug 687574),因此循环保持半双工:TTS 播放期间门控麦克风帧,打断先停播放再开始新识别。受控回声测试(扬声器 vs 耳机、AEC 开关)步骤见交付说明;运行时决策为半双工 + 打断。 - **实时字幕**以输入框增量草稿呈现(asr_partial);暂无悬浮字幕层。 - 服务端断句依赖火山优化双向流式端点(`bigmodel_async` + `enable_nonstream`);普通 `bigmodel` 流只回 partial、不会自行结束。 - 本包 `*.host.spec.ts` 测试被排除在仓库 host aggregate 的 typecheck 之外(host aggregate 排除 `packages/client/*/src/**` 触发 TS6307);它们在 vitest 下运行,宿主半部经包级 `tsc -b` 构建。