@oadank/dsh-input-tools 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/cordis.patch.yml +5 -0
- package/lib/client.js +1072 -0
- package/lib/edge-tts.js +117 -0
- package/lib/index.js +1394 -0
- package/package.json +33 -0
package/README.md
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# dsh-input-tools —— 语音能力一体化插件(单包双入口)
|
|
2
|
+
|
|
3
|
+
一个插件、一个名字 `@oadank/dsh-input-tools`,把 DSH Web 的语音能力全部装进去:
|
|
4
|
+
- **host 入口**(`lib/index.js`):语音工具 + TTS 六引擎 + ASR + 音色克隆 + 自动语音回复
|
|
5
|
+
- **client 入口**(`lib/client.js`):输入框工具条(图片/录音)+ 语音设置页 + 语音复制按钮
|
|
6
|
+
|
|
7
|
+
不修改任何 DSH 源码,拷包 + 配一行 + 重启即用。
|
|
8
|
+
|
|
9
|
+
## 功能
|
|
10
|
+
|
|
11
|
+
### Host(服务端)
|
|
12
|
+
- **`send_voice` 工具**:agent 主动向用户发送语音横条(可播放、可回看、手机可播)。
|
|
13
|
+
- **自动语音回复**:用户发语音(或明确要求语音)后,turn 结束自动合成口语化语音(不念代码/URL/Markdown,最多前 2 句约 200 字)。
|
|
14
|
+
- **TTS 引擎**:
|
|
15
|
+
| 引擎 | 说明 |
|
|
16
|
+
|---|---|
|
|
17
|
+
| `auto` | 按「默认语音引擎」选择,未配置时微软 Edge 免费兜底 |
|
|
18
|
+
| `xiaomi` | 小米 MiMo(支持 `(唱歌)` 标签触发行唱) |
|
|
19
|
+
| `voicedesign` | 小米音色设计(一句自然语言凭空生成音色) |
|
|
20
|
+
| `voiceclone` | 小米音色克隆(参考音频复刻音色,15-60 秒最佳) |
|
|
21
|
+
| `edge` | 微软 Edge(免费无 key) |
|
|
22
|
+
| `local` | 本地 TTS(HTTP 常驻服务优先,命令兜底) |
|
|
23
|
+
| `ali` | 阿里 qwen3-tts |
|
|
24
|
+
- **ASR**:service(常驻 HTTP)/ cmd(本地命令行)/ api(在线)三模式,配置见设置页。
|
|
25
|
+
- **克隆管理工具 `manage_voice_clone`**:注册/设为默认/列出/删除克隆音色。
|
|
26
|
+
|
|
27
|
+
### Client(浏览器)
|
|
28
|
+
- **输入框工具条**:图片(官方 draft 链路)+ 语音录音(秒数/取消)。
|
|
29
|
+
- **语音设置页**(设置 → 语音服务):引擎折叠卡片、小米三模型分区、克隆样本管理、ASR 模式、试听(合成/原声)。
|
|
30
|
+
- **语音消息复制按钮**:用户/AI 语音条尾部复制转写文本。
|
|
31
|
+
|
|
32
|
+
## 安装(三步)
|
|
33
|
+
|
|
34
|
+
> `~/.dsh` 指 DSH Web 运行时目录(Windows 为 `C:\Users\<你>\.dsh`)。
|
|
35
|
+
|
|
36
|
+
1. **拷插件包**:把本仓库 `lib/`、`package.json` 拷到
|
|
37
|
+
`~/.dsh/profiles/node_modules/@oadank/dsh-input-tools/`
|
|
38
|
+
(`@oadank` 目录不存在就创建)
|
|
39
|
+
|
|
40
|
+
2. **注册插件**:编辑 `~/.dsh/profiles/web/cordis.patch.yml`,在 insert 列表加:
|
|
41
|
+
```yaml
|
|
42
|
+
- insert:
|
|
43
|
+
- id: dsh-input-tools
|
|
44
|
+
name: '@oadank/dsh-input-tools'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
3. **重启 dsh-web**:`nssm restart dsh-web`
|
|
48
|
+
|
|
49
|
+
### 可选:本地 ASR(离线识别)
|
|
50
|
+
运行 `scripts/install-asr.ps1`(管理员):自动下载 sherpa-onnx + SenseVoice 模型、注册
|
|
51
|
+
`asr` 常驻服务(端口 18790,开机自启),设置页 ASR 模式选「本地常驻服务」。
|
|
52
|
+
|
|
53
|
+
## 配置
|
|
54
|
+
|
|
55
|
+
所有语音设置保存在 `~/.dsh/voice-config.json`(设置页实时读写,AI 的 `send_voice`
|
|
56
|
+
描述里会注入当前配置摘要,无需翻源码)。默认语音引擎、各引擎音色/Key、克隆样本、
|
|
57
|
+
ASR 模式都在设置页「语音服务」分区配置。
|
|
58
|
+
|
|
59
|
+
## 依赖
|
|
60
|
+
|
|
61
|
+
- `@deepseek-ai/dsh-tools`(DSH profiles 自带,用于注册工具)
|
|
62
|
+
- `ws`(Edge TTS WebSocket;profiles 自带)
|
|
63
|
+
- **ffmpeg**(语音转码用,见下)
|
|
64
|
+
|
|
65
|
+
### ffmpeg(必需)
|
|
66
|
+
|
|
67
|
+
语音转码(录音 webm→wav、克隆样本格式转换、ASR 音频预处理)依赖 **ffmpeg**。
|
|
68
|
+
插件按以下顺序自动定位可执行文件:
|
|
69
|
+
|
|
70
|
+
1. 环境变量 `DSH_VOICE_FFMPEG_BIN`(显式指定完整路径)
|
|
71
|
+
2. PATH 探测(`where ffmpeg` / `which ffmpeg`)
|
|
72
|
+
3. 兜底已知安装位置
|
|
73
|
+
|
|
74
|
+
**安装**:Windows 执行 `winget install ffmpeg`(装完一般会自动加 PATH),
|
|
75
|
+
或把 ffmpeg.exe 所在目录加入 PATH。装好后无需任何配置,插件自动探测;
|
|
76
|
+
若装在特殊位置,设环境变量 `DSH_VOICE_FFMPEG_BIN=C:\路径\ffmpeg.exe` 即可。
|
|
77
|
+
|
|
78
|
+
> 没有 ffmpeg 时:本地 ASR(service/cmd 模式)和克隆样本的非 mp3/wav 格式转换会失败,
|
|
79
|
+
> 但小米/edge 在线 TTS 不受影响。
|
|
80
|
+
|
|
81
|
+
## 来源
|
|
82
|
+
|
|
83
|
+
由 `dsh-composer-plugin`(client 工具条)与 `dsh-host-voice`(host 语音)合并重写而来,
|
|
84
|
+
2026-08-21 统一为单包双入口。原 dsh-host-voice 的 git 历史备份在
|
|
85
|
+
`plugins/_archive/dsh-voice-plugin-git-*.bundle`。
|