dsh-local-stt:在 DeepSeek Harness 里接入本地 GigaAM 与 Whisper 语音转写

前言

DeepSeek Harness(DSH)的实验性「语音输入」包负责麦克风、录音与界面切换;若希望识别在本地完成、不把音频送到远端服务,需要自己接一套 speech-to-text 提供方。社区插件 dsh-local-stt(维护者 nikimagic,分类:模型推理)在 Windows 上为官方语音输入增加两个本地引擎:GigaAM v3 RNNT 与 Whisper large-v3-turbo(whisper.cpp),通过 ctx.speechToText 挂进同一套麦克风与提供方选择器,不改动官方包对 WAV 与设置的主导权。

这是什么

dsh-local-stt 是面向 DSH 0.2.x 的本地语音识别插件(当前包版本 0.2.0,MIT)。可选装一个聚合包(列表里一行同时含 GigaAM 与 Whisper),或分别安装 dsh-local-gigaam、dsh-local-whisper。插件仅在 win32 平台声明支持;README 写明环境为 Windows 10/11 x64,并在 0.2.2-rc.1 上验证过。

README 中的性能参考(约 4 秒音频):GigaAM v3 RNNT 经 gigastt 约 0.25 秒;Whisper large-v3-turbo 经 whisper.cpp 在 CPU 上约 9 秒。GigaAM 面向俄语;Whisper 支持俄语、英语、自动语言等。

核心功能

下面介绍插件实际做的几件事,均来自仓库 README 与 package.json。

  1. 接入官方语音输入链路
    须先启用 @deepseek-ai/dsh-experimental-voice-input-bundle(「语音输入」实验包)。本地插件只增加识别器,麦克风与 WAV 仍由官方包管理。

  2. 两个 loopback 推理服务
    - gigastt serve 监听 127.0.0.1:9876,接收官方 API 提供的 16 kHz、单声道 PCM16 WAV,返回 { text, audioSeconds, inferenceSeconds }。
    - whisper-server 监听 127.0.0.1:8001,格式相同。
    两者仅绑定本机回环;setup.ps1 预下载模型后,识别阶段不依赖网络。

  3. 提供方在 UI 中切换
    路径:插件 → 语音输入 → 提供方,可出现例如:
    - GigaAM v3 RNNT (локально):俄语、速度快;
    - Whisper large-v3-turbo q5_0 (локально):英语与混合语等;
    以及官方自带的 SenseVoiceSmall (INT8)(README 注明其不懂俄语)。从 Whisper(en)切到 GigaAM 时,需先把语言选为 ru。

  4. 依赖关系
    peerDependencies 包含 @deepseek-ai/dsh-experimental-speech-to-text;engines.dsh 为 ^0.2.0-rc.1。

安装与启用

安装分三步:准备引擎与模型、把插件索引加入 DSH、在语音输入里选提供方。约需 1 GiB 磁盘空间;互联网仅用于安装与 setup.ps1 下载,识别本身本地执行。

1. 下载引擎与模型

在插件仓库所在目录的普通 PowerShell 中执行:

powershell -ExecutionPolicy Bypass -File .\setup.ps1

脚本校验 SHA-256,并将文件摆放到默认路径,例如:

%USERPROFILE%\.dsh\bin\gigastt\gigastt.exe
%USERPROFILE%\.dsh\models\gigaam\
%USERPROFILE%\.dsh\models\gigaam\punct\
%USERPROFILE%\.dsh\bin\whisper\whisper-server.exe
%USERPROFILE%\.dsh\models\ggml-large-v3-turbo-q5_0.bin

若只要一个引擎,可加参数:

powershell -ExecutionPolicy Bypass -File .\setup.ps1 -SkipWhisper
powershell -ExecutionPolicy Bypass -File .\setup.ps1 -SkipGigaam

2. 添加插件索引并安装

确认已启用实验性「语音输入」包后,在 DSH 中:插件 → 更多 → 自定义插件商店 → 添加索引源,填入:

https://raw.githubusercontent.com/nikimagic/dsh-local-stt/main/docs/index.json

在商店中安装 「GigaAM + Whisper — локально»(双引擎一体),或按需单独安装 GigaAM / Whisper 条目。安装完成后重启 DeepSeek Harness。

README 推荐的商店路径为主路径;手动安装(web 配置)示例:

dsh plugin --profile web add nikimagic/dsh-local-stt

桌面(desktop)配置由应用管理,README 建议通过商店或 pnpm 安装,CLI 不能直接改 desktop。也可在 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles 中加入 dsh-local-stt 后重启;默认路径已与 setup.ps1 一致,一般无需改 YAML。

3. 选择提供方

重启后进入 插件 → 语音输入 → 提供方,按语言需求在 GigaAM(俄语)与 Whisper(多语)之间切换。

典型用法与架构要点

使用方式与官方语音输入一致:录一段音,由当前选中的本地提供方返回文本。技术细节上,根目录 index.js 作为捆绑两个提供方的入口;子包位于 packages/dsh-local-gigaam/ 与 packages/dsh-local-whisper/;cordis.patch.yml 负责把根 bundle 写入配置文件。

社区插件目录在 SkillHub 等平台独立收录,与 DeepSeek / 幻方无官方从属关系;安装前宜自行查看源码与许可证。插件代码为 MIT;gigastt、GigaAM、whisper.cpp 及 Whisper 权重等沿用各自许可,模型不经仓库分发而是由 setup.ps1 从官方发布页拉取。

适用场景与注意

适合谁:在 Windows 上使用 DSH 0.2.x、已开语音输入实验包,且希望俄语优先用 GigaAM、英语或混合语用 Whisper、全程数据不出本机的用户。

限制与注意:

  • 仅 Windows x64;非 Windows 环境不在 package.json 的 platforms 列表中。
  • GigaAM RNNT 仅俄语;多语场景用 Whisper。
  • 插件以当前 DSH 进程权限运行;安装 setup.ps1 会写入用户目录下的 .dsh 二进制与模型,执行前请核对脚本来源。
  • desktop 与 web profile 的安装方式不同,避免误用 CLI 改 desktop。

结尾

dsh-local-stt 把 GigaAM v3 与 whisper.cpp 收成一条与官方语音输入兼容的本地 STT 链路:一次 setup.ps1、一条索引 URL、商店里选一个条目即可与 SenseVoice 等官方提供方并列切换。进一步了解可从目录页与仓库 README 对照安装步骤。

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

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

小夜