dshtools-sensevoice-input:基于 SenseVoiceSmall 的本地语音输入插件

DSH Desktop 的本地智能体开发中,语音交互是一个常见需求。目前大多数方案需要调用云端 API,存在延迟和隐私顾虑。dshtools-sensevoice-input 插件提供了一种完全本地化的解决方案。它利用 FunASR 和 SenseVoiceSmall 模型,在用户点击输入框旁的麦克风按钮后,直接将识别出的文本写入草稿区。

核心功能

  • 集成麦克风与草稿写入:在 DSH Desktop 的 composer 输入框左下角集成了麦克风按钮。点击后录音,识别文本会自动通过 inputActions.setDraft 写入输入框草稿。
  • 语言与情感标签解析:识别结果包含语言和情感标签(例如 zh · NEUTRAL),方便后续处理。
  • 纯本地推理:基于 FunASR 和 SenseVoiceSmall 模型进行推理,不依赖任何云服务,音频数据不出本机。
  • 模型懒加载与自愈:模型采用懒加载机制,首次加载耗时 10–30 秒,后续单次识别仅需几秒。Python 进程崩溃后具备自愈能力。
  • 主题自适应:UI 界面会自动适配当前的主题。

安装与启用

1. 准备推理环境

插件需要本地 Python 环境。首次使用需运行安装脚本,该过程会下载模型,占用约 5GB 空间。

.\scripts\setup.ps1

默认安装路径为 ~\.dsh-sensevoice,模型缓存于 ~\.cache\modelscope。也可通过环境变量 DSHSENSEVOICE_PYTHON 指定 Python 解释器。

2. 安装插件

安装后需重启 DSH Desktop。

dsh plugin --profile desktop add dshtools-sensevoice-input

若需要从 GitHub 源码安装:

dsh plugin --profile desktop add github:ilovedyou6666-hub/dshtools-sensevoice-input

3. 卸载

dsh plugin --profile desktop remove dshtools-sensevoice-input

典型用法

  1. 点击输入框左下角的 🎤 按钮开始录音(最长 60 秒)。
  2. 等待界面提示「♪ SenseVoice 正在识别…」,识别完成的文本会自动填入输入框。
  3. 悬浮按钮可显示模型就绪状态。若识别失败,会显示具体原因,点击即可重试。

注意事项

  • 离线批处理:目前不支持流式输出,为离线批处理模式,单段录音时长限制为 60 秒。
  • 首次识别延迟:首次使用时,CPU 加载模型需要 10–30 秒,这是正常现象。
  • 权限范围:插件仅服务于 127.0.0.1 的桌面进程,由 DSH Desktop 自带访问控制,无需额外配置。
  • 版本兼容性:若出现 HTTP 405 或 403 错误,通常是因为时序问题,需更新到最新版并重启。
  • 依赖检查:若提示 python_not_found,需先执行 scripts\setup.ps1;若提示 model_load_failed,需重跑该脚本下载模型。

结语

该插件为 DSH Desktop 开发者提供了一个轻量级的本地语音输入方案。通过 inputActions.setDraft 的集成,语音交互可以无缝融入现有的工作流中。

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

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

小夜