dsh-voice-bridge
Manifest validHands-free voice for DSH on Windows: local wake word, local Chinese speech-to-text inserted and sent into the composer, and spoken replies that can be interrupted and resumed. Requires a one-time run
dsh-voice-bridge · 贾维斯语音助手(DSH 插件)
给 DSH 加一套「喊名字就对话」的语音能力:
- 🎙 唤醒词:「贾维斯」——本地关键词检测(sherpa-onnx),不上传音频
- 📝 语音转文字:本地 SenseVoice,中文识别,说完自动填进输入框并发送
- 🔊 朗读回答:微软在线语音(晓晓/云希,接近真人),失败自动退回系统语音
- ✋ 可打断:我念到一半喊「贾维斯」立刻停;说「续 / 继续」从断点接着念
- ⌨️ 打字不念:只有用嘴问的才朗读,打字问的只出文字
安装
前提:Windows + 已安装 DSH(脚本要用 DSH 自带的 Python)。
- 把本仓库下载/解压到可写目录(不要放
C:\Program Files),例如D:\Jarvis。 - 右键
install.ps1→ 「使用 PowerShell 运行」。 它会装 Python 依赖、让你说一句话挑麦克风、写jarvis\device.json。 - DSH → 插件面板 → 添加本地目录 → 填本文件夹根目录(含
package.json那一层)。 - 重启 DSH。之后每次启动都会自动拉起「听」和「说」两个后台进程,关掉 DSH 一起退出。
用法
- 说「贾维斯」→ 听到“叮”→ 说你要做的事;说完停一下(短命令 0.7 秒收尾,长句 2 秒)。
- 文字自动填进输入框并自动发送(不想发就半秒内按退格删掉)。
- 我回答时用语音念;打字问的不念。
- 念到一半喊「贾维斯」可打断;再说「续 / 继续 / 接着」从断点续播。
换声音 / 调语速
改 jarvis\voice.json,重启 DSH:
{"voice":"zh-CN-YunxiNeural","rate":"+10%"}
可选:zh-CN-YunxiNeural 云希(年轻男)、zh-CN-YunjianNeural 云健(成熟男)、
zh-CN-YunyangNeural 云扬(播报)、zh-CN-XiaoxiaoNeural 晓晓(女)。
换唤醒词
改 jarvis\kw_raw.txt(一行一个,格式 贾维斯 @贾维斯),然后:
$py = "$env:USERPROFILE\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\python\python.exe"
& $py .\jarvis\make_keywords.py .\models\sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01\tokens.txt .\jarvis\keywords.txt
灵敏度在 jarvis\jarvis_listen.py 的 build_kws() 里:
keywords_score 越大越容易触发,keywords_threshold 越小越容易触发。
目录
dsh-voice-bridge/
├─ install.ps1 一键装依赖 + 挑麦克风
├─ package.json / cordis.patch.yml
├─ lib/index.js 服务端:拉起两个 Python 进程、提供本地接口
├─ lib/client.js 界面:把文字原生插入输入框并发送(不抢焦点)
├─ jarvis/ Python 脚本、唤醒词、音色、设备配置
└─ models/ 唤醒词模型(31MB)+ 第三方许可说明
隐私
- 唤醒词检测、语音识别全部在本地,音频不出机器。
- 只有「朗读」会把文本发给微软在线语音;断网会自动用 Windows 本地语音。
- 本地接口只监听本机,并拒绝跨站请求。
常见问题
| 现象 | 处理 |
|---|---|
| 喊了没反应 | 跑 python jarvis\mic_probe.py 8 看哪个设备有声音,把设备号写进 jarvis\device.json |
| 太容易误触发 | 把 keywords_score 调回 1.0~1.5 |
| 一直没声音 | 看 jarvis\speak.log;确认没有被别的程序占用扬声器 |
| 听不清 / 识别错 | 靠近麦克风,或在安静环境重试 |
| 装了两个同名插件 | 会各自拉起一套进程,务必只留一个 |
已知限制
- 只支持 Windows(用到了 MCI 播放、SAPI、DSH 自带 Python 路径)。
- 唤醒词对普通话口音敏感度有差异,可自行调灵敏度。
jarvis/voice.log、speak.log会持续增长,长期使用可定期清理。
许可
代码 MIT。第三方模型见 models/NOTICE.md。
Comments
Loading…
Similar plugins
by supersyh-sss
Voice assistant for dsh web: say the wake phrase (e.g. "小鲸") to activate hands-free dictation — what you say is transcribed and typed into the chat box automatically. Supports spoken edit commands (se
★ 3
↓ 183/wk
MIT
JavaScript
Sep 2, 2026
dsh plugin --profile web add dsh-voice-assistantby maoyuching
Doubao-style voice chat for DSH: press-and-hold mic in the composer converts speech to text and auto-sends, and AI replies are read aloud. Optional LLM condensing (long replies summarized into short s
★ 4
↓ 649/wk
MIT
JavaScript
Oct 25, 2026
dsh plugin --profile web add dsh-voice-chatChina-ready voice input for the composer. Requires a local Python bridge (pip install dashscope websockets, run bridge/voice-bridge.py) — the plugin alone does not work. Browser mic streams 16 kHz PCM
★ 0
↓ 48/wk
dsh plugin --profile web add dsh-voice-input-cnby Jstn-1g
Consent-bound one-turn voice preview for DSH Web with a credential-free local synthetic demo, optional Qwen Audio, exact Session isolation, and explicit transcript-to-draft handoff without automatic s
★ 1
↓ 316/wk
MIT
TypeScript
Sep 5, 2026
dsh plugin --profile web add dsh-live-voiceby wangzhanchao883
Hold-to-talk voice input for the DeepSeek Harness web composer: hold the mouse on the input box, speak, release to insert the text into the draft. Local SenseVoice ASR via sherpa-onnx: no API key, off
★ 3
↓ 249/wk
MIT
JavaScript
Oct 2, 2026
dsh plugin --profile web add dsh-hold-to-talkby lgquan
Continuous voice conversations for DSH with hands-free listening, push-to-talk, speech recognition, TTS replies, and background Agent delegation.
★ 3
↓ 162/wk
MIT
TypeScript
Oct 27, 2026
dsh plugin --profile web add @flowingspring/dsh-voco