前言¶
在 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),插件卸载时路由会移除;转写依赖本机二进制,音频不离开本机。
环境与依赖¶
使用前需满足:
- 已运行 DSH(≥ 0.2.2-rc.1),且 profile 为 web。
- 系统 PATH 上有
ffmpeg/ffprobe(macOS 可用brew install ffmpeg)。 - 已编译 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 是日常使用里最常需要改的两项。
典型用法¶
面板工作流¶
- 打开侧边栏波形图标。
- 拖拽或选择音频(或视频),调整多文件顺序,指定输出目录、语言与 prompt。
- 点击 Transcribe,等待进度完成。
- 预览时间轴、试听合并音频,按需编辑后点 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