dsh-music-player 0.1.4 → 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 +32 -5
- package/lib/client.js +859 -97
- package/lib/index.js +833 -57
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://awesome-dsh-plugin.com)
|
|
4
4
|
|
|
5
|
-
DeepSeek Harness
|
|
5
|
+
DeepSeek Harness 本地音乐 + AI 讲书插件(bundle)。
|
|
6
6
|
|
|
7
|
-
在 Host
|
|
7
|
+
在 Host 进程扫描本地音乐目录(默认 `~/Music`,可在面板里改)并以 HTTP Range 流式给浏览器提供音频;浏览器侧提供**正在播放条**(上一首/播放暂停/下一首/停止、播放模式、音量、实时频谱)与浮动的**播放面板**(曲目列表 / 目录设置)。支持 **AI 讲书**:本地 `.txt` 小说经 MiMo TTS 合成朗读,自动识别书名/前言/章节/尾声,可跳章、可选声音。同时注册 `music_play` 模型工具,让 agent 可按关键词播放音乐或启动讲书。
|
|
8
8
|
|
|
9
9
|
## 特性
|
|
10
10
|
|
|
@@ -13,7 +13,8 @@ DeepSeek Harness 本地音乐库播放器插件(bundle)。
|
|
|
13
13
|
- 实时 7 段频谱可视化(解码音频包络驱动)
|
|
14
14
|
- 播放时申请屏幕唤醒锁,防止听歌时熄屏/休眠(支持 Wake Lock 的浏览器,如 Chrome/Edge)
|
|
15
15
|
- 播放列表面板可自由拖动,位置跨刷新记忆
|
|
16
|
-
- `
|
|
16
|
+
- AI 讲书:本地 `.txt` 小说经 MiMo TTS 合成朗读,自动识别**书名/前言/章节/尾声**结构,播放条带**章节目录**跳转、章节切歌,可选 4 种中文 AI 声音(默认白桦)
|
|
17
|
+
- `music_play` 模型工具:agent 可按关键词播放本地音乐,也可按小说名启动 AI 讲书
|
|
17
18
|
- 支持的格式:`mp3 / m4a / m4b / aac / flac / wav / ogg / opus / webm / aiff`(自动递归扫描子目录,上限 500 首)
|
|
18
19
|
|
|
19
20
|
## 截图
|
|
@@ -65,8 +66,8 @@ dsh plugin --profile <profile> add ./dsh-music-player-0.1.0.tgz
|
|
|
65
66
|
|
|
66
67
|
插件为「Host 端 + Web 端」双面结构:
|
|
67
68
|
|
|
68
|
-
- Host 端(`lib/index.js`):音乐扫描、HTTP 流式、`music_play`
|
|
69
|
-
- Web 端(`lib/client.js`):浏览器里的播放条 / 播放面板 / 频谱
|
|
69
|
+
- Host 端(`lib/index.js`):音乐扫描、HTTP 流式、`music_play` 工具、AI 讲书(小说结构解析 + TTS 合成)
|
|
70
|
+
- Web 端(`lib/client.js`):浏览器里的播放条 / 播放面板 / 频谱 / 讲书控制
|
|
70
71
|
|
|
71
72
|
两者由一个 `cordis.patch.yml` 插入 `music-player` 行并自动组对(在 Web 端 `dsh.client` 声明即指回该行名并加载浏览器半体):
|
|
72
73
|
|
|
@@ -78,6 +79,26 @@ dsh plugin --profile <profile> add ./dsh-music-player-0.1.0.tgz
|
|
|
78
79
|
|
|
79
80
|
播放模式与音量保存在浏览器 `localStorage`,当前曲目与进度也会在刷新后恢复(浏览器的自动播放可能被拦截,点一次 ▶ 即可解锁)。
|
|
80
81
|
|
|
82
|
+
## AI 讲书
|
|
83
|
+
|
|
84
|
+
把本地 `.txt` 小说交给 AI 朗读(复用 DSH 已配置的 xiaomi/MiMo TTS)。**AI 语音目前仅支持 xiaomi 提供方(限时免费),请在设置中配置好再使用此功能。**
|
|
85
|
+
|
|
86
|
+
### 前置
|
|
87
|
+
|
|
88
|
+
在 DSH 的模型设置里配置一个 xiaomi/MiMo TTS provider(含 api key)。未配置时,小说列表会提示"未配置 xiaomi/MiMo TTS 模型"。
|
|
89
|
+
|
|
90
|
+
### 使用
|
|
91
|
+
|
|
92
|
+
1. 打开播放面板,切到「小说」标签,点「选择小说目录」选定包含 `.txt` 的目录(默认与音乐目录相同)。
|
|
93
|
+
2. 点击某一本小说开始朗读;也可让 agent 用 `music_play` 工具按小说名播放(如「播放《中国制造》」)。
|
|
94
|
+
3. 播放条上的讲书控制:
|
|
95
|
+
- **章节目录**(📖 按钮):自动识别全书结构(书名/前言/章节/尾声),弹出目录,点击任意章节即从该章开头朗读
|
|
96
|
+
- **后退 / 前进**:讲书模式下跳上一章 / 下一章(音乐模式下仍是上一首 / 下一首)
|
|
97
|
+
- **AI 声音**:点音量按钮,在弹层选择声音——冰糖(女)、茉莉(女)、苏打(男)、白桦(男,默认)
|
|
98
|
+
4. 刷新页面后从上次位置续读(断点续播)。
|
|
99
|
+
|
|
100
|
+
支持的格式:`.txt`(自动识别 UTF-8 / UTF-16 / GBK/GB18030 编码,无需手工转码)。
|
|
101
|
+
|
|
81
102
|
## 开发
|
|
82
103
|
|
|
83
104
|
需要 Node.js ≥ 20(vitest 建议 20.19+)与 npm。开发依赖仅 `vitest`:
|
|
@@ -109,6 +130,12 @@ dsh plugin --profile <profile> add ./ # 或直接改 profile 里的 link 目
|
|
|
109
130
|
**`music_play` 工具说"音乐库为空"?**
|
|
110
131
|
说明还没有可用的音乐目录。请先打开播放面板,点「选择音乐目录」配置一次。
|
|
111
132
|
|
|
133
|
+
**小说列表提示"未配置 xiaomi/MiMo TTS 模型"?**
|
|
134
|
+
AI 语音目前仅支持 xiaomi 提供方(限时免费)。请先在 DSH 模型设置里配置 xiaomi/MiMo provider(含 api key),再使用讲书功能。
|
|
135
|
+
|
|
136
|
+
**讲书播放时点后退/前进没反应?**
|
|
137
|
+
讲书模式下后退/前进是跳上一章/下一章;如果当前小说没有识别出章节结构(目录按钮提示"暂无章节结构"),则无法跳章,只能整本顺序播。
|
|
138
|
+
|
|
112
139
|
**想支持更多音频格式?**
|
|
113
140
|
格式支持由 Host 端 `AUDIO_TYPES` 表驱动,在 `lib/index.js` 里加扩展名与 MIME 即可(播放器本身用浏览器原生 `<audio>` 解码,最终能否播放还取决于浏览器对该编码的支持)。
|
|
114
141
|
|