ManimGX语音同步教程:用self.say()制作逐字对齐旁白的动画视频
【免费下载链接】manimgxThe animation engine for agents: blazingly fast math and 3D videos with Manims Python API, on a Rust GPU core.项目地址https://gitcode.com/gh_mirrors/man/manimgx点击查看免费下载ManimGX 是运行在 Rust GPU 引擎上的数学动画引擎它提供了self.say()语音同步功能你用一行 Python 就能让 AI 旁白逐字对齐画面自动把动画卡进每一个单词说出的瞬间并自动生成字幕是制作带配音讲解的动画视频的完整方案。 为什么手动卡点很难做讲解类视频时最痛苦的一步是卡点先录旁白再逐帧把动画挪到对应词句出现的位置改一句台词就要重调一遍时间轴。ManimGX 的思路完全反过来——让语音驱动动画语音合成时同时返回每个单词的起止时间逐字时间轴self.say()用方括号把台词和动画一一对应渲染时每个动画自动在它对应单词开口的瞬间开始时长随语音时长自适应。你只管写台词时间轴由引擎自动算好改词即改点。⚙️ 安装与准备3 步到位第 1 步安装 ManimGX需要 Python 3.13pip install manimgx第 2 步配置语音服务密钥。默认语音来自 fal.ai 平台的 ElevenLabs Eleven v3 模型需要把 fal.ai 的 API key 设为环境变量FAL_KEY在 fal.ai 控制台创建。第 3 步写一个最小场景。完整的语音指南见 sound-and-voice.md核心示例如下。 核心用法方括号脚本 逐字对齐self.say()的签名是say(script, *animations, voiceNone)实现见 scene.py。规则只有一条台词里用[...]框住的片段按顺序依次对应一个动画方括号本身不会被读出来。import manimgx as m class Derivative(m.Scene): def construct(self) - None: square m.MathTex(x^2, font_size96).shift(2 * m.LEFT) derivative m.MathTex(2x, font_size96).shift(2 * m.RIGHT) self.add(square) self.say( The derivative of [x squared] is [two x]., m.Indicate(square), # 说到 x squared 时高亮 x² m.Write(derivative), # 说到 two x 时写出 2x )几个关键行为动画随词开始m.Indicate(square)会在 x squared 第一个词开口的瞬间启动并持续约等于说这两个词的长度若动画本身run_time更长则以动画为准自动等待整个场景会等到这句旁白说完才继续construct台词之间永远不会互相叠音台词改动自适应换词后动画自动跟随新词的起止时间重新对齐无需手动改时间轴不写方括号动画会横跨整句旁白播放空方括号[]表示动画在句中该位置立即开始。⚠️ 常见报错方括号段数与动画数量不一致会直接抛出ValueError例如2 bracketed spans for 1 animations这其实是在帮你少卡点。 逐字对齐是怎么做到的say()背后返回一个Speech对象——一种知道自己说了什么、每个词何时说的声音。每个词是一个Word(text, start, end)元组比如仓库里缓存的这个真实样例 the-derivative-of-x-squared-is-two-x-5d32e55fc7.jsonwords: [ [The, 0.0, 0.08], [derivative, 0.131, 0.64], [two, 2.08, 2.32], [x., 2.56, 2.8] ]这正是逐字对齐的时间数据来源动画的播放窗口直接取自这些start/end。如果某个模型不返回单词时间引擎还会用音量包络 字符权重估算每个词的位置见 estimate所以换模型也不失同步能力。缓存机制让迭代成本几乎为零每句旁白合成后音频和时间轴会存到场景文件旁的voice/目录音频 上面的 JSON。之后每次重新渲染直接读缓存离线也能渲染只有改动的台词才会再次调用语音服务。想用真人录音用同名的音频文件替换缓存里的音频即可时间轴会自动重新测算cached 实现。️ 选择与更换语音整场换音色在场景类里设置voice属性例如class Narrated(m.Scene): voice m.voices.Fal( fal-ai/minimax/speech-2.8-hd, voice_setting{voice_id: Calm_Woman, emotion: happy}, )单句换音色对白self.say(Hello!, voiceother)只为这一句指定说话人支持的模型fal.ai 上的 5 个 TTS 模型ElevenLabs Eleven v3、MiniMax、Gemini、Inworld、Qwen配置项全部有类型提示编辑器会提示合法参数详见 fal.py。另外self.speech(text)可以只合成为播放方便你先试听某句话再决定怎么安排动画。 旁白下铺背景音乐的完整配方self.play()里的声音会阻塞时间轴而self.add_sound()是立即起播、不占时间的正是背景音乐该用的方式。配合duck()闪避让音乐在有人说话时自动压低音量# 音乐垫底音量 -18dB2 秒淡入循环播放 self.add_sound(m.Sound(theme.mp3).gain(-18).fade_in(2).loop().duck()) self.say(Here is [a circle]., m.Create(circle))duck()会在旁白开始前 0.15 秒平滑下压、结束后 0.5 秒回升mix 混音逻辑听感像专业节目混音里的闪避效果。 自动字幕与补充说明manimgx render scene.py渲染视频时会把旁白自动写成.srt字幕文件放在视频旁边主流播放器与视频平台都能直接识别——逐字时间轴复用的就是同一份词级数据字幕零成本白送。需要手动插入不来自语音的字幕比如章节标题、引用文字时用self.add_subcaption(content, duration, offset)例如self.add_subcaption(Chapter 2: The Proof, duration2)✅ 新手常见疑问速查问题解答动画数量和方括号段数不一致怎么办必须一一对应否则抛ValueError整句配动画就别写方括号渲染时要联网吗要但仅限新台词已缓存的旁白离线可重复渲染能换成自己的录音吗能同名替换voice/缓存音频时间轴自动重算竖屏视频怎么出manimgx render -r 1080x1920 scene.py想快速看效果manimgx preview scene.py保存即热重载小结ManimGX 的self.say()把配音 卡点 字幕三件事压缩成一段带方括号的台词语音服务负责逐字时间轴引擎负责让动画随词起舞manimgx render负责产出视频与.srt字幕。加上voice/目录缓存与duck()混音一套流程即可产出可发布的讲解视频。更多场景代码见 examples/ 与 用户指南。赞分享【免费下载链接】manimgxThe animation engine for agents: blazingly fast math and 3D videos with Manims Python API, on a Rust GPU core.项目地址https://gitcode.com/gh_mirrors/man/manimgx点击查看免费下载相关推荐Stagewise Remotion 视频配音实战用 ElevenLabs 逐场景生成语音并动态对齐画面时长Stagewise Remotion 视频配音实战用 ElevenLabs 逐场景生成语音并动态对齐画面时长 本文基于仓库内 create remotio人工智能AI 应用AI Agent代码智能体IDE开发工具浏览器控制PPT Master 音频旁白全流程指南从逐页 TTS 配音、SRT 字幕到 PowerPoint 原生视频导出PPT Master 音频旁白全流程指南从逐页 TTS 配音、SRT 字幕到 PowerPoint 原生视频导出 PPT Master 的旁白Audio NAI 技能人工智能AI 应用终极字幕同步指南3步搞定音频自动对齐终极字幕同步指南3步搞定音频自动对齐 还在为字幕不同步而烦恼吗Sushi是一款基于音频流的 自动字幕同步工具 能够快速精确地将SRT和ASS字幕与不同视频音视频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

开源视频翻译神器Violin深度解读:5步AI流水线把任意视频翻译成33国母语配音

开源视频翻译神器Violin深度解读:5步AI流水线把任意视频翻译成33国母语配音

【免费下载链接】violin Open-source Video Translation Skill 项目地址: https://gitcode.com/gh_mirrors/violi/violin 点击查看 免费下载 Violin 是一款开源视频翻译神器,上传一个视频,它就能自动转写语音、翻译内容、合成目标语言的母语…

2026/10/16 2:22:52 阅读更多 →
Apollo-11 AGC仿真项目:嵌入式系统与汇编语言实践指南

Apollo-11 AGC仿真项目:嵌入式系统与汇编语言实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 2:22:52 阅读更多 →
OpCore Simplify 黑苹果 OpenCore EFI 自动配置指南:10 分钟拿到可直接引导的 EFI

OpCore Simplify 黑苹果 OpenCore EFI 自动配置指南:10 分钟拿到可直接引导的 EFI

OpCore Simplify 黑苹果 OpenCore EFI 自动配置指南:10 分钟拿到可直接引导的 EFI 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore …

2026/10/16 2:22:52 阅读更多 →

最新新闻

微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:13:02 阅读更多 →
interface 的底层原理

interface 的底层原理

深入浅出 Go 语言:Interface 的底层实现原理在 Go 语言中,接口(interface)是实现多态和解耦的核心机制。与其他面向对象语言不同,Go 采用的是“隐式实现”(Duck Typing,鸭子类型)——…

2026/10/16 3:13:02 阅读更多 →
【C++入门】编译链接模型 - 08 静态库为什么像一包目标文件

【C++入门】编译链接模型 - 08 静态库为什么像一包目标文件

博主介绍:程序喵大人 35 - 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x…

2026/10/16 3:13:02 阅读更多 →
重复测量数据全攻略:2026 一篇讲透论文重复测量实验设计,把变量控制与记录规范讲清

重复测量数据全攻略:2026 一篇讲透论文重复测量实验设计,把变量控制与记录规范讲清

同一批被试在四个时间点各测一次,交到导师手里却被追问「你的实验设计写在哪」。重复测量方差分析、线性混合模型这些名称不难写,难的是交代清楚每次观测为何落在这个时点、谁在中途退出、缺失值依据什么规则处置。下文从自变量控制、测量间隔、批次安排…

2026/10/16 3:13:02 阅读更多 →
信贷风控用户画像实战:从标签体系到贷前贷中贷后策略落地

信贷风控用户画像实战:从标签体系到贷前贷中贷后策略落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:13:02 阅读更多 →
Java字符串转数字的正确方法

Java字符串转数字的正确方法

java中把字符串转成 的方法更新时间为二零二三年七月七日零九点四十分零三秒, 作者是。在Java环境里头, 大家可以利用某个类里面的那个叫作静态的方法, 把一段写着数字的字符串变成对应那种类型的数, 这篇文章会配上一些具体的代码例子, 来把这个事情从字符串弄成具体数值的过程…

2026/10/16 3:12:01 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →