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 的集成,語音交互可以無縫融入現有的工作流中。

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

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

小夜