dsh-audio-tools:在 DSH 裏用 ffmpeg 與 whisper 處理音軌與轉寫

前言

在 DeepSeek Harness(DSH)裏做音視頻相關任務時,助手往往只能「建議你去裝 ffmpeg、自己跑命令」,無法穩定地讀容器信息、抽音軌或產出帶時間軸的字幕。若把 whisper.cpp 或 OpenAI 兼容轉寫 API 也接進同一套工具,對話裏一句「把這段錄音轉成 srt」就能落到可執行步驟。dsh-audio-tools 就是面向這類需求的社區插件:把探針、格式轉換/抽軌和語音轉寫封裝成三個工具,並附帶 skill 說明何時調用哪一個。

這是什麼

dsh-audio-tools(維護者 Ren-xing,GitHub:Ren-xing/dsh-audio-tools)是 DSH 下的模型推理類插件。官方簡介爲:用本機 ffmpeg 做 probe、轉換/抽取音軌,並用 whisper.cpp 或任意 OpenAI 兼容 API 做語音轉文字。

插件本身零 npm 依賴,不打包 ffmpeg,也不會在後臺替你下載 ffmpeg(本地 whisper 模型與二進制需按需運行安裝腳本)。源碼與問題反饋見 GitHub 倉庫;社區目錄頁見 SkillHub 插件頁。

工具 作用
audio_probe 讀容器、時長、碼率、採樣率、聲道、標籤、音視頻流
audio_convert 轉 mp3/wav/flac/m4a/aac/ogg/opus/wma/aiff;從視頻抽音軌;裁剪;重採樣;單聲道;響度歸一化
audio_transcribe 語音轉文字,返回全文與帶時間軸分段,可寫 .txt / .srt

同時註冊同名 skill(skills/dsh-audio/SKILL.md),用於提示模型在合適場景選用上述工具。

運行要求

安裝插件前,先滿足環境與外部依賴:

  1. DeepSeek Harness 0.2.x(資料中實測 0.2.1-rc.2);package.json 聲明 dsh ≥ 0.2.0。
  2. Node.js ≥ 20(DSH 自帶 24,一般無需另裝)。
  3. ffmpeg + ffprobe 必須在 PATH 中,或在配置裏顯式指定路徑;插件不自帶。

Windows 上安裝 ffmpeg 可任選資料中的一種方式,例如 winget:

winget install --id Gyan.FFmpeg -e

新開終端驗證:

ffmpeg -version
ffprobe -version

資料說明:不需要 GPU;本地轉寫默認走 CPU。若使用 CUDA 版 whisper,可自行替換配置中的 whisperPath。

安裝與啓用

DSH 桌面 profile 的插件需用應用自帶的 CLI 管理(普通 dsh 不能替代 desktop profile 的安裝流程)。推薦從本地 tgz 安裝(資料未提供 github:owner/repo 一鍵命令,請勿憑名稱拼接):

$dsh = "C:\Users\<你>\Desktop\雜七雜八\deepseek\resources\runtime\cli\bin\dsh.cmd"
# 或默認: "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"

& $dsh plugin --profile desktop add "C:\path\to\dsh-audio-tools-0.1.0.tgz"

該命令會更新 profile 的 dependencies、因包聲明 dsh.bundle 而寫入 dsh.profile.bundles,並校驗 cordis.patch.yml 可解析。也可在插件市場/管理界面安裝本地 tgz,效果相同。

完全退出 DeepSeek Harness(含托盤)後再啓動;啓動時 patch 會把 dsh-audio 條目寫入運行配置。確認方式:新建對話詢問「列出你有哪些 audio 工具」,應看到 audio_probe / audio_convert / audio_transcribe。

若工具未出現,檢查 %USERPROFILE%\.dsh\profiles\desktop\package.json 的 dsh.profile.bundles 是否包含 dsh-audio-tools,以及啓動日誌裏是否有 dsh-audio-tools 報錯。資料強調:不要通過改 profile 裏的 cordis.yml 快照來裝插件;用戶側配置覆蓋應寫在 cordis.patch.yml。

配置

所有配置鍵可選;類型或鍵名錯誤只會告警,不會阻止 profile 啓動。在 profile 的 cordis.patch.yml 中用 id dsh-audio 定位,例如:

- id: dsh-audio
  config:
    ffmpegPath: 'D:\tools\ffmpeg\bin\ffmpeg.exe'
    ffprobePath: 'D:\tools\ffmpeg\bin\ffprobe.exe'
    modelDir: 'D:\models\whisper'
    defaultModel: 'small'
    language: 'zh'
    backend: 'cli'
    timeoutMs: 900000

常用項(默認值以 README 爲準):

鍵 默認 說明
ffmpegPath / ffprobePath null 不填則在 PATH 查找
whisperPath null 不填則找 <插件>/vendor/whisper/whisper-cli.exe,再找 PATH
modelDir ~/.dsh/audio-models 存放 ggml-*.bin
defaultModel small tiny / base / small / medium / large-v3
language zh 轉寫語言;auto 爲自動檢測
backend cli cli(whisper.cpp)或 api(OpenAI 兼容)
apiBaseUrl / apiKey / apiModel 見 README API 後端;單文件上限 24 MB
timeoutMs 600000 單次 ffmpeg/whisper 超時(毫秒)

僅當 backend: cli 時需要本地 whisper.cpp。在插件目錄執行安裝腳本(會下載 Windows 二進制與 ggml 模型):

cd "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-audio-tools"
node scripts\setup-whisper.mjs --model small

國內默認走 hf-mirror.com;要官方 Hugging Face 源可加 --mirror hf。中文日常使用 small 起步;追求準確率可用 medium。

典型用法

直接對助手用自然語言描述任務即可。README 中的示例包括:

  • 查看某 mp4 的時長、碼率與音軌信息。
  • 轉成指定碼率的 mp3,或從時間點起裁剪並做響度歸一化。
  • 將錄音轉寫爲帶時間軸字幕並保存爲 srt,或轉寫後讓助手總結內容。

工具也可按 JSON 參數調用。探針示例:

{ "path": "D:/media/lecture.mp4" }

audio_convert 必填 input;可選 format、output、bitrate、sampleRate、channels、start/duration、normalize、audioStream、overwrite 等(詳見 README 參數表)。

audio_transcribe 必填 input;可選 language、model、backend、prompt(僅 cli)、srt、output 等。

適用場景與注意

適合誰:已在 DSH desktop profile 下工作、本機或網關側有 ffmpeg,且需要把「看媒體信息 → 抽軌/轉碼 → 轉寫/出字幕」串在同一會話裏的開發者或內容處理流程。

安全與邊界(來自 README):不打包 ffmpeg,缺失時會報錯並提示安裝方式;不原地覆蓋輸入文件,同路徑輸出需 overwrite: true 且先寫臨時文件再替換;外部命令通過參數數組調用,不拼 shell;超時默認 10 分鐘,到點終止子進程樹;API 密鑰僅存本地配置。

權限與信任:插件以當前 DSH 進程權限運行,可讀寫你指定的路徑並調用 ffmpeg/whisper 或配置的 API。安裝前應閱讀 源碼 與 MIT 許可證,自行評估是否納入環境。

平臺說明:資料中的安裝腳本、路徑示例與 whisper 二進制主要針對 Windows;Linux/macOS 用戶若使用插件,需自行保證 ffmpeg 在 PATH 或可配置路徑,本地 cli 轉寫需自備可用的 whisper 可執行文件與模型目錄。

中文路徑:Windows 版 whisper.cpp 對非 ASCII 路徑敏感;插件會在轉寫時使用英文臨時目錄並對模型做硬鏈接/複製。若仍失敗,可調整 TEMP 或改用 backend: "api"。

SkillHub 上的社區目錄與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件是社區維護的擴展之一。

結尾

dsh-audio-tools 把 ffmpeg 側的探針與轉碼、以及 whisper.cpp 或 OpenAI 兼容 API 的轉寫,收斂爲三個可對話調用的工具,並零 npm 依賴、不捆綁 ffmpeg,適合在 DSH 裏做可復現的音視頻處理鏈路。

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

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

小夜