前言¶
DSH 強調“一切皆插件”。在 DSH Web UI 中,如果需要在輸入框中增加語音輸入,一種常見方式是直接依賴瀏覽器識別能力。dsh-voice-funasr 提供另一條路徑:先使用本地 FunASR int8 ONNX 引擎完成轉寫,本地引擎不可用時再回退瀏覽器 Web Speech API,並可選調用用戶自己的 LLM 端點做兩段式潤色。
這是什麼¶
dsh-voice-funasr 是 DSH Web UI 的本地離線語音輸入插件,維護者爲 @Zacklinkk,許可證爲 MIT,package.json 中 version 爲 0.1.2,private 爲 true。
它解決的問題是:在 DSH Web UI 中通過麥克風按鈕“按住說話、鬆手發送”,並儘量讓語音轉寫留在本地完成;如果本地引擎不可用,再回退到瀏覽器識別。
兼容性與運行環境:
- DSH:
>=0.1.0-rc.3 <0.2.0 - Node.js:
^22.19.0 || >=24.0.0 - Web profile
- 瀏覽器需要
MediaDevices/AudioWorklet,或可用的Web Speech API回退
核心功能¶
本地轉寫¶
插件使用本地 FunASR 引擎,模型組合爲 paraformer-large + FSMN-VAD + ct-punc,採用官方 int8 ONNX 權重。
默認模型目錄爲:
~/.dsh/voice-funasr/models
該目錄包含 paraformer/、vad/、punc/ 三個子目錄,模型約 520MB。
回退瀏覽器識別¶
本地引擎不可用時,插件自動回退瀏覽器 Web Speech API。設置面板中可處理識別後端、語言、潤色開關與模式、引擎狀態、重新檢測和加載模型。
可選 LLM 潤色¶
插件支持可選的兩段式 LLM 潤色,用於修正口頭禪或口誤。
唯一可能出網的是可選潤色,走用戶自己的 LLM 端點。
輸入與音頻流轉¶
- 輸入框左側麥克風按鈕:按住說話,鬆手自動發送。
- 潤色開啓時,先潤色再發送。
- 音頻僅在內存流轉。
- 臨時 WAV 用後即刪,默認不落盤。
- 插件由
package.json#dsh.bundle.patch自動加入 profile。
安裝與啓用¶
先安裝 Python 依賴:
python3 -m pip install -U funasr-onnx modelscope
這一步用於準備本地推理所需的 Python 包。
接着下載模型:
python3 python/download_models.py --model-root ~/.dsh/voice-funasr/models
這一步將模型放到默認模型目錄。
在插件 checkout 內安裝開發鏈接:
dsh plugin --profile web add .
如果要安裝發佈包:
dsh plugin --profile web add ./dsh-voice-funasr-0.1.2.tgz
然後重啓 dsh web。首次說話前可在 設置 → 本地語音(FunASR)→「加載模型」預熱。
典型用法¶
1、打開 DSH Web UI 的會話輸入框。
2、按住輸入框左側的麥克風按鈕說話。
3、鬆開按鈕後自動發送;如果開啓潤色,會先調用用戶配置的 LLM 端點做潤色,再發送。
4、在 設置 → 本地語音(FunASR) 中查看引擎狀態,執行重新檢測或加載模型,並調整識別後端、語言、潤色開關與模式。
配置項¶
插件支持以下配置項,默認值如下:
| 鍵 | 默認值 |
|---|---|
pythonCommands |
[python3, python] |
modelRoot |
~/.dsh/voice-funasr/models |
threads |
4 |
channelAuthority |
loopback |
maxAudioSeconds |
120 |
適用場景與注意¶
適合需要在 DSH Web UI 中使用本地語音輸入、希望轉寫儘量離線完成、並願意使用自己 LLM 端點做可選潤色的用戶。
使用前注意:
- 插件由
package.json#dsh.bundle.patch自動加入 profile,不要手工把dsh-voice-funasr插入 profile 的cordis.patch.yml,否則同一 loader id 會重複。 - 與
dsh-voice-chat都註冊conversation.input.left槽位,請勿同時啓用。 - 唯一可能出網的是可選潤色,走用戶自己的 LLM 端點。
- 插件以當前
dsh進程權限運行;安裝前應檢查源碼與許可證。該插件許可證爲 MIT。
卸載¶
執行:
dsh plugin --profile web remove dsh-voice-funasr
然後刪除 ~/.dsh/voice-funasr/ 目錄。如果不再需要本地推理,可以卸載相關 Python 包(可選)。
鏈接¶
- 倉庫:https://github.com/omdsh-dev/dsh-voice-funasr
- 資料給出的目錄頁:https://www.skillhub.cn/plugins/omdsh-dev/dsh-voice-funasr