前言¶
在 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),用於提示模型在合適場景選用上述工具。
運行要求¶
安裝插件前,先滿足環境與外部依賴:
- DeepSeek Harness 0.2.x(資料中實測 0.2.1-rc.2);
package.json聲明dsh≥ 0.2.0。 - Node.js ≥ 20(DSH 自帶 24,一般無需另裝)。
- 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 裏做可復現的音視頻處理鏈路。