全方面了解tts系统知识 tts系统的五个主要组成部分( 二 )


在实际的系统中,为了让机器能正确的说话,这份儿「规格书」远远比我们这里描述的要复杂 。
扮演「发音人」的后端系统
当后端系统拿到「语言学规格书」后,目标是生成尽量符合这个规格书里描述的声音 。
当然,机器是不能凭空直接生成一个声音的 。在这之前,我们还需要在录音棚里录上几个到几十个小时不等的音频数据(根据技术不同,使用的数据量会不同),然后用这些数据来做后端系统 。
目前主流的后端系统有两种方法:一种是基于波形拼接的方法,一种是基于参数生成的方法 。
波形拼接的方法思路很简单:那就是把事先录制好的音频存储在电脑上,当我们要合成声音的时候,我们就可以根据前端开出的「规格书」,来从这些音频里去寻找那些最适合规格书的音频片段,然后把片段一个一个的拼接起来,最后就形成了最终的合成语音 。
比如:我们想要合成「你真好看」这句话,我们就会从数据库里去寻找「你、真、好、看」这四个字的音频片段,然后把这四个片段拼接起来 。
图表 4 使用拼接法合成「你真好看」
当然,实际的拼接并没有这么简单,首先要选择拼接单元的粒度,选好粒度还需要设计拼接代价函数等 。
参数生成法和波形拼接法的原理很不相同,使用参数生成法的系统直接使用数学的方法,先从音频里总结出音频最明显的特征,然后使用学习算法来学习一个如何把前端语言学规格书映射到这些音频特征的转换器 。
一但我们有了这个从语言学规格书到音频特征的转换器,在同样合成「你真好看」这四个字的时候,我们先使用这个转换器转换出音频特征,然后用另一个组件,把这些音频特征还原成我们可以听到的声音 。在专业领域里,这个转换器叫「声学模型」,把声音特征转化为声音的组件叫「声码器」 。
为啥你的 AI 语音助手说话不像人? 如果简单的给这个问题一个答案的话,主要有两个方面的原因:
1.你的 AI 会犯错 。为了合成出声音,AI 需要做一连串的决定,一但这些决定出错,就会导致最终合成出来的声音有问题,有强烈的机械感,听着不自然 。TTS 的前端系统和后端系统都有犯错的可能 。
2.使用 AI 合成声音时,工程师对这个问题过度简化,导致没有准确的刻画声音生成的过程 。这种简化一方面是来自于我们人类自己对语言,和人类语音生成的认识还不足够;另外一方面也来自于商用语音合成系统在运转的时候要对成本控制进行考量 。
下面我们具体来聊聊造成 AI 语音助手说话不自然的前端错误和后端错误问题 。
前端错误
前端系统,做为一个语言学家,是整个TTS系统里最复杂的部分 。为了从纯文本生成出最后的「语言学规格书」,这个语言学家做的事情要比我们想像的多得多 。

猜你喜欢