Back to home@wkfedor

deepseek-harness-voice-input

Local voice typing and speech-to-text plugin for DeepSeek Harness (dsh), powered by multilingual Whisper.

Stars
0
Language
JavaScript
Created
Aug 22, 2026
Updated
Aug 22, 2026

Introduction

Voice Input and Speech-to-Text for DeepSeek Harness

Add voice typing, microphone dictation, and local speech-to-text to the DeepSeek Harness (dsh) Web UI. This DeepSeek Harness plugin records speech in the browser and transcribes it locally with multilingual Whisper. It works across Firefox, Chrome, Chromium, Edge, and Safari without a browser extension or a cloud speech-recognition service.

Use it when you want to dictate prompts instead of typing them in the DeepSeek Harness conversation composer. Audio stays on the computer running Harness.

Features

  • One microphone button integrated into the DeepSeek Harness prompt input.
  • Local, private voice-to-text powered by Whisper, Transformers.js, and ONNX Runtime.
  • Multilingual speech recognition, including English and Russian voice input.
  • Cross-browser recording through getUserMedia and the Web Audio API.
  • A visible first-run model download with percentage, bytes, speed, cancel, and retry controls.
  • Persistent setup state: refreshing the page does not start a duplicate model download.
  • No Python, pip, ffmpeg, administrator access, browser extension, or external speech API.

Install the DeepSeek Harness voice input plugin

Install the package into the standard web profile:

dsh plugin --profile web add github:wkfedor/deepseek-harness-voice-input

This package is a Cordis plugin rather than a profile bundle. Add it to the YAML list in $DSH_HOME/profiles/web/cordis.patch.yml (normally ~/.dsh/profiles/web/cordis.patch.yml):

- insert:
    - id: voice-input
      name: deepseek-harness-voice-input

If that file already contains other entries, merge this insert entry into the existing top-level YAML array instead of overwriting the file. Restart the DeepSeek Harness Web UI, then open its usual local address:

dsh web

http://127.0.0.1:3080

Use voice typing

  1. Open a DeepSeek Harness conversation.
  2. Click the microphone button in the prompt composer.
  3. On first use, click Install and wait for the local Whisper model to reach 100%.
  4. Click the microphone to start recording.
  5. Click it again to stop and transcribe. The recognized text is inserted into the prompt.

The plugin only prepares text. It does not automatically submit the prompt, so you can review or edit the transcription before sending it.

How local speech recognition works

  • The browser records mono PCM audio and produces a 16 kHz WAV payload.
  • The payload is sent only to the local DeepSeek Harness server.
  • A separate worker runs multilingual Whisper through Transformers.js and ONNX Runtime.
  • The downloaded model is stored in the Harness data directory, outside the plugin package.
  • Temporary audio is deleted after transcription.

No recording is sent to DeepSeek, Google, Microsoft, OpenAI, or another cloud transcription provider by this plugin.

First use

On the first microphone click, the plugin opens its own installer card. The user can start or cancel the model download. The card shows:

  • current installation stage;
  • downloaded and total bytes;
  • percentage and transfer speed;
  • a clear error and retry action if setup fails.

The setup endpoint is idempotent: repeated requests attach to the same job and cannot start parallel downloads. Setup state is persisted and survives page reloads.

Runtime

  • Node.js (already required by DeepSeek Harness)
  • @huggingface/transformers
  • onnx-community/whisper-tiny, q4 multilingual weights (about 100 MB)

The model cache defaults to $DSH_HOME/voice-input/models. If DSH_HOME is not set, it uses ~/.cache/deepseek-harness-voice-input/models.

Browser support

The recording path uses getUserMedia and the Web Audio API, not the inconsistent browser SpeechRecognition service. It is intended for current Firefox, Chromium, Edge, and Safari builds that support microphone capture and Web Audio.

The page must have permission to use the microphone. Local Harness pages served from http://127.0.0.1 are supported by current desktop browsers.

Голосовой ввод для DeepSeek Harness

Этот плагин добавляет голосовой ввод и локальное распознавание русской речи в веб-интерфейс DeepSeek Harness (dsh). Нажмите кнопку микрофона, продиктуйте запрос и остановите запись — распознанный текст появится в поле сообщения. Поддерживаются Firefox, Chrome, Chromium и Edge.

Для преобразования речи в текст используется локальная multilingual-модель Whisper. Аудио не отправляется во внешние сервисы. Не требуются Python, ffmpeg, браузерное расширение или платный API распознавания речи. При первом запуске интерфейс показывает загрузку модели, процент, скорость и объём данных.

Плагин подходит для диктовки запросов в DSH, локального voice typing и преобразования русской речи в текст без облачного API.

Files

  • lib/client.js — microphone, WAV recording, installer card, and progress UI
  • lib/index.js — status/setup/cancel/transcription HTTP routes
  • scripts/stt-worker.js — isolated model loader and transcription worker

Repository

https://github.com/wkfedor/deepseek-harness-voice-input