AI 生成任务

声音克隆是什么:一个合成音色是怎么建起来的

又称 音色克隆, voice clone, voice cloning, 零样本 TTS

声音克隆(voice cloning)是用一段真人录音建出一个合成音色,再用这个音色去读新的文本。现在的零样本系统只需要几秒到几十秒音频:模型从参考片段里抽出一个说话人向量,再让语音合成以它为条件,所以每换一个音色都不需要重新训练。

参考音真正决定了什么

说话人嵌入抓住的是音色、音域、共鸣,以及相当一部分口音和说话节奏。它抓不住意图。模型不知道你希望第三句读成疑问句,也不知道产品名要重一点。

真正让人意外的是参考音的表演状态会一起带过来。用一条明亮、上扬的参考录音,之后每句话都倾向于亢奋;用一条半睡半醒的,不管文本写什么都听着累。所以参考音要按用途挑:旁白配一条中性、匀速的读稿,广告配一条更暖更快的。

参考音清单

  • 只有一个人说话,没有音乐,没有叠音。
  • 房间混响越小越好。混响是危害最大的一项,因为模型会把它当成嗓音的一部分学走,然后加到你之后每一句上。
  • 不要用力过猛的降噪。过度处理的音频会克隆出一种金属味、忽开忽关的质感,事后很难查出原因。
  • 音量稳定,说话音量,不要有削波。
  • 按句子边界剪,不要切在词中间。
  • 除非你要的就是这个语域,否则别用耳语和喊。

语气怎么控制

音色建好之后,你手上大部分控制其实在文本和分段上,不在模型上。

  • 标点就是节奏。 逗号、句号、段落是最主要的节奏控制手段。一段不加标点的文字读出来就是一口气不换。
  • 该写全就写全。 数字、单位、日期、缩写,按希望被念出来的样子写。生僻人名直接按读音改写,直到念对为止,这比调任何参数都快。
  • 分句生成,再拼。 一句一句跑,用刻意留出的停顿拼起来。单次跑太长会在音高和速度上漂,而且任何一处瑕疵都要整段重来。
  • 多跑三条。 每次输出都有差异。重要的句子多生成几条挑一条,比反复改文本有效。

到今天还会掉链子的地方

专有名词和缩写是最常见的问题,也是最容易靠改写读音解决的。长句到后半段容易失去音高控制,甚至换个语域。重音位置常常不在人会放的地方,这也是合成旁白听着技术上很干净、却缺少投入感的原因。齿音和呼吸声有时会被放大带出来,那是从贴得很近的参考录音里继承的。

这些都不是靠更长的参考录音解决的。解法是更短的文本分段、把读音写清楚、多跑几条、事后做点轻剪辑,跟真人棚录的流程其实一模一样。

支持该效果的模型

取自 ZOOOP 实时模型目录,新模型上架后自动出现在这里。

这个效果的提示词

一条能稳定出效果的起点。主体和场景可以换,技术性的那几句留着。

Read in a calm documentary narration tone, measured pace, slight warmth, pause after each sentence

试一下:声音克隆(Voice Cloning)

打开生成器,参数已经预填好。

常见问题

声音克隆到底是怎么实现的?
一个编码器听你的参考片段,把说话人的特征压成一个向量,常叫说话人嵌入;语音模型再以这个向量为条件,为你的文本生成音频。音色不是以录音的形式存下来的,除了特征之外没有任何东西被复制。
参考音频要多长?
零样本系统大约 10 到 30 秒干净人声就够。更长不一定更好:一段 15 秒的干净样本胜过五分钟带房间回声的素材,因为模型没法分辨它听到的哪部分是房间、哪部分是嗓音。
为什么克隆出来带上了参考音里没有的口音?
参考音没规定的部分,由底模填。如果这个模型主要用一种语言训练,克隆另一种语言的说话人时,音色往往保住了,元音却偏了。正确做法是换一个覆盖目标语言的模型,而不是靠加长参考音去硬掰。
能从视频里克隆声音吗?
可以,先把音频抽出来。但前提是你能找到一段目标说话人单独出声、没有音乐、没有他人插话、混响也不大的片段。这个条件排除掉了大部分访谈和影视素材。
声音克隆合法吗?
取决于司法辖区和用途,这里不构成法律意见。商用场景的实操准则是:拿到说话人有记录的授权,把授权和参考文件存在一起,并且在观众有理由认为这是真人声音的场合做出说明。

相关术语