dsh-manim:在 DSH 里把论文与方法渲成带旁白的 Manim 讲解片

前言

在 DSH 里让智能体「讲清楚一个方法」,常见做法是堆文字或贴几张静态图。若要把流程拆成有节奏的讲解视频,往往还要单独开 Manim 工程、自己管 Python 环境、配音与成片预览,和编辑器里的对话、工作区是两套链路。

dsh-manim 是维护者 Strivy-ZSY 发布的 DSH 插件(社区目录分类为「趣味换装」)。它在宿主里挂上「动画」入口与「动画工作室」面板,用 Manim 0.22 渲染场景,并用系统或在线 TTS 生成旁白,成片 .mp4 可在工作区文件树里直接预览播放。

这是什么

一句话:DSH 侧的 Manim 动画工作室——把论文、方法或流程说明做成带旁白的讲解视频,尽量全程留在编辑器里完成。

插件随包提供四个 agent 工具(manim_scene、manim_render、manim_frames、manim_voice),以及 skill manim-explainer(如何把内容拆成 4–8 拍、版式与节奏、常见坑)。渲染依赖装在插件自有虚拟环境里的 Manim 0.22,不往系统 Python 里装包;旁白不需要下载语音模型。

核心功能

面板与工作区

  • 左侧栏「动画」入口(部分宿主默认只在右侧 tab 打开,可通过 profile 配置 sidebarEntry: true 显式要左栏一行)。
  • 右侧栏「动画工作室」:场景列表、画质、渲染与取消、播放、分镜条、实时日志。
  • 扫描工作区内 .py 场景文件;渲染完成后在工作区得到成片,插件注册了视频预览渲染器。

Agent 工具

工具 作用(README 示例)
manim_scene 从模板创建场景,如 action='template', name='MyExplainer'
manim_render 按路径与画质渲染,如 quality='draft'
manim_frames 抽帧,如 count=6
manim_voice 旁白与音色,如 action='list'

建议工作顺序为 audio-first:先出旁白与每句时长,再按句长对画面。

配音

manim_voice 在 engine='auto' 时优先 Edge TTS(联网、免 key,含多个中文音色),Windows 上可走 SAPI 离线。输出 animations/voice/*.wav 与 cues.json;也可手写替换音频与 cue 结构,场景代码可不变。

公式与运行时

默认用 manimkit.mathtex()(matplotlib mathtext),不需要 LaTeX / TeX 发行版;机器上有可用 LaTeX 时可自动走 MathTex。README 说明 manim 0.22 用 PyAV 编码,旁白 mp3 转 WAV 也在进程内,不依赖单独安装 ffmpeg。

驱动 runtime/engine/driver.py 单独实现:媒体目录由插件管理、NDJSON 进度事件、plan 阶段先快速量时长,避免往工作区写 ./media/… 杂物。

环境要求

需要 说明
Node.js ^22.19.0 \|\| >=24(见 package.json engines)
Python ≥ 3.10,仅用于创建插件 runtime/venv
DSH 宿主 插件注册侧边栏槽位与 agent 工具,需宿主运行

当前包版本为 1.1.20(package.json),许可证 MIT。

安装与启用

下面介绍装进官方 DSH 客户端的用法;插件以 bundle 形式随 cordis.patch.yml 安装,一般无需手改 profile。

1、侧栏打开「插件」→「添加插件」。

2、在「包名或地址」填入仓库地址并安装、启用:

https://github.com/Strivy-ZSY/dsh-manim

3、首次使用需在本机插件安装目录下一次性建立渲染运行时(约 500 MB Python 依赖,装进 runtime/venv)。面板若提示「运行时未就绪」,在安装目录执行:

cd <安装目录>/node_modules/dsh-manim
node runtime/setup-runtime.mjs

仓库开发脚本里还有 npm run setup:runtime(等价于上述 setup),以及 npm install / npm run build 供本地构建;从 GitHub 页面安装的用户通常只需第 3 步。

若通过 pnpm 从 GitHub 拉包时遇到传输错误,README 给出了 git config、重试参数与镜像 / tar 包等变通方式,可按文档顺序尝试。

安全说明:插件在 DSH 进程权限下运行,安装前请自行查看 源码 与 LICENSE,确认符合你的环境与合规要求。

典型用法

面板:点「动画」→ 选场景 .py → 选画质 → 渲染;可拖动播放、点分镜跳转,日志可实时查看并取消任务。

会话里(摘自 README):

manim_scene(action='template', name='MyExplainer')   # 从模板起一个场景
manim_render(path='animations/MyExplainer.py', quality='draft')
manim_frames(path='animations/MyExplainer.py', count=6)
manim_voice(action='list')                            # 看可用音色

旁白与画面对齐时,场景里可挂 find_cue_sheet、narration、hold(见 README「配音」一节)。

README 中的示例成片约 78 秒(1920×1080 @ 60fps,含中文旁白),演示把方法拆成 8 拍;示例内容基于已发表论文 UNETR++(IEEE TMI 2024)的公开方法说明。

配置(可选)

cordis.patch 里可覆盖部分键,均有默认值。例如:

键 说明
agentTools 暴露给模型的工具,默认四个全开
pythonPath 默认指向 runtime/venv 下解释器
outputDir 默认 animations
cacheDir 渲染缓存目录

完整列表见仓库 README「配置」一节。

适用场景与注意

适合:需要在 DSH 工作区里快速做方法讲解片、希望 Manim 版本固定、又不想本机装 LaTeX / ffmpeg / 本地语音模型的开发者或内容作者。

注意:

  • Edge TTS 需要网络;离线 Windows 可考虑 SAPI。
  • mathtex() 不宜写中文,中文用 text() 单独排版。
  • 社区目录 SkillHub 插件页 与 GitHub 为独立信息源;目录站点与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-manim 把 Manim 渲染、旁白 cue、面板预览和四个 manim_* 工具收进一个 DSH 插件,降低「论文/方法 → 讲解视频」的环境与胶水成本。进一步了解可访问社区目录页与仓库:

  • 目录页:https://www.skillhub.cn/plugins/Strivy-ZSY/dsh-manim
  • GitHub:https://github.com/Strivy-ZSY/dsh-manim
羽毛球分组比赛记分
小程序二维码

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

小夜