ディレクトリに戻る

deepseek-harness-voice-context

メンテナンス: 活発

charlesliuzc/deepseek-harness-voice-context

Voice Context 音声テキスト統合

GitHub で見る
$ dsh plugin add deepseek-harness-voice-context

インストール方法

dsh には中央のインストールコマンドはありません。このプラグインのエントリ(README に記載)をプロファイルまたはパッチ設定に追加し、再起動します。

インストールの仕組み

2

スター

0

フォーク

TypeScript

言語

MIT

ライセンス

2026-08-14

作成日

2026-09-29

最終プッシュ

README

DeepSeek Harness Voice Context

English | 中文

License: MIT Node.js TypeScript Python

DeepSeek Harness Voice Context is a voice-enabled distribution of DeepSeek Harness. It adds first-party browser recording, trusted Host-side transcription routing, an OpenAI-compatible local speech-to-text server, and a first-use settings flow for choosing cloud or offline models.

This project inherits DeepSeek Harness's developer-preview status. Interfaces and configuration may change before a stable release.

Highlights

  • Record speech from the Web composer and insert the transcript into the draft without sending a message automatically.
  • Choose a cloud API or a fully local offline backend from the Voice-Context settings page.
  • Use FunASR iic/SenseVoiceSmall for fast Chinese transcription or faster-whisper small, medium, and large-v3 for multilingual workloads.
  • Route browser audio through the existing Typert Remote and /api trust boundary; the browser cannot supply an arbitrary upstream URL.
  • Store the cloud API key through the credentials service instead of browser storage or client responses.
  • Expose an OpenAI-compatible POST /v1/audio/transcriptions endpoint for DeepSeek Harness and other compatible clients.
  • Keep one local model resident at a time so switching model sizes does not retain every model in memory.
  • Preserve ordinary DeepSeek Harness sessions, plugins, tools, and Web UI behavior.

Architecture

Voice Context follows the repository's “everything is a plugin” design. The browser owns recording and the user's backend/model preference; the Host owns trusted URLs, credentials, payload limits, and upstream requests.

flowchart LR
    A["Browser microphone"] --> B["16 kHz mono WAV"]
    B --> C["Typert Remote over /api"]
    C --> D["VoiceContextService"]
    D -->|"local"| E["Local STT server"]
    D -->|"cloud"| F["SiliconFlow API"]
    E --> G["Transcript"]
    F --> G
    G --> H["Composer draft"]

The Host package is documented in the Voice Context package README, while the client package README owns browser recording and settings behavior. The selectable-backends Agent Note records the architectural decision.

Model choices

Backend Model Primary use Weight handling
Local FunASR iic/SenseVoiceSmall Fast Chinese-first transcription on CPU Downloaded by FunASR on first use
Local faster-whisper small Faster multilingual transcription Download with download_models.py
Local faster-whisper medium Higher multilingual accuracy Download with download_models.py
Local faster-whisper large-v3 Highest-quality multilingual Whisper option Download with download_models.py
Cloud FunAudioLLM/SenseVoiceSmall No local model storage; SiliconFlow-hosted inference Requires SILICONFLOW_API_KEY

Model weights are deliberately excluded from Git. A clone contains the server and download helper, not multi-gigabyte .pt, .bin, or cache files.

Quick start

Prerequisites

  • Node.js ^22.19.0 or >=24.0.0 and Corepack/pnpm 11.7.0.
  • Python 3.9 or newer for local transcription.
  • A microphone-capable browser for voice input.
  • A DeepSeek API key for agent conversations; a SiliconFlow key is required only for cloud transcription.

1. Clone and build

git clone https://github.com/CharlesLiuZC/deepseek-harness-voice-context.git
cd deepseek-harness-voice-context
corepack enable
corepack prepare pnpm@11.7.0 --activate
pnpm install
pnpm run build

2. Configure agent credentials

Copy .env.example to .env, then add DEEPSEEK_API_KEY. Add SILICONFLOW_API_KEY only when you plan to use the cloud transcription backend.

Copy-Item .env.example .env
cp .env.example .env

The .env file is ignored by Git. Never commit real credentials.

3. Start the local transcription server

Windows:

cd packages\voice\voice-context\local\funasr
start.bat

Linux or macOS:

cd packages/voice/voice-context/local/funasr
bash start.sh

The first run creates .venv, installs FunASR, CPU torch, and faster-whisper, then starts http://127.0.0.1:8000. SenseVoiceSmall downloads through FunASR on its first transcription.

To install one or more faster-whisper models, run the download helper in a second terminal after the virtual environment exists:

.venv\Scripts\python download_models.py small
.venv\Scripts\python download_models.py medium large-v3
# Or download every supported Whisper model:
.venv\Scripts\python download_models.py all
.venv/bin/python download_models.py small
.venv/bin/python download_models.py medium large-v3
# Or download every supported Whisper model:
.venv/bin/python download_models.py all

Downloaded files stay under local/funasr/models/, which is ignored by Git. See the local server guide for the API, environment variables, storage, and security details.

4. Start DeepSeek Harness Web

From the repository root:

pnpm dsh web

Open http://127.0.0.1:3080, enter Settings → Voice-Context, choose Local offline or Cloud API, select a model, and save the voice configuration. The microphone button then uses that selection for each finished recording.

Configuration

GitHub で README 全文を読む →

DSH Plugins は DeepSeek Harness プラグインの独立したコミュニティ ディレクトリです。DeepSeek との提携・公認はありません。サードパーティ製プラグインはセキュリティ監査を受けていません。インストール前にソースコードをご確認ください。

DeepSeek Harnessの新着プラグインを毎週お届け。スパムはありません。