手机上的 Manim 动画怎么配音?Manim教程 App 的口播功能怎么用

2026 年 11 月 8 日 · 极坐标⋅XYZ

手机上的 Manim 动画怎么配音?Manim教程 App 的口播功能怎么用

在 iPhone 上,用「Manim教程」App 3.0.0 的「配音讲解」就能给 Manim 动画配音:在 AI 助手里点「+」选「配音讲解」,说一句想讲什么,AI 先写口播稿;你改好稿点「合成」,AI 会照着语音的时间把动画做出来,最后导出的 MP4 自带配音。从发出需求到导出,最少点 3 下:发送、合成、导出。

Manim 是 Grant Sanderson 为 3Blue1Brown 频道开发的数学动画引擎,用 Python 描述画面,再逐帧渲染成视频。现在多数人用的是社区版,2026 年的最新版本是 0.21.0,Manim 本身没有「自动配音」,声音只能靠 add_sound 一条条加(入门介绍在这)。想系统学,2026 年最新的 Manim 中文教程在极坐标⋅XYZ 的教程里有提供,App 里也能看。

配音里 AI 写出来的动画代码,同样可以拿到极坐标⋅XYZ 的工作区里直接运行。

先说清楚:哪些版本能用

  • 口播功能是 iOS 版 3.0.0(2026 年 10 月 30 日发布)新加的,更新说明里的标题是「配音讲解」。
  • 鸿蒙版目前不能给动画加声音,self.add_sound() 会直接报错,见鸿蒙版介绍。Android 版有没有口播,以应用更新说明为准,本文不替它承诺。
  • 合成语音和让 AI 改稿要消耗 AI 积分;口播最长约 2 分钟。

三步做出带配音的成片

  1. 起手:在 AI 助手输入框左边点「+」,选「配音讲解」。输入框上方会出现一个「带配音」的小标签。你也可以不点,直接在话里说「配音」「讲解」「口播」「旁白」,App 同样会先出口播稿。
  2. 看稿、改稿、合成:说出要讲的内容,比如「用一个直角三角形讲勾股定理」。大约十来秒后会出一份口播稿,这是整个流程里唯一需要你停下来看的地方。每一句都能直接改字,也能拆句、并句,还能让 AI 帮你改(比如更口语一点、缩短一点)。可以选音色、口播语言和语速,点「合成」时按钮上会写明大概要多少积分。
  3. 等 AI 做完动画,导出:合成完成后,AI 自己照着每一句语音的起止时间写动画,反复试渲染,直到每一段都对上声音为止。成片出来后,在导出选项里选 MP4,标着「带配音」;GIF 存不了声音,旁边会写「没有声音」。

口播页里能做的事

点开对话里的「口播」入口,进入的是一个单独的二级页,配音相关的操作都在这里:

  • 31 个音色,选之前可以先听样音;语速可调。
  • 7 种口播语言:简体中文、繁体中文、English、Español、Português (Brasil)、日本語、한국어。口播语言可以和界面语言不同,例如在中文界面里做英文讲解。改了语言之后稿子不会自动翻译,需要的话点一下让 AI 译。
  • 逐句试听:整条试听时正在念的那句会高亮。
  • 只改一句,就只重新合成这一句:改了字、没动别的句子,只对这一句再扣积分。
  • 动画滞后提示:如果某一段的动画比语音长,这一段会标成「动画滞后」,并告诉你滞后多少秒。你可以让 AI 修这一段,也可以把这句话后面的停顿拉长一点。

它做了什么:把语音的时间交给动画

AI 写动画时用的就是 Manim 的老办法:整条语音只在开头加一次,每一段动画先等到这一句话的起点再动。下面这段不带声音文件,只演示这种「按语音时间点对齐」的结构,可以直接在工作区里运行:

from manim import *

# 每句口播的起点(秒)。在 App 里这些数字来自合成后的语音,这里手写一份演示
CUES = [0.3, 2.7, 6.9]


class NarratedTriangle(Scene):
    def wait_until_time(self, t):
        gap = t - self.time
        if gap > 1 / config.frame_rate:
            self.wait(gap)

    def construct(self):
        # 真有音频时,在这里加一行 self.add_sound("assets/voice.mp3")
        self.wait_until_time(CUES[0])   # 第一句:先看这个直角三角形
        tri = Polygon(ORIGIN, RIGHT * 3, UP * 2, color=WHITE)
        self.play(Create(tri), run_time=1.5)

        self.wait_until_time(CUES[1])   # 第二句:两条直角边分别是 a 和 b
        a = MathTex("a").next_to(tri, DOWN)
        b = MathTex("b").next_to(tri, LEFT)
        self.play(Write(a), Write(b), run_time=1.2)

        self.wait_until_time(CUES[2])   # 第三句
        self.play(Indicate(tri))
        self.wait(1)

任何一段动画比它那句话的时长更长,后面的声音就会比画面早到,这就是 App 里「动画滞后」想标出来的情况。

声音怎么进视频:渲染完成后,App 把声音混进 MP4,所以 App 里的预览和导出的文件都能听到。这也意味着,你自己手写的 self.add_sound("assets/xxx.mp3"),在 iOS 3.0.0 里一样会混进成片,gain、time_offset 的意思和电脑上一致,详细讲解见这篇 add_sound 教程。

一次真机的用时

按开发记录,2026 年 10 月 30 日在 iPhone 17 Pro Max 上的一次实测:一份 9 段、699 字的口播,合成用了约 15 秒,语音共 52.8 秒,从点「合成」到成片出来用了 84.2 秒,成片 53.3 秒。把稿子改成 10 段 789 字再重新合成对齐,成片 60.0 秒。这是单次记录,手机型号、网络和稿子长短不同,用时会不一样。

常见问题

Q:只能用 AI 写稿吗?可以自己写口播稿吗? A:可以自己写。口播稿里每一句都能手改、拆、并、粘贴多行。AI 写稿只是起手更快。

Q:自己录音可以吗? A:这一版只做文字合成语音,用自己的录音当旁白这一版没有做。自己有现成录音的话,可以把音频导入项目的 assets/,用 self.add_sound 手动加进场景。

Q:声音和动画对不上怎么办? A:看口播页里标着「动画滞后」的那一段,点它可以让 AI 修这一段,或者拉长这句话后面的停顿。改动只影响受影响的那几段。

Q:配音要花多少积分? A:按字数算,点「合成」之前,按钮上就会写出这一次大概要多少积分。只改一句,只算这一句。具体价格以 App 里显示为准。

Q:导出的是什么格式? A:MP4 带配音。GIF 没有声音。


iPhone 上打开「Manim教程」App 更新到 3.0.0,在 AI 助手里点「+」选「配音讲解」,说一句想讲的内容就能开始;想先学 Manim,从教程第一课看起;在电脑上,直接打开工作区贴代码运行。

来源:极坐标⋅XYZ(jizuobiao.xyz),2026 年 11 月 8 日更新,基于 Manim 社区版 0.21.0 与「Manim教程」iOS 3.0.0。功能以 App Store 上的最新版本为准。