Mindket

怎样用 AI 给视频配音:转写、翻译、配音并对上口型

黑色横幅,标题是“AI 语音与音乐”,下面是“语音合成、声音克隆、歌曲与配音”。

用 AI 给视频配音要做四件事:转写语音,翻译文字,用一个声音说出译文,再把这段音频对到画面上,画面里有人脸时还要加口型同步模型。每一步都有自己的出错方式。VideoLingo 能在浏览器里完成前三步,每做完一步,你都要检查一遍文字。

本节内容

  • 配音是按顺序做的四件事:转写、翻译、说出来,再把音频对到画面上。
  • 每一步做完都检查文字,因为每个错误都会被抄到下一步里。
  • 先从只有一个人说话的短片段开始。
  • 付费项目开工前先读口型同步模型的许可:Wav2Lip 只限研究和个人使用。
  • 告诉观众这个声音是 AI 生成的。
全部课程
本页目录
  1. 开始之前
  2. 第 1 步:转写语音
  3. 第 2 步:翻译转写稿
  4. 第 3 步:说出译文
  5. 第 4 步:口型同步,只在画面里有人脸时才做
  6. 一个工具做第 1 到 3 步:浏览器里的 VideoLingo
  7. 每一步在哪里出错
  8. 发布之前,先检查配音
  9. 常见错误
  10. 动手试试
  11. 下一门课:Vibe coding 入门
  12. 自测一下
  13. 常见问题
  14. 资料来源

开始之前

配音就是把视频里的话换成另一种语言的话,可以拆成四件事。转写:把原来的语音变成文字。翻译:翻译这段文字。说出来:用一个声音把译文说出来。对齐:把新的音频对到视频上,画面里有人说话时,这包括口型同步。每一步的结果都交给下一步,所以转写里的一个错误,会变成声音里的一个错误。

前面两课讲了声音。文字转语音是你说出译文的办法,声音克隆是在对方同意的前提下保留原说话人声音的办法。请用你自己做的视频,或者你有权翻译的视频,并且先拿其中 30 秒来试。

第 1 步:转写语音

配音从文字开始。OpenAI 的文件转写指南说,转写原语言的录音,先用 gpt-transcribe。文件最大 25 MB,格式可以是 mp3、mp4、mpeg、mpga、m4a、wav 或 webm。视频更长的话,指南说要压缩音频,或者切成每块不超过 25 MB 的片段,而且不要切在一句话的中间。

有三个可选字段,帮助识别名字和术语。prompt 用平常的话给出背景,keywords 列出你预计会听到的确切词语,languages 写出说话用的语言。指南把关键词称作提示,不是必须出现的输出,所以要检查它们是有帮助,还是让没说过的词冒了出来。下面的请求是指南里的示例,换了文件名和示例词。

curl https://api.openai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: multipart/form-data" \
  -F model="gpt-transcribe" \
  -F file="@/path/to/file/talk.mp3" \
  -F 'prompt=A product demo for a note-taking app called Notely.' \
  -F 'keywords[]=Notely' \
  -F 'languages[]=en'
  • 返回的是 JSON,转写文字在 text 里,languages 列表装着检测到的语言代码。检测不可靠时,这个列表是空的。
  • 想把音频留在自己的电脑上,就用 Whisper。它的代码和权重都是 MIT 许可,用 pip install -U openai-whisper 安装,需要装好 ffmpeg。whisper audio.mp3 --model turbo 就能转写,README 说默认设置转写英语效果很好。
  • 指南里关于逐词时间戳和字幕格式的示例,用的都是已弃用的模型,这些模型会在 2027 年 2 月 26 日停用。需要带时间的文字,就用自己会对齐单词的工具,比如下面的 VideoLingo。
  • 视频播放的同时把转写读一遍。这里的每个错误,都会被抄进译文和声音里。

第 2 步:翻译转写稿

拿到译文有三条路。Whisper 可以把语音直接翻译成英语:whisper japanese.wav --model medium --language Japanese --task translate。它的 README 警告说,即使设了 --task translate,turbo 模型仍然返回原语言,所以要用 medium 或 large。

OpenAI 较早的 /v1/audio/translations 接口,同样只把录音翻译成英语文字,指南把它列为已弃用,2027 年 2 月 26 日关停。对还在说着的话,指南指向 gpt-realtime-translate,它在说话人说话的同时,流式返回译文音频和转写文字。每种目标语言要开一个会话,所以英语译西班牙语、英语译法语要两个会话。

其他语言组合,以及已经录好的音频,就把转写稿交给聊天模型。这条提示词是本课自己写的,不是哪家厂商的。一次贴几行带编号的字幕。

把下面的字幕行从英语翻译成西班牙语。
保持编号和行数不变。
每一行的长度尽量接近原文,因为配音要在同样长的时间里说完。
这些词保留英文:Notely、workspace。
只返回带编号的行。

1. Welcome to Notely.
2. In this video, I will show you how to share a workspace.
  • 保留编号,这样每一行译文都能对回它的时间戳。
  • 给出一份名字和术语的词表,这些词保留英文。VideoLingo 用自定义加 AI 生成的术语,目的相同:让译文从头到尾连贯。
  • 要求译文行的长度和原文差不多。README 说,配音的时间对不对,取决于译文、语音服务和语速。
  • 配音之前,请懂这门语言的人读一遍。README 说,翻译质量取决于源音频、语言和所选的模型。

第 3 步:说出译文

这就是第一课的文字转语音,每一行跑一次。选一个现成的声音,或者按第二课讲的,在对方同意的前提下克隆说话人的声音。OpenAI 的指南说,它的声音针对英语优化,其他语言则遵循 Whisper 的语言清单。VideoLingo 说,它能配的语言取决于你选的语音方式,并列出 OpenAI、Fish Audio、SiliconFlow 的 Fish 和 CosyVoice2、GPT-SoVITS、Edge TTS 和 F5-TTS,另有一个自定义适配器。

它的 README 里有两条限制在这里要紧。调整语速不能保证说得自然,也不能保证完全同步。本课的建议由此而来:一句话太长、放不进它的时间段,就在译文里缩短,不要靠加快语速。另外,README 还说,配音流程不会自动给每个说话人分配不同的声音,所以两个人的访谈,要把每个人的台词分开配。

第 4 步:口型同步,只在画面里有人脸时才做

换了新的话,嘴形也该跟着变。口型同步模型会改动视频里的人脸,让它对上新的音频,Wav2Lip 的 README 说它适用于任何人、任何声音和任何语言。如果说话人不在画面里,或者视频放的是幻灯片或屏幕录像,这一步就跳过。

下面三个开源项目,最大的差别在许可。Wav2Lip 的命令展示了这件事的样子:输入一段视频、一个音频文件和一个检查点,结果落在 results/result_voice.mp4。它的 README 说,音频可以是 ffmpeg 能读的任何文件,包括视频。

python inference.py --checkpoint_path <ckpt> --face <video.mp4> --audio <an-audio-source>
三个开源口型同步项目的对比
Wav2LipMuseTalkLatentSync
README 里写的许可只限研究、学术和个人使用代码是 MIT,模型“可用于任何目的,包括商用”README 没有写,要去仓库里查
README 写明的硬件没有写在 4 GB 显存的笔记本显卡上用 fp16 测过,8 秒视频约要 5 分钟1.5 版要 8 GB,1.6 版要 18 GB
怎样启动上面的 inference.py 命令python app.py 打开一个 Gradio 页面python gradio_app.py 打开一个 Gradio 页面
README 里的一条建议720p 常常比 1080p 效果好输入视频用 25 帧每秒inference_steps 取 20 到 50:越高画质越好,运行越慢

来源:GitHub: Rudrabha/Wav2Lip README (2026年11月6日 查阅);GitHub: TMElyralab/MuseTalk README (2026年11月6日 查阅);GitHub: bytedance/LatentSync README (2026年11月6日 查阅)

一个工具做第 1 到 3 步:浏览器里的 VideoLingo

VideoLingo 是一个 Apache 2.0 许可的项目,在一个 Streamlit 界面里把语音识别、字幕翻译、分段和配音合在一起。它生成字幕文件,你要的话也能生成带字幕或配好音的视频。它支持的输入语言有英语、俄语、法语、德语、意大利语、西班牙语、日语和中文。在 Windows 上,README 给了一条一键的路。

git clone https://github.com/Huanshere/VideoLingo.git && cd VideoLingo
uv run start.py
  • 上面两行是 README 给 macOS、Linux 和 Windows 从源码安装的办法。以后要启动,就在文件夹里再运行一次 uv run start.py。
  • 语音识别默认在你的电脑上运行。如果你在侧边栏选了云服务,README 说你的音频会发给那家服务,并可能产生费用。
  1. 从项目 GitHub 页面的最新 Release 下载 Source code (zip),解压并打开文件夹。
  2. 双击 OneKeyStart.bat,并让这个窗口一直开着。第一次运行会安装 uv、Python 3.12、各种依赖和 FFmpeg,需要联网。
  3. VideoLingo 在浏览器里打开后,在侧边栏填入你的 API 地址、密钥和模型。模型要来自兼容 OpenAI 的聊天服务,并且能返回流程需要的结构化 JSON。
  4. 先拿一段短视频试,打开配音之前,先读它生成的字幕。

每一步在哪里出错

VideoLingo 的 README 列了一份当前的限制,Whisper 的 README 又补了一条。不管你用哪个工具,它们都是一份不错的地图,标出配音容易在哪些地方坏掉。

问题取自 VideoLingo 和 Whisper 的 README,2026 年 11 月 6 日阅读。“先检查什么”一列是本课的建议。
步骤会出什么错先检查什么
转写背景噪声和各语言专用的对齐模型,会影响识别和逐词时间戳把最吵的那一幕和它的字幕对比,并且先试试把人声和音乐分开
转写数字和符号可能没有可靠的逐词时间把每一行带数字的字幕都读一遍
转写Whisper 的表现因语言差别很大整段视频之前,先用你的语言试一小段
转写混合语言的说话,不能保证每种语言的文字和时间都准确在语言变化的地方把视频切开
翻译聊天模型的回复必须满足流程的 JSON 结构运行失败时,README 说要先检查 output/gpt_log/error.json,不要一上来就删掉所有输出
说出来时间和表达取决于译文、语音服务和语速先听最长的那几句,并缩短它们的译文
说出来不会自动给每个说话人分配单独的声音每个说话人的台词单独配

发布之前,先检查配音

把配音和原片放在一起播放,看四件事。

  • 漂移。把每一场景的结尾和原片对比,因为说得太长的声音,会在那里落后于画面。
  • 名字和数字。这些是转写最容易漏的词,价格或日期里错一个数字,就是真正的错误。
  • 母语者的耳朵。请一位说目标语言的人,开着声音听一遍。
  • 披露。OpenAI 的文字转语音指南说,它的使用政策要求向最终用户清楚披露这个声音是 AI 生成的,自定义声音指南则要求你保留任何来源元数据和水印。
  • 音频去了哪里。云服务会收到这段录音:VideoLingo 的 README 说,音频会发给你选的服务,还可能产生费用。上传之前,请读那家服务自己关于音频的条款。

常见错误

  • 还没拿一小段试过,就给整段视频配音。
  • 跳过读转写稿这一步,结果每句话里都有一个错的名字。
  • 逐字翻译,结果一句话还没说完,声音的时间就用完了。
  • 把 --model turbo 和 --task translate 一起用,得到的还是原语言。
  • 在不分配声音的工具里,给两个说话人用同一个声音。
  • 在付费项目里用 Wav2Lip,而它的 README 禁止商用。
  • 漏掉告诉观众这个声音是 AI 生成的那一句。

动手试试

  • 剪一段只有一个人说话的 30 秒片段,用 gpt-transcribe 或 whisper --model turbo 转写,并标出每一处错误。
  • 用上面的提示词翻译转写稿,再请懂这门语言的人读一遍。
  • 安装 VideoLingo,只生成字幕,再和你自己的转写稿对比。
  • 给最长的三句话配音,并把每一句的时长和原片对比。

下一门课:Vibe coding 入门

你现在能做出语音、声音、歌曲和配音了。Vibe coding 入门是另一种创作:你向 AI 工具描述一个应用,再检查它交回来的东西。

自测一下

  1. 配音的四件事按什么顺序做?

    查看答案

    C. 转写、翻译、说出来、对齐 先要有文字,才能翻译,先要有译文,声音才能说出来。把音频对到画面上放在最后。

  2. 即使设了 --task translate,Whisper 的哪个模型仍然返回原语言?

    查看答案

    D. turbo README 说 turbo 没有为翻译训练过,翻译要用 medium 或 large。

  3. Wav2Lip 的 README 允许怎样使用?

    查看答案

    A. 只限研究、学术和个人使用 README 说,它的结果只应用于研究、学术或个人用途,任何形式的商业使用都被严格禁止。

  4. VideoLingo 的配音流程会自动给每个说话人分配单独的声音吗?

    查看答案

    B. 不会,它不会自动分配 README 把这一条列在当前的限制里,所以有多个说话人的视频,要手动给每个人的台词配音。

常见问题

怎样用 AI 把视频配成另一种语言?

从小处开始。让一个说话人、一种语言走完每一步,把结果和原片并排播放,满意了再对整段视频重复一遍。上面的步骤列出了每一步,以及它容易在哪里出错。

有没有免费的 AI 配音工具?

VideoLingo 可以按 Apache 2.0 许可免费下载,并在你自己的电脑上运行。它调用的服务,比如用你的 API 密钥访问的聊天模型,或者云端语音服务,可能向你收费,所以开始之前要逐个确认。

Whisper 能翻译成英语以外的语言吗?

README 里的翻译示例,目标语言只有英语一种。想译成别的语言,就先转写,再请聊天模型翻译转写稿。

我需要口型同步吗?

只有说话人的嘴看得见时才需要。幻灯片、屏幕录像或者说话人不在画面里,用旁白就够了。先看许可,因为 Wav2Lip 的许可是非商业的。

我能给配音选哪些语言?

上限在声音,不在翻译。Chatterbox 的 Multilingual V3 列出 23 种以上语言,不过这个项目已在 2026 年 8 月退役,OpenAI 的声音则是针对英语调校的。翻译成某种语言之前,先看你选的声音支持哪些语言。

资料来源

  1. OpenAI API docs: File transcription (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/speech-to-text
  2. OpenAI API docs: Live translation (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/realtime-translation
  3. OpenAI API docs: Text to speech (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/text-to-speech
  4. OpenAI API docs: Custom voices (2026年11月6日 查阅)https://developers.openai.com/api/docs/guides/custom-voices
  5. GitHub: openai/whisper README (2026年11月6日 查阅)https://github.com/openai/whisper
  6. GitHub: Huanshere/VideoLingo README (2026年11月6日 查阅)https://github.com/Huanshere/VideoLingo
  7. GitHub: Rudrabha/Wav2Lip README (2026年11月6日 查阅)https://github.com/Rudrabha/Wav2Lip
  8. GitHub: TMElyralab/MuseTalk README (2026年11月6日 查阅)https://github.com/TMElyralab/MuseTalk
  9. GitHub: bytedance/LatentSync README (2026年11月6日 查阅)https://github.com/bytedance/LatentSync
  10. GitHub: resemble-ai/chatterbox README (2026年11月6日 查阅)https://github.com/resemble-ai/chatterbox

分享本节课

对比托管的转写和语音工具

托管的服务也能转写并配出一条配音。Mindket 在一节课里,把文字转语音、语音转文字、声音克隆和实时语音工具放在一起对比。

对比托管工具

本节课的 Markdown 版本 · AI 语音与音乐:语音合成、声音克隆与歌曲 · 全部课程