短视频的AI配音怎么做的

文章导读
短视频的AI配音一般不是“选个声音点一下生成”就结束,完整流程通常是:文案分段、合成、拼接并统一响度、回到剪辑里对齐字幕。搜这个问题的人多数不是卡在模型本身,而是卡在三件前置条件:引擎或工具版本不对、密钥/额度/会员权限没开、找不到真正的入口按钮。下面按排查顺序写,命令可以换成自己的文案直接执行。
📋 目录
  1. Ⅰ AI配音之前先确认这三件事
  2. Ⅱ AI配音:最短可用路径
  3. Ⅲ AI配音:一个真实场景的完整做法
  4. Ⅳ AI配音:跑不通先查这三处
A A

短视频的AI配音一般不是“选个声音点一下生成”就结束,完整流程通常是:文案分段、合成、拼接并统一响度、回到剪辑里对齐字幕。搜这个问题的人多数不是卡在模型本身,而是卡在三件前置条件:引擎或工具版本不对、密钥/额度/会员权限没开、找不到真正的入口按钮。下面按排查顺序写,命令可以换成自己的文案直接执行。

先确认版本、权限和入口这三件事,再执行最短路径:用一条命令合成单段,用 ffprobe 核对采样率,用 ffmpeg 拼接并执行 loudnorm,最后回到剪辑里对齐字幕。判断标准是每段时长与字数比例一致、拼接处不爆音、整体响度接近 -16 LUFS。语音包名称、额度和价格会变,以本机列出的语音结果和控制台用量页为准;口播对自然度要求高时,合成后通常仍要人工检查一遍重音和停顿。

AI配音之前先确认这三件事

这三件事缺任何一件,后面的命令都不必试。

  • 版本:本地命令行工具用 edge-tts --version 或 pip show edge-tts 看已安装版本;剪辑软件在「设置 → 关于」或「帮助 → 版本信息」里看。要核对的不只是版本号,还包括它是否还支持你要用的语音包;语音包列表本身会随版本变化。
  • 权限与额度:云端语音合成看控制台的「API 密钥」页和「用量 / 配额」页,确认密钥有效,并确认剩余字符数或时长够不够这一条片子;用剪辑软件自带的朗读功能,就要确认当前账号对该功能、以及导出音频是否有权限。本地引擎则要看模型文件是否已完整下载、目录是否有写权限。
  • 入口位置:剪辑软件里是选中文本片段后,工具栏或右键菜单里的「朗读 / 文本朗读」,注意要先选中文字,而不是先选中视频轨;命令行工具的入口就是命令本身;云端服务看的是 endpoint 和 voice 这两个参数,少一个都返回不了音频。找不到入口时,先确认自己是在文本编辑状态,而不是预览播放状态。

AI配音:最短可用路径

以本地命令行为例,四步跑通一条试听音频。

短视频的AI配音怎么做的
  1. 列出可用中文语音:
    edge-tts --list-voices | grep -i 'zh-CN'
    预期看到若干行带 Name 和 Gender 的结果,记下要用的 Name。这一步就报 command not found,说明安装问题没解决,先停下。
  2. 合成单段:
    edge-tts --voice zh-CN-YunxiNeural --rate=-4% --text '这是第一段测试文案,用来确认声音和语速。' --write-media /tmp/seg01.mp3
    预期 /tmp/seg01.mp3 生成且大小非 0,播放时整句完整、结尾没有被切断。
  3. 核对参数与时长:
    ffprobe -v error -show_entries stream=codec_name,sample_rate,channels -show_entries format=duration -of default=nw=1 /tmp/seg01.mp3
    预期看到编码格式、采样率(这一项常见为 24000)、声道数为 1,时长与字数大致对得上。中文口播粗估每秒四字上下,最终仍要按实际语速核对。
  4. 拼接并统一响度:
    printf 'file %s\n' /tmp/seg0*.mp3 > /tmp/list.txt
    ffmpeg -y -f concat -safe 0 -i /tmp/list.txt -ar 48000 -ac 1 -af 'loudnorm=I=-16:TP=-1.5:LRA=11' /tmp/mix.wav
    预期 mix.wav 生成,拖进剪辑软件后波形连续,段与段之间没有明显爆音;把起点对齐到 0,后续字幕按每段实测时长累加。

AI配音:一个真实场景的完整做法

场景:一条约 60 秒的知识类口播,文案 240 字上下,拆成 6 段,每段 35 到 45 字,用男声,最后统一成 48 kHz 单声道交给剪辑。目录约定为 ~/work/tts/seg/01.txt 到 06.txt,输出目录 ~/work/tts/out/,脚本放在 ~/work/tts/build.sh。

短视频的AI配音怎么做的
#!/usr/bin/env bash
set -euo pipefail
VOICE='zh-CN-YunxiNeural'   # 改这里换音色,取值来自 --list-voices
RATE='-4%'                  # 语速微调,口播常用 -8% 到 0
OUT="$HOME/work/tts/out"
mkdir -p "$OUT"
: > "$OUT/list.txt"
for f in "$HOME"/work/tts/seg/*.txt; do
  n=$(basename "$f" .txt)
  edge-tts --voice "$VOICE" --rate="$RATE" --text "$(cat "$f")" --write-media "$OUT/$n.mp3"
  printf 'file %s\n' "$OUT/$n.mp3" >> "$OUT/list.txt"
done
ffmpeg -y -f concat -safe 0 -i "$OUT/list.txt" -ar 48000 -ac 1 \
  -af 'loudnorm=I=-16:TP=-1.5:LRA=11' "$OUT/mix.wav"

各配置项的改动位置:音色 VOICE 和语速 RATE 在 build.sh 开头两行;分段文本在 seg/ 下的 txt 文件,一段一个文件,不要在一段里塞长句,否则停顿会显得生硬;响度参数在最后一行 ffmpeg 的 loudnorm 里,取值要跟平台投放要求对齐,不确定时先保持默认;采样率 -ar 48000 要求与剪辑工程设置一致,工程若是 44.1 kHz 就改成 44100。跑完先听 out/mix.wav,再导入剪辑软件,把音频轨起点贴到 0 秒,按每段的实际时长排字幕。

AI配音:跑不通先查这三处

  • 认证或额度报错:命令行常见输出类似 401 Unauthorized、403 Forbidden,云端接口常返回形如 invalid api key 或 quota exceeded 的字段。到控制台的「API 密钥」页核对密钥是否复制完整、是否用在了对应的 endpoint;到「用量 / 配额」页核对剩余额度。用本地引擎时,语音名拼错也会报找不到音色,回到 --list-voices 的输出里逐个比对。
  • 拼接处爆音或整段没声音:ffmpeg 提示 Impossible to open ... 基本是 list 文件里的路径不对,改用绝对路径重跑;能生成但接缝有咔哒声,通常是各段编码参数不一致,用 ffprobe 逐段比对采样率和声道,不一致就先统一重采样再拼接。另外注意 concat 模式对音频参数要求严格,参数不同时应去掉 -c copy 这类直通写法,让 ffmpeg 重新编码。
  • 音画不同步、越往后越偏:页面层面表现为字幕比声音晚一秒以上,且偏差逐段增大。检查三处:剪辑里音频轨起点是否为 0;list 文件行数与分段数是否相等,中间是不是漏掉了一段空文本;RATE 改过之后字幕时长是否还按旧语速填。文本为空的段落会合出极短音频,也常是这种偏移的来源。

版本号、语音包名称、额度和计费规则都会变,判断时以本机命令的实际输出、剪辑软件的「关于」页、以及云服务控制台的用量页为准,不要凭记忆里的旧结论下判断。