深度学习在2006年崭露头角后,近几年取得了快速发展,在学术界和工业界均呈现出指数级增长的趋势;伴随着这项技术的不断成熟,深度学习在智能语音领域率先发力,取得了一系列成功的应用。
这次分享会中,雷锋网(公众号:雷锋网)邀请到了中科院自动化所的刘斌博士。刘斌,中科院自动化所博士,极限元资深智能语音算法专家,中科院-极限元智能交互联合实验室核心技术人员,曾多次在国际*会议上发表论文,获得多项关于语音及音频领域的专利,具有丰富的工程经验。刘斌博士会与大家分享近年来深度学习在语音生成问题中的新方法,围绕语音合成和语音增强两个典型问题展开介绍。
雷锋网 AI 科技评论把此次演讲的概要整理如下。想要进一步了解的读者,可以在文末观看视频,还可以根据刘斌博士的指导查找相关资料增加了解。
刘斌:大家好。深度学习近几年发展非常火热,在学术界和工业界都有许多成果和应用。深度学习在语音领域也已经落地解决了许多问题,语音合成、语音增强、语音转换、语音带宽扩展等等。今天重点讲解语音合成和语音增强两个问题下的方法。
语音合成
语音合成的任务目标是从文本输入到声学特征的转换。在生成语音之前,文本首先需要进行分析预处理,其中正则化针对数字和特殊符号,音字转换针对多音字,韵律处理让生成的语音抑扬顿挫、有节奏感,然后再进行后端的生成。声学处理常用的方法有统计参数建模和声码器的方法。
这是传统基于隐马尔可夫框架(HMM)的统计参数语音合成系统,在训练过程中建立文本参数到音频参数之间的映射关系。其中有三个环节会导致语音音质下降:决策树聚类、声码器重新生成语音、以及动态参数生成算法。针对这三个问题点,就有人提出用深度学习的方法进行改进。
深度学习的方法里,用神经网络代替决策树的作用,建立文本特征和声学特征之间的关系,就提高了模型的精度。对于具体的模型结构,LSTM比DBN具有更强的序列学习能力,所以使用LSTM时经常可以跳过参数生成算法,直接预测语音参数,然后送到声码器中就可以生成语音了。深度神经网络强大的非线性建模能力也能在一定程度上提升语音合成系统的性能。
最近一两年在工业界也有一些新的语音合成方法,比如基于WavNet的语音合成。这是一种从时域(声波在不同时间的采样值大小)的角度出发处理语音问题的方法,问题本身很有挑战性;传统方法都是从频域(声波在不同时间的频率高低)出发的。谷歌提出的WavNet可以直接把文本参数和声波的采样值建立对应关系。它的主要问题是,每次只能输出单个采样点的值,导致计算速度慢、生成效率低。
百度也提出了基于 DeepVoice 的语音生成系统,用深度神经网络实现了其中多个模块,然后以类似WavNet的模块生成语音。它的计算速度相比 WavNet 提升了约400倍。随后百度进一步拓展为了DeepVoice2,可以支持多说话人的语音合成,每个人也最少也只需要半个小时数据就可以达到比较理想的效果。
Tacotron是谷歌推出的比较新颖的语音合成系统,它的特点是使用了编码器-解码器的网络结构,好处在于输入和输出序列的长度可以不需要保持一致;并且引入了注意力机制,可以提升性能。结构里还包含一个后处理网络。网络的输出是一个频谱图,用相位重构算法就可以转换为语音。这种方法里绕开了声码器模块,可以提升语音的质量
目前语音合成方面还有一些问题没有解决,一,多数方法还是面向单个说话人的。对于多个说话人、多语言的语音合成效果仍然不太理想。迁移学习相关的方法有可能会对这类问题的解决做出贡献。二,目前的语音系统生成的声音的表现力还有所不足,尤其是合成口语的时候,效果会有下降。
语音增强
语音增强是语音识别、声纹识别等算法中重要的前端处理模块。它的优劣在一定程度上影响着后续识别方法的鲁棒性。根据麦克风的数目不同,语音增强可以分为单通道语音增强和多通道语音增强。多通道语音增强可以更有效低利用声音的空间信息,增强目标方向的声音信息,抑制分目标方向的干扰源;这类方法今天先不作具体介绍,感兴趣的可以参见麦克风阵列技术的相关资料。
图中展示了四种主要的干扰源,真实状况下可能是同时存在的,这就给语音增强带来了很大难度。以下介绍一些单通道语音环境下的语音增强方法。
单通道语音增强的方法主要分为三大类。基于深度学习的语音增强方法下面会做详细一些的介绍。这里也是利用了深度学习强大的非线性建模的能力,在匹配的环境下优势很明显,在处理非平稳噪声的时候也有一定的优势。
这是一种通过深层神经网络直接预测谱参数的方法,它的输入是带噪语音的幅值谱相关特征,输出是干净语音的幅值谱相关特征,然后建立了两者间的映射关系。网络结构可以是DNN,可以是LSTM,甚至可以是CNN。这类方法可以更有效地捕捉到上下文的信息,所以处理非平稳噪声时有一定优势。
深层神经网络还可以用来预测屏蔽值。这类方法中,模型的输入可以是听觉域相关特征,输出可以是二值型的屏蔽值或者浮点型的屏蔽值。这类方法根据听觉感知的特性把音频分为了不同的子带,提取特征参数。它的实际作用是判断时频单元内的内容是语音还是噪声,然后根据判断结果保留时频单元内的能量或者置零。这类方法的优势是,共振峰处的能量可以得到很好的保留,而相邻共振峰之间、波谷处的语音虽然会失真较多,但是人类对这些信息不敏感,所以仍然有相对较高的可懂度。
以往的方法主要关注于声音的幅值谱,没有利用到相位谱中的信息。复数神经网络中的复数谱就是一种同时利用幅值谱和相位谱的方法。
现在还有利用生成式对抗网络GANs的语音增强方法。GANs是这两年的热点范式,目前在语音领域中的应用还不多,不过今年也已经有人提出运用在语音增强中。这篇论文中的方法中,不再需要RNN结构网络中的递归操作,可以直接处理原始音频,是端到端的方法,不需要手工提取特征,也不需要对原始数据做明显的假设。生成器结构采用了CNN,而且没有全连接层,这样可以减少模型参数数量、缩短训练时间;端到端直接处理原始语音信号的方法也避免了变换、提取声音特征等复杂过程。鉴别器仍然起到引导生成器更新的作用。
除了刚才说到的一些主要针对环境噪声抑制的方法之外,PIT方法则可以处理两个或更多说话人声音混叠时的分离问题。还有一种基于深层聚类的分离方法。不过为了在真实环境下可用,去噪音、去混响等问题也需要考虑,分离问题仍然有很大的困难。
语音增强领域目前仍待解决的问题是,如何在消除噪声的同时有效提高语音的可懂度、听感(避免消除语音本身的特征),以及,语音增强方法作为后续语音识别和声纹识别方法的预处理模块,需要前后合理对接,而不应完全分别设计,这样才能提高整个系统的鲁棒性。
最后,对于未来发展的展望,语音生成领域许多问题虽然建模方法不同,但是也有许多值得互相借鉴的部分,可以促进相互提高。深度学习虽然是火热的方法,但是也不能指望深度学习解决所有的问题。并且,要先对处理对象的物理含义有深入的理解,在这个基础上寻找合适的模型、对模型进行优化,才能得到较好的问题解决效果。