你们可能熟悉Google的TTS引擎:here。
我基本了解这样的东西如何能够分析输入并选出不同的音节/词性,但如果我想为TTS系统创建“语音”,我会从哪里开始?
答案 0 :(得分:0)
这是一个问题,我在大学里花了将近一个学期的时间来学习答案,以及一年(或更多)课程,以便学习理解这个过程所需的基础信号处理。全班致力于语音合成,以及信号处理的整个课程。
人们可以将人类声道视为过滤器,将声门视为脉冲发生器 - 也就是说,语音实际上是由声道,口腔和鼻腔过滤的脉冲序列的结果。
对于每个音素,“过滤器”会有所不同,因此您需要一个音素库来生成“过滤器”。理论上,逆滤波可用于音素声音片段库以找到“滤波器”系数。 Levinson-Durbin递归通常用于查找LPC系数。
必须创建声门脉冲序列。一种简单的方法是将脉冲序列与正半正弦波进行卷积。
最后,使用与您想要创建的音素相关联的“滤波器”系数过滤声门脉冲序列。
但这仅适用于浊音。为了产生清音语音,一个简单的解决方案是利用与清音语音音素相关联的“滤波器”系数来过滤随机噪声信号。
上面有一层抽象,创建所需的音素列表,并连接。简单就像馅饼一样!
更新:
一位朋友指出Festival,一个“黑匣子”来输入文字并发表演讲:http://festvox.org/festival/