前言¶
在 DeepSeek Harness(DSH)里用麦克风输入时,识别能力通常依赖内置 Voice input 所接入的在线或系统服务。若你需要在本地、无 GPU、不装 Python 的前提下识别俄语,并把结果仍走 Harness 原有的麦克风按钮、录音与文本插入流程,就需要一个注册到 ctx.speechToText 的专用提供者。dsh-voice-ext(维护者 machine202502,社区分类:模型推理)即为此设计:基于 sherpa-onnx 加载 GigaAM v3 CTC,完全离线运行;它不替换内置 Voice input,而是向同一套语音转文字服务增加名为 dsh-voice-ext 的提供者。
这是什么¶
dsh-voice-ext 是 DSH 插件,版本 0.1.0(MIT),要求 Node.js >= 20。一句话定位:Local Russian speech recognition for DeepSeek Harness: GigaAM v3 via sherpa-onnx, fully offline。
数据流如下:
麦克风按钮 → ctx.speechToText → 提供者 dsh-voice-ext → GigaAM v3 (sherpa-onnx)
提供者与语言的选择仍在 Harness 的 Voice input(speechToText 服务)中完成;本插件声明语言 ru 与 auto。
模型与性能¶
识别模型为 GigaAM v3 CTC(MIT),ONNX 转换来自 Hugging Face 资源 sherpa-onnx-nemo-ctc-giga-am-v3-russian。
目录内需包含:
model.int8.onnx— 224 721 476 字节,下载后会做 SHA-256 校验;tokens.txt— 模型词表。
默认模型目录:%LOCALAPPDATA%\dsh-voice-ext\models\gigaam-v3。在 CPU 上,README 给出的参考耗时约为 5.5 秒语音约 1.1 秒识别,无需 Python 与 GPU。
核心功能¶
- 接入 Harness 语音栈:通过 Cordis patch 注册 STT 提供者
dsh-voice-ext,麦克风 UI 与插入逻辑保持原样。 - 本地推理:依赖
sherpa-onnx-node@1.13.8及对应平台二进制(Windows 为sherpa-onnx-win-x64@1.13.8)。 - 可配置模型路径与线程:支持自定义模型目录、CPU 线程数、是否在启动时自动下载缺失模型。
- 设置页与本地桥接:Harness 内 Plugins → Voice ext 可改配置;本地表单桥接地址为
127.0.0.1:49234,提供GET /status、POST /settings、POST /prepare。 - 自检:可通过配置
selfTest: <wav 路径>经通用服务跑诊断,结果写入%LOCALAPPDATA%\dsh-voice-ext\selftest.json。
安装与启用¶
在 DSH 的插件依赖配置中加入官方 README 给出的条目(勿自行拼接其他安装命令):
"dsh-voice-ext": "github:machine202502/dsh-voice-ext#main"
同时将 dsh-voice-ext 加入 dsh.profile.bundles。安装时会拉取 sherpa-onnx-node@1.13.8 与平台二进制。重启 Harness 后提供者完成注册;若本地无模型且开启了自动下载,启动时会下载约 224 MB 的模型包。
在 profile 中插入插件块示例:
- insert:
- id: voice-ext
name: 'dsh-voice-ext'
config:
providerId: dsh-voice-ext
language: ru
threads: 2
autoDownload: true
若希望默认 STT 走本插件,在 speech-to-text 条目中指定:
- id: speech-to-text
config:
defaultProvider: dsh-voice-ext
language: ru
插件设置项¶
Plugins → Voice ext 页面字段(与 README 一致):
| 字段 | 默认值 | 含义 |
|---|---|---|
| 模型目录 | %LOCALAPPDATA%\dsh-voice-ext\models\gigaam-v3 |
含 model.int8.onnx 与 tokens.txt 的任意目录 |
| CPU 线程 | 2 | 识别器 numThreads |
| 自动下载 | 开启 | 启动时若缺模型则补全下载 |
典型用法与验证¶
仓库内提供两条 Node 测试命令,用于在不启动完整 UI 的情况下核对模型与提供者 API:
node tests/probe.mjs # 直接识别 tests/fixtures/sample-ru-16k.wav
node tests/provider.mjs # 注册提供者并通过其 API 识别
参考转写句(俄语):「Вот мой голос, меня же слышно хорошо。」(大意:这是我的声音,能听清楚吗。)
日常在 Harness 中:在 Voice input 里选择提供者 dsh-voice-ext 与语言 ru(或 auto),使用原有麦克风按钮录音即可。
适用场景与注意¶
适合:需要在 DSH 智能体或对话界面里做离线俄语听写、且希望与内置 Voice input 共用同一交互的开发者;环境仅有 CPU、不便部署 Python 或 GPU 推理服务时。
注意:
- 插件以当前 DSH 进程权限运行,安装前请阅读 GitHub 源码 与 MIT 许可证;模型 GigaAM 为 MIT,ONNX 转换遵循 sherpa-onnx(Apache-2.0)。
- 默认路径与平台二进制以 README 为准(示例为 Windows
%LOCALAPPDATA%与sherpa-onnx-win-x64);其他平台需确认依赖是否提供对应 sherpa-onnx 包。 - 社区目录 skillhub.cn 插件页 为独立生态索引,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-voice-ext 把 GigaAM v3 俄语 CTC 模型接到 DSH 的 speechToText 管道上,在保持麦克风工作流不变的前提下实现本地离线识别。进一步了解说明与更新,见社区目录页与 GitHub 仓库:
- 目录页:https://www.skillhub.cn/plugins/machine202502/dsh-voice-ext
- GitHub:https://github.com/machine202502/dsh-voice-ext