@goodandready/dsh-tts 0.4.21 → 0.4.23

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.
@@ -1,374 +0,0 @@
1
- const en = {
2
- 'dockLabel': 'Speech',
3
- 'dockPause': 'Pause',
4
- 'dockResume': 'Resume speech',
5
- 'dockStop': 'Stop speech',
6
- 'dockCurrent': 'Now speaking',
7
- 'dockNone': 'Waiting for speech',
8
- 'dockQueue': 'Queue',
9
- 'dockClearQueue': 'Clear queue',
10
- 'dockReplay': 'Replay',
11
- 'dockFavorite': 'Favorite',
12
- 'dockUnfavorite': 'Unfavorite',
13
- 'dockFavorites': 'Favorite clips',
14
- 'exportAudio': 'Export audio clip',
15
- 'exportSuccess': 'Audio exported',
16
- 'statusOnline': 'Host online',
17
- 'recent': 'Recent',
18
- 'recentEmpty': 'No recent speech yet',
19
- 'retry': 'Retry',
20
- 'advancedCollapsed': 'Advanced',
21
- 'confirmClearCache': 'Clear the synthesis cache? This cannot be undone.',
22
- 'confirmDeleteModel': 'Delete downloaded weights for this engine?',
23
- 'autoplayBlocked': 'Sound is blocked until you click or tap once',
24
- 'enableSound': 'Enable sound',
25
- 'runtimeNotBundled': 'Neural inference runtime is not bundled',
26
- 'runtimeNotBundledHint': 'Install weights does not enable speech. Use Edge, Piper, or eSpeak for offline TTS.',
27
- 'testProvider': 'Test provider',
28
- 'breakerOpen': 'Circuit open',
29
- 'lastError': 'Last error',
30
- 'activeProvider': 'Active provider',
31
- 'queueLen': 'Queue',
32
- 'sseState': 'SSE',
33
- 'currentVoice': 'Voice',
34
- 'statusOffline': 'Host unreachable',
35
- 'cacheStats': 'Cache',
36
- 'general': 'General',
37
- 'loading': 'Loading…',
38
- 'chainHintCard': 'Pick a provider, paste its API key, and Save (or leave the key field). The key is written to the host credentials store immediately. The browser never reads it back.',
39
- 'speakRepliesHint': 'When on, each finished reply is synthesized on the host and played in this browser. Audio is not sent back to the model.',
40
- 'chainHint': 'Top to bottom is the fallback order. Cloud keys are saved to the host credentials store, never into plugin settings.',
41
- 'title': 'Speech',
42
- 'speakReplies': 'Speak agent replies',
43
- 'speakAsItGoes': 'Speak as it goes',
44
- 'speakAsItGoesHint': 'Read each reply the moment it lands, sentence by sentence, instead of waiting for the whole turn.',
45
- 'rate': 'Playback speed',
46
- 'rateHint': '0.5 to 2. Synthesis is untouched; the browser plays faster or slower.',
47
- 'bargeIn': 'Fall silent when you speak',
48
- 'bargeInHint': 'Stop reading the moment the microphone opens.',
49
- 'announce': 'Announce approvals',
50
- 'announceHint': 'Say it out loud and play a chime when the agent stops for an approval or asks a question.',
51
- 'approvalText': 'Approval wording',
52
- 'approvalHint': 'Said when an approval is asked for; the tool name is appended.',
53
- 'questionText': 'Question wording',
54
- 'questionHint': 'Said when the agent asks a question. Empty disables it.',
55
- 'chime': 'Chime',
56
- 'chimeHint': 'ding, beep or none.',
57
- 'language': 'Language',
58
- 'languageHint': 'Hint for voices that need a locale (eSpeak, Azure SSML).',
59
- 'piperModel': 'Piper model path',
60
- 'piperModelHint': 'Absolute path to an ONNX model. Leave empty to skip Piper.',
61
- 'piperBin': 'Piper binary',
62
- 'binHint': 'Looked up in PATH unless absolute.',
63
- 'espeakBin': 'eSpeak binary',
64
- 'espeakHint': 'Usually espeak-ng.',
65
- 'edgeBin': 'edge-tts binary',
66
- 'edgeHint': 'Python CLI from the edge-tts package.',
67
- 'azureRegion': 'Azure region',
68
- 'azureHint': 'Required for the azure provider, e.g. eastus.',
69
- 'openaiBaseUrl': 'OpenAI base URL',
70
- 'openaiBaseUrlHint': 'OpenAI-compatible origin for the openai provider.',
71
- 'mimoBaseUrl': 'MiMo base URL',
72
- 'mimoBaseUrlHint': 'MiMo API root; synthesis uses its chat endpoint.',
73
- 'mimoFormat': 'MiMo format',
74
- 'mimoFormatHint': 'mp3 or wav.',
75
- 'minimaxBin': 'MiniMax CLI',
76
- 'minimaxBinHint': 'Looked up in PATH unless absolute; install and log in separately.',
77
- 'advancedTitle': 'Advanced',
78
- 'advancedHint': 'Limits and endpoint overrides. Provider API keys stay in the chain editor; credential slot names (*KeyEnv) are config-only.',
79
- 'maxChars': 'Max characters',
80
- 'maxCharsHint': 'Hard cap before long-reply handling; 0 disables.',
81
- 'sentenceChars': 'Sentence chunk size',
82
- 'sentenceCharsHint': 'Max characters per streaming sentence piece.',
83
- 'timeoutMs': 'Provider timeout (ms)',
84
- 'timeoutMsHint': 'Abort a provider attempt after this many milliseconds.',
85
- 'maxQueue': 'Max queue length',
86
- 'maxQueueHint': 'Drop oldest pending pieces beyond this count.',
87
- 'chainTitle': 'Provider chain',
88
- 'addProvider': 'Add provider',
89
- 'localProvider': 'Local / CLI provider — no API key',
90
- 'configured': 'Configured',
91
- 'notSet': 'Not set',
92
- 'fromEnv': 'Set in environment',
93
- 'clear': 'Clear',
94
- 'remove': 'Remove',
95
- 'up': 'Up',
96
- 'down': 'Down',
97
- 'save': 'Save',
98
- 'saved': 'Saved',
99
- 'cardHint': 'Provider chain, voices and playback options.',
100
- 'skipCode': 'Skip code blocks',
101
- 'skipCodeHint': 'Say a short notice instead of reading code aloud.',
102
- 'cache': 'Synthesis cache',
103
- 'cacheHint': 'Reuse synthesized audio for repeated phrases.',
104
- 'cacheMaxMb': 'Cache size limit, MB',
105
- 'cacheMaxMbHint': 'Least recently used items are evicted first.',
106
- 'clearCache': 'Clear cache',
107
- 'pronTitle': 'Pronunciation',
108
- 'pronHint': 'Rules run top-down. Wrap left side in /…/ for a regex; Lang filters the rule.',
109
- 'pronFrom': 'Replace',
110
- 'pronTo': 'With',
111
- 'pronWhole': 'Whole word',
112
- 'pronLang': 'Lang',
113
- 'addRule': 'Add rule',
114
- 'rolesTitle': 'Voice roles',
115
- 'rolesHint': 'Empty fields inherit the main chain.',
116
- 'roleReply': 'Reply',
117
- 'roleApproval': 'Approval',
118
- 'roleError': 'Error',
119
- 'ssmlStyle': 'SSML tone style',
120
- 'ssmlStyleHint': 'Expressive tone (e.g. cheerful, serious, empathetic).',
121
- 'longReply': 'Long replies',
122
- 'longReplyHint': 'truncate: cut at the limit; summarize: short retelling; full: read everything.',
123
- 'summaryModel': 'Summary model',
124
- 'summaryModelHint': 'provider/model, empty = conversation default.',
125
- 'summarySentences': 'Retelling length',
126
- 'summarySentencesHint': 'Sentences in the spoken retelling.',
127
- 'preview': 'Preview',
128
- 'statsTitle': 'Statistics',
129
- 'statTotal': 'Total',
130
- 'statHits': 'Cache hits',
131
- 'statErrors': 'Errors',
132
- 'statReset': 'Reset stats',
133
- 'autoDetect': 'Auto language per piece',
134
- 'autoDetectHint': 'Guess zh/en per spoken piece instead of the language setting.',
135
- 'narrateQuotesOnly': 'Only quotes',
136
- 'narrateQuotesHint': 'Read only «quoted» fragments of a reply.',
137
- 'skipActions': 'Skip *actions*',
138
- 'skipActionsHint': 'Drop asterisk action blocks.',
139
- 'removeRegex': 'Remove regex',
140
- 'removeRegexHint': 'Global regex; matches are removed before synthesis.',
141
- 'customBaseUrl': 'Custom TTS endpoint',
142
- 'customBaseUrlHint': 'OpenAI-compatible origin, e.g. http://localhost:8880/v1; empty = off.',
143
- 'customKeyEnv': 'Custom key env',
144
- 'customKeyEnvHint': 'Credential name for the custom endpoint bearer key.',
145
- 'localEnginesTitle': 'Local Engines (Offline)',
146
- 'localEnginesHint': 'Run speech synthesis 100% offline without API keys.',
147
- 'enableLocalEngines': 'Enable local engines',
148
- 'enableLocalEnginesHint': 'Use Kokoro or F5-TTS when installed.',
149
- 'streamingEnabled': 'Instant streaming (< 300 ms)',
150
- 'streamingEnabledHint': 'Play audio via AudioWorklet and SSE in real-time.',
151
- 'useKokoro': 'Enable Kokoro-82M (CPU)',
152
- 'useKokoroHint': 'Fast neural synthesis on CPU.',
153
- 'useF5': 'Enable F5-TTS (GPU)',
154
- 'useF5Hint': 'High-fidelity zero-shot synthesis on NVIDIA GPU.',
155
- 'installed': 'Installed',
156
- 'notInstalled': 'Not installed',
157
- 'downloading': 'Downloading',
158
- 'installKokoro': 'Install (350 MB)',
159
- 'installF5': 'Install (2.1 GB)',
160
- 'deleteModel': 'Delete',
161
- 'voiceDuplexTitle': 'Voice Duplex (Voice-to-Voice)',
162
- 'voiceDuplexHint': 'Interactive voice conversation integrated with dsh-voice.',
163
- 'voiceNotInstalledTitle': 'Required plugin @goodandready/dsh-voice is not installed',
164
- 'voiceInstallHint': 'To enable voice duplex, install the plugin with',
165
- 'voiceDuplex': 'Voice-to-Voice mode',
166
- 'voiceDuplexHintToggle': 'Automatically synthesize agent reply when finished talking.',
167
- 'vadBargeIn': 'VAD Barge-in',
168
- 'vadBargeInHint': 'Mute speech synthesis immediately when user voice is detected.',
169
- 'newSubagentRole': 'Subagent name (e.g. coder, reviewer)',
170
- 'addSubagentRole': 'Add Subagent',
171
- 'autoDetectSubagent': 'Auto-detect subagent roles',
172
- 'role_coder': 'Coder',
173
- 'role_reviewer': 'Reviewer',
174
- 'role_planner': 'Planner',
175
- 'enableItDictionary': 'Built-in IT dictionary',
176
- 'enableItDictionaryHint': 'Auto-correct pronunciation for SQL, Nginx, K8s, Docker, API, JSON, YAML, etc.',
177
- 'loadItDictionary': 'Populate IT terms',
178
- 'previewRule': 'Listen',
179
- 'messengerIntegrationTitle': 'Messenger Integration (Telegram, Discord)',
180
- 'messengerIntegrationHint': 'Voice replies and notes sent through @goodandready/dsh-messenger-gateway.',
181
- 'messengerNotInstalledTitle': 'Required plugin @goodandready/dsh-messenger-gateway is not installed',
182
- 'messengerInstallHint': 'To enable voice replies in messengers, install the plugin with',
183
- 'messengerTtsEnabled': 'Voice replies in messengers',
184
- 'messengerTtsEnabledHint': 'Allow the messenger gateway to deliver replies as voice notes.',
185
- }
186
-
187
- const zh = {
188
- 'dockLabel': '语音朗读',
189
- 'dockPause': '暂停朗读',
190
- 'dockResume': '继续朗读',
191
- 'dockStop': '停止朗读',
192
- 'dockCurrent': '当前朗读',
193
- 'dockNone': '等待语音',
194
- 'dockQueue': '队列',
195
- 'dockClearQueue': '清空队列',
196
- 'dockReplay': '重新朗读',
197
- 'dockFavorite': '收藏',
198
- 'dockUnfavorite': '取消收藏',
199
- 'dockFavorites': '收藏语音',
200
- 'exportAudio': '导出语音片段',
201
- 'exportSuccess': '音频已导出',
202
- 'statusOnline': '服务在线',
203
- 'recent': '最近朗读',
204
- 'recentEmpty': '暂无朗读记录',
205
- 'retry': '重试',
206
- 'advancedCollapsed': '高级设置',
207
- 'confirmClearCache': '确定清除语音合成缓存吗?此操作无法撤销。',
208
- 'confirmDeleteModel': '确定删除该引擎已下载的模型权重吗?',
209
- 'autoplayBlocked': '声音已受系统限制,请点击任意位置以激活音频',
210
- 'enableSound': '开启声音',
211
- 'runtimeNotBundled': '未捆绑神经推理运行时',
212
- 'runtimeNotBundledHint': '仅下载权重无法直接合成。建议使用 Edge、Piper 或 eSpeak 进行离线语音合成。',
213
- 'testProvider': '测试服务商',
214
- 'breakerOpen': '熔断中',
215
- 'lastError': '最近错误',
216
- 'activeProvider': '当前服务商',
217
- 'queueLen': '队列长度',
218
- 'sseState': 'SSE状态',
219
- 'currentVoice': '发音人',
220
- 'statusOffline': '服务不可达',
221
- 'cacheStats': '缓存统计',
222
- 'general': '常规设置',
223
- 'loading': '加载中…',
224
- 'chainHintCard': '选择服务商,粘贴 API Key 并保存。密钥将直接写入服务端安全凭证库,前端不会回显。',
225
- 'speakRepliesHint': '启用后,智能体回复将在服务端合成语音并在当前浏览器中播放。音频不会回传至模型。',
226
- 'chainHint': '从上到下为降级候选顺序。云端密钥直接保存在服务端凭证中心,绝不存入插件公开设置中。',
227
- 'title': '语音朗读 (TTS)',
228
- 'speakReplies': '朗读智能体回复',
229
- 'speakAsItGoes': '流式逐句朗读',
230
- 'speakAsItGoesHint': '模型输出时按句子即时流式朗读,无需等待整段内容生成完毕。',
231
- 'rate': '播放语速',
232
- 'rateHint': '0.5 到 2.0 倍速。服务端按标准速度合成,由浏览器调整播放速率。',
233
- 'bargeIn': '打断静音 (Barge-in)',
234
- 'bargeInHint': '当麦克风开启或检测到说话时立即中断朗读。',
235
- 'announce': '重要事件播报',
236
- 'announceHint': '当智能体等待用户审批或提出问题时,播放提示音并语音播报。',
237
- 'approvalText': '审批提示语',
238
- 'approvalHint': '请求审批时播报的短语,会自动附带工具名称。',
239
- 'questionText': '提问提示语',
240
- 'questionHint': '智能体提问时播报的前导短语。留空则直接读出问题。',
241
- 'chime': '提示音效',
242
- 'chimeHint': '可选 ding、beep 或无。',
243
- 'language': '语言选择',
244
- 'languageHint': '针对需要指定语言的服务商(如 eSpeak 或 Azure SSML)。',
245
- 'piperModel': 'Piper 模型路径',
246
- 'piperModelHint': 'ONNX 模型的绝对路径。留空则跳过 Piper。',
247
- 'piperBin': 'Piper 可执行文件',
248
- 'binHint': '默认从 PATH 查找,除非指定绝对路径。',
249
- 'espeakBin': 'eSpeak 可执行文件',
250
- 'espeakHint': '通常为 espeak-ng。',
251
- 'edgeBin': 'edge-tts 可执行文件',
252
- 'edgeHint': 'Python edge-tts 命令行工具。',
253
- 'azureRegion': 'Azure 区域',
254
- 'azureHint': 'Azure 语音服务所在区域,例如 eastus。',
255
- 'openaiBaseUrl': 'OpenAI API 地址',
256
- 'openaiBaseUrlHint': '兼容 OpenAI 的 TTS 接口地址。',
257
- 'mimoBaseUrl': 'MiMo API 地址',
258
- 'mimoBaseUrlHint': 'MiMo 接口根地址,通过其对话接口提取语音。',
259
- 'mimoFormat': 'MiMo 音频格式',
260
- 'mimoFormatHint': 'mp3 或 wav。',
261
- 'minimaxBin': 'MiniMax CLI 路径',
262
- 'minimaxBinHint': '默认从 PATH 查找,需提前安装并登录。',
263
- 'advancedTitle': '高级参数',
264
- 'advancedHint': '字符上限与接口重定向。API 密钥在候选链中维护,凭证环境变量仅在后台生效。',
265
- 'maxChars': '最大字符上限',
266
- 'maxCharsHint': '触发长文本截断或摘要的硬性上限;0 表示无限制。',
267
- 'sentenceChars': '单句切片大小',
268
- 'sentenceCharsHint': '流式语音合成中单句的最大字符长度。',
269
- 'timeoutMs': '服务商超时 (毫秒)',
270
- 'timeoutMsHint': '单次语音合成请求超时时间,超时后自动切换下一服务商。',
271
- 'maxQueue': '最大队列长度',
272
- 'maxQueueHint': '超出该长度时丢弃最旧的未播放语音片段。',
273
- 'chainTitle': '服务商降级链 (Fallback Chain)',
274
- 'addProvider': '添加服务商',
275
- 'localProvider': '本地 / CLI 服务商(无需 API 密钥)',
276
- 'configured': '已配置',
277
- 'notSet': '未设置',
278
- 'fromEnv': '来自环境变量',
279
- 'clear': '清空',
280
- 'remove': '移除',
281
- 'up': '上移',
282
- 'down': '下移',
283
- 'save': '保存设置',
284
- 'saved': '已保存',
285
- 'cardHint': '配置服务商降级顺序、发音人与朗读参数。',
286
- 'skipCode': '跳过代码块',
287
- 'skipCodeHint': '遇到代码块时朗读简短提示,而不逐行朗读代码字符。',
288
- 'cache': '合成音频缓存',
289
- 'cacheHint': '重复短语直接从本地缓存读取,无需重复合成。',
290
- 'cacheMaxMb': '缓存上限 (MB)',
291
- 'cacheMaxMbHint': '超出容量时优先淘汰最近最少使用 (LRU) 的音频。',
292
- 'clearCache': '清空缓存',
293
- 'pronTitle': '发音纠正字典',
294
- 'pronHint': '规则自上而下匹配。左侧支持 /…/ 正则表达式;支持按语言过滤。',
295
- 'pronFrom': '原词',
296
- 'pronTo': '替换为',
297
- 'pronWhole': '全词匹配',
298
- 'pronLang': '语言',
299
- 'addRule': '添加规则',
300
- 'rolesTitle': '角色专属音色',
301
- 'rolesHint': '留空项将自动继承主服务商配置。',
302
- 'roleReply': '普通回复',
303
- 'roleApproval': '操作审批',
304
- 'roleError': '系统错误',
305
- 'ssmlStyle': '情感语调 (SSML)',
306
- 'ssmlStyleHint': '情绪语调风格(如 cheerful、serious、empathetic 等)。',
307
- 'longReply': '长回复处理',
308
- 'longReplyHint': 'truncate: 截断超长部分; summarize: 智能生成简述; full: 完整朗读全文。',
309
- 'summaryModel': '摘要生成模型',
310
- 'summaryModelHint': 'provider/model 格式,留空则跟随当前对话模型。',
311
- 'summarySentences': '摘要句数',
312
- 'summarySentencesHint': '语音朗读所采用的摘要句子数量。',
313
- 'preview': '试听',
314
- 'statsTitle': '实时统计',
315
- 'statTotal': '总请求数',
316
- 'statHits': '缓存命中',
317
- 'statErrors': '合成失败',
318
- 'statReset': '重置统计',
319
- 'autoDetect': '按句自动识别语种',
320
- 'autoDetectHint': '每句根据字符特征自动推测语言,而非强制使用全局设定。',
321
- 'narrateQuotesOnly': '仅朗读引用内容',
322
- 'narrateQuotesHint': '仅朗读正文中用引号括起来的引用短语。',
323
- 'skipActions': '跳过 *星号动作*',
324
- 'skipActionsHint': '自动剔除 *动作说明* 文本。',
325
- 'removeRegex': '自定义正则过滤',
326
- 'removeRegexHint': '在合成前由全局正则表达式匹配并剔除匹配文本。',
327
- 'customBaseUrl': '自定义 TTS API 地址',
328
- 'customBaseUrlHint': '兼容 OpenAI 的接口地址,如 http://localhost:8880/v1;留空禁用。',
329
- 'customKeyEnv': '自定义接口凭据名',
330
- 'customKeyEnvHint': '用于存储自定义接口 Bearer Token 的凭证槽位名称。',
331
- 'localEnginesTitle': '本地离线引擎 (Offline)',
332
- 'localEnginesHint': '在本地离线运行语音合成,无需 API 密钥与互联网。',
333
- 'enableLocalEngines': '启用本地引擎',
334
- 'enableLocalEnginesHint': '检测并调用本地 Kokoro 或 F5-TTS 模型。',
335
- 'streamingEnabled': '毫秒级低延迟流式 (< 300 ms)',
336
- 'streamingEnabledHint': '利用 AudioWorklet 和 SSE 实时输出流式音频。',
337
- 'useKokoro': '启用 Kokoro-82M (CPU)',
338
- 'useKokoroHint': '基于 CPU 的轻量级快速神经语音合成。',
339
- 'useF5': '启用 F5-TTS (GPU)',
340
- 'useF5Hint': '基于 NVIDIA GPU 的高保真零样本克隆语音合成。',
341
- 'installed': '已就绪',
342
- 'notInstalled': '未安装',
343
- 'downloading': '下载中',
344
- 'installKokoro': '安装权重 (350 MB)',
345
- 'installF5': '安装权重 (2.1 GB)',
346
- 'deleteModel': '删除模型',
347
- 'voiceDuplexTitle': '双工语音对话 (Voice-to-Voice)',
348
- 'voiceDuplexHint': '与 dsh-voice 协同提供全双工交互式对话。',
349
- 'voiceNotInstalledTitle': '依赖插件 @goodandready/dsh-voice 尚未安装',
350
- 'voiceInstallHint': '如需启用语音对话,请通过以下命令安装该插件:',
351
- 'voiceDuplex': '语音双工模式',
352
- 'voiceDuplexHintToggle': '用户语音输入结束后,自动使用语音朗读回复。',
353
- 'vadBargeIn': 'VAD 语音打断',
354
- 'vadBargeInHint': '检测到人类语音时立即终止智能体当前语音输出。',
355
- 'newSubagentRole': '子智能体标识 (例如 coder, reviewer)',
356
- 'addSubagentRole': '添加子智能体',
357
- 'autoDetectSubagent': '自动感应会话中的子智能体角色',
358
- 'role_coder': '编码助手 (Coder)',
359
- 'role_reviewer': '代码评审 (Reviewer)',
360
- 'role_planner': '架构规划 (Planner)',
361
- 'enableItDictionary': '内置 IT 术语发音校正',
362
- 'enableItDictionaryHint': '自动纠正 SQL、Nginx、K8s、Docker、API、JSON、YAML 等专有名词发音。',
363
- 'loadItDictionary': '填入常用 IT 术语',
364
- 'exportJson': '📥 导出 JSON',
365
- 'importJson': '📤 导入 JSON',
366
- 'invalidJsonFormat': '无效的字典 JSON 格式',
367
- 'previewRule': '试听发音',
368
- 'messengerIntegrationTitle': '即时通讯联动 (Telegram, Discord)',
369
- 'messengerIntegrationHint': '通过 @goodandready/dsh-messenger-gateway 向聊天群组发送语音回复。',
370
- 'messengerNotInstalledTitle': '依赖插件 @goodandready/dsh-messenger-gateway 尚未安装',
371
- 'messengerInstallHint': '如需向聊天软件发送语音回复,请运行:',
372
- 'messengerTtsEnabled': '群组语音回复',
373
- 'messengerTtsEnabledHint': '允许网关将回复以语音便签 (Voice Note) 形式发送。',
374
- }