Speech-to-text voice input for the web UI: a mic button in the composer transcribes speech into the draft via the browser Web Speech API (zero-config) or an OpenAI-compatible Whisper API (OpenAI / Groq), with a selectable model and language in Settings.
Install
# from a prebuilt release tarball
dsh plugin --profile web add "https://github.com/baisama-cloud/dsh-stt-input/releases/download/v0.1.0/dsh-stt-input-0.1.0.tgz"
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:baisama-cloud/dsh-stt-input
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
中文 · English
dsh-stt-input
Speech-to-text voice input for the DeepSeek Harness (DSH) web GUI.
Click the 🎤 mic button beside the composer, speak, click again — the transcript is written straight into the input box. The STT engine and model are selectable in Settings → 语音输入 (Voice Input).
Features
- Two engines
- Browser local — uses the browser's built-in Web Speech API
(
SpeechRecognition, Chrome/Edge). Zero configuration, no API key, live interim results appear in the input box as you speak. - API — records with
MediaRecorderand transcribes through any OpenAI-compatible/v1/audio/transcriptionsendpoint (OpenAI, Groq, custom).
- Browser local — uses the browser's built-in Web Speech API
(
- Selectable model —
whisper-1(OpenAI),whisper-large-v3,whisper-large-v3-turbo,distil-whisper-large-v3-en(Groq), or a custom model name. - Configurable — service preset (OpenAI / Groq / custom), API base URL, API key, recognition language, and insert mode (append to / replace the existing draft).
- Live status — a pill under the composer shows recording time, transcribing state, and errors.
- Privacy — the API key is kept in page memory only and is never persisted
or logged; the non-secret config survives reloads via
localStorage.
Install
Build the tarball and install it into your DSH web profile (same flow as other
dsh-* plugins):
pnpm pack
# copy dsh-stt-input-*.tgz into the web profile and add the dependency,
# e.g. under ~/.dsh/profiles/web: pnpm add ../path/to/dsh-stt-input-0.1.0.tgz
# then restart `dsh web`.
The plugin registers:
- a mic button in the composer tool row (
conversation.input.left), - a status pill under the composer (
conversation.composer.dock), - a settings page (
settings.section→ 语音输入).
Usage
- Open Settings → 语音输入 and pick an engine.
- Browser local: nothing else needed (Chrome/Edge).
- API: choose a preset (OpenAI or Groq), pick the model, and paste your
API key. Groq's
whisper-large-v3is currently free.
- Click the 🎤 mic button in the composer to start, speak, and click again to stop. The transcript lands in the input box; press Enter to send.
The browser engine needs Chrome or Edge (Web Speech API). Firefox falls back to the API engine.
How it works
┌──────────┐ click 🎤 ┌───────────────┐
│ Client │ ───────────────▶ │ MediaRecorder │ (api engine)
│ (browser)│ │ SpeechRecog. │ (browser engine)
└──────────┘ └──────┬────────┘
▲ ▼
│ setDraft(text) base64 audio (JSON)
│ POST /stt-input/transcribe
│ │
┌─────┴──────┐ ┌───────▼────────┐
│ input box │ ◀────────────│ Host (Node) │
└────────────┘ {ok,text} │ fetch → /v1/ │
│ audio/transcr. │
└─────────────────┘
The client (lib/client.js) captures audio and posts base64 JSON to the host
route /stt-input/transcribe. The host (lib/index.js) decodes the audio and
uploads it as multipart/form-data to ${baseUrl}/v1/audio/transcriptions
using Node ≥ 18 global fetch / FormData / Blob.
License
MIT
Links
More in this category
Zhangbo-cn/dsh-voice-input-plugin★ 6
Composer mic for the Web UI: tap-to-monitor live transcription and hold-to-talk, with host Edge TTS reply reading that streams while the model generates, echo-pause during reading, and tap-to-stop.
1624318455/dsh-plugin-tts★ 5
Reads assistant replies aloud via free Edge TTS or your own RVC voice models: read-aloud buttons + auto-read, adaptive chunked progressive playback (gapless long reads), one-click voice-pack installs from a registry, and a portable RVC runtime.
3274375092/dsh-voice★ 4
Voice input for DeepSeek Harness: speak into the microphone and the recognized text is submitted as a normal chat message, via local or browser speech recognition.
CAOGGL/dsh-ding★ 4
Notifies you when a conversation finishes: plays a sound and shows a Windows notification when the agent goes idle (configurable sound file, volume, debounce/throttle).
huguangyu666/dsh-plugin-notify★ 4
Notification outbox: agent proactively notifies via toast / Chinese TTS voice / sound effects (explosion, victory, alarm), 60s confirmation window voice-calls you back, volume boost, settings panel.
radres/dsh-plugin-call-me★ 4
Rings your phone over CallKit: `call_me` and `text_me` tools, plus optional turn-end and approval calls whose spoken answer is transcribed back into the session.