juexiongchen-boop/dsh-voice-input

juexiongchen-boop★ 0TypeScript最后同步: 2026-08-16

在 GitHub 打开

DeepSeek Harness 输入框语音输入插件:本地 sherpa-onnx 流式识别(中英双语+标点),麦克风按钮/实时字幕/断句回填/3 秒静音自动关闭

README 摘要

dsh-voice-input DeepSeek Harness 输入框语音输入插件 —— 单包双面,一行注册。 在 Web GUI 的输入框工具行加入 🎤 按钮:浏览器采集麦克风,经 WebSocket 推送到本地 sherpa-onnx 流式识别 sidecar,边说话边出字,断句后自动追加进输入框草稿。 功能 - 🎤 麦克风按钮(颜色与发送按钮同款主题蓝,录音中切换红色暂停符脉冲) - 输入框上方实时字幕胶囊( 679EFE 半透明 + 白色暂停符图标) - 断句自动追加进草稿:连续追加、不覆盖、不复活已删内容 - 静音 3 秒且无待提交文字时自动停止录音(权威检测在 sidecar,空断句免疫) - 全本地离线识别:中英双语流式 + 自动标点,CPU 实时(实测 RTF ≈ 0.12) 语音识别方案 层 选型 推理框架 k2-fsa/sherpa-onnx(ONNX Runtime,Apache-2.0) Node 绑定 sherpa-onnx-node (流式 OnlineRecognizer ) 主模型 sherpa-onnx-x-asr-480ms-streaming-zipformer-transducer-zh-en-punct-int8-2026-06-05 —— X-ASR 流式 Zipformer-Transducer, 中英双语 + 自动标点 ,480ms 延迟块,int8 量化约 128MB 备用模型 sherpa-onnx-streaming-zipformer-zh-int8-2025-06-30 (纯中文流式) 音频规格 16kHz 单声道 16-bit PCM(浏览器 getUserMedia 采集,AudioContext 重采样) 断句 sherpa-onnx 内置端点检测(1.2s / 2.4s 静音双规则) 实测性能 CPU 单线程 RTF ≈ 0.12 (8 倍实时), 首字延迟 ≈ 69ms 为什么不是 Whisper / FunASR / transformers.js : - 中文准确率:FunASR 官方基准(184 段中文长音频)中 Whisper-large-v3 字错率 20%,Paraformer/SenseVoice 系 8–10%——差 2 倍以上; - FunASR 中文效果强,但需要 Python sidecar,GPU 才能发挥优势; - transformers.js 纯浏览器零后端,但 非流式 ("说完→出字")且占页面内存; - sherpa-onnx 是唯一同时满足 Node 原生 + 真流式(边说话边出字)+ 中文强 + 全离线 CPU 实时 + Apache-2.0 + 维护极活跃 的选项,与 DSH 的 Node 宿主天然同构。 架构 安装(三步) 1. 部署 side…

在 GitHub 查看完整 README →
内容/媒体deepseek-harnessdsh-pluginsherpa-onnxspeech-to-textvoice-input

分类