dsh-voice: A DSH plugin that brings two-way voice conversation to DeepSeek Harness
martindye/dsh-voice
A two-way voice DSH plugin for the web app: speak to dictate into the composer, hear replies read aloud, with the mic kept listening.
dsh-voice is a DSH plugin that lets the DeepSeek Harness web app speak its replies and listen to your voice. It bundles voice input, per-message read-aloud and automatic playback into one plugin, removing the need to type every turn and read every answer. A unified button beside the composer shifts between voice entry, send, stop and cancel as the state changes, the microphone reopens after each reply, and spoken commands can park the listening loop. Speech is synthesized on demand on the machine running DSH with GPU and CPU engines, and settings are stored per browser.
How to Install
dsh plugin --profile web add @martindye/dsh-voice- Category
- UI & Experience
- Platform
- DSH Plugin
- Author
- martindye
- Distribution
- Plugin
dsh-voice Key Features
dsh-voice Repo Summary
What Does It Do?
It is a two-way voice DSH plugin for DeepSeek Harness that turns the DSH web app into a hands-free conversation loop: you speak, the agent replies out loud, and the microphone keeps listening. It solves the problem of typing every turn and reading every reply, folding voice input, spoken output and auto-read into a single plugin. Maintained by martindye under the MIT license and written in TypeScript, it works on any device the web app runs on, including iPhone and PC.
Core Features
- Unified composer button: voice entry on an empty draft, a send arrow while typing, a stop square while the agent runs or the system speaks, and a cross during an active voice turn.
- Continuous listening: the microphone reopens on its own after a reply ends, and an auto-open that captures no words is quietly re-offered a few times.
- Spoken pause commands: saying "hold the mic", "pause the mic" or "stop listening" parks the listening loop without sending a message.
- In-call mute: during a voice turn the dictate button becomes a mute/unmute toggle, and muted audio never reaches the recognizer.
- Per-message and automatic read-aloud: every finalized assistant message gets a speak/stop button, and fresh replies younger than two minutes are read aloud on a device that has auto-read enabled and has used the voice composer.
- Per-device auto-read toggle: a control in the session header corner, persisted per browser, with a green dot when the device is voice-armed.
How to Use This Plugin?
After enabling it in DSH, open the web app and use the unified voice button beside the composer: tap it on an empty draft to start speaking, and the turn sends when you finish. Tap the speaker button on any assistant message to hear it read aloud. To have new replies spoken automatically, turn on the auto-read toggle in the session header corner; the setting applies only to that browser. Speech is synthesized by the plugin's own TTS service, spawned on demand on the machine running DSH, with text resolved from the session log and stripped of code, links and markdown first; the engine can be the GPU qwen3 or the CPU pocket fallback, defaulting to qwen3 when its models are present.
How to Troubleshoot This Plugin?
If speech synthesis does not work, first confirm that Python 3 is on the PATH of the machine running DSH and that numpy and requests are installed; the CPU fallback engine needs its additional speech dependency as well. If the GPU engine is unavailable, check that the models sit in the expected model directory and that the engine selection file points at the right engine. When the port is taken or the service fails to start, inspect the host log for the voice service and adjust the port or restart the service as described in the official instructions.
This page is an independent rewrite of the plugin's official README — for authoritative documentation and the latest changes, refer to the source: martindye/dsh-voice. The plugin is third-party code that runs on your machine once installed; inclusion does not imply endorsement — please review the source before installing.
DSH Plugin FAQ
