快速了解
它能做什么
通过本地或云端文本转语音服务朗读 DeepSeek Harness Web UI 中的助手回复。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile
Not declared in supplied evidence
证据已验证
核对日期 2026/9/6 UTC 13:52
有代码证据的贡献
它为 DSH 增加什么
为 DeepSeek Harness Web UI 中的助手回复添加语音播放,并可配置服务提供商回退链。
机制证据 ↗选择前先看
dsh-tts 是一个 DeepSeek Harness Web 套件:它在主机端合成已完成的回复或流式回复片段,并将音频发送到浏览器。它提供服务商回退链、本地引擎、语音设置、文本清理和按智能体角色覆盖语音等功能。
适合谁
希望在 DeepSeek Harness Web UI 中听取助手回复,并能够配置 TTS 服务商或本地引擎的用户。
常见任务
- 在 Web UI 中朗读助手回复。
- 使用本地 Kokoro、Edge、OpenAI TTS 等组成回退链。
- 为 coder 或 reviewer 等智能体角色分配不同声音。
- 在设置中试听声音并管理支持的本地语音模型安装。
权限与数据
插件会在主机端处理助手回复文本以合成语音;所选云端服务商可能接收这些文本。
权限- 添加 Web UI 客户端集成和主机端 TTS 路由。
- 可通过文档所述的安装和删除端点管理本地 Kokoro 与 F5-TTS 模型文件。
- 回复文本会在合成前经过清理。
- README 声称 API 密钥不会进入客户端浏览器,合成在主机后端执行。
- 可选服务商包括 OpenAI、ElevenLabs、Google、Azure、Deepgram、Groq、OpenRouter 等。
- 文档还列出本地 Kokoro、F5-TTS、Piper 和 eSpeak 选项。
- 选择云端服务商可能需要相应 API 密钥,例如 OPENAI_API_KEY 或 ELEVENLABS_API_KEY。
- 文档称若干本地选项无需凭据。
局限
- 提供的证据未声明 Harness 版本兼容范围。
- 未实际测试服务商可用性、延迟、音质或回退行为。
- 本地模型下载可能较大;README 表示下载需手动发起,不会自动进行。
- 语音双工需要另行安装 @goodandready/dsh-voice;消息平台语音消息需要 @goodandready/dsh-messenger-gateway。
DSHub 已核对
- 已固定不可变 Git 源提交。
- 包清单和 Cordis 套件补丁通过了记录中的结构检查。
- 已声明版本为 0.3.22,许可证为 MIT。
DSHub 未核对
- 未执行安装和运行时验证。
- 未审计已发布 npm 包的内容。
- 流式延迟、服务商行为和本地模型校验等声明未经独立验证。
固定版本安装
安装 dsh-tts
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
📦 @goodandready/dsh-tts
<div align="center"><h3>Multi-Provider Text-to-Speech Voice Synthesis with Local Neural Engines, Sub-300ms Streaming, IT Dictionary & Messenger Integration for DeepSeek Harness</h3><p align="center"> <a href="https://www.npmjs.com/package/@goodandready/dsh-tts"><img src="https://img.shields.io/npm/v/@goodandready/dsh-tts.svg?style=for-the-badge&color=6366f1&labelColor=1e1b4b" alt="npm version"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-10b981.svg?style=for-the-badge&color=10b981&labelColor=064e3b" alt="license"></a> <a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a> </p><p align="center"> <a href="https://goodandready.app/"><img src="https://img.shields.io/badge/All_Author_Projects-goodandready.app-ff4500.svg?style=for-the-badge&logo=rocket&logoColor=white&labelColor=1a1a2e" alt="All Author Projects"></a> </p><p align="center"> <a href="README.md"><b>🇬🇧 English</b></a> • <a href="README.ru.md"><b>🇷🇺 Русский</b></a> • <a href="README.zh.md"><b>🇨🇳 中文说明</b></a> </p></div>⚡ Overview
dsh-tts provides robust, lifelike spoken voice synthesis for assistant replies in the DeepSeek Harness Web UI. When Speak agent replies is enabled, each finished assistant turn or real-time streaming chunk is synthesized on the host and streamed directly to the browser.
API keys never reach client browsers: synthesis is executed entirely on the host backend across independent multi-provider fallback chains, including completely offline neural models (Kokoro-82M and F5-TTS).
graph LR
subgraph Input [Assistant Message]
Reply[💬 Agent Reply Text] --> Scrub[Smart Text Scrubbing & IT Dictionary]
end
subgraph Stream [Low-Latency Streaming]
Scrub --> SSE[SSE /dsh-tts/stream]
SSE --> Worklet[AudioWorklet PCM Processor]
end
subgraph Cache [Performance Layer]
Scrub --> LRU{Disk LRU Cache}
LRU -->|Cache Hit| Play[Immediate Audio Playback]
end
subgraph Fallback [TTS Provider Fallback Chain]
LRU -->|Cache Miss| Chain{Active Chain}
Chain -->|Priority 1| P1[Kokoro / F5-TTS Local Offline]
Chain -.->|Cloud Neural| P2[ElevenLabs / OpenAI / CosyVoice]
Chain -.->|Free Cloud / Edge| P3[EdgeTTS / SiliconFlow]
Chain -.->|System Fallback| P4[Local Piper / eSpeak NG]
end
subgraph Output [Delivery & Integrations]
P1 --> Store[Save to Cache]
P2 --> Store
P3 --> Store
P4 --> Store
Store --> Play
Store --> Msg[Telegram / Discord via dsh-messenger-gateway]
end
style Input fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
style Stream fill:#181825,stroke:#89dceb,stroke-width:2px,color:#cdd6f4
style Cache fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
style Fallback fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4
style Output fill:#181825,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4
🚀 Key Features
1. 📴 Offline Local Neural Engines (Kokoro CPU & F5-TTS GPU)
- Kokoro-82M (CPU): 82M-parameter lightweight neural model running locally on CPU via ONNX Runtime. High-speed synthesis with zero cloud dependencies.
- F5-TTS (GPU): Zero-shot diffusion transformer voice synthesis running on NVIDIA GPUs via a local inference daemon.
- ModelManager UI: Direct manual installation in settings with real-time download progress bar, SHA-256 validation, and deletion. No silent or automatic multi-gigabyte downloads.
2. ⚡ Real-Time Streaming Audio (< 300 ms Latency)
- AudioWorklet (
TTSWorklet): High-performance Web Audio Worklet processor playing seamless Float32Array PCM chunks at 24 kHz without audible clicks or buffer underruns. - Server-Sent Events (SSE): Dedicated
/dsh-tts/streamroute delivering synthesized chunks to connected browsers instantly.
3. 🎙️ Voice Duplex & VAD Barge-In (with @goodandready/dsh-voice)
- Full-Duplex Conversation: Automatic voice reply synthesis upon completion of speech dictation.
- VAD Barge-In: Immediately mutes assistant speech playback when user voice activity is detected.
- Installation Guard: If
@goodandready/dsh-voiceis not present, settings controls are disabled with an explicit instruction banner (dsh plugin --profile web add @goodandready/dsh-voice).
4. 📚 Built-in IT Terminology Pronunciation Dictionary
- Pre-configured Lexicon: Correct phonetic pronunciation for common technical abbreviations and developer terms:
SQL$\rightarrow$ "сиквел"Nginx$\rightarrow$ "энджинкс"Kubernetes/K8s$\rightarrow$ "кубернетис"Docker$\rightarrow$ "докер",API$\rightarrow$ "апи",JSON$\rightarrow$ "джейсон",YAML$\rightarrow$ "ямл"GUI,CLI,CI/CD,PR,Regex,OAuth,HTTP,HTTPS,CPU,GPU,RAM
- Interactive UI Editor: Edit rules, preview phonetic substitutions with the ▶ Listen button, and populate standard IT terms with one click.
5. 👥 Multi-Agent Personas & Subagent Voice Overrides
- Assign distinct voices, providers, models, and audio chimes to individual subagents (e.g.
coder,reviewer,planner,tester). - Automatically matches incoming assistant turn events (
session.agentormessage.agent).
6. 💬 Messenger Voice Notes Integration (with @goodandready/dsh-messenger-gateway)
- Generates voice audio for Telegram and Discord bot replies via
POST /dsh-tts/speak. - Protective dependency check with installation hint when gateway plugin is missing.
🛠️ Complete Supported Providers Matrix (18 Backends)
| Provider Key | Service Backend | Default Model | Default Voice | Credential Ref | Features & Notes |
|---|---|---|---|---|---|
kokoro |
Local Kokoro-82M ONNX | hexgrad/Kokoro-82M |
af_bella |
None | 100% offline CPU neural synthesis |
f5 |
Local F5-TTS GPU Daemon | F5-TTS |
Default | None | High-fidelity GPU zero-shot voice synthesis |
elevenlabs |
ElevenLabs API | eleven_multilingual_v2 |
Rachel |
ELEVENLABS_API_KEY |
Ultra-realistic, emotional nuance |
openai |
OpenAI Audio | gpt-4o-mini-tts / tts-1 |
alloy |
OPENAI_API_KEY |
High-quality industry standard |
edge |
Microsoft Edge Online | ru-RU-SvetlanaNeural |
ru-RU-SvetlanaNeural |
None | Free, high-fidelity neural TTS without API keys |
siliconflow |
SiliconFlow CosyVoice | FunAudioLLM/CosyVoice2-0.5B |
Default | SILICONFLOW_API_KEY |
State-of-the-art CosyVoice2 neural engine |
deepinfra |
DeepInfra Kokoro | hexgrad/Kokoro-82M |
Default | DEEPINFRA_API_KEY |
Fast open-weights Kokoro synthesis |
fireworks |
Fireworks AI | kokoro |
Default | FIREWORKS_API_KEY |
Ultra-low latency Kokoro inference |
minimax |
MiniMax Speech | speech-01-turbo |
Default | MINIMAX_API_KEY |
High-expressiveness neural voice |
mimo |
Xiaomi MiMo Audio | mimo-v2.5-tts |
Default | MIMO_API_KEY |
Low-latency streaming TTS |
google |
Google Cloud TTS | gemini-2.5-flash-preview-tts |
Language default | GEMINI_API_KEY |
Multilingual Google Gemini voice synthesis |
azure |
Azure Cognitive Speech | en-US-JennyNeural |
Region default | AZURE_SPEECH_KEY |
Enterprise neural synthesis |
deepgram |
Deepgram Aura | aura-asteria-en |
asteria |
DEEPGRAM_API_KEY |
Ultra-low latency voice output |
groq |
Groq TTS | playai-tts |
default |
GROQ_API_KEY |
Near-instant inference speed |
openrouter |
OpenRouter Audio | openai/gpt-4o-mini-tts |
alloy |
OPENROUTER_API_KEY |
Unified router access |
custom |
Custom OpenAI-compatible | Configurable | Configurable | CUSTOM_TTS_API_KEY |
Any /v1/audio/speech endpoint |
piper |
Local Piper ONNX | Local ONNX weights | Model default | None | 100% offline neural engine |
espeak |
Local eSpeak NG | System synth | ru / en |
None | 100% offline lightweight fallback |
🧹 Smart Text Scrubbing & Formatting Engine
Before text reaches speech synthesizers, dsh-tts intelligently sanitizes and filters the message so the assistant doesn't read out syntax noise:
- Fenced Code Blocks: Spoken as "code block, N lines" / "блок кода, N строк".
- Markdown Tables: Spoken as "table, N rows" / "таблица, N строк".
- Summary Intros: Spoken as "Summary of the reply" / "Пересказ ответа".
- Narration Filters: Skip asterisk actions (
*smiles*), narrate quotes only, and apply custom regex removal.
📦 Quick Installation
dsh plugin --profile web add @goodandready/dsh-tts
[!IMPORTANT] Restart DSH Web UI after installation (
systemctl --user restart dsh-web) and refresh your browser tab.
⚙️ Configuration Recipes (settings.yaml)
dsh-tts:
speakReplies: true
enableLocalEngines: true
kokoroEnabled: true
streamingEnabled: true
enableItDictionary: true
voiceDuplexEnabled: true
vadBargeIn: true
messengerTtsEnabled: true
cache: true
cacheMaxMb: 150
autoDetect: true
chain:
- provider: kokoro
- provider: edge
voice: ru-RU-SvetlanaNeural
- provider: openai
model: tts-1
voice: alloy
roles:
coder:
provider: openai
voice: onyx
reviewer:
provider: edge
voice: ru-RU-DmitryNeural
🤖 HTTP Endpoints Reference
GET /dsh-tts/stream— Real-time Server-Sent Events (SSE) audio streaming.POST /dsh-tts/speak—{ text, voice?, model? }→ Returns synthesized audio.POST /dsh-tts/preview—{ provider, model, voice, text? }→ Test voice playback in UI.GET /dsh-tts/models/status— Reports local Kokoro and F5-TTS model installation states.POST /dsh-tts/models/install—{ engine: 'kokoro' | 'f5' }→ Starts HuggingFace model download.DELETE /dsh-tts/models/delete—{ engine: 'kokoro' | 'f5' }→ Removes local model files.GET /dsh-tts/integrations— Status of sibling plugins (dsh-voice,dsh-messenger-gateway).GET /dsh-tts/status— Returns active chain state, cache statistics, and engine readiness.
📄 License
MIT © GooDAnDReaDY
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile
交付方式: Git Bundle — GooDAnDReaDY/dsh-tts#6b9ca9f927b4112eb8af311e529ff8f0ae6e96e8。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
DeepSeek Harness web bundle; peer dependencies declared: Not declared in supplied evidence。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
若回复内容不应离开主机,请选择本地引擎;在敏感对话中启用云端服务前,请审查所选服务商的数据处理做法。
AI 审查于 2026/9/10 UTC 11:36。GitHub 事实核对日期: 2026/9/10 UTC 11:36。
自当前证据基线以来,没有记录到重要源码变化。