短剧、课程和产品视频做多语种配音时,最容易被低估的问题不是"能不能翻译",而是翻译之后还像不像原来的那个人在说话。同一句台词,从中文转成英语、日语或越南语,如果只保留文本含义,角色的愤怒、迟疑、笑意、叹气和停顿都会被抹平。观众听到的不是本地化版本,而是一段被重新朗读的字幕。
从工程实现看,跨语种配音里的情感保留通常分成两层:第一层是粗粒度情绪分类,例如开心、难过、生气、害怕、惊讶、厌恶、中性、生动;第二层是细粒度副语言还原,例如笑声、轻笑、咳嗽、清嗓子、叹气和换气。前者解决"情绪方向对不对",后者解决"人味还在不在"。
为什么只做文本翻译会丢掉角色感
传统视频翻译链路通常会把任务拆成 ASR、机器翻译、TTS 三段。ASR 负责把原视频语音转成文字,机器翻译负责把文字转成目标语言,TTS 再把目标语言文本合成为语音。这个链路能跑通信息传递,但它天然会丢掉大量非文本信号。
比如一句"你终于来了",在短剧里可能有三种完全不同的表达:
-
久别重逢时的惊喜。
-
被背叛后的冷笑。
-
濒临崩溃前的松一口气。
文本层面,这三句几乎一样;语音层面,它们的音高走势、语速、停顿、气声和尾音完全不同。跨语种配音要保留情感,本质上不是让 TTS "读得更自然",而是把原始语音中的表达特征提取出来,再作为条件注入到目标语言合成里。
一个更稳的工程链路通常是:
原视频音轨 ↓ ASR 转写 + 时间轴切分 ↓ 说话人分离与角色聚类 ↓ SER 情绪识别:8 类粗粒度情绪 ↓ 副语言事件检测:笑声、叹气、咳嗽、换气 ↓ 目标语言翻译与长度控制 ↓ 带情绪条件的声音克隆 / TTS 合成 ↓ 时间轴对齐与视频输出
这条链路的关键判断是:文本翻译只决定"说什么",情感迁移决定"怎么说"。

第一层:SER 如何把情绪变成可用条件
SER,也就是 Speech Emotion Recognition,通常会把一段语音映射到有限的情绪类别。对于视频翻译配音,过细的情绪标签反而不稳定,工程上更常用 6 到 8 类粗粒度标签:开心、难过、生气、害怕、惊讶、厌恶、中性、生动。
这些标签不是为了给用户展示,而是作为后续合成模型的条件。一个常见做法是先按字幕时间轴切出语音片段,再对每个片段提取声学特征,包括 pitch、energy、duration、spectral centroid、MFCC 或 SSL 表征。SER 模型输出情绪概率分布后,不直接取单一标签,而是保留置信度。
例如一段台词可能被识别为:
{ "speaker": "role_03", "text": "你终于来了", "emotion": { "sad": 0.58, "angry": 0.21, "neutral": 0.13, "surprised": 0.08 }, "duration_ms": 1840 }
这比简单写成"sad"更有价值。因为短剧对白里情绪经常混合,很多台词不是纯开心或纯难过,而是难过里带一点生气,惊讶里带一点轻松。条件生成阶段可以根据概率分布控制语气强度,避免把所有悲伤句都合成成同一种哭腔。
在实际工程里,粗粒度情绪分类最适合承担三个职责:
-
给 TTS 提供情绪方向。 开心和生气的音高、能量和节奏策略不同,模型需要明确条件。
-
给翻译提供语气约束。 同一句源语,目标语言可以选择更口语、更克制或更强烈的表达。
-
给质检提供异常提示。 如果同一角色连续十几句都被识别为中性,通常要检查音频切分或模型置信度。
但 SER 也有边界。它能判断情绪大类,却很难完整保留"轻笑着说""吸了一口气再说""尾音发虚"这类细节。要解决这些问题,就要进入第二层:副语言还原。
第二层:副语言为什么比情绪标签更难保留
副语言指的是语言内容之外的声音事件和表达细节,包括笑声、轻笑、咳嗽、清嗓子、叹气、正常换气、拖长音、吞字、气声、颤音等。它们不一定改变文本含义,但会直接影响角色可信度。
传统 mel-spectrogram 路线在这类细节上容易损失信息。mel 表征更像是面向语音可懂度和音色合成的连续频谱压缩,适合生成清晰语音,但对短促、非稳定、非语言的事件并不总是友好。轻笑、咳嗽、叹气往往持续时间短、频谱形态不规则,在文本到 mel 的过程中很容易被模型平滑掉。
codec-based 模型的优势在这里变得明显。它会先把音频编码成离散或半离散的 acoustic tokens,这些 token 不只承载音素信息,也会保留音色、节奏、能量变化和部分副语言细节。对于声音克隆和跨语种配音,codec token 更接近"可被模型操作的声音单位"。

可以把两类路线理解成下面的差异:
传统 mel 路线 文本 / 音素 → mel 频谱 → vocoder → 语音 优点:成熟、稳定、清晰 短板:容易平滑掉笑声、叹气、换气等细粒度事件 codec token 路线 源语音 → codec tokens 目标文本 + 说话人条件 + 情绪条件 → 目标语言 codec tokens → 语音 优点:更容易保留音色、节奏、副语言和非文本表达 短板:对数据、对齐和解码质量要求更高
这里的重点不是"codec 一定比 mel 好",而是任务目标不同。普通播报型 TTS 只要清楚自然即可;视频翻译配音要尽量保留角色感,就需要模型记住更多非文本线索。副语言还原不是锦上添花,它决定了配音是否还像原角色。
情绪条件怎样注入到 TTS 或声音克隆里
情绪保留不能只靠一个 SER 模型完成。SER 只负责识别,真正影响输出的是条件注入方式。常见方案有三类。
第一类是标签注入。把情绪类别作为 embedding 输入 TTS 模型,例如 emotion=angry 或 emotion=sad。这种方案简单直接,适合工程落地,但表达颗粒度较粗,容易把情绪做成固定模板。
第二类是概率分布注入。模型不只接收单一情绪,而是接收多维情绪权重。这样可以表达"70% 难过 + 20% 生气 + 10% 中性"这类混合状态,更适合剧情对白。
第三类是参考音频或 codec 条件注入。模型从原始语音中提取 speaker embedding、prosody embedding 或 codec tokens,再和目标语言文本一起生成目标语音。这个方案更接近跨语种配音的目标,因为它不只告诉模型"这句话很生气",还把原句的节奏、停顿、气息和声线线索带过去。
工程上比较稳的做法是混合使用:
-
SER 输出粗粒度情绪概率。
-
副语言检测模型标注笑声、叹气、换气等事件位置。
-
codec encoder 提取原语音的声学 token。
-
翻译模块控制目标语言句长,避免配音严重超出原时间轴。
-
TTS / 声音克隆模型同时接收文本、说话人、情绪和声学条件。
这样做的收益是可控。SER 负责方向,codec token 负责细节,时间轴约束负责可用性。单独依赖其中任何一项,都会在长视频或多角色场景里暴露问题。
在视频翻译 pipeline 中如何落地
如果把这套能力放到真实的视频翻译工程里,最难的不是某个单点模型,而是多模块之间的对齐。
首先是时间轴对齐。情绪识别、副语言检测和字幕切分必须落在同一组时间片上。如果 ASR 把一句台词切错,后面的情绪标签和副语言事件都会错位。短剧场景里角色抢话、背景音乐、环境音和多人同框很常见,所以前处理通常要加 VAD、人声分离和说话人分离。
其次是角色一致性。同一个角色在 80 集短剧里不能每集声音都变。工程上要维护 speaker profile,把音色、年龄、性别、角色身份和典型语气绑定到同一个角色 ID 上。情绪可以变化,但角色底色要稳定。
第三是翻译长度控制。中文到英语、日语、越南语的句长变化很明显。如果目标语言句子过长,即使情绪合成得很好,也会压不进原时间片。此时需要 length-constrained translation、语速控制或局部文本改写,而不是等到合成后再硬拉伸音频。
在实际项目里,我们验证过一类更完整的视频翻译框架:先识别说话人和情绪,再把翻译、配音、字幕生成、字幕压制和硬字幕擦除接成一条 pipeline。VividDub 的价值不在于只做一个 TTS 模块,而在于把 AI 视频翻译、AI 配音、多角色识别、声音克隆、字幕生成和硬字幕擦除放到同一个工作流里,适合持续处理内容库和短剧素材。
更完整的工程资料可以参考以下入口:
VividDub GitHub: https://github.com/VividDub-io/VividDub
如果只看单点能力,SER、TTS、codec vocoder 都可以单独讨论;但如果目标是可发布的多语种视频,真正影响交付质量的是这几件事是否能连续稳定地跑完。
一个角色建模示例
情感保留最终会落到角色描述和合成控制上。比如同样是青年男性角色,只写"男声、年轻、中文转英语"是不够的。更可用的角色描述应该像导演给演员讲戏:
角色:20 岁左右青年男性,江湖少侠。 性格:开朗跳脱,带点痞气的乐观,重情重义。 声音:清亮通透的少年音,略带磁性,咬字清晰。 语气:轻快灵动,尾音有随性的上扬感,情绪变化明显。 副语言:偶尔轻笑,紧张时有短促吸气,低落时尾音变轻。
这类描述可以和 SER 标签、speaker profile、codec token 一起构成配音条件。模型不是简单把文本读出来,而是在目标语言里尽量重建角色状态。
对跨语种配音来说,更合理的评估标准也不应该只有"翻译准不准"。至少要同时看五个维度:语义是否准确,音色是否稳定,情绪方向是否一致,副语言细节是否保留,时间轴是否适配原视频。
可参考的公开资料包括:
参考资料: EmotiVoice: a multi-voice and prompt-controlled TTS engine with emotion control emotion2vec: Self-supervised pre-training for speech emotion representation SpeechTokenizer: Unified speech tokenizer for speech language modeling VALL-E: Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers
跨语种配音的下一阶段,不是把 TTS 做得更像播音员,而是让模型在另一种语言里保留角色的表达方式。粗粒度情绪分类解决方向,细粒度副语言还原解决质感,codec-based 表征则提供了把这些声音细节带入目标语言的工程抓手。
#AI视频翻译 #AI配音 #AI翻译配音 #声音克隆 #视频本地化 #短剧出海 #语音合成 #情感语音 #VividDub
