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


另外一个例子:
我觉得有 2-4 的把握,这场比分是 2-4 。
这两个「2-4」到底应该是读「二到四」,「两到四」,还是「二比四」呢?你应该一眼就能知道到底怎么样读才是正确的 。但是,对于前端系统来说,这又是一个难题 。
2、注音错误
中文是一门博大精深的语言,正确的朗读它可并没有好么容易 。其中一个比较棘手的问题就是,面对多音字时,到底应该选择哪一个音来朗读呢?
比如这两句:「我的头发又长长了 。」和「我的头发长长的 。」这里的「长」到底应该是读二声的「chang」还是读四声的「zhang」呢?
当然,人可以很轻松的挑选出正确的答案 。那么下面这一句呢:
人要是行,干一行行一行,行行都行,要是不行,干一行不行一行,行行不行 。
可能你也要略加思索,才能读对这中间的所有「行」 。对于 AI 来说就更难了 。
你可能时不时的就能听到AI助手在朗读多音字时读错了,这种错误很容易就被你的耳朵捕捉到,并让你立刻有一个印象:「这绝对不是真人在说话~」 。
当然,多音字错误只是注音错误中的一种,还有其他的一些错误,如轻声,儿化音,音调变调等 。总之,准确的让你的AI助手朗读所有的内容并不容易 。
3、韵律错误
如前面所说,为了更准确的传递信息,人在说一句话的时候需要有节奏感 。如果一个人在说话的时候中间不做任何的停顿,会让我们很难理解他说的意思,甚至我们会觉得这个人不礼貌 。我们的科学家,工程师,都在想方设法的让TTS朗读得更具备节奏感一些,更礼貌一些 。但是在很多时候TTS的表现却总是差强人意 。
这是因为语言的变化太丰富了,根据不同的上下文,甚至不同的场合,我们的朗读的韵律节奏都不太一样 。韵律中,最重要的就是讨论一句话的停顿节奏,因为停顿是一句话朗读正确的基础,如果停顿不对,错误很容易被人耳朵抓住 。
比如这句:;为你切换单曲循环模式」 。如果我们用「|」来表示停顿,那么一个正常的人朗读的停顿节奏一般是这样的:「为你切换 | 单曲循环模式」 。
但是如果一但你的 AI 助手说「为你切 | 换单曲循环模式」这种奇怪的节奏感时,你内心可能是奔溃的 。
后端错误
聊完前面这个「经常犯错的语言学家」,我们再来看看后端:这个按照「语言学家」给的 「规格书」来读稿子的「发音人」 。
前面提到,后端主要有拼接法和参数法两种方式 。现在苹果,亚马逊的AI助手Siri和Alexa 使用的是波形拼接的方法 。而在国内,大多数公司都是使用参数法 。Rokid的若琪也是使用参数法,所以我们关键来看一下参数法可能的后端错误 。
后端系统在拿到前端给的语言信息后,要做的第一件事情是,决定每个汉字到底要发音多长时间(甚至是每个声母,韵母要发音多长时间) 。这个决定发音长短的组件在专业领域里叫「时长模型」 。
【全方面了解s系统知识 s系统的五个主要组成部分】有了这个时间信息后,后端系统就可以通过我们前面说的一个转换器(也叫声学模型)把这个语言学规格书转化为音频特征了 。然后再用另一个叫「声码器」的组件把这些音频特征还原成声音 。从时长模型到声学模型,再到声码器,这里面的每一步都可能犯错或者不能完美的生成我们想要的结果 。
一个 TTS 系统里,典型的后端错误有以下几种类型:
1、时长模型错误
在一句话朗读的时候,根据上下文语境的不同,每个字朗读发音时间是不一样的 。TTS系统必须根据上下文去决定到底哪些字应该读音拖长一点,哪些字应该读短一些,其中一个比较典型的例子就是语气词的朗读 。