dsh-voice-input:DeepSeek Harness 语音输入插件

前言

DeepSeek Harness(DSH)是一个插件化框架,旨在扩展其核心功能。语音输入通常需要切换窗口或复制粘贴文本。dsh-voice-input 插件在 DeepSeek Harness 的 composer 输入框中集成了一个麦克风按钮,并提供了一个 Web 设置页面。它通过浏览器引擎或任何 OpenAI 兼容的 /audio/transcriptions 端点实现语音转文字(ASR)。

核心功能

该插件具备以下能力:

  1. 输入框内集成:在输入框左侧工具栏增加麦克风按钮,支持开始/停止录音快捷键(Alt+M)及取消快捷键(Esc)。
  2. 实时状态反馈:录音时输入框上方出现状态条,显示电平、计时、实时文字、完成状态及错误信息。
  3. 双引擎支持:
    • 浏览器引擎:零配置,调用浏览器原生语音识别(需 Chrome / Edge)。
    • OpenAI 兼容 API 引擎:支持云端服务或本地服务,通过 /audio/transcriptions 接口进行转录。
  4. 本地 ASR 支持:支持本机 Whisper 服务器,提供一键准备脚本。
  5. 零依赖安装:无构建步骤,无运行时依赖,宿主仅使用 Node 内置 fetch / FormData / Blob。
  6. 安全凭证管理:API Key 从凭证库读取(默认 VOICE_ASR_API_KEY),不在配置文件中明文存储。
  7. 自动错误处理:针对 401(认证错误)、404(路径错误)、413(文件过大)、超时等常见错误提供提示。
  8. 工具诊断:注册了 voice_input_status 工具,可直接询问 DeepSeek 当前配置及状态。

安装与启用

在安装前,请确保环境满足以下要求:

  • DeepSeek Harness 0.1.5-rc.1 或更新版本。
  • Node.js 22+(宿主端使用 AbortSignal.any、FormData、Blob)。
  • 一个现代浏览器(Chrome / Edge 支持 SpeechRecognition;Firefox 不支持)。

执行以下命令进行安装:

# 执行安装
./install.ps1

安装完成后,刷新 Web UI,进入「设置 → 语音输入」即可使用。

若需卸载,请执行:

./install.ps1 -Uninstall

注意:不要与 dsh plugin --profile web add github:owner/repo 命令同时使用。

使用方法

基础操作

  1. 在输入框左侧工具栏点击麦克风按钮(或按 Alt+M)开始录音。
  2. 录音中按 Esc 取消且不写入输入框。
  3. 说话结束后,转写结果会自动填入输入框。

引擎选择

  1. 浏览器引擎(无配置):刷新页面后直接点击麦克风。若浏览器支持,将使用原生识别引擎。注意:浏览器引擎在中国大陆通常不可用。
  2. 云端转写接口:在设置页面配置接口地址(如 OpenAI、SiliconFlow、Groq 等)和模型。
  3. 本地转写:使用 local-asr/ 文件夹提供的离线 Whisper 服务,或通过设置页面的「本机后端(一键准备)」脚本启动。

Ollama 与本地模型

  • Ollama:插件支持检测 Ollama 模型,但目前无法使用,因为 Ollama 0.34 版本的官方模型库中没有任何模型具备音频投影(audio/mmproj)能力。
  • 本地 Whisper:推荐使用支持 OpenAI 协议的本地服务(如 whisper.cpp 或 faster-whisper-server)。

配置与注意事项

API Key 管理

插件不会在配置文件中保存 API Key,而是从凭证库按引用读取(VOICE_ASR_API_KEY)。这使得轮换 Key 对下一次录音立即生效,无需修改配置。

模型与浏览器限制

  • Ollama:若要使用 Ollama 进行转写,模型必须具备音频投影(mmproj)能力。目前 Ollama 官方库中暂无此类模型。
  • Firefox:由于不支持 SpeechRecognition,Firefox 无法使用浏览器原生引擎。

本机后端脚本

插件提供了 PowerShell 脚本用于管理本地 ASR 服务和 Ollama。安装脚本会自动处理 cordis.patch.yml 的托管行,并在安装完成后校验文件完整性。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜