dshtools-sensevoice-input
基于 SenseVoiceSmall(iic/SenseVoiceSmall)多语言语音理解模型的 DSH Desktop 本地语音输入插件。
- Stars
- 1
- Language
- TypeScript
- Created
- Sep 3, 2026
- Updated
- Sep 3, 2026
Introduction
dshtools-sensevoice-input
基于 SenseVoiceSmall 的 DSH Desktop 本地语音输入插件:点击输入框旁的 🎤 说话,文本自动写入输入框草稿,并显示语言/情感标签(如 zh · NEUTRAL)。支持 50+ 语言,全程本地 CPU 推理,音频不出本机。
特性
- 🎤 composer 内嵌麦克风按钮,识别文本自动写入草稿(
inputActions.setDraft) - 🏷️ 语言/情感标签解析(
<|zh|><|NEUTRAL|>…→ 结构化字段) - 🖥️ funasr + SenseVoiceSmall 本地推理,无任何云服务
- ⚡ 模型懒加载(首次 10–30s,之后单次几秒);Python 进程崩溃自愈
- 🌓 主题自适应 UI
安装 / 卸载
1. 准备推理环境(一次性,约 5 GB)
.\scripts\setup.ps1 # uv → Python 3.12 venv → torch/funasr → 下载 SenseVoiceSmall 模型
默认安装到
~\.dsh-sensevoice,模型缓存~\.cache\modelscope; 也可自行用任意装有 funasr 的 Python,并通过环境变量DSHSENSEVOICE_PYTHON指定解释器。
2. 安装插件(任选其一,重启 DSH Desktop 后生效)
# npm(推荐;已上架 DSH 插件市场,市场内一键安装同款)
dsh plugin --profile desktop add dshtools-sensevoice-input
# GitHub 源码
dsh plugin --profile desktop add github:ilovedyou6666-hub/dshtools-sensevoice-input
若 PATH 中没有
dsh,在 DSH Desktop 内置终端执行,或从 设置 → 插件市场 安装。 更新:remove后再add(强制刷新);安装后可在 设置 → 插件 中确认。
3. 卸载
dsh plugin --profile desktop remove dshtools-sensevoice-input
使用
- 点击输入框左下 🎤 开始录音(再点结束,最长 60s);
- 等待「♪ SenseVoice 正在识别…」,文本自动写入输入框;
- 悬浮按钮可看模型就绪状态;失败显示具体原因,再点重试。
开发
pnpm install && pnpm check && pnpm test # 依赖 / 类型检查 / 测试
pnpm build # tsdown → lib/(host ESM + client bundle)
pnpm verify:package && pnpm release:check # 包契约 / 发布元数据校验
src/ TypeScript 源码(host:桥/路由/内嵌 Python;client:组件/音频/API)
tests/ vitest 测试
lib/ 构建产物(已提交,github 安装免构建)
scripts/ setup.ps1 · verify-package · release-check
.github/ CI / 发布工作流 / issue 模板
故障排查
| 现象 | 处理 |
|---|---|
点击后 HTTP 405 / 403 | 旧版时序问题,更新到最新版并重启 |
| 「无法访问麦克风」 | 允许 Electron 的麦克风权限 |
python_not_found | 先执行 scripts\setup.ps1 |
model_load_failed | 模型缓存缺失,重跑 setup.ps1 的模型下载 |
| 首次识别很慢 | 正常:CPU 加载模型 10–30s,之后复用 |
已知限制
- 离线批处理,无流式;单段 ≤ 60s;
- 首次识别需等待模型加载;
- 仅服务 127.0.0.1 桌面进程(桌面自带访问控制)。
版本记录
详见 CHANGELOG.md(当前 1.1.1)。
许可证
MIT