开源声码器WORLD在语音合成中的应用

语音合成(TTS)是语音AI平台的基础设施,而声码器则决定着其中的声学模型以及合成质量。喜马拉雅FM音视频高级工程师 马力在LiveVideoStack线上交流分享中详细介绍了新一代合成音质更高,速度更快的开源免费WORLD声码器的原理架构,并结合Tacotron模型,演示中文语音合成的应用。本文由LiveVideoStack整理而成。

文 / 马力

整理 / LiveVideoStack

直播回放

https://www.baijiayun.com/web/playback/index?classid=19011464750298&token=CsIfi1xWq7ThKKZLIMQ5hiQNTSk0P2AyhhMp79C4U-kb-AOqYz3LwsEdteadTNg-CqdH1zJ1Si0

大家好,我是马力,现就职于喜马拉雅FM担任音视频高级工程师,本次我将为大家介绍开源声码器WORLD在语音合成中的应用。

1. Tacotron+WORLD

WORLD声码器可与谷歌的开源语音合成模型Tacotron结合使用,如何实现这一过程呢?Tacotron是一种端到端的TTS深度学习模型,所谓“端到端”是指利用前端文本直接预测后端声谱,整合了之前的独立子模块,达到系统整体最优;WORLD则是一种声码器,与Tacotron结合可基于人类发音频谱将文字转化为与人类发音相似的声音:将每个文字转化为拼音之后,声码器会把每个拼音看作为一个序列而Tacotron会在此基础上预测每段需要合成语音的序列,随后WORLD声码器再将预测出的声谱转换为原始的声音波形。Tacotron主要负责确定此声谱特征能否使用WORLD将其恢复为声音波形并评估语音质量是否符合要求。

1.1 WORLD Vocoder

WORLD Vocoder基于声音特征实现,主要分为三个部分:Analysis分析、Manipulation操作与最后的Synthesis合成。Analysis分析过程主要是指从一段原始声音波形中提取声学特征如线性谱、低频、MFCC;Manipulation操作过程是指对提取出的原始声学特征进行压缩等降维处理使其表征能力进一步提升;最后的Synthesis合成过程是把此声学特征恢复至原始的声音波形。

既然WORLD Vocoder基于声学特征实现,那么就需要相应的声学建模。实际上所有的Vocoder都可通过一种简单的模型实现,此模型就是线性时不变系统。如上图展示的那样,左侧代表声音输入,右侧代表声音输出。输入部分被称为Source Excitation Part也就是激励部分,右侧输出结果被称为Vocal Tract resonance Part也就是声道谐振部分。整体过程为一个基于人发声机理的经典源-滤波器模型,也就是输入的激励部分通过线性时不变系统进行操作;随后输出的声道谐振部分作为合成语音。如果对应人体发声结构进行分析,激励部分对应肺部气流与声带共同作用形成的激励,而声道谐振部分对应于声道的调音运动。

1)激励部分

激励分为两种:Pulse train脉冲激励与White noise随机白噪声。脉冲激励对应我们说话声音当中的浊音,也就是气流通过紧绷的声带时,对声带进行冲击所产生的声音;此时声门处会形成准周期性的脉冲串,我们把这种激励信号简化为周期性的脉冲激励。

随机白噪声对应我们说话声音当中的清音,也就是声带处于松驰状态不发生振动时气流通过声门直接进入声道所产生的声音;我们把这种激励信号简化为随机白噪声。

2)声学特征

WORLD对应以下三种声学特征:F0基频、SP频谱包络与AP非周期序列。F0基频对应激励部分的周期脉冲序列,如果我们将声学信号分为周期性信号与非周期信号的话;SP频谱包络对应声道谐振部分时不变系统的冲激响应,大家可以看到经过此线性时不变系统之后Vocoder会对激励与响应进行卷积;AP非周期序列对应混合激励部分的非周期脉冲序列,因为所处理的信号包括周期性信号与非周期信号,虽然可以在混合时仅处理周期性信号并将其作为特征提取,随后再进行系统处理也能够合成相应的目标信号,但其由于缺乏非周期性信号的输入,合成的自然度难以符合要求,因此我们会混合提取非周期信号并同样将其作为特征之一进行提取与处理。

对比三种声学特征,正弦波组成的原始信号中频率最低的正弦波即为基频,其它正弦波则被称为谐波(泛音);频谱包络是指将不同频率的振幅最高点通过平滑的曲线连接起来得到的包络线;非周期序列对应混合激励部分的非周期脉冲序列,其中的混合激励是指通过多种参数控制周期激励、噪声与非周期信号,最后混合周期与非周期信号并通过aperiodicity调控二者权重。

1.2 优势

那么我们为什么选择WORLD 作为Vocoder呢?WORLD相对于常见的如STS等其它传统声码器的优势有以下三点:

首先是声音质量,WORLD Vocoder输出声音的质量优于其它传统声码器,其输出结果有人类自然语言的听感效果;而传统声码器输出声音不但质量欠佳,如机器般冰冷生硬的听感也非常不好。

其次WORLD的处理速度也高于传统声码器,处理速度是语音合成中一项十分重要的指标,我所知的一些基于神经网络的声码器虽然可以实现高质量的声音合成但速度却十分低下,究其原因在于神经网络需要对每一个样本点进行处理;假设一段48k采样的音频,其每一秒中包括48000个采样,如果对每个采样都进行处理无疑会大大拖慢处理效率;而WORLD声码器有其独特的处理效果如无损提高视频播放速度等,同时视频画面质量不会出现任何衰减。

最后是开源,WORLD的算法没有专利性而且开放给任何人使用。相对于其它需要额外花费购买商业版权的声码器,WORLD的优势十分明显。

2. WORLD分析功能

WORLD分析功能的整体架构图如上,我们将一段语音输入系统并得到此段声音的一个特征体系,我们可以存储这部分特征并在需要时读取;语音信号经过一系列合成最终输出目标信号,WORLD会重点提取原始波形中的基频、频谱包络与非周期信号,这三种声学特征对应三种提取算法:负责提取基频的DIO、将提取的F0基频同波形一块输入提取频谱包络SP的CheapTrick,以及将F0、SP和波形一同输入提取非周期信号的D4C,最终将三种声学特征通过合成算法输出恢复其原始波形信号。

2.1 Fundamental Frequency——DIO算法

DIO算法通过一个低通滤波器对原始信号进行滤波得以实现对基频的提取,具体过程为从某个时间点的正弦波中提取出四个周期信号并计算置信度也就是标准差,随后选择标准差最低的作为基频。

2.2 Spectral Envelop——CheapTrick

上图展示了声学特征中的包络。我们的声音包含不同频率的信号,覆盖0到18000赫兹,每个频率都有其振幅(以分贝为单位),我们定义每种频率波的振幅最高点连线组成的图形为包络。

我们有三种提取包络声学特征的方法:LPC、Cepstrum与CheapTrick。LPC就是线性预测编码,其原理为用若干个语音取样过去值的加权线性组合不断逼近一个语音取样值;Cepstrum则是基于复数倒谱拥有频谱幅度与相位信息的原理,通过对一个信号进行FFT、取绝对值、取对数、相位展开、IFFT的变化处理,从而得到其相应的倒谱图实现。

而WORLD中采取的CheapTrick也被称为音高同步分析的方法,其过程是先将不同基频进行适配加仓操作与平衡以及功率平滑操作,随后将信号在频域进行同态滤波操作。

2.3 Aperiodicity——D4C

非周期信号对应两种提取算法:Plantinum算法与D4C算法,在WORLD中我们主要采用D4C算法,基本可分为计算、修正参数与估计Band-aperiodicity。

2.4 应用

我们可以在一些开源的工程项目中见到对上述内容的应用如Python Wrapper。借助Python实现整个特征提取过程:首先通过DIO提取基频,再通过基频中的CheapTrick提取包络;得到基频与包络后再通过D4C得到一个非周期信号,我们将原始波形作为输入信号,利用其采样率、快速傅里叶变换的次数,以及帧移(frame period);最后返回这三个音频特征。

3. 神经网络优化

需要强调的是,单纯的基频、频谱包络与非周期信号结合基于神经网络训练的深度学习技术并不能达到我们期待的理想效果,其原因在于维度过高,尤其是频谱包络与非周期信号的高维特点使得未经优化的特征可达一千多纬度,这为神经网络的训练带来很大压力。而Merlin-WORLD通过实现维度转换有效降低维度,首先是MGC也就是将提取到的MFCC特征降低到60维度从而方便神经网络的训练;其次是将一个非周期信号转变为一个band非周期信号,以48KHz采样为例,经过此操作可实现将一千维度降低至5维;基频则保持原来维度不变。这样我们就可将以上三种特征维度连接起来,变成小于一百维的特征输入Tacotron模型从而实现理想的训练与深度学习效果。

上图展示了我们提取声学特征后恢复原声音波形得到的频谱,可以看到图像基本清晰,整体方法是利用Tacotron端对端TTS深度学习模型预测文本的声谱并通过WORLD声码器还原声谱。相信下图展示的参考资料会帮助大家进一步了解Tacotron+WORLD的无限魅力。

精品文章推荐

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190129A05MMB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券