dsh-voice-ext:DSH 离线俄语语音识别(GigaAM v3)

前言

在 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。

核心功能

  1. 接入 Harness 语音栈:通过 Cordis patch 注册 STT 提供者 dsh-voice-ext,麦克风 UI 与插入逻辑保持原样。
  2. 本地推理:依赖 sherpa-onnx-node@1.13.8 及对应平台二进制(Windows 为 sherpa-onnx-win-x64@1.13.8)。
  3. 可配置模型路径与线程:支持自定义模型目录、CPU 线程数、是否在启动时自动下载缺失模型。
  4. 设置页与本地桥接:Harness 内 Plugins → Voice ext 可改配置;本地表单桥接地址为 127.0.0.1:49234,提供 GET /status、POST /settings、POST /prepare。
  5. 自检:可通过配置 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
羽毛球分组比赛记分
小程序二维码

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

小夜