dsh-local-transcribe:基於 whisper.cpp 的完全本地語音轉寫 DSH 插件

前言

在 DSH 裏做會議記錄、播客整理或從視頻抽字幕時,若走雲端 ASR,既要上傳音頻,又受配額與隱私策略約束。自備 whisper.cpp 可以本地推理,但命令行拼路徑、合併多段文件、對齊時間軸仍要手工處理。dsh-local-transcribe 由維護者 bizbin 發佈,歸類爲模型推理,把 whisper.cpp 接到 DSH:提供側邊欄可視化面板,並在智能體會話中暴露 transcribe_audio 工具,轉寫與音頻處理均在本機完成。

這是什麼

dsh-local-transcribe 是 DeepSeek Harness(DSH)插件,用 whisper.cpp 做完全本地語音轉文本,音頻不上傳外網。宿主倉庫:bizbin/dsh-local-transcribe;社區目錄頁:SkillHub 插件頁。許可證 MIT;package.json 標明版本 1.0.0,要求 DSH >=0.2.2-rc.1 且使用 web profile。

核心功能

可視化面板

打開側邊欄波形圖標後,可拖拽或瀏覽本地文件;多文件可按順序合併再識別。上傳文件落在 ~/.dsh/storages/local-transcribe-uploads/,單文件上限 500 MB。轉寫過程中顯示階段與進度;結束後可預覽全文、分段時間軸,播放合併音頻,並就地編輯文本後保存(會重寫原始 txt 並重新生成 markdown)。

智能體工具 transcribe_audio

任意 agent 會話可調用:單文件用 path,多文件按序合併用 paths;可選 language、prompt、output_dir、output_name、markdown、keep_wav 等。返回完整文本、分段時間軸與輸出文件路徑。

格式與安全

支持的輸入包括 m4a、mp3、wav、flac、aac、ogg、opus、wma、m4b、amr、aiff、aif、caf,以及 mp4、mov、mkv、avi、webm、m4v、ts、3gp、mpg、mpeg 等視頻容器。面板 HTTP 路由(/local-transcribe/rpc、/local-transcribe/upload、/local-transcribe/play/*)僅接受環回地址(127.0.0.1 / localhost),插件卸載時路由會移除;轉寫依賴本機二進制,音頻不離開本機。

環境與依賴

使用前需滿足:

  1. 已運行 DSH(≥ 0.2.2-rc.1),且 profile 爲 web。
  2. 系統 PATH 上有 ffmpeg / ffprobe(macOS 可用 brew install ffmpeg)。
  3. 已編譯 whisper.cpp,能得到 whisper-cli 可執行文件,並下載 ggml 模型文件。

whisper.cpp 與模型示例如下(摘自官方 README):

git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j
curl -L -o ggml-medium.bin https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin

安裝與啓用

在 DSH 中可通過 Plugin Manager,或由智能體執行 install_bundle,指向本插件解壓後的絕對路徑。README 給出的直接安裝說明爲:

# 在 DSH 中向智能體說明,或在 Plugin Manager UI 中執行:
#   install_bundle <dsh-local-transcribe 目錄的絕對路徑>

也可從 Plugin Manager 安裝 bundle(需先取得倉庫內容到本地目錄)。插件以當前 DSH 進程權限運行,安裝前請自行查看源碼與 MIT 許可證。

配置

在 profile 的 cordis.patch.yml 中,爲 local-transcribe 條目填寫 config:

- id: local-transcribe
  config:
    whisperCli: /path/to/whisper.cpp/build/bin/whisper-cli
    model: /path/to/ggml-medium.bin
    # ffmpeg: ffmpeg
    # ffprobe: ffprobe
    # language: zh
    # prompt: '以下是普通話的句子。'
    # threads: 10
配置項 默認值 含義
whisperCli PATH 上的 whisper-cli whisper-cli 可執行文件路徑
model (必填) ggml 模型文件的絕對路徑
ffmpeg / ffprobe ffmpeg / ffprobe PATH 或絕對路徑
language zh 默認語言;auto 爲自動檢測
prompt 以下是普通話的句子。 whisper 初始 prompt
threads 10 whisper-cli 線程數

whisperCli 與 model 是日常使用裏最常需要改的兩項。

典型用法

面板工作流

  1. 打開側邊欄波形圖標。
  2. 拖拽或選擇音頻(或視頻),調整多文件順序,指定輸出目錄、語言與 prompt。
  3. 點擊 Transcribe,等待進度完成。
  4. 預覽時間軸、試聽合併音頻,按需編輯後點 Save edits。

默認輸出目錄爲首個輸入文件旁,或由面板指定的 output_dir,生成:

  • <name>_原始轉寫.txt — 純文本
  • <name>_帶時間軸.json — 毫秒級分段
  • <name>_轉寫稿.md — 按分鐘分節的 markdown

在會話中調用 transcribe_audio

在已加載該插件的 DSH 會話中,讓智能體對本地文件調用 transcribe_audio:單文件傳 path,多段合併傳有序 paths,並按需設置 language、output_dir 等;工具返回全文、時間軸與寫出路徑,便於後續摘要或入庫。

適用場景與注意

適合需要在本地處理會議錄音、採訪、課程視頻字幕,且希望與 DSH 智能體共用同一套轉寫能力的開發者。中文默認可將 language 設爲 zh,並用 README 中的 prompt 示例減少誤識別。

注意:轉寫速度與質量取決於所選 ggml 模型與 threads;面板單文件 500 MB 限制需自行拆分超大素材。DSH 生態強調「一切皆插件」;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

鏈接

  • 目錄頁:https://www.skillhub.cn/plugins/bizbin/dsh-local-transcribe
  • GitHub:https://github.com/bizbin/dsh-local-transcribe
羽毛球分组比赛记分
小程序二维码

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

小夜