文章为翻译,仅供学习参考。
论文地址:Deep Learning for Audio Signal Processing | IEEE Journals & Magazine | IEEE Xplore
作者:Hendrik Purwins, Bo Li, Tuomas Virtanen, Jan Schlüter, Shuo-yiin Chang, Tara Sainath
译文PDF链接:【免费】DeepLearningforAudioSignalProcessing译文资源-CSDN文库
最近深度学习的发展势头迅猛,本文对音频信号处理领域的最新深度学习技术进行了综述。文章将语音、音乐和环境声音处理并列考虑,以指出这些领域之间的相似性和差异性,突出总结了常用的方法、问题、重要参考文献,并探讨了各领域之间的相互交叉借鉴的潜力。综述了主要的特征表示方法(尤其是对数-梅尔谱和原始波形)和深度学习模型,包括卷积神经网络、长短时记忆网络的变体,以及更加符合音频特性的神经网络模型。随后,重点介绍了深度学习在音频信号处理中的应用领域,包括音频识别(自动语音识别、音乐信息检索、环境声音检测、定位和跟踪)以及合成和转换(音源分离、音频增强、生成模型用于语音、声音和音乐合成)。最后,确定了深度学习应用于音频信号处理领域的关键问题和未来研究方向。
人工神经网络迄今为止已经引起了三次广泛关注的浪潮。第一次是在1957年感知器算法[1]的提出,第二次是在1986年反向传播算法[2]的出现,最后一次是在2012年深度学习在语音识别[3]和图像分类[4]方面取得成功,导致了深度学习的复兴,包括深度前馈神经网络[3]、卷积神经网络(CNNs,[6])和长短时记忆(LSTM,[7])。在这种“深度”范式中,通过训练具有大量参数的架构来利用机器并行计算的最新进展(如云计算、GPU或TPU [8])从海量数据中进行学习。对深度学习的最近兴趣激增使其在信号处理的许多领域中实现了实际应用,并常常在大规模上优于传统的信号处理方法。在这最近的浪潮中,深度学习首先在图像处理领域取得了成功[4],但随后被广泛应用于语音处理、音乐和环境声音处理,以及基因组学、量子化学、药物发现、自然语言处理和推荐系统等众多领域。因此,在音频信号处理中先前使用的方法,如高斯混合模型、隐马尔可夫模型和非负矩阵分解,在数据充足的应用中往往被深度学习模型所超越。
尽管很多深度学习方法是从图像处理中借鉴的,但音频领域和图像处理领域存在一些重要的差异,这需要我们特别关注。原始音频样本形成了一个一维的时间序列信号,这与二维图像有根本的不同。为了进行处理,音频信号通常被转换为二维的时频表示,但时间和频率这两个轴并不像图像中的水平和垂直轴那样是均匀的。图像是目标的瞬时快照,通常作为整体或以小块进行分析,没有太多的顺序约束;然而,音频信号必须按照时间顺序进行顺序研究。这些特性导致了专门针对音频的解决方案的出现。
为了铺垫,我们首先对音频分析和合成问题进行了概念上的概述(2.1),介绍了常用的输入表示方法(2.2),以及不同应用领域之间共享的模型(2.3)。然后,我们将简要介绍数据(2.4)和评估方法(2.5)。
本次调查中考虑的任务可以根据要从输入中预测的目标类型分为不同的类别,而输入始终是一个音频样本的时间序列。这种划分涵盖了两个独立的轴(参见图1):一方面,目标可以是单个全局标签、每个时间步的局部标签,或者是一个自由长度的标签序列(即长度不是输入长度的函数)。其次,每个标签可以是单个类别、一组类别或数值。接下来,我们将命名并给出考虑的不同组合的示例。
预测预测单个全局类别标签被称为序列分类。这样的类别标签可以是预测的语言、说话人、音乐调性或声学场景,取自一组可能类别的预定义集合。在多标签序列分类中,目标是可能类别集合的子集。例如,目标可以包括几个声学事件,例如在弱标记的AudioSet数据集 [9] 中,或者一组音乐音高。当类别彼此依赖时,多标签分类可以特别有效。在序列回归中,目标是连续范围内的值。估计音乐的节奏或预测下一个音频样本可以被表述为这样的问题。请注意,回归问题总是可以离散化并转化为分类问题:例如,当音频样本量化为8位时,预测样本将成为一个具有256个类别的分类问题。
当在每个时间步长预测一个标签时,每个时间步长可以包含固定数量的音频样本,因此目标序列长度是输入序列长度的一部分。同样,我们可以区分不同的情况。这里将每个时间步长的分类称为序列标记。例如,和弦注释和声音活动检测。事件检测旨在预测事件发生的时间点,例如说话人变化或音符开始,可以被表述为二元序列标记任务:在每个步骤中,区分事件的存在和不存在。每个时间步的回归生成连续的预测,可以是到移动声源的距离、声音的音高或源分离等。
在序列转导中,目标序列的长度不是输入长度的函数。没有已建立的术语来区分分类、多标签分类和回归。例如语音转文字、音乐转录或语言翻译都属于序列转导任务。
最后,我们还考虑了一些不是从音频信号开始的任务:音频合成可以被视为从一系列条件变量中预测音频样本的序列转导或回归任务。音频相似度估计是一个回归问题,它将一个连续值分配给一对可能长度不同的音频信号。
在音频处理中,构建适当的特征表示和设计适当的分类器通常被视为分开的问题。这种方法的一个缺点是所设计的特征可能不适用于当前的分类目标。深度神经网络(DNNs)可以看作是同时进行特征提取和目标优化(如分类)的过程。例如,在语音识别中,Mohamed等人 [10] 表明,DNN的较低层的激活可以被视为说话者自适应特征,而DNN的较高层的激活可以被视为执行基于类别的区分。
几十年来,梅尔频率倒谱系数(MFCCs)[11] 一直被用作音频分析任务的主要声学特征表示。它们是将幅度谱投影到一组较少的频带上,转换为对数幅度,并通过离散余弦变换(DCT)进行近似白化和压缩。使用深度学习模型后者已被证明是不必要的或不受欢迎的,因为它会移除信息并破坏空间关系。省略它会得到对数梅尔谱,这是在音频领域中非常流行的特征表示。
梅尔滤波器组用于投射频率,其灵感来源于人类听觉系统和关于语音感知的生理学发现。对于某些任务而言,使用一种能够将移调作为平移来捕捉的表示形式更为合适。移调一个音调包括按一个共同因子缩放基频和泛音,这在对数频率尺度上变成了一个位移。常量Q谱通过一个合适的滤波器组实现了这样一个频率尺度。
(log-mel或常量Q)频谱图是一系列随时间变化的频谱。就像自然图像一样,自然声音的相邻频谱图箱在时间和频率上是相关的。然而,由于声音产生的物理特性,对于那些是同一基频倍数的频率(谐波)之间存在额外的相关性。为了让一个空间局部模型(例如,CNN)考虑到这些因素,可以添加一个第三维度,直接得出谐波序列的幅度[14], [15]。此外,与图像不同,不同频带之间的值分布有显著差异。为了对抗这一点,可以对频谱图按带分别进行标准化。
在计算频谱时,窗口大小决定了时间分辨率(短窗口)和频率分辨率(长窗口)之间的权衡。无论是对于log-mel频谱还是常量Q频谱,都可以对高频使用更短的窗口,但这会导致频谱图不均匀地模糊,不适合用于空间局部模型。替代方法包括使用不同窗口长度计算频谱,将其投影到相同的频带上,并作为独立的通道处理[16]。在文献[17]中,作者还研究了不同频谱特征的组合。
为了避免依赖于设计好的滤波器组,已经提出了各种方法来进一步简化特征提取过程,并将其推迟到数据驱动的统计模型学习中。与mel间隔的三角滤波器不同,数据驱动的滤波器已经学习并使用。文献[18]和[19]使用全分辨率幅度谱,文献[20]至[23]直接使用音频信号的原始波形表示作为输入,并与网络的其余部分一起学习数据驱动的滤波器,用于目标任务。通过这种方式,学习到的滤波器直接针对目标目的进行了优化。在文献[24]中,模型的底层被设计为模仿log-mel频谱的计算,但所有滤波器参数都是从数据中学习得到的。在文献[25]中,放弃了滤波器组的概念,学习了一个因果回归模型,该模型基于时间域波形样本,无需任何人类先验知识。
音频信号可以表示为原始音频帧或人工设计的特征向量(例如对数梅尔频谱/常量-Q变换/复数谱)序列、矩阵(如频谱图)或张量(如堆叠的频谱图)。这些信号可以通过各种深度学习模型进行分析。与图像处理等其他领域类似,对于音频,通常会堆叠多个前馈、卷积和循环(如LSTM)层以增加建模能力。深度神经网络是一个有许多堆叠层的神经网络[26]。
1)卷积神经网络(Convolutional Neural Networks,CNNs):CNNs基于将输入与可学习的卷积核进行卷积运算。对于频谱输入特征,通常采用一维时间卷积或二维时频卷积,而对于原始波形输入,则应用一维时间域卷积。卷积层通常计算多个特征图(通道),每个特征图由对应的卷积核生成。在卷积层之上添加池化层可以对学习到的特征图进行下采样。一个CNN通常由一系列卷积层和池化层交替堆叠组成,然后是一个或多个全连接层。对于序列标注任务,可以省略全连接层,得到一个全卷积网络(FCN)。
卷积神经网络(CNN)的感受野(用于计算预测的样本或频谱数量)由其网络结构固定。可以通过使用更大的卷积核或堆叠更多层来增加感受野。特别是对于具有高采样率的原始波形输入,要达到足够的感受野大小可能导致CNN的参数数量变多和计算复杂度增高。作为替代方案,可以使用扩张卷积(也称为空洞卷积或带孔卷积)[25], [27], [29],通过在滤波器系数之间插入零,将卷积滤波器应用于比其滤波器长度更大的区域。一系列扩张卷积能够在只有少数几层的情况下获得非常大的感受野,同时保持输入分辨率以及计算效率。
截至目前,关于如何确定给定任务的最佳CNN架构(卷积核的大小、池化和特征图的大小、通道数和连续层的数量)的操作性和经验证的理论尚不可得(参见[30])。因此,选择CNN的架构在很大程度上是基于实验,并根据验证误差进行选择。这导致了一些经验法则的指导方针,比如对于较少的数据,应该减少参数的数量[31];随着后续卷积层中特征图尺寸的减小,应增加通道数;考虑时间上下文的必要大小;以及与任务相关的设计(例如分析或合成/转换)。
2)循环神经网络(RNNs):即使使用扩张卷积,CNNs 能够建模的有效上下文大小仍然有限。RNN采用不同的方法来建模序列[32]:它们从当前时间步的输入和上一时间步的隐藏状态计算输出。这本质上模拟了输入中的时间依赖关系,并允许感受野无限地向过去延伸。对于离线应用,双向 RNNs 在相反的顺序中使用第二个循环,将感受野扩展到未来。与传统的HMMs不同,对于所有-全部内核的RNN,随着循环隐藏单元数量的线性增长,可表示状态的数量呈指数增长,而训练或推断时间最多增长为二次方[33]。RNN在训练过程中可能会出现梯度消失/爆炸问题。已开发出许多变体来解决这个问题。长短期记忆网络(LSTM)[7]利用门控机制和记忆单元来缓解信息流动和减轻梯度问题。堆叠循环层[34]和稀疏循环网络[35]在音频合成中被发现很有用。
除了用于建模时间序列之外,长短期记忆网络(LSTMs)还被扩展用于跨时间和频率领域的音频信号建模。频率LSTM(F-LSTM)[36]和时频LSTM(TF-LSTM)[37]-[39]被引入作为替代卷积神经网络(CNNs)来建模频率相关性的方法。与CNN不同,F-LSTM通过局部滤波器和循环连接捕捉平移不变性,它们不需要池化操作,并且更适应多种类型的输入特征。TF-LSTM在时间和频率上展开,并可以通过局部滤波器和循环连接来建模频谱和时间变化。在某些任务中,TF-LSTM优于CNNs[39],但其并行化能力较差,因此速度较慢。
另外,循环神经网络(RNNs)也可以处理卷积神经网络(CNN)的输出,形成卷积循环神经网络(CRNN)。在这种情况下,卷积层提取局部信息,而循环层将其结合到更长的时间上下文中。图2可视化了处理时间上下文的各种方式。
3)序列到序列模型:序列到序列模型直接将输入序列转换为输出序列。许多音频处理任务本质上就是序列到序列的转换任务。然而,由于音频处理任务的复杂性很高,传统系统通常将任务分成一系列子任务,并独立解决每个任务。以语音识别为例,最终的任务是将输入的时间性音频信号转换为单词的输出序列。但传统的ASR系统包括单独的声学、发音和语言建模组件,通常是独立训练的[40],[41]。
随着深度学习模型具有更大的建模能力,对于构建直接将输入音频信号映射到目标序列的端到端训练系统(End-to-End trained systems)越来越感兴趣[42]-[47]。这些系统通过训练来优化与最终评估指标相关的准则(例如语音识别系统的词错误率)。这种序列到序列模型完全由神经网络构成,不使用有限状态转换器、词典或文本规范化模块。声学、发音和语言建模组件在一个单一的系统中进行联合训练。与传统系统相比,这极大地简化了训练过程:它无需从决策树或由独立系统生成的时间对齐开始,而且由于模型被训练成直接预测目标序列,解码过程也被简化了。
其中一种模型是连结时序分类(CTC)模型。该模型引入了一个空白符号,以匹配输出序列长度与输入序列,并通过插入空白符号的所有可能方式进行整体优化输出序列,而不是每个单独的输出标签[48]-[51]。基本的CTC模型由Graves扩展[42],包括一个单独的循环神经网络语言模型组件,称为循环神经网络传输器(RNNT)。基于注意力机制的模型可以学习输入和输出序列之间的对齐,并与目标优化一起进行联合训练,这在近年来变得越来越受欢迎[43], [52], [53]。在各种序列到序列模型中,listen, attend and spell(LAS)相对于其他模型提供了改进(详见图2)[54]。
4)生成对抗网络(GANs):GANs是一种无监督的生成模型,它们学习从低维随机潜在向量中生成给定数据集的逼真样本[55]。GANs由两个网络组成,一个生成器和一个鉴别器。生成器将从某个已知先验中抽取的潜在向量映射到样本,而鉴别器的任务是判断给定样本是真实还是伪造的。这两个模型在一个对抗性的框架中相互竞争。尽管GANs在图像合成方面取得了成功[55],但在音频领域的应用仍然有限。GANs已经被用于源分离[56]、音乐乐器转换[57]和语音增强,将噪声语音输入转换为降噪版本[58]-[61]。这些将在第三部分B2节中进行讨论。
5)损失函数:深度学习系统设计中至关重要且创造性的部分之一是选择损失函数。当使用梯度下降进行训练时,损失函数需要对系统的可训练参数具有可微性。均方误差(MSE)可以用于量化两个音频帧之间在其谱包络方面的差异。为了考虑时间结构,可以比较 log-mel 频谱图。然而,在时域中通过取样本之间的 MSE 来比较两个音频信号并不是一个健壮的度量方法。例如,两个频率相同的正弦信号的损失完全取决于它们相位之间的差异。为了考虑稍微非线性扭曲的信号听起来相似的事实,可以使用可微动态时间扭曲距离[62]或如Wasserstein GANs[63]中的 earth mover 距离更合适。损失函数还可以针对特定的应用进行定制。例如,在源分离中,可以基于心理声学语音可懂度实验设计一个客观的可微损失函数。不同的损失函数可以组合使用。对于受控音频合成[64],一个损失函数被定制为鼓励变分自编码器(VAE)的潜在变量保持在定义的范围内,另一个损失函数则是改变控制空间在生成的音频中得到反映。
6)相位建模:在计算log-mel频谱时,使用了幅度频谱,但相位频谱丢失了。虽然在音频分析时只使用幅度频谱可能是必要的,但在音频合成过程中,合理的相位信息是必需的。可以使用Griffin-Lim算法[65]从幅度频谱中估计相位信息。
然而,从估计的相位信息中得到高质量音频的准确性是不足的,在源分离、音频增强或生成等应用中需要高质量音频。可以通过训练神经网络(例如WaveNet [25])来从log-mel频谱生成时域信号[66]。另外,也可以通过将幅度和相位频谱作为输入特征[67]或通过复杂目标[68]直接训练深度学习架构来接收复杂频谱;或者可以将DNN中的所有操作(卷积、池化、激活函数)扩展到复数域[69]。
当使用原始波形作为输入表示时,对于分析任务而言,一个困难在于在感知上和语义上相同的声音可能以不同的相位偏移呈现,因此使用对小相位偏移不变的表示是至关重要的。为了实现相位不变性,研究人员通常使用在时间上进行池化的卷积层[20]、[21]、[23]或具有大型、潜在过完备的隐藏单元的DNN层[22],这些层能够捕捉到各个相位下相同的滤波器形状。在合成任务中,例如使用自回归模型[25]时,通常会使用原始音频作为输入表示。
深度学习被认为在应用于大型训练数据集时性能最佳。对于深度学习在计算机视觉领域的突破,ImageNet数据库的可用性是一个主要因素,该数据库至2019年已拥有1400万张手工标注的图像。然而,在包括语音、音乐和环境声音在内的跨领域,还没有这样一个可以共享的、标注良好的数据集。对于语音识别,尤其是英语,有大型数据集存在[71]。对于音乐序列分类或音乐相似性,有百万歌曲数据集[72],而MusicNet[73]则处理逐音符的序列标注。用于更高级别音乐序列标注,如和弦、节拍或结构分析的数据集通常要小得多[74]。对于环境声音序列分类,有超过200万个音频片段的AudioSet[9]可用。
特别是在图像处理领域,对于标注数据有限的任务,可以通过迁移学习来解决:使用为另一任务标注的大量相似数据,并将从中学到的知识适应到目标领域。例如,训练在ImageNet数据集上的深度神经网络可以通过重新训练最后几层或以小的学习率微调权重,来适应其他分类问题,即使只使用少量特定任务的数据。在语音识别中,一个模型可以先在有更多转录数据的语言上预训练,然后适应到资源较少的语言[75]或领域[76]。
数据生成和数据增强是解决有限训练数据问题的其他方法。对于某些任务,可以生成与真实数据相似的数据,并已知合成参数和标签。生成数据复杂度的控制性逐步增加有助于理解、调试和改进机器学习方法。然而,如果仅在生成的数据上训练,算法在真实数据上的表现可能会很差。数据增强通过操纵现有示例来生成额外的训练数据,以覆盖更广泛的可能输入。对于自动语音识别(ASR),[77]和[78]独立提出通过变换音高(称为声道扰动)和时间拉伸来转换语音片段。对于远场ASR,可以通过房间模拟器传递单通道语音数据,以生成多通道的噪声和混响语音[79]。音高变换也被证明对和弦识别有用[80],并结合时间拉伸和频谱滤波用于歌声检测[81]和乐器识别[82]。对于环境声音,线性组合训练示例及其标签可以提高泛化能力[83]。对于源分离,可以通过混合分离轨道合成的数据集成功地训练模型。
评估标准因任务而异。对于语音识别系统,性能通常用词错误率(WER)来评估。WER计算在对齐参考词串和假设词串后的词错误比例,包括插入、删除和替换率,这些是插入、删除和替换的数量除以参考词的数量。在音乐和声景分类中,准确率是一个常用的度量标准。为了评估没有固定分类阈值的二分类问题,接收者操作特征曲线下面积(AUROC)是一个替代准确率的性能度量标准。性能度量的设计可能会考虑类别之间的语义关系。例如,如果检测到的和实际的和弦在和声上非常接近,和弦检测任务的损失可以设计得更小。在事件检测中,性能通常使用等错误率或F分数来衡量,其中真正例、假正例和假负例是根据固定长度的段或每个事件计算的[84]、[85]。客观源分离质量通常使用信号到失真比、信号到干扰比和信号到杂质比等指标来衡量[86]。平均意见得分(MOS)是评估合成音频质量的主观测试,特别是语音。图灵测试也可以为音频生成提供一个评估度量。
为了为跨领域比较奠定基础,我们现在将查看所讨论方法的具体应用,首先是分析语音(第3.1.1节)、音乐(3.1.2节)和环境声音(第3.1.3节),然后是音频的合成和转换:源分离(第3.2.1节)、语音增强(第3.2.2节)以及音频生成(3.2.3节)。
1)语音:使用声音获取信息和与环境互动对人类来说是一种根深蒂固且本能的交流形式。语音识别——将语音音频转换为单词序列——是任何基于语音的互动的先决条件。构建自动语音识别系统的努力可以追溯到半个世纪以前[87]。然而,这类系统在实际应用中的广泛采用只是在近几年发生的。
几十年来,三音素状态的高斯混合模型(GMM)/隐马尔可夫模型(HMM)是语音建模的主导选择。这些模型有许多优点,包括它们的数学优雅性,这导致了许多原理性的解决方案,用于解决实际问题,例如说话者或任务适应。大约在1990年,人们发现判别式训练比使用最大似然训练的模型表现得更好。基于神经网络的混合模型被提出以替代GMMs[88]-[90]。然而,最近在2012年,训练有数百万参数且在数千小时的数据上训练的深度神经网络(DNNs)被证明可以在各种语音识别任务上显著降低词错误率(WER)[3]。除了深度前馈和卷积网络[91]的巨大成功外,长短期记忆网络(LSTMs)和门控循环单元(GRUs)已被证明优于前馈DNNs[92]。后来,一个由卷积、LSTM和前馈层组成的级联,即卷积长短期记忆深度神经网络(CLDNN)模型,进一步被证明优于仅LSTM模型[93]。在CLDNNs中,一窗口的输入帧首先被两个具有最大池化层的卷积层处理,以减少信号中的频率变化,然后投影到一个低维特征空间,供后续的LSTM层建模时间相关性,最后通过几个前馈层和一个输出softmax层传递。
随着循环神经网络(RNNs)在语音建模中的采用,传统基于HMM的音素状态建模所带来的输出目标的条件独立假设不再是必需的,研究领域转向了完整的序列到序列模型。人们对学习一个纯粹的神经序列到序列模型,如CTC和LAS,表现出了极大的兴趣。在[45]中,Soltau等人训练了一个基于CTC的模型,其输出目标为单词,被证明在YouTube视频字幕任务上优于最先进的CD-音素基线。听、关注和拼写(LAS)模型是一个包含编码器的单一神经网络,该编码器类似于传统的声学模型,一个作为对齐模型的注意力模块,以及一个类似于传统系统中语言模型的解码器。尽管这种序列到序列模型的架构简单性和经验性能,但为了超越传统模型,已提出进一步改进模型结构和优化过程[94]。
随着语音识别性能的显著提升,它已足够稳健以适用于真实世界的应用。虚拟助手,如Google Home、亚马逊Alexa和微软Cortana,都采用声音作为主要的交互方式。语音转录也找到了其在从多媒体检索信息的各种应用中的位置,如YouTube语音字幕。随着基于语音的应用日益增多,扩展对更多说话者和语言的语音支持变得更加重要。迁移学习已被用来利用富资源语言的数据提升低资源语言上的自动语音识别(ASR)系统的性能[75]。随着深度学习模型在ASR中的成功,其他与语音相关的任务也采用了深度学习技术,如语音活动检测[95]、说话人识别[96]、语言识别[97]和语音翻译[98]。
2)音乐:与语音相比,音乐录音通常包含更广泛种类的感兴趣声源。在许多种类的音乐中,它们的出现遵循时间和频率上的共同约束,创造了源内部和源之间的复杂依赖关系。这为自动描述音乐录音打开了一系列的可能性。
任务包括低级分析(起始和结束检测、基频估计)、节奏分析(节拍追踪、拍号识别、下拍追踪、速度估计)、和声分析(调性检测、旋律提取、和弦估计)、高级分析(乐器检测、乐器分离、转录、结构分割、艺术家识别、流派分类、情绪分类)以及高级比较(重复主题发现、翻唱识别、音乐相似度估计、乐谱对齐)。每一个任务最初都是通过手工设计的算法或特征结合浅层分类器来处理的,但现在都采用深度学习来解决。这里突出几个选定的示例,涵盖了各种任务和方法。请参阅[99]以获取更广泛的列表。
几个任务可以被定义为二元事件检测问题。其中最低级的任务是起始点检测,即预测录音中哪些位置是音乐相关事件(如音符)的起始点,而不进行进一步的分类。这是神经网络首次应用于音乐音频的领域: 2006年,Lacoste和Eck [84]训练了一个小型的多层感知器(MLP),使用200毫秒的恒定Q对数幅度谱图片段来预测在中心位置或附近是否存在起始点。他们获得了比现有的手动设计方法更好的结果,也优于使用短时傅里叶变换(STFT),并且观察到包含相位信息没有改善结果。Eyben等人[100]改进了这种方法,他们在处理了经过时间差异滤波的频谱图的基础上,应用了一个双向LSTM,尽管使用了更大的数据集进行训练。Schlüter等人[16]进一步通过使用CNN处理相同数据集的15帧log-mel摘录来改善结果。起始点检测曾经是节拍和下拍追踪的基础[101],但是最近的系统处理后者更加直接。Durand等人[102]应用CNN,Böck等人[103]训练了一个基于频谱图的循环神经网络(RNN)来直接追踪节拍和下拍。这两项研究都依赖于使用时间模型进行额外的后处理,以确保网络所捕捉到的更长期的一致性,其中一种形式是隐藏马尔可夫模型(HMM)[102]或动态贝叶斯网络(DBN)[103]。Fuentes等人[104]提出了一个不需要后处理的CRNN,但也依赖于一个节拍追踪器。一个更高级的事件检测任务是预测音乐片段之间的边界。Ullrich等人[105]使用CNN解决了这个问题,在强烈降采样的谱图上使用了长达60秒的感受野。在比较不同方法时,无论是采用具有固定大小时间上下文的CNN,还是采用具有潜在无限上下文的RNN,都可以成功地用于事件检测。有趣的是,对于前者而言,似乎在训练目标中模糊时间是至关重要的[16],[84],[105]。
多类序列标注问题的一个例子是和弦识别,即将(西方)音乐录音中的每个时间步骤分配给根音和和弦类。典型的手动设计方法依赖于将多个八度的频谱表示折叠成12半音的色度图[13],在时间上进行平滑,并与预定义的和弦模板进行匹配。Humphrey和Bello [80]指出了与CNN的操作相似之处,并展示了使用在经过对比度归一化预处理和音高变换增强的常量Q、线性幅度谱图上训练的CNN所取得的良好性能。现代系统集成了时间建模,并扩展了可区分的和弦集合。作为最近的例子,McFee和Bello [106]应用了CRNN(一个二维卷积学习时频特征,后跟一个一维卷积将信息整合到不同频率上,然后是一个双向GRU),并使用辅助目标来融入一个详细的170个和弦类别集合之间的关系。采用不同的方法,Korzeniowski等人[107]在对数频率谱图上训练CNN,不仅可以预测和弦,还可以推导出用于超越和弦估计的任务的改进色度图表示。
关于序列分类,最基本的任务之一是估计一首音乐曲目的全局速度。一个自然的解决方案是基于节拍和下拍跟踪:下拍跟踪可以集成速度估计以约束下拍位置[102],[103]。然而,就像可以在没有起始检测的情况下进行节拍跟踪一样,Schreiber和Müller [108]表明,CNN可以被训练直接从12秒的谱图摘录中估计速度,取得更好的结果,并允许应对录音中的速度变化或漂移。作为一个包含许多其他任务的更广泛的序列分类任务,标签预测旨在预测用户会将哪些来自受限词汇表的标签附加到给定的音乐片段上。标签可以涉及器乐、速度、流派等,但始终适用于完整的录音,没有时间信息。桥接从输入序列到全局标签的差距已经以不同的方式处理,这些方式很有启示性。Dieleman等人[109]使用短1D卷积(即仅在时间上进行卷积)在3秒的对数梅尔频谱图上训练CNN,并对连续摘录进行平均预测以获得全局标签。为了比较,他们在原始样本上训练CNN,第一层滤波器大小选择与典型的频谱帧匹配,但结果更差。Choi等人[110]使用3×3卷积的FCN交替进行最大池化,使29秒的对数梅尔频谱图缩小到1×1的特征图并进行分类。与在网络的后面层中采用平均池化的计算机视觉中的FCN相比,选择最大池化以确保将人声的局部检测提高到全局预测。Lee等人[111]在原始样本上训练CNN,仅使用短滤波器(大小为2到4),交替进行最大池化,与对数梅尔频谱图的性能相匹配。像Dieleman等人一样,他们在3秒的摘录上进行训练,并在测试时平均预测。
总结一下,深度学习已成功应用于许多音乐处理任务,并推动了工业应用,包括浏览大型目录的自动描述、在没有使用数据的情况下基于内容的音乐推荐,以及通过自动推导和弦与歌曲一起演奏等方面。然而,在研究方面,无论是在任务内部还是跨任务,对于使用什么输入表示(对数梅尔频谱图、常量Q、原始音频)以及采用什么架构(CNN、RNN或两者,2D或1D卷积,小正方形或大长方形滤波器)都没有共识,这为进一步研究留下了许多未解答的问题。
3)环境声:除了语音和音乐信号,其他声音也携带着关于我们环境的丰富信息。对环境声音的计算分析有多种应用,例如上下文感知设备、声学监视或多媒体索引和检索。通常使用三种基本方法进行分析:a)声学场景分类,b)声学事件检测,c)标记。
声学事件检测旨在估计个别声音事件(如脚步声、交通灯声音信号、狗叫声)的起始和结束时间,并为它们分配一个事件标签。可能的事件类别集应事先定义。将监督机器学习应用于检测的一种简单有效的方法是使用监督分类器在短时间段内预测每个事件类别的活动情况。通常,用于进行检测的监督分类器将使用上下文信息,即从要分类的片段之外的信号中计算得到的声学特征。一种简单的方法是将目标帧周围多个上下文帧的声学特征连接起来,就像2016年公共DCASE(声音事件和场景的检测与分类)评估活动的基准方法中所做的那样[112]。也可以使用对时间信息建模的分类器结构:例如,可以应用循环神经网络将逐帧声学特征序列映射到表示事件类别活动的二进制向量序列[113]。类似于其他监督学习任务,卷积神经网络可以非常有效,但为了能够以足够高的时间分辨率输出事件活动向量,过大的时间最大池化或跨度不应被使用。如果需要大的感受野,则可以使用扩张卷积和扩张池化代替[114]。
标记旨在预测多个(可能同时发生的)声音类别的活动情况,而不涉及时间信息。在标记和事件检测中,可以针对多个可能同时发生的事件类别进行目标设置。在事件检测的上下文中,这被称为多音事件检测。在这种方法中,每个类别的活动情况可以由一个二进制向量表示,其中每个条目对应一个事件类别,1表示活跃的类别,0表示非活跃的类别。如果允许有重叠的类别,则问题就是一个多标签分类问题,即二进制向量中可以有多个条目的值为1。
研究发现,使用多标签分类器同时预测多个类别的活动情况可以获得更好的结果,而不是为每个类别单独使用单一分类器。这可能是因为多类分类器能够建模同时活跃类别之间的相互作用。
由于环境声音分析相对于语音和音乐而言是一个较为不成熟的研究领域,可用于开发系统的数据集的规模和多样性相对较小。与语音和音乐数据集相比,大部分开放数据都在年度DCASE挑战的背景下发布。由于环境数据集标注的规模有限,数据增强是该领域常用的技术,并且已被证明非常有效。
4)定位和追踪:多通道音频允许进行声源的定位和跟踪,即确定它们的空间位置,并随时间跟踪它们。例如,可以将其作为源分离或语音增强系统的一部分,用于从估计的声源方向中分离出一个声源,或在说话人分离系统中用来估计多个说话人的活动情况。
由多个麦克风组成的单个麦克风阵列可以用来推断声源的方向,无论是在方位角上,还是在方位角和仰角上。通过结合多个麦克风阵列的信息,可以合并方向以获得声源位置。给定来自多个麦克风的麦克风阵列信号,方向估计可以通过两种方式来表述:1) 通过形成一个可能方向的固定网格,并使用多标签分类来预测特定方向上是否有活动声源[115],或者2) 使用回归来预测目标声源的方向[116]或空间坐标[117]。除了这种分类之外,用于定位的各种深度学习方法之间的差异在于所使用的输入特征、网络拓扑结构,以及是定位一个还是多个声源。
用于基于深度学习的定位的常用输入特征包括相位谱[115]、幅度谱[118],以及通道间的广义互相关[117]。一般而言,源定位需要使用通道间信息,这也可以通过具有适当拓扑结构的深度神经网络从通道内特征中学习得到,例如通过卷积层[118],其中的卷积核跨越多个通道。
1) 声源分离:声源分离是从多个声源的混合信号中提取与单个声源相对应的信号的过程;这在音频信号处理中非常重要,因为在现实环境中,通常存在多个源,它们合成一个混合信号,对下游信号处理任务产生负面影响。与源分离相关的示例应用领域包括音乐编辑和混音、作为稳健的语音及其他声音分类的预处理,或者预处理以提高语音的可懂度。
源分离可以被定义为从声学混合物中提取源信号 的过程。
其中,i是源索引,I是源的数量,n是采样点索引。一般来说,可以使用多个麦克风来捕获音频,此时m是麦克风的索引, 是第m个麦克风中第i个源的空间图像。
目前最先进的源分离方法通常采取在时频域估计掩蔽操作的路径(尽管也有直接在时域信号上操作并利用深度神经网络从中学习合适表示的方法,参见[119])。时频处理的原因主要有三个因素:1)自然声源的结构在时频域更为突出,这使得可以比在时域信号中更容易地对其进行建模;2)包含从声源到麦克风的声学传输函数的卷积混合可以在频域中近似为瞬时混合,简化了处理过程;3)自然声源在时频域中是稀疏的,这有助于在该领域进行分离。
在时频域中,掩蔽可以被表示为将混合信号的频谱在时间t和频率f上乘以一个分离掩蔽,从而得到第m个麦克风通道中第i个源信号频谱的估计值
频谱通常使用短时傅里叶变换(STFT)计算,因为可以利用快速傅里叶变换算法高效实现,同时STFT也容易进行反变换。也可以使用其他时频表示方法,比如常数Q变换或者梅尔频谱图。不过,由于它们降低了输出质量,并且深度学习不需要它们相对于STFT提供的紧凑输入表示,因此使用这些方法已经变得不太常见。
仅使用一个麦克风的深度学习方法依赖于对声源频谱结构的建模。它们可以粗略地分为两类:1)基于混合输入X(f,t)(这里假定只有一个麦克风,所以省略了麦克风索引)旨在预测分离掩蔽的方法;2)基于混合输入旨在预测源信号频谱的方法。在这些情况下,深度学习基于监督学习,基于输入混合频谱X(f; t)和目标输出之间的关系,目标输出可以是理想掩蔽或干净信号频谱[120]。理想掩蔽的取值可以是二进制值或0到1之间的连续值。在上述设置中,适用于不同的深度神经网络架构,包括卷积[121]和循环[122]层等标准方法。常规的均方误差损失对于主观分离质量并不是最优的,因此已经开发了自定义损失函数以提高可懂度[123]。
最近一种基于深度聚类的方法[124]利用监督式深度学习来估计每个时频点的嵌入向量,然后以无监督方式对其进行聚类。这种方法可以分离训练集中不存在的声源。这种方法还可以进一步扩展为深度吸引子网络,该网络基于估计每个源的单个吸引子向量,并已被用于在单通道源分离方面取得最先进的结果[125]。
当存在多个音频通道,例如由多个麦克风捕获时,通过考虑声源的空间位置或混合过程可以改善分离效果。在多通道设置中,存在几种不同的使用深度学习的方法。最常见的方法是类似于单通道方法应用深度学习,即对目标源的单通道频谱或分离掩蔽进行建模[126];在这种情况下,深度学习的主要作用是对目标的频谱特征进行建模。然而,在多通道音频的情况下,深度神经网络的输入特征可以包括空间特征和频谱特征(例如[127])。此外,深度神经网络可以用于估计多通道掩蔽的权重(即波束形成器)[128]。
在不同的音频领域中,对于语音来说,通常假设信号是稀疏的,并且不同的声源彼此独立。在环境声音中,通常可以假设声源是独立的。在音乐中,同时存在的声源之间存在很高的相关性,同时还存在波形中以及长期结构重复方面的特定时间依赖性。
2)音频增强:语音增强技术旨在通过减少噪音来改善语音质量。它们是自动语音识别系统中的重要组成部分,可以明确地[129]或隐含地[130],[131]用于提高系统的抗噪性能。除了传统的增强技术[129]之外,深度神经网络已广泛应用于直接重建清晰语音[132],[133]或从嘈杂信号中估计掩蔽[134]–[136]。传统的去噪方法,如维纳滤波方法,通常假设噪声是稳态的,而深度学习方法可以对时变噪声进行建模。文献中已经研究了不同类型的网络用于增强,例如去噪自编码器[137]、卷积网络[121]和循环网络[138]。
最近,研究表明,在存在添加噪音的情况下,生成对抗网络(GANs)在语音增强方面表现良好[58],当增强被提出作为从嘈杂信号到清晰信号的翻译任务时。所提出的语音增强 GAN(SEGAN)相对于嘈杂数据和传统增强基准线,在感知语音质量指标方面取得了改进。在[59]中,GANs被用于增强表示为log-mel谱的语音。当使用GAN增强的语音进行自动语音识别(ASR)时,与使用更简单的回归方法进行增强相比未见改进。
3)生成模型:生成声音模型可以根据从声音数据库学习到的特征合成声音,产生逼真的声音样本。生成的声音应该与模型所训练的声音相似,具有典型的声学特征(音色、音高内容、节奏)。一个基本要求是声音应该能够被识别为来自特定的物体/过程或是可以被人类理解的,在语音生成的情况下。同时,生成的声音应该是原创的,即应该与训练集中的声音明显不同,而不仅仅是复制训练集中的声音。进一步的要求是生成的声音应该展现出多样性。在声音合成中进行条件设置是可取的,例如在语音合成中,可以设置说话人、韵律轨迹、音乐中的谐波模式或环境声音生成中的物理参数。此外,训练和生成时间应该短;理想情况下,生成应该能够实时完成。声音合成可以基于频谱表示(例如log-mel谱图)或原始音频进行。前一种表示缺少需要在合成中重建的相位信息,例如通过Griffin-Lim算法 [65] 与反傅里叶变换结合使用[139],但其合成质量并不高。端到端的合成可以分块进行或使用自回归模型,在该模型中,声音是逐个样本生成的,每个新的样本都建立在之前样本的基础上。在分块方法中,对于变分自编码器(VAE)或GANs [140]的情况下,声音通常是从低维潜在表示合成的,需要通过上采样(例如最近邻或线性插值)来得到高分辨率的声音。由不同层分辨率引起的伪像可以通过不同层的随机相位扰动来改善[140]。在自回归方法中,新的样本是迭代地合成的,基于无限长的先前样本上下文,当使用RNNs(如LSTM或GRU)时,训练时会带来昂贵的计算成本。然而,RNN的层可以堆叠以在不同的时间分辨率上处理声音,其中一个层的激活取决于下一个层的激活,具有更粗糙的分辨率[34]。基于稀疏RNN的有效音频生成模型[35]将长序列折叠成若干个较短的序列。在WaveNet [25]中堆叠扩张卷积可以得到合理尺寸的上下文窗口。使用WaveNet [25],自回归样本预测被转化为分类问题,预测样本的幅度被对数量化为不同的类别,每个类别对应于一个幅度间隔。包含样本的输入可以通过上下文信息扩展[25]。这个上下文可以是全局的(例如说话人身份)或在时间内变化(例如f0或mel谱)[25]。在[66]中,介绍了一个文本到语音系统,它由两个模块组成:(1)从文本输入训练神经网络以预测一系列mel谱图,作为(2)生成综合语音的上下文输入的WaveNet。基于WaveNet的语音合成模型在性能方面优于最先进的系统,但它们的训练计算成本高昂。并行WaveNet的开发[141]提供了解决缓慢训练问题的方法,因此加快了WaveNet模型在其他应用程序中的采用[66],[142],[143]。在[144]中,通过自动编码器的潜在空间中的参数控制合成,例如在不同的乐器音色之间进行变形。Briot等[145]对深度学习中的音乐生成进行了更深入的研究。
生成模型可以通过客观或主观的方式进行评估:通过分类器(例如 [140] 中的inception score)可以客观地测试生成声音的可识别性;也可以通过与人类进行强制选择测试来主观评估。多样性可以进行客观评估。由于声音被表示为归一化的log-mel频谱图,因此多样性可以通过声音与其最近邻之间的平均欧氏距离来衡量。原创性可以通过生成样本与其在真实训练集中最近邻之间的平均欧氏距离来衡量 [140]。图灵测试要求人类区分真实和合成音频示例,这是对模型的严格考验,因为通过图灵测试意味着真实与合成之间没有可察觉的差异。例如,WaveNet的MOS得分高于串联或参数化方法,而这些方法代表了先前的技术水平[25]。
在本节中,我们将从以下几个方面来看待不同音频领域中的深度学习:特征(第4.1节),模型(第4.2节),数据需求(第4.3节),计算复杂性(第4.4节),可解释性和适应性(第4.5节)。对于每个方面,我们强调不同领域之间的差异和相似之处,并注意值得研究的共同挑战。
虽然在传统音频信号处理中,MFCC 是最常见的表示形式,但在深度学习中,对数梅尔频谱图是主导特征,其次是原始波形或复杂频谱图。原始波形避免了手工设计的特征,这应该能更好地利用深度学习模型的改进建模能力,学习针对任务优化的表示。然而,这会带来更高的计算成本和数据需求,而且在实践中可能很难实现相应的好处。对于诸如 ASR、MIR 或环境声音识别等分析任务,对数梅尔频谱图提供了更紧凑的表示形式,使用这些特征的方法通常需要更少的数据和训练,即使在当前技术水平下,其分类性能也可与使用原始音频的设置相媲美。在旨在合成高音质声音的任务中,例如源分离、音频增强、TTS 或声音变形,使用(对数梅尔)幅度谱图会面临重新构建相位的挑战。在这种情况下,通常更倾向于使用原始波形或复杂频谱图作为输入表示。
然而,一些研究报道了在分析任务中使用原始波形带来的改进[25],[146],[147],并且一些尝试通过设计和/或初始化深度学习系统的前几层来模拟工程化表示[18],[19],[23],[24]。因此,仍然存在一些开放性研究问题:梅尔频谱图是否确实是音频分析的最佳表示形式?在什么情况下更适合使用原始波形?通过探索中间地带可学习超参数的频谱图,我们是否可以取得更好的效果?如果从原始波形中学习表示,它是否仍然能够在不同任务或领域之间进行泛化?
在历史上,对于ASR、MIR和环境声音分析,深度模型已经取代了支持向量机进行序列分类,取代了GMM-HMM进行序列转录。在音频增强/降噪和源分离方面,深度学习已经解决了之前由非负矩阵分解和维纳方法处理的任务。在音频合成方面,例如拼接合成已被Wavenet、SampleRNN、WaveRNN等方法取代。
跨领域应用中,CNN、RNN和CRNN都取得了成功,没有明显的偏好。这三种模型都能够对时间序列进行建模,并解决序列分类、序列标记和序列转录任务。CNN具有固定的感受野,这限制了用于预测的时间上下文,但同时也使得扩展或缩小使用的上下文变得非常容易。RNN在理论上可以基于无限的时间上下文进行预测,但首先需要学会这样做,这可能需要对模型进行调整(例如LSTM),并且阻碍了对上下文大小的直接控制。此外,它们需要按顺序处理输入,使其在现代硬件上训练和评估的速度比CNN慢。CRNN在两者之间提供了一种折衷方案,继承了CNN和RNN的优点和缺点。
因此,目前仍然存在一个开放的研究问题,即在哪种设置下哪种模型更优越。根据现有的文献,这个问题很难回答,因为不同的研究小组使用不同的模型都取得了最先进的结果。这可能是因为每个研究小组对于如何有效地设计和调整特定类型的架构有着各自的专业非正式知识。
除了语音识别可能存在例外,在工业界中,对于大多数流行语言的所有音频领域的所有任务都面临着相对较小的数据集,这限制了在数据集上面训练的深度学习模型的规模和复杂度。
在计算机视觉领域,对于特定任务缺乏标注数据的问题可以通过在ImageNet数据集[70]上训练的广泛可用的模型来弥补:为了区分一千个物体类别,这些模型学习了原始输入图像的转换,这为许多其他视觉任务提供了一个良好的起点。类似地,在神经语言处理中,基于大型文本语料库训练的词语预测模型已经显示出对其他语言处理任务产生良好的模型初始化效果[148], [149]。然而,在音频领域,目前不存在可比较的任务、数据集以及基于该数据集进行预训练的模型。
这引出了一些研究问题。在音频领域中,是否存在一个与之相当的任务?是否可以有一个涵盖语音、音乐和环境音的音频数据集,用于迁移学习,解决广泛的音频分类问题?如何使用最少量的数据灵活地将预训练的音频识别模型适应到新任务中,例如对于词汇表外的单词、新语言、新的音乐风格和新的声学环境?很可能需要分别回答每个领域的问题,而不是跨音频领域进行回答。即使在音乐领域内部,虽然对于全局标签(如艺术家和流派)可能适用迁移学习,但个别任务(如和声检测或下拍检测)可能过于不同,无法从一个任务中迁移到另一个任务中。
如果发现对于音频来说迁移学习不是正确的方向,研究需要探索其他学习范式,以从稀缺标记数据中学习更复杂的模型,例如半监督学习、主动学习或少样本学习。
深度神经网络的成功依赖于快速和大规模计算的进展。与传统方法相比,最先进的深度神经网络通常需要更多的计算能力和更多的训练数据。CPU并不是用于训练和评估大型深度模型的最佳选择。相反,通常使用针对矩阵运算进行优化的处理器,其中包括通用图形处理单元(GPGPUs)[150]和专用张量处理单元(TPUs)等专用集成电路[8]。
对于计算资源有严格限制的应用,例如移动电话或听力设备,需要更小的模型。尽管许多最近的工作都处理最小计算预算下神经网络的简化、压缩或训练,但仍有必要探索实时音频信号处理的特定需求的选项。
在深度学习中,研究人员通常使用基本的层模块设计网络结构,并为目标任务设计损失函数。模型的参数通过对输入和目标(或仅对输入进行无监督训练)的损失进行梯度下降来学习。层参数与实际任务之间的连接很难解释。研究人员一直在尝试将网络神经元的活动与目标任务相关联(例如[16],[151]),或者研究预测基于输入的哪些部分(例如[152],[153])。进一步研究如何理解网络或子网络的行为可以帮助改进模型结构以解决失败情况。