dsh-audio-tools: Processing Audio Tracks and Transcription in DSH with ffmpeg and 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 里做可复现的音视频处理链路。

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

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

Xiaoye