Bundle
@motong/dsh-voice
给 DeepSeek Harness(DSH / DeepSeek Hermes)加语音能力的社区插件:输入框语音输入(可配快捷键)+ 回答朗读(微软 Edge 神经网络音色,可换音色、可试听),无需 API Key。
- Source
- motongv
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# @motong/dsh-voice
[](https://www.npmjs.com/package/@motong/dsh-voice)
[](https://github.com/topics/dsh-plugin)
[](https://github.com/motongv/dsh-voice)
[](LICENSE)
> 这是 **DeepSeek Harness(DSH)专属插件**,安装:`dsh plugin --profile web add @motong/dsh-voice`
> English readers: [README.en.md](./README.en.md)
给 **DeepSeek Harness(DSH / DeepSeek Hermes)** 加语音能力的社区插件,装完即用、**无需任何 API Key**:
1. **语音输入**:输入框工具行多一个 🎤 麦克风按钮,点一下说话,识别出的文字自动填入输入框(语音转文字)。
2. **语音输入快捷键**:默认 `Ctrl+Shift+空格`,可在 **设置 → 语音** 里改(支持组合键录制)。
3. **语音输入方式**:可选「点击切换」或「按住说话(松开停止)」,像微信语音那样按住就说。
4. **回答朗读(自然音色)**:每条 AI 回答下方多一个 ▶ 朗读按钮,用**微软 Edge 神经网络语音**朗读,比系统机械音自然得多,可在 **设置 → 语音** 里换音色、试听。
## 效果
| 位置 | 按钮 / 键 | 功能 |
|---|---|---|
| 输入框工具行(左侧) | 🎤 麦克风 | 点击开始聆听,说话 → 自动填入输入框 |
| 任意会话(全局) | `Ctrl+Shift+空格`(可改) | 唤起/停止语音输入 |
| 设置 → 语音 | 录制按钮 / 音色下拉 / 试听 | 改快捷键、换音色、试听 |
| AI 回答动作条(复制按钮旁) | ▶ 朗读 | 点击朗读这条回答,再点 ■ 停止 |
## 安装
> DSH 专属插件,不是通用浏览器扩展。
**方式 A(已发布到 npm)**
```bash
dsh plugin --profile web add @motong/dsh-voice
```
然后**重启 DSH** 生效(依赖 `ws` 由 npm 自动安装)。
**方式 B(本地安装)**
1. 把本包拷贝到 profile 的依赖目录:
```text
~/.dsh/profiles/web/node_modules/@motong/dsh-voice/
```
2. 确保 `ws` 也在 profile 的 node_modules 里(朗读合成需要它):
```text
~/.dsh/profiles/web/node_modules/ws/
```
若没有,可复制一份 `ws@8.x` 进去,或在该目录执行 `npm install ws@8`。
3. 在 `~/.dsh/profiles/web/package.json` 里加依赖并把 `"@motong/dsh-voice"` 加进 `dsh.profile.bundles`:
```json
{
"dependencies": {
"@motong/dsh-voice": "^0.4.1"
},
"dsh": {
"profile": {
"bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "@motong/dsh-voice"]
}
}
}
```
4. 重启 DSH,刷新页面即可。
## 使用
- **语音输入(按钮)**:进入会话后点输入框左侧的 🎤,对着麦克风说话(默认中文),说完自动停止并填入输入框。
- **语音输入(快捷键)**:按 `Ctrl+Shift+空格`(或你改过的键)唤起/停止。
- **改快捷键**:**设置 → 语音** 点按钮后,先按住修饰键(Ctrl/Shift/Alt)再按主键即可录制组合键,Esc 取消。
- **语音输入方式**:**设置 → 语音** 可选「点击切换」或「按住说话」;选「按住说话」后,长按 🎤 或长按快捷键即说话,松开停止。
- **换音色 / 试听**:**设置 → 语音** 里选音色(默认「晓晓」),点「试听」立即听效果;音色即时生效。
- **恢复默认**:**设置 → 语音** 底部点「恢复默认设置」,一键还原快捷键、音色、输入方式。
- **朗读**:在任意已完成的 AI 回答下方点 ▶,浏览器播放合成语音;点 ■ 停止。
## 可选音色
| 音色 | 说明 |
|---|---|
| 晓晓 zh-CN-XiaoxiaoNeural | 女声,温柔自然(默认) |
| 晓伊 zh-CN-XiaoyiNeural | 女声,活泼 |
| 云希 zh-CN-YunxiNeural | 男声,年轻 |
| 云健 zh-CN-YunjianNeural | 男声,激情 |
| 云扬 zh-CN-YunyangNeural | 男声,新闻播报 |
| Jenny / Guy | 英文女/男声 |
## 原理
- **语音识别**:浏览器原生 `SpeechRecognition`(Chrome/Edge 完整支持)。
- **朗读**:插件在 DSH 内部挂路由 `/_dsh/voice/tts`,按 [edge-tts](https://github.com/rany2/edge-tts) 的协议(wss + Sec-MS-GEC + SSML)向微软 Edge 语音服务合成 MP3 回传,浏览器用 `<audio>` 播放。
- 快捷键 / 音色走 DSH 的 `settings` 命名空间 `voice`(存 `settings.yaml`),浏览器侧用 `settingsScope` + `localStorage` 读写。
```text
麦克风 → SpeechRecognition → 填入输入框
回答文本 → /_dsh/voice/tts → 微软 Edge 神经网络 TTS → MP3 → 播放
```
## 常见问题
**Q:点了 🎤 没反应 / 提示“不支持语音识别”?**
换用 Chrome 或 Edge,并在浏览器里授权麦克风。
**Q:朗读失败 / 没声音?**
朗读需要联网(调用微软 Edge 语音服务)。若网络/代理拦截 `speech.platform.bing.com` 会失败,换成可直连网络即可;音色可在 **设置 → 语音** 切换。
**Q:会不会上传回答内容?**
朗读时回答文本会发送给微软 Edge 语音服务以合成音频;语音识别由浏览器厂商处理。本插件不接触、不存储任何密钥。
## 开源 & 发布
本插件以 [MIT](LICENSE) 开源。发布到 npm 供大家安装:
```bash
npm login
npm publish --access public
```
发布后,其他用户即可 `dsh plugin --profile web add @motong/dsh-voice`。
> 源码仓库:<https://github.com/motongv/dsh-voice>
## 致谢
朗读合成协议参考了 [rany2/edge-tts](https://github.com/rany2/edge-tts)(MIT License)。
## License
[MIT](LICENSE)
Install
dsh plugin --profile web add github:motongv/dsh-voice
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install motong-dsh-voice from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.