dsh-voice-funasr:DSH Web UI 的本地離線語音輸入插件

前言

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
羽毛球分组比赛记分
小程序二维码

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

小夜