deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:NakamuraIA/dsh-plugin-speech
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
English | 中文

Read assistant replies aloud in DeepSeek Harness, with the audio streamed while it is still being generated.
Each finished assistant message gets a play control in its action row. Press it and the reply is spoken through a text-to-speech service; press it again and it stops. A settings row in General owns the service, the voice, and the tuning.
The reply is sent in one request and the audio is played as it arrives, so speech starts on the first frames instead of waiting for the whole file. The equivalent of watching an answer stream in, for audio.
| Service | Key needed | Voices |
|---|---|---|
| Microsoft Edge (default) | no | the service publishes its full catalog, every language it serves |
Adding a provider means adding one folder under src/providers/ and one line in src/providers/registry.ts — the settings screen builds its fields from what the provider declares.
dsh web), version 0.1.5-rc.2 or newer.Add the package to your harness checkout:
pnpm add -w @nakamuraia/dsh-plugin-speech
Installing from GitHub works the same way, if you would rather track the source:
pnpm add -w github:NakamuraIA/dsh-plugin-speech
Copy speech.patch.yml next to the checkout and start the Web surface with it:
dsh web --patch ./speech.patch.yml
The patch adds one Loader row. The row name is the package name and also the browser module id the built bundle registers under, so the two stay in step — do not rename one without the other.
Settings opens on General, where a Read aloud row owns:
Code blocks, tables, and pasted spreadsheets are never read; links keep their label and lose their target; emoji, quotes, and standalone symbols are dropped. Sentence punctuation is kept, because the voice uses it for pauses.
browser host service
─────── ──── ───────
click ─ ▶ POST /speech/speak { text }
select provider from
the durable settings
────────────────────────── ▶ synthesize
◀ ─ audio bytes stream back ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘
play as they arrive
Synthesis lives on the host because a browser cannot hold an API key and cannot reach most services across CORS. The browser only posts text and plays bytes.
The source is developed inside a DeepSeek Harness checkout, where the type packages and the client build preset live; this repository carries the source and the built artifacts. To rebuild, copy src/ into packages/client/ui-speech/ of a checkout, rename the package there, and run its build.
MIT. The Edge provider drives Microsoft's read-aloud endpoint through msedge-tts (MIT); that endpoint is not a documented, supported Microsoft API, so treat availability as best effort.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。