查看原文
其他

“Hello, world!”,说出口没那么容易

曹征 刘立 壁仞科技研究院 2023-02-18


摘要

文字转语音技术是现今重要的应用研究领域,它涉及语言学、声学、数字信号处理等多门科学技术,是一项复杂的系统性工程。人工智能的发展使得我们可以简化其中的很多步骤并取得更好的合成效果。我们将分次讨论利用人工智能进行语音合成中的涉及基本概念和一些优秀模型,这里的第一篇主要涉及音频或语音在数字时代的处理模式与以此模式对应的合成它的关键所需——声码器。


数字时代音频及其合成


声音是能量在空气中传播的结果,当我们听到“Hello, world!”的声音时,相应的能量到达我们的耳朵,耳膜会以相同的频率和相应的振幅振动,我们于是能感受这样的人声,以及在这之外的一切在人耳感知频率范围,即约20Hz-20kHz之间的声音。

在我们谈到语音合成之前,我们需要了解声音的记录方式。在模拟时代我们就能够记录清晰的声音,进入数字时代,我们将声音记录为如下图的波形文件 (Waveform),它的横轴就是时间,纵轴是波形的振动幅度,也就是声音的强度。


图1 “Hello, world”的声音波形

一个直接的问题是我们可以听到频率高达20 kHz的声音,要想记录这样高频的振动我们显然需要一个在时间,也就是横轴上分辨非常精细的波形。对于数字声音信号,根据那奎斯特采样定理,我们需要将采样频率设置为大于我们所需模拟信号最高频率的两倍,也就是40kHz以上。这也就是为什么当今音频的标准采样率一般为44.1kHz或是48kHz的原因。其中44.1kHz是CD录音的标准采样率,之所以是这个数字其实和上世纪70年代的模拟电视信号有关。当时正处在数字信号发源时期,人们已经有了脉冲编码调制(Pulse Code Modulation)技术产生数字化的音频波形,但却缺乏良好的存储介质来存储高采样率的数字音频波形。人们想到了利用当时已经被广泛使用的录像带。录像带记录的模拟视频信号有NTSC(美国,日本等)和PAL(欧洲,中国等)两种制式。当时的视频以扫描线的方式播放,每秒分别扫描60 (NTSC) 和50 (PAL) 场,每个场则分别包含245 (NTSC) 和294 (PAL) 条扫描线。无论对于哪一种制式,只要让每条场线存储三个采样点,就都可以存储44.1kHz采样率的波形 (245*60*3 = 294*50*3 = 44100)。因此当时由SONY提出的44.1kHz/16bit的录制方式大获成功,哪怕后来CD成了数字录音的标准,这一习惯也保留了下来。下图为SONY PCM-1610数字磁带录音机, 是世界上最早支持44.1kHz/16bit录音的系列设备。当然因为人声频率往往不超过8kHz,如果我们只是处理人声的话,常用16kHz采样的波形文件即可。


图2 SONY PCM-1610数字磁带录音机

声音信号包含了丰富的频谱信息。在语音处理领域,我们需要利用傅里叶变换将这些数字音频信号变换到频域。下图是将一段2秒多的波形信号通过常规的离散傅里叶变换(Discrete Fourier Transform, DFT)处理成频域分布信号。从频域分布可以看到这是一段人声信号,频率主要集中在500Hz左右。


图3 对一段声波进行离散傅里叶变换

通过离散傅里叶变换我们可以提取到声音中各频率的分布信息,常规的离散傅里叶变换是对整个音频信号的时域积分,缺乏对原本波形信号各时间段变化的直接表达。因此我们将一段音频切的足够细,然后对每一段足够短(一个frame,也就是一帧)的音频单独做傅里叶变换。这一过程就是短时傅里叶变换(short time Fourier transform, STFT):


  


经过短时傅里叶变换之后的复数域上的信号包含了频域上的振幅  和对应的相位  。如果我们将振幅项在平面上表示出来,就可以得到在音频分析里重要的频谱图(spectrogram),如下图所示。


图4 一段频谱图


注意这里其实是一个三维的图形,横轴为时间,纵轴为频率,而第三个维度由不同颜色的小色块代表该时刻该频率上的振动强度。事实上,该频谱图并不是波形经过短时傅里叶变换后直接产生的,那样产生的频谱图看上去会非常空,因为我们听到的大部分声音的频谱信息都会集中在非常小的频率和振幅范围之内,就与图3中人声波形直接通过离散傅里叶变换后的结果类似。因此我们对频谱图又做了频率上的指数变换并引入振幅上的分贝表示,形成了如上的信息丰富的频谱图,也叫做梅尔频谱图(Mel spectrogram)。

所以梅尔频谱图代表了声音信号STFT变换后的幅度信息,而不包括相位信息,如果我们将相位项也表达成谱图,它看上去会显得杂乱无章,如下图所示。


图5 一段相位谱图

这些对应时间和频率位置的相位信息对于该色块本身来说并没有直接的物理意义,但是一旦丧失了相位信息,我们无论是通过添加零相位或是随机相位所还原出的声音都会和原本的声音大相径庭,因此在从频谱信息到声音波形的合成过程中,正确的相位信息是非常重要的。我们虽然可以通过波形得到其相位和其他语音特征,但却很难反向生成它。为了从梅尔谱正确恢复语音,我们用声码器 (vocoder) 来对振幅谱匹配合适的相位,最终产生语音。


语音合成与声码器

为了能够让计算机合成更真实的语音,传统的文本到语音 (Text To Speech,TTS) 模型需要先从文本产生多种内容,包括语义特征和基频、时长等声学特征,再将这些特征输入给一个声码器转换成最终的波形文件。端到端的TTS模型相比于传统的TTS模型大大简化了流程。但一般来说仍然需要将文本先转化为频谱,再通过声码器输出最终波形。

因此在最终波形文件也就是语音的输出质量中,声码器的重要性不言而喻。端到端的TTS模型Tacotron[1]采用了基于传统Griffin-Lim方法[2]的声码器,Tacotron先从文本产生线性频谱,该频谱只含有频域上的振幅谱,而缺少相位谱,因此Griffin-Lim声码器的主要任务是在仅输入振幅谱的情形下匹配以合适的相位谱产生波形,它的做法很简单:

1.产生一个随机的初始相位谱;

2.用该随机相位谱和已知振幅谱通过反短时傅里叶变换(ISTFT)合成波形;

3.将合成的波形再通过正向短时傅里叶变换转成新的振幅谱和相位谱;

4.用原振幅谱和新相位谱合成波形,回到第3步,如此循环。

经过这样的循环我们能够一定程度上还原波形,具体数学原理在此不赘述。但Griffin-Lim声码器的最终输出效果仍然差强人意,直到神经网络声码器WaveNet[3]的出现大大改善了这一状况。WaveNet是最早的神经网络声码器,它采用了自回归 (autoregressive) 的设计思想。在这之后,出现了更多基于自回归的声码器例如WaveRNN[4], FFTNet[5]等,也有基于GAN的声码器例如MelGAN[6], Parallel WaveGAN[7]等,还有基于流的模型 (Flow-based model) 例如WaveGlow[8]。


神经网络声码器WaveNet


取得TTS SOTA指标的端到端模型Tacotron2[9]最初就采用了WaveNet作为产生梅尔频谱之后输出波形用的声码器。如之前所说,WaveNet是一个自回归(autoregressive)模型,这是处理时间序列的典型方法,即用当前时刻t之前的所有输出即  来预测当前输出  。


图6 声波信号中的采样点

上图中将波形在极短的时间内展开,可以看到波形上的一个个圆点即是采样点,因此对于WaveNet来说,它需要之前(一定时长内)所有采样点的位置信息来预测下一个点的位置。而模型实现预测的主体是通过因果卷积(causal convolutions)来实现。


图7 含有空洞的因果卷积 [3]

如上图,因果卷积就是经过中间的hidden layer之后将产生的新的单个输出放至下一次迭代输入的最后,依次不断循环。这里作者还采用了空洞卷积 (dilated convolution) 的做法,也就是下一个layer的某个点并非基于上一个layer对应位置及前一个位置的点,而是基于上一个layer对应位置以及前N个(不同layer之间不同,越接近output层N越大)位置的点,这样在计算较少的hidden layers的情况下每一个新的输出点可以基于更大的输入感受野内的点的信息,以此提升模型的时序范围。

但这里input是WaveNet本身输出的前面所有时刻的波形,那TTS流程中由端到端模型例如Tacotron2产生的梅尔频谱又是如何输入的呢?


 图8 WaveNet的模型结构 [3]


上图是WaveNet总体的模型结构,可以看到当前时刻前的波形作为input输入之后经过空洞因果卷积,要分别输入给两个不同的激活函数tanh和  ,再经过上方的point-wise相乘输出给之后的模块。这两步(激活函数和point-wise相乘)可以表示为

  

可以看到激活函数的内部除了波形x经过卷积后的结果,还有另一组输入y经过卷积的结果。这里的y可以是另一组时序输入,经过卷积后获得与x卷积结果相同的维度,一同输入给激活函数。而由端到端模型例如Tacotron2产生的梅尔频谱就是作为另一组时序信号y输入给了WaveNet。再加上残差模块和多层这样的重复层以及最后的将16bit信号转成8bit的一种特殊softmax层之后,输出的波形文件也就是所需的语音。

WaveNet作为一种自回归模型,它天然适用于处理音频波形这样的时序信号并能产生极具真实感的人声,但问题是音频波形的采样率很高,不用说作为音乐录音广泛采用的44.1kHz甚至48kHz,就算是只为了记录人声信号的16kHz采样率也意味着每秒需要1.6万个采样点的描述,这对于需要逐点进行的自回归模型WaveNet来说仍然是很大的算力挑战,实际上它在一张不错的GPU上的推理速度还远不能用于实时产生波形(16 kHz) 。这之后出现了许多更高效的自回归神经网络模型如FFTNet,WaveRNN等,或者是非自回归模型如WaveGlow,它们的推理速度则已经远超产生实时波形的需求。和端到端的从文字到声音频谱信息的模型例如Tacotron2一起,我们于是可以从文字实时产生高质量的语音信息。

 

小结

由神经网络给出的端到端的文字转语音模型给之前的传统方法带来了巨大的变革,简化了很多需要大量领域内知识的复杂步骤。利用优秀的神经网络声码器WaveNet已经可以从语音特征包括频谱还原出极其真实的人声,极大提升了之前如Griffin-Lim传统声码器的相位预测能力。虽然WaveNet经过训练能取得十分接近人类发音的优秀效果,提升它的推理效率仍然十分必要。而完整的TTS任务中,WaveNet只是负责将声音的频谱特征转化成输出的声音波形,在此之前从文本直接产生声音频谱的神经网络又该如何设计?我们将在后续的分析中讨论这一主题。


参考文献

[1] Austin Derrow-Pinion, Jennifer She, David Wong, et al. ETA Predictionwith Graph Neural Networks in Google Maps. 2021

[1] Y. Wang, R. Skerry-Ryan, D. Stanton, Y. Wu, et al., “Tacotron: Towards end-to-end speech synthesis,” in Proc. Interspeech, Aug. 2017, pp. 4006–4010.

[2] Daniel Griffin and Jae Lim. Signal estimation from modified short-time Fourier transform. IEEE Transactions on Acoustics, Speech, and Signal Processing, 32(2):236–243, 1984.

[3] A. van den Oord, S. Dieleman, H. Zen, et al., “WaveNet: A generative model for raw audio,” CoRR, vol. abs/1609.03499, 2016.

[4] N. Kalchbrenner, E. Elsen, K. Simonyan, et al., “Efficient neural audio synthesis,” in ICML, 2018.

[5] Z. Jin, A. Finkelstein, G. J. Mysore, and J. Lu, “Fftnet: A realtime speaker-dependent neural vocoder,” in 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018, pp. 2251–2255

[6] K. Kumar, R. Kumar, T. de Boissiere, et al., “MelGAN: Generative adversarial networks for conditional waveform synthesis,” arXiv, 2019.

[7] R. Yamamoto, E. Song, and J.-M. Kim, “Parallel WaveGAN: A fast waveform generation model based on generative adversarial networks with multi-resolution spectrogram,” in ICASSP, 2020.

[8] R. Prenger, R. Valle, and B. Catanzaro, “WaveGlow: A flowbased generative network for speech synthesis,” in Proc. ICASSP, Brighton, 2019.

[9] J. Shen, R. Pang, R. J. Weiss, M. Schuster, N. Jaitly, et al., “Natural TTS synthesis by conditioning wavenet on Mel spectrogram predictions,” in Proc. ICASSP, Calgary, 2018.



 往期推荐

1、NeRF方法中的相机参数求解

2、AI框架里的并行技术

3、融合图像文字输入的Transformer:ViT-BERT



关于壁仞科技研究院


壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。

扫码关注我们


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存