让每个角色都有自己音色的文字转语音

多角色文字转语音到底是怎么跑的——说话人识别、按区分度分配角色、逐句去导,以及让一场戏没法听的三个错。

几乎所有文字转语音工具都是围着一个音色和一个文本框设计的。对旁白、播报和无障碍朗读来说这是对的设计,而对任何超过一个人的内容来说这是错的设计。

如果你试过用单音色工具做一场好几个角色的戏,你知道那套绕法:每个角色跑一遍,下载一堆片段,再在剪辑软件里拼起来。它能用。它也一场戏要耗掉一个下午,而且你一改台词就得再来一遍。

下面讲多角色的版本是怎么跑的——以及更有用的那部分:一场戏听起来舒服和听不下去,差别到底在哪里。

「多角色」到底指什么

其实是三件常被混在一起说的事:

  1. 说话人识别。 从文本里判断每一句是谁说的。
  2. 分配角色。 给每个说话人指定一个具体音色,并且让这个对应关系稳定下来。
  3. 导演。 情绪、语速和重音按句控制,而不是按整篇控制。

只做第一件的工具是个解析器。做到前两件的是个省事的东西。三件齐了,才会改变一个项目要花多久。

说话人识别:哪些格式吃得下

你不需要把自己的稿子改写成某种模板。常见的有三种形态,三种都能解析。

名字前缀式。 玛丽亚:我跟你说过别来这儿。 这是最明确、最没有歧义的写法。如果你就是为音频写的,那就这么写。

剧本格式。 角色名在台词上方,括注写表演提示,场景标题用来分段。大多数编剧软件导出的文本已经是这个形态。

带对白标记的散文。 「我跟你说过别来这儿,」她说。 这是小说实际上的写法,也是三种里最难的一种,因为一旦节奏建立起来,归属标记就被扔掉了。

散文形态请预留出检查分配结果的时间。长段没有归属标记的对话、三个人的对话、以及用描述而不是名字指代的角色,是识别失手的地方。扫一遍花一分钟,事后返工要久得多。

分配角色:区分度比贴合度重要

下面是反直觉的那部分,也是大多数人唯一真正做错的一点。

听众主要靠音高带和语速来认说话人。不是靠音质,不是靠口音,更不是靠性格。音频里没有一张脸可看,所以这两个很粗的特征几乎承担了全部识别工作。

这意味着你的配音阵容需要拉开,而拉开比每个音色本身跟角色多贴合更重要。

如果两个角色落在同一个音高带里、语速也差不多,那在任何一段快速来回中他们会糊成同一个人——而那恰好是最需要跟住戏的时刻。他们在纸面上性格不同,这一点帮不上忙。听众看不到纸面。

实操方法:

  • 在人物设定允许的范围内,把两个主角拉得尽量远。
  • 把次要角色摆进他们之间的空档。
  • 除了音高,也用语速来区分。一个快而急切的音色和一个慢而戒备的音色,即使音色相近也不会糊。
  • 把旁白放进一个没有角色占用的带里。

然后跑闭眼测试:渲染一页对白,不看剧本只听。如果你——写的人自己——都分不出谁在说话,那没人能分出。

导演:标的要比你想标的少

拿到逐句情绪控制,本能是每句都用上。这是第二个大错,结果是一场戏里什么都不突出,因为什么都被推到了顶。

音频里的情绪是靠对比读出来的。一个角色平了八句、第九句绷不住,是能把人击穿的。一个角色九句都在情绪里,大概四十秒后就让人疲倦了。

能做出好戏的流程是:

  1. 给每个角色设一个默认基调——戒备、急切、平淡、温和。一场戏大部分都跑在默认值上。
  2. 只用默认值把整场戏渲出来,从头到尾听一遍。
  3. 标出真正发生了变化的那两三句。
  4. 再渲一遍。

一场五分钟的戏里,手动去导的大概只有五句。如果你在导三十句,那更可能是戏写过头了,而不是导得不够。

第三个错:忘了留白

静音是音频里最被浪费的工具,而且它是免费的。

句与句之间的间隙,是听众消化刚说完的话、预判接下来的地方。广播剧导演在间隙上花的时间多得不成比例,因为观众的工作是在那里完成的。

在逐句渲染的模型里,你的剧本排版就是你的时间轴。一次换行就是一次停顿。把一句话拆成两句,就在一个念头中间造出一拍。把一句反应单独写成两个字的一行,它就有了一个真正的瞬间,而不是被塞进括注里消失掉。

三个具体习惯:

  • 把笑点或者揭露前面那一拍单独放一行。
  • 把感叹写成台词,不要写成舞台提示。唉。 单独成行会变成一次表演;(叹气) 什么也不会变成,因为渲染引擎念的是文本,不是提示。
  • 别在后期把静音剪掉。剪太紧会把你辛苦搭起来的东西毁掉。

让角色保持一致

只要长度超过一场戏,一致性就变成最主要的问题,而它不是一个技术问题。

听众能原谅一句稍微平淡的读法。但一个角色到第四集听起来像换了个人,他们会立刻听出来,因为人的听觉正是为这件事调过的。

跑偏几乎从来不来自模型,它来自一个人在几周之后重新挑了一个「像但不是同一个」的音色。解法是把决定存下来:一张角色卡,挂在角色名字下面,装着音色、语速、默认情绪和读音修正。加载这张卡,就没什么需要重新决定的了。

顺手在项目开头就把读音过一遍,而不是等到第九章之后。人名、地名和自造词恰好是合成最容易猜错的东西,而一条全项目生效的修正,值得你在第一天花二十分钟。

台词重叠怎么办

真实的对话里人是会抢话的,而这是「这场戏发生在人之间而不是参数之间」的最强信号之一。

逐句渲染的引擎都做不出重叠,因为每一句都是一次独立的表演。答案是分轨:每个角色导出一个音频文件,在任何剪辑软件里把它们互相错开一点。把一场争吵最后两句重叠半秒,只是拖一下鼠标的事,却是你能对一场对峙戏做的最提升真实感的处理。

这也正是为什么一个混好的对白轨是限制而不是方便。只要你打算加音乐、音效或者做空间摆位,你要的就是分轨。

一份简短的检查清单

渲染一场戏之前:

  • 说话人分配对不对,尤其是长段来回的地方?
  • 有没有两个角色落在同一个音高带、语速还一样?
  • 旁白跟每个角色是否都明显区分?
  • 你是给每个角色设了默认值,还是在逐句去导?
  • 自造词都检查过了吗?

渲染之后:

  • 用正常速度、不看剧本,从头到尾听一遍。
  • 闭着眼能不能跟上谁在说话?
  • 有没有哪里显得长?它比你以为的更长。
  • 那些静音你是不是没动?

这些都跟音色质量无关——而音色质量恰好是工具们竞争的那一项,也是一旦够好之后最不重要的一项。真正把「让人听下去的戏」和「让人关掉的戏」分开的,是分配角色、克制和节奏。

听一段示例场景

两个角色的一段对话加一个旁白,用三把不同的音色渲染。公开试听音频制作期间,此处为占位音频。

更多

今晚就给第一场戏配上音

粘贴剧本,让 CastDub 给每个角色配一个音色,直接导出一部完整的有声剧。

免费开始创作

无需绑卡。免费套餐额度每月重置。