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


图表 5 典型的前端处理流程
一个典型的前端处理流程是:
文本结构分析:我们给系统输入一个文本,系统要先判断这个文本是什么语言,只有知道是什么语言才知道接下来如何处理 。然后把文本划分成一个一个的句子 。这些句子再送给后面的模块处理 。文本正则:在中文场景下,文本正则的目的是把那些不是汉字的标点或者数字转化为汉字 。比如「这个操作666啊」,系统需要把「666」转化为「六六六」 。文本转音素:也就是把文本转化为拼音,由于中文中多音字的存在,所以我们不能直接通过像查新华字典一样的方法去找一个字的读音,必须通过其他辅助信息和一些算法来正确的决策到底要怎么读 。这些辅助信息就包括了分词和每个词的词性 。韵律预测:用于决定读一句话时的节奏,也就是抑扬顿挫 。但是一般的简化的系统都只是预测句子中的停顿信息 。也就是一个字读完后是否需要停顿,停顿多久的决策 。从上面四个步骤可以看出,任何步骤都是有可能出错的,一但出错,生成的语言学规格书就会错,导致后端合成的声音也会错 。一个TTS系统,典型的前端错误有以下几种类型:
1、文本正则错误
由于我们的书写形式和朗读形式是不一样的,所以在前端非常早期的阶段,需要把书写形式转化为我们实际朗读的形式 。这个过程在专业领域里叫「文本正则」 。比如我们前面说到的「666」
要转为「六六六」 。我们非常容易感受到 TTS 系统中文本正则的错误 。比如下面这句:

我花了 666 块住进了一个房号是 666 的房间 。
666对比朗读.wav0:04来自深圳湾
我们知道前面的「666」应该读成「六百六十六」,后面的「666」应该要读「六六六」 。但是TTS系统却很容易搞错 。
另外一个例子:
我觉得有 2-4 的把握,这场比分是 2-4 。
这两个「2-4」到底应该是读「二到四」,「两到四」,还是「二比四」呢?你应该一眼就能知道到底怎么样读才是正确的 。但是,对于前端系统来说,这又是一个难题 。
2、注音错误
中文是一门博大精深的语言,正确的朗读它可并没有好么容易 。其中一个比较棘手的问题就是,面对多音字时,到底应该选择哪一个音来朗读呢?
比如这两句:「我的头发又长长了 。」和「我的头发长长的 。」这里的「长」到底应该是读二声的「chang」还是读四声的「zhang」呢?
【全方面了解tts系统知识 tts系统的五个主要组成部分】当然,人可以很轻松的挑选出正确的答案 。那么下面这一句呢:
人要是行,干一行行一行,行行都行,要是不行,干一行不行一行,行行不行 。

猜你喜欢