AI数字人怎么做视频制作

文章导读
搜「AI数字人怎么做视频制作」的人,多数不是卡在“选哪个平台”,而是卡在素材、配音、合成这三段接不上:形象和音色没固化,文案改一次就要重跑一遍,最后导出的 mp4 音画对不齐。比较稳的做法是把流程拆成“先固定形象与音色,再把文案转成音频,最后合成并校验时长”三步,每步都能单独重跑。下面按真实排查顺序写。
📋 目录
  1. Ⅰ AI数字人之前先确认这三件事
  2. Ⅱ AI数字人:最短可用路径
  3. Ⅲ AI数字人:一个真实场景的完整做法
  4. Ⅳ AI数字人:跑不通先查这三处
A A

搜「AI数字人怎么做视频制作」的人,多数不是卡在“选哪个平台”,而是卡在素材、配音、合成这三段接不上:形象和音色没固化,文案改一次就要重跑一遍,最后导出的 mp4 音画对不齐。比较稳的做法是把流程拆成“先固定形象与音色,再把文案转成音频,最后合成并校验时长”三步,每步都能单独重跑。下面按真实排查顺序写。

做数字人视频,先别急着点“一键生成”。建议按“确认版本与权限 → 固化形象音色 → 文案转 TTS 音频 → 合成 → 用 ffprobe 校验时长”的顺序走一遍,其中音频时长是整个流程的基准,画面跟着音频走。如果音画不同步、任务卡在排队、素材上传被拒,先查音频采样率、账号额度与并发、素材人脸清晰度这三处。不同平台的口型驱动能力差异较大,具体效果需要结合所用引擎的版本文档确认。

AI数字人之前先确认这三件事

版本、权限、入口位置,缺一个都会让流程停在半路,而且报错往往不指向真正原因。

  • 版本:本地跑的话,在终端执行 ffmpeg -version、nvidia-smi、python -c "import torch;print(torch.__version__)",分别确认编码器、显卡驱动、推理框架。用平台的话,在控制台右上角「设置 → 关于」或页面底部看引擎版本号和形象模型版本;口型驱动模型升级后旧形象有时需要重新训练。
  • 权限:在控制台「访问控制 / API 密钥」里打开 Key 详情,看 scopes 字段是否同时包含视频合成、语音合成、对象存储写入这三类权限。只有读权限的 Key,提交任务时会被拒,但提示常写成“资源不存在”。
  • 入口位置:确认你要用的是「数字人 → 视频合成 → 新建视频」,而不是「实时互动 / 直播」入口;两个入口的形象 ID 不通用。本地 pipeline 则确认 config.json 与脚本在同一目录,或已用绝对路径传入。

判断顺序清单,按这个顺序自检,不要跳步:

  1. 版本对得上 → 驱动与编码器可用 → 再谈合成。
  2. API Key 有合成权限 → 再提交任务。
  3. 形象、音色返回“可用”状态 → 再写文案。
  4. TTS 音频能正常播放且 ffprobe 能读出时长 → 再合成画面。
  5. 输出 mp4 的时长与音频时长差在 1 帧以内 → 才批量跑。

AI数字人:最短可用路径

只保留必要步骤,每一步做完都要看到明确的产物,否则不要往下走。

AI数字人怎么做视频制作
  1. 固化形象与音色:在控制台「数字人 → 形象管理」选一个公有形象,或上传一段正面、单人、光线均匀的素材;「音色管理」里选预置音色或上传授权音频做克隆。做完应看到状态从“训练中”变为“可用”,并拿到 avatar_id 和 voice_id 两个字符串。
  2. 写一份合成配置:把文案、形象 ID、音色 ID、分辨率、输出路径落到一个 json 文件,放在脚本同目录。这份配置可以直接复制改:
    {
      "avatar_id": "av_xxxxxxxx",
      "voice_id": "vo_xxxxxxxx",
      "text": "这里是第一句文案。这里是第二句文案。",
      "resolution": "1080x1920",
      "fps": 25,
      "background": "#FFFFFF",
      "output": "./out/demo_001.mp4"
    }
    替换项只有 avatar_id、voice_id、text 与 output。
  3. 先单独生成配音:用音色合成一条 wav,再用 ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 ./out/tts.wav 读时长。应看到一个带小数的秒数;如果输出 N/A,说明文件没写完或格式不对,此时不要继续合成视频。
  4. 提交合成任务并轮询:本地 pipeline 直接跑脚本;走平台的话,提交后在「任务列表」里看状态从 queued 变 running 再变 succeeded,成功后任务详情里有可下载的 mp4 地址。
  5. 后处理与校验:需要加封面、字幕或统一封装时,用下面这条命令,只做封装不重编码画面,速度快:
    ffmpeg -y -i ./out/raw.mp4 -i ./out/tts.wav \
      -map 0:v:0 -map 1:a:0 -c:v copy -c:a aac -b:a 192k \
      -shortest -movflags +faststart ./out/demo_001.mp4
    跑完再执行一次 ffprobe,确认输出时长与 tts.wav 的时长基本一致。

AI数字人:一个真实场景的完整做法

场景:给 40 个商品各做一条竖版口播短视频,每条形像固定、文案 200~300 字、时长 40~60 秒,发布到手机端。对象类型是商品图文素材,不需要真人出镜。

配置文件 ./config.json 按下面的实际取值写,每一项在哪里改也一并标出:

AI数字人怎么做视频制作
{
  "avatar_id": "av_store_clerk_01",
  "voice_id": "vo_female_calm_02",
  "text": "这款保温杯容量 500 毫升,杯身不锈钢,杯盖可拆洗……",
  "resolution": "1080x1920",
  "fps": 25,
  "background": "#F5F5F5",
  "subtitle": true,
  "output": "./out/sku_0001.mp4"
}
  • avatar_id、voice_id:来自控制台「形象管理」「音色管理」列表,复制即可,不要手打。
  • resolution 与 fps:在配置文件里改,竖版固定 1080x1920;帧率与形象训练时的帧率保持一致,改帧率容易让口型出现细微抖动。
  • text:从商品表格里逐行读取,建议每条控制在 250 字上下,长文案拆成两条视频,比分段合成更容易对齐。
  • subtitle:字幕开关,在配置文件里控制,开启后由脚本侧用 TTS 返回的时间戳生成 srt。

批量跑完后,用一条循环把 40 条视频的时长都打出来,和音频时长对照:

for f in ./out/sku_*.mp4; do
  printf "%s\t" "$f"
  ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 "$f"
done

正常情况下每条视频时长应略长于对应音频,差值来自片尾停顿。若某条明显短于音频,说明该条被截断,单独重跑这一条即可,不必整批重来。

最容易踩的坑:把 TTS 输出的 mp3 直接喂给合成引擎,而引擎内部按 wav 帧对齐。mp3 首尾有编码器填充,时长会多出几十毫秒,表现为每条视频结尾多一段静止画面,或者最后一句口型被吃掉。规避办法是统一让 TTS 输出 wav、统一采样率(先确认引擎文档要求的 16k 还是 24k),合成前用 ffprobe 核对一次时长,再进入合成。这个问题在单条试跑时不明显,批量后才集中暴露。

AI数字人怎么做视频制作

AI数字人:跑不通先查这三处

按出现频率从高到低排,每处给判断方法。

  1. 任务一直停在 queued,或提示额度不足。页面提示通常是“当前并发已满,请稍后重试”或“剩余时长不足”。先到控制台「用量 / 额度」页看剩余合成时长与当前并发上限,再确认是否上一批任务没释放。批量提交时建议串行加固定间隔,不要一次打满并发。
  2. 形象素材上传被拒。提示多为“未检测到清晰人脸”或“视频时长不符合要求”。检查位置是「形象管理 → 上传记录」里的失败原因,对照素材本身:单人正面、脸部占画面比例不过小、光线均匀、无遮挡。分辨率过低或侧脸严重的素材,重新拍一段通常比调参数更快。
  3. 音画不同步、结尾静止或口型错位。这类问题不报错,只能靠比对。用 ffprobe 分别读输出视频和音频的时长与采样率,检查音频是否为引擎要求的格式;再看合成引擎日志里是否有“音频重采样”一类的提示。若采样率被隐式转换,宁可先在本地用 ffmpeg -ar 24000 -ac 1 统一,再提交合成。

三处都排除后仍跑不通,再去看引擎版本与驱动,因为版本问题往往表现为上面三种症状之一,而不是独立报错。