为语音输入添加俄语本地识别,离线转写无需联网
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/7 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ripls56/dsh-voice-ru.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 28 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 14 处,展示前 14 条)
- 发起网络请求lib/index.js:233
const response = await fetch(`${worker.url}/transcribe?language=${encodeURIComponent(language)}`, { - 读取本地文件lib/download.js:12
const info = await stat(path); - 读取本地文件lib/download.js:25
for await (const chunk of createReadStream(path, { signal })) digest.update(chunk); - 写入本地文件lib/download.js:40
await mkdir(dirname(asset.destination), { recursive: true }); - 发起网络请求lib/download.js:41
const response = await fetch(asset.url, { signal, redirect: "follow" }); - 写入本地文件lib/download.js:63
await pipeline(response.body, hashing, createWriteStream(partial, { flags: "wx", mode: 0o600 }), { signal }); - 写入本地文件lib/download.js:71
await rename(partial, asset.destination); - 删除本地文件lib/download.js:74
await rm(partial, { force: true }); - 读取本地文件lib/runtime.js:70
entries = await readdir(dir, { withFileTypes: true }); - 写入本地文件lib/runtime.js:107
await mkdir(paths.runtimeInstallRoot, { recursive: true }); - 读取本地文件lib/runtime.js:121
extractTarGz(await readFile(archive), paths.runtimeInstallRoot); - 写入本地文件lib/runtime.js:171
mkdirSync(dirname(target), { recursive: true }); - 写入本地文件lib/runtime.js:172
writeFileSync(target, tar.subarray(dataStart, dataEnd), { mode: mode & 0o777 }); - 读取密钥环境变量lib/worker.js:14
const token = process.env.DSH_VOICE_RU_TOKEN;
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 俄语本地语音识别
- 离线转写无需联网
- 首次下载模型校验
DeepSeek Harness 语音输入的本地俄语语音转文字服务商:在 transcribe.cpp 上跑 NVIDIA Nemotron 3.5 ASR 0.6B(GGUF)。首次使用时下载模型和原生运行时,经 sha256 校验。
README
由 DeepSeek 最新模型翻译生成dsh-voice-ru
为 DeepSeek Harness(DSH)语音输入提供俄语语音识别。
插件给语音输入加了第二个本地服务商,和内置的 SenseVoice 并列——后者不懂俄语。引擎是 NVIDIA Nemotron 3.5 ASR Streaming 0.6B(GGUF),跑在原生运行时 transcribe.cpp 上。全部本地计算,只有首次下载文件时才需要联网。
English: local speech-to-text provider for DSH voice input, adding Russian (and 28 more locales) via NVIDIA Nemotron 3.5 ASR on transcribe.cpp. No native libraries and no model weights are stored in this repository — both are downloaded on first use and verified by sha256. The only binary files here are three tiny synthetic WAV fixtures used by the tests.
环境要求
展开完整文档(README 剩余 1 节)
dsh-voice-ru
为 DeepSeek Harness(DSH)语音输入提供俄语语音识别。
插件给语音输入加了第二个本地服务商,和内置的 SenseVoice 并列——后者不懂俄语。引擎是 NVIDIA Nemotron 3.5 ASR Streaming 0.6B(GGUF),跑在原生运行时 transcribe.cpp 上。全部本地计算,只有首次下载文件时才需要联网。
English: local speech-to-text provider for DSH voice input, adding Russian (and 28 more locales) via NVIDIA Nemotron 3.5 ASR on transcribe.cpp. No native libraries and no model weights are stored in this repository — both are downloaded on first use and verified by sha256. The only binary files here are three tiny synthetic WAV fixtures used by the tests.
环境要求
- DSH(桌面版),已开启语音输入;Windows x64、Linux x64/arm64、macOS arm64/x64 都行。
- 约 1 GB 空闲磁盘(模型 751 MB + 运行时 2–21 MB + 缓存)。
- 首次启动需要联网:要下载运行时(从 GitHub)和模型(从 Hugging Face)。
安装
方式 1. 用命令装进 DSH 配置档
dsh plugin --profile <профиль> add github:ripls56/dsh-voice-ru
首次启动可能报错 ERR_PNPM_IGNORED_BUILDS: koffi@2.16.3。这时 DSH 会往 <профиль>/pnpm-workspace.yaml 里补一段占位:
allowBuilds:
koffi: set this to true or false
把 koffi: false 填上,再跑一遍命令。koffi 不需要构建脚本——包里带了现成的二进制文件,没有它 require('koffi') 照样能用(在干净配置档上验证过)。别填 true:这个环境里 cnoke 构建会失败。
然后把 bundle 加进 <профиль>/package.json——dsh plugin add 只装依赖,不会往 bundle 列表里加这一行:
"dsh": { "profile": { "bundles": ["...", "dsh-voice-ru"] } }
重启 DSH。不启动应用也能检查组成: dsh <профиль> --dump-config | findstr voice-ru——应该输出 - id: voice-ru。
方式 2. 走 GUI
Settings → Plugins → 安装 bundle,spec 填 github:ripls56/dsh-voice-ru。
管理器会自己注册 bundle;如果它问起 koffi 的 build 脚本——不需要构建,可以不放行。装完重启 DSH。
方式 3. 手动(本地副本)
git clone https://github.com/ripls56/dsh-voice-ru
cd dsh-voice-ru
npm install # или: npm install --omit=dev
然后把插件加进 DSH 配置档(%USERPROFILE%\.dsh\profiles\<профиль>\package.json 或 ~/.dsh/profiles/<профиль>/package.json):
{
"dependencies": { "dsh-voice-ru": "link:C:/path/to/dsh-voice-ru" },
"dsh": { "profile": { "bundles": ["...", "dsh-voice-ru"] } }
}
再重启 DSH。不用手动加 - id: voice-ru 这一行:插件自带 cordis.patch.yml,会把自己插进组合里。
不管用哪种方式,装完都去:Settings → Voice input → 服务商选 Nemotron 3.5 ASR 0.6B (Q8_0 GGUF),语言选 Авто。
首次启动
首次 prepare() 时(Settings → Voice input 里的准备按钮,或第一次录音),插件会自己下载并用 sha256 校验:
| 内容 | 来源 | 大小 |
| 适配你平台的 transcribe.cpp v0.3.1 运行时 | GitHub release | 1.8–21 MB |
| 模型 nemotron-3.5-asr-streaming-0.6b-Q8_0.gguf | Hugging Face | 751 MB |
缓存位置:%LOCALAPPDATA%\dsh-voice-ru(Windows)或 ~/.local/share/dsh-voice-ru。
下载到一半的文件只有通过哈希校验后才会正式发布,所以网络中断不会弄坏缓存。进度可以在 Settings → Voice input 里看到。
语言:俄语、英语和混合语音
语言列表里有 Авто 和俄语:
- Авто — 模型自己判断语言。俄语语音照常识别,里面的英语单词保留拉丁字母。
- ru — 强制提示俄语。纯俄语稍微更稳,但英语单词可能被转成西里尔字母。
在合成语音上的实测(npm run test:lang,文件在 test/sample.wav):
| 说出的内容 | ru | auto |
| «Запушь изменения в main branch и открой pull request» | Запуш изменения и открой пул рек. Потом запусти тесты | Запуш изменения main branch и открой Pull Request Потом запусти тесты |
| «Открой файл config.json и сделай git push в ветку main» | Открой файл конфигсон и сделай гит Пуш ветку main | Открой файл, конфигсон и сделай git push в ветку main |
| 纯俄语,8.6 秒 | 正确,带标点 | 同样的正确文本 |
所以默认设为 Авто。连读的复合术语,比如「config.json」,自动模式有时还是会输出西里尔字母:模型没有 VOCABULARY / CONTEXT_PROMPT(用 npm run test:features 检查),没法给它提示术语列表。
工作原理
клиент voice-input (WAV 16 кГц моно PCM16)
│ speech/transcribe
▼
speechToText (DSH) ──► провайдер nemotron-local (этот плагин)
│ subprocess + bearer-токен
▼
lib/worker.js: koffi → transcribe_run → текст
- lib/index.js — 注册服务商、准备状态、下载运行时和模型并校验 sha256、请求队列、空闲 5 分钟后卸载 worker。
- lib/runtime.js — 各平台运行时表(URL + sha256)、解压 .tar.gz 不依赖外部库、查找动态库。
- lib/download.js — 原子下载,校验大小和哈希。
- lib/worker.js — worker 进程:通过 koffi 走 FFI,HTTP /transcribe?language=…。
- lib/locales.js — 短代码(ru)→ 模型 locale(ru-RU)。
RTX 3060(Vulkan)上的速度:8.6 秒音频约 0.5 秒(RTF x15–18);CPU 上约 1.3 秒(RTF x6)。模型在多次录音之间常驻内存。
测试
npm install # нужен koffi
npm run test # провайдер целиком на mock-контексте DSH
npm run test:fresh # «чистая установка»: пустой кэш, скачивание рантайма, транскрипция
npm run test:ffi # сырой FFI: koffi → библиотека → модель
npm run test:lang # сравнение языковых подсказок на смешанной речи
npm run test:features # какие фичи модели поддержаны
test:fresh проверяет ровно тот путь, который проходит новый пользователь: рантайм
скачивается по-настоящему, модель берётся из кэша (--download-model заставляет
скачать и её, 751 МБ).
Аудиофикстуры в test/.wav — синтетическая речь (Windows SAPI, голоса Irina и David), собранная для проверки русского, английского и смешанного текста. Ничего личного в них нет; test/join-wav.mjs склеивает такие файлы из кусков.
Конфигурация (необязательно)
Ключи в записи плагина:
| Ключ | По умолчанию | Назначение |
| providerId | nemotron-local | id провайдера в DSH |
| dataRoot | %LOCALAPPDATA%\dsh-voice-ru | кэш рантайма и модели |
| runtimeDir | — | готовый каталог transcribe.cpp вместо загрузки |
| modelPath | — | готовый файл модели вместо загрузки |
| backend | auto | auto/cpu/vulkan/cuda/cpu_accel |
| threads | 0 | потоки CPU (0 — выбор библиотеки) |
| idleTimeoutMs | 300000 | простой до выгрузки воркера |
| inferenceTimeoutMs | 120000 | таймаут одной транскрипции |
Ограничения
- Максимальная длительность записи — лимит voice-input DSH (120 с).
- Первый запуск требует сети; дальше всё офлайн.
- Докачки нет: если загрузка 751 МБ оборвалась, она начнётся заново (частичный
файл удаляется, в кэш попадает только проверенный целиком файл).
- Модель распространяется по лицензии OpenMDW-1.1, рантайм и ggml — MIT.
Лицензии и источники
- Код плагина: MIT (см. LICENSE).
- nvidia/nemotron-3.5-asr-streaming-0.6b
— модель, лицензия OpenMDW-1.1.
- handy-computer/nemotron-3.5-asr-streaming-0.6b-gguf
— GGUF-конвертация, к которой привязан плагин (sha256 закреплён в коде).
- handy-computer/transcribe.cpp v0.3.1
— нативный рантайм, MIT.预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ripls56/dsh-voice-ru
为语音输入添加俄语本地识别,离线转写无需联网
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目