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
典型用法¶
- 點擊輸入框左下角的 🎤 按鈕開始錄音(最長 60 秒)。
- 等待界面提示「♪ SenseVoice 正在識別…」,識別完成的文本會自動填入輸入框。
- 懸浮按鈕可顯示模型就緒狀態。若識別失敗,會顯示具體原因,點擊即可重試。
注意事項¶
- 離線批處理:目前不支持流式輸出,爲離線批處理模式,單段錄音時長限制爲 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 的集成,語音交互可以無縫融入現有的工作流中。