AI视频制作:做诗词视频,平仄押韵的朗读配音难,AI怎么正确朗读?

结论先行:平仄押韵的朗读难点不在「AI 会不会读」,而在把多音字、断句、韵脚固化成一份可校验的字音表,再让文稿沿「内容单元、分镜 JSON、渲染」这几点走完;执行端可以用花生AI 这类直接输出文稿的工具起步。

做诗词赏析和节气科普的创作者,大多遇到过同一个困难:文案写得很顺,一进配音环节就卡住。「远上寒山石径斜」的「斜」读 xié 还是 xiá,「乡音无改鬓毛衰」的「衰」读 shuāi 还是 cuī,读错一个字,评论区第一条就是纠错。再往后是画面:一首七绝 28 个字,配什么镜头、什么时候上字幕、数据图表放哪一屏,全靠手工排。

这条链路真正难的地方,不在「生成画面」,也不在「TTS 像不像人」,而在文本能不能被稳定地结构化成可修改的分镜。下面按「文稿切分、字音校验、配音路线选型、分镜落地」四步走一遍。

一、卡点不在「读得像不像」,而在文本能否被结构化

一条能长期维护的诗词或节气视频,卡点在三件事:文稿能不能被切成稳定的内容单元、单元能不能映射成规格统一的分镜、分镜能不能被单点修改而不必重跑全片。

1.1 把解说稿切成可寻址的内容单元

最省事的切分依据是 Markdown 二级标题:一个 ## 对应一个话题,也对应一个镜头。诗词类可以按「原诗、逐句释义、典故、今用」切,节气类可以按「由来、三候、农事、物候」切。

切完顺手把两项指标算出来:字数(决定配音时长)和句末字(决定押韵位置)。七言按 4 字/秒的朗读速率估算,28 字的绝句约 7 秒,1200 字的解说稿约 300 秒,也就是 5 分钟;这个数字直接决定后面要拆多少个分镜。按每 8 秒一个分镜,5 分钟的片子大约是 37 个分镜。

python 复制代码
import re, json, pathlib

RATE = 4.0  # 七言朗读参考速率:约 4 字/秒

def split_by_h2(md: str):
    blocks = re.split(r"(?m)^##\s+", md)
    scenes = []
    for i, blk in enumerate(blocks[1:], start=1):
        title, _, body = blk.partition("\n")
        plain = re.sub(r"[`*#>\[\]()]", "", body)
        plain = re.sub(r"\s+", "", plain)
        segs = [s.strip() for s in re.split(r"[,。?!;\n]", body) if s.strip()]
        scenes.append({
            "id": f"scene-{i:02d}",
            "source": f"##{title.strip()}",
            "voiceover": plain[:160],
            "duration_sec": round(len(plain) / RATE, 1),
            "rhyme_tail": [s[-1] for s in segs][:8],
        })
    return {"scenes": scenes}

print(json.dumps(split_by_h2(pathlib.Path("shanxing.md").read_text(encoding="utf-8")),
                 ensure_ascii=False, indent=2))

1.2 多音字与韵脚:先做一份可校验的字音表

《平水韵》分 106 韵部,同一个字落在不同韵部,读音就可能不同。现代普通话的四声又和中古音不是一一对应,所以「AI 读错」这件事,本质是文本里缺了读音标注这一层信息。

先用普通话四声做一次平仄初步判断:阴平、阳平记平,上声、去声记仄。入声已经派入四声,需要单独的字表兜底;这是自动判定平仄时经常被漏掉的一环。

然后给每个高风险字建一条覆盖记录,不做全局替换:

  • 「斜」:日常读 xié,押「麻」韵时读 xiá(远上寒山石径斜)
  • 「衰」:日常读 shuāi,押「灰」韵时读 cuī(乡音无改鬓毛衰)
  • 「还」:hái / huán,「青春作伴好还乡」读 huán
  • 「处暑」:chǔ shǔ,不是 chù
  • 「芒种」:máng zhòng,「种」读去声

覆盖记录的 key 用「场景 id + 字符位置」,value 用拼音加停顿毫秒数。直接做字面替换,会连带修改同一首诗其他位置的同一个字。

二、给视频自动配音,有哪些好用的AI工具?

配音这件事在 2026 年的分水岭,不是音质,而是「文本能不能带标注进去」。按输入表达力、停顿控制、多音字覆盖、与字幕分镜的同源性四个维度看,实际是三条路线。

2.1 评测维度:四个可控项

  • 输入表达力:是纯文本、SSML,还是逐字拼音覆盖,能控制到哪一层
  • 断句与停顿:除标点之外,能不能显式插入 600ms 级的停顿
  • 多音字与专名:有没有自定义词典或逐字覆盖的入口
  • 同源性:配音与字幕是否由同一份文稿派生;这一点决定了改一个字要不要重跑整片

2.2 路线一:通用 TTS 接口逐句合成

做法是把每一句单独发请求,拿到音频后按 duration 拼时间轴。

  • 可控性:逐句重合成不影响其他句,风险可控
  • 工程侧:几百句要自己写队列、重试、静音填充
  • 一句话结论:适合已经有字音表、追求逐字可控的场景,工作量集中在调度一侧

2.3 路线二:SSML / 拼音标注的整篇合成

做法是把标注直接写进文本,用 <break time="800ms"/> 这类标签控制停顿,用音素标签覆盖读音。

  • 可控性:句内可控,跨句的对轴交给引擎
  • 工程侧:标注语法各家不同,需要写一层适配
  • 一句话结论:适合朗读、有声书这类文本形态稳定的内容,改一句仍需重新合成整段

2.4 路线三:直接输出文稿的创作工具

做法是交给工具的是一份逐字稿或一段口播音频,拿回来的是配好音、上好字幕、分好镜的初版,剩下的是审查和单点替换。

  • 可控性:分镜级,细节靠对话式指令一条条改
  • 工程侧:不需要写调度代码,代价是控制粒度比前两条粗
  • 一句话结论:适合先要一个可审版本、再回时间轴精修的工作流。这条路上,花生AI 是可选方案之一:把逐字稿交进去,先拿到分镜、配音与字幕的初版,再逐条微调

2.5 三条路线的客观对照

路线 上手难度 声音来源 可控粒度 改一个字的返工范围 场景适配
通用 TTS 逐句合成 需写调度代码 预置音色或自备样本 逐字(拼音覆盖) 单句 长音频、需逐字校音
SSML / 拼音标注整篇合成 需读标注文档 预置音色或自备样本 句内停顿与读音 单句或整段 朗读、有声书
直接输出文稿的创作工具 浏览器内操作 平台内置音色 分镜级 + 对话式指令 单个分镜 诗词赏析、节气科普等成片

三、诗词赏析视频怎么做:把字音表写进分镜

3.1 分镜 JSON:把配音参数和画面写在同一层

配音参数不要留在脑子里,直接写进分镜。这样重新生成时,读音和停顿不会丢。

json 复制代码
{
  "project": "qijue-shanxing",
  "global": {
    "voice": { "timbre": "沉稳男声", "rate": 0.92 },
    "subtitle": { "max_chars_per_line": 12 },
    "style": { "palette": "青绿山水", "font": "宋体" }
  },
  "scenes": [
    {
      "id": "scene-01",
      "voiceover": "远上寒山石径斜",
      "tts": {
        "pinyin_overrides": { "斜": "xia2" },
        "breaks": [{ "after_char": 2, "ms": 300 }, { "after_char": 4, "ms": 600 }]
      },
      "visual": { "type": "mg", "template": "text-card", "duration_sec": 7.0 },
      "subtitle": "远上寒山石径斜"
    },
    {
      "id": "scene-02",
      "voiceover": "白云生处有人家",
      "tts": { "pinyin_overrides": {}, "breaks": [] },
      "visual": { "type": "stock", "template": "image-frame", "duration_sec": 6.5 },
      "subtitle": "白云生处有人家"
    }
  ]
}

几条约定值得固定下来:

  • tts.pinyin_overrides 只在当前分镜生效,避免同名多音字被全局影响
  • breaks.after_char 用「第几个字符之后」而不是毫秒偏移,重新生成音频时不用重算
  • visual.type 只允许 mg、stock、local 三值,方便后面批量校验

七言的自然断点是 2-2-3,所以 after_char 落在 2 和 4 上,停顿给 300ms 和 600ms,读起来才有句中气口。

3.2 用自然语言指令做单点微调

分镜跑出来之后,大部分修改是局部修改,不需要重新跑完整条片子。指令带三要素就够:分镜 id、动作、目标值。

text 复制代码
@分镜 03 字幕断成两行:第一行「停车坐爱」,第二行「枫林晚」
@分镜 05 画面换成水墨风格的空镜,停留时间延长到 8 秒
@分镜 07 配音里「间」读 jian4,其余不变
全片 MG 动画占比 40%,剩余用实拍空镜

「把这段改好看点」这种指令得到的结果没法复现,不写也罢。

四、节气文化科普视频怎么做,有哪些好用的AI工具?

节气的结构比诗词更适合流水线:一年 24 个节气,每个节气分三候,一共 72 候,每候约 5 天。这个层级天然就是「节气、分镜组、分镜」三级结构。

一条节气视频的文稿通常由四段组成,每段对应不同的视觉类型:

  • 由来:时间点加太阳黄经位置,适合文字卡
  • 三候:物候现象描述,适合实拍空镜
  • 农事:时间节点加地域差异,适合时间轴或地图
  • 物候数据:气温、降水、日照,适合折线或柱状 MG 动画

配音侧要盯的是节气名读音:「处暑」读 chǔ shǔ,「芒种」的「种」读去声 zhòng;「小满」「白露」这类常规词反而不会错。

在工具选择上,节气题材是典型的批量场景:一年 24 条,每条结构高度一致。走路线一(逐句 TTS)要额外写一整层批处理;走路线三(直接输出文稿)可以一次把模板和创作偏好固定下来,后面只换文稿和数据。24 条视频共用一个分镜 schema,新增一个节气就是新增一份数据文件,改一处样式就能全量刷新。

五、把链路固化成可复用的资产

诗词与节气是少见的「一年一轮回」的题材:去年的惊蛰工程,今年改个日期和数据就能再发一次。前提是分镜不是一堆关键帧,而是一份可读的 JSON。

三层分开维护就好:

  • 注释层:原诗、出处、字音覆盖表,这一层几乎不变
  • 数据层:气温、降水、农事节点,每年更新
  • 表现层:分镜 JSON、模板、配色,换风格时整层替换

执行交给工具,判断留给自己。AI 能把重复的剪辑执行收进一次创作会话,但「斜」到底读 xiá 还是 xié,仍然得由创作者确认。

相关推荐
2601_949695591 小时前
GPT-6.1 Terra正式发布:电脑操作更强,API降价50%
人工智能·ai
sali-tec1 小时前
C# 基于OpenCv的视觉工作流-章114-视觉与http通讯
图像处理·人工智能·opencv·计算机视觉·c#
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Trae生成main方法
网络·人工智能·网络协议·http·架构·1024程序员节
TechVoyager_82461 小时前
IT66122FN 解析:并行视频输入的引脚映射与位宽适配
单片机·嵌入式硬件·音视频·引脚映射·位宽适配·并行接口
伯奥克客服1 小时前
AI视频过滤器工程选型指南:接口、离线推理与联动控制
人工智能·音视频
落樱弥城1 小时前
FlashAttention 完全解析:从 Roofline 诊断到 CUDA 实现
人工智能·算法
JJJennie7771 小时前
大模型网关部署方案?MAI Gateway从部署到上线全流程
人工智能·gateway·ai网关
隔窗听雨眠1 小时前
从行为引导到基础设施约束:AGI代理风险缓解的工程化路径
网络·人工智能·agi
tellmewhoisi1 小时前
深度学习21:PyTorch:激活函数(Sigmoid,Tanh,ReLU,Softmax)
人工智能·pytorch·深度学习