主要从语音(Speech)、音乐(Music)和环境声(Environmental Sounds)三个领域出发,分析它们之间的相似点和不同点,以及一些跨领域的通用方法描述。
具体而言,在音频特征表示(log-mel spectra, raw waveforms)和网络模型(CNN, RNN, CRNN)进行了详细的分析,对每个领域的技术演进以及深度学习应用场景进行了大概的描述。
最后,总结了深度学习在音频信号处理领域一些关键问题和未来的研究方向。
综述
目前为止,深度学习一共经历了三次浪潮:
1)1957年的感知算法的提出;
2)1986年反向传播算法的提出;
3)2012年深度学习在图像识别领域上的成功突破,使得深度学习的发展呈现的蓬勃的景象,并广泛应用在其他领域,比如基因组学、量子化学、自然语言处理,推荐系统等。
相比于图像处理领域,声音信号处理领域是深度学习成功应用的又一个大方向,尤其是语音识别,很多大公司都在做这个方向。和图像不同,声音信号是一维的序列数据,尽管可以通过像FFT这样的频域转换算法转换为二维频谱,但是它的两个维度也是有特定的含义(纵轴表示频率,横轴表示时间帧),不能直接采用图像的形式进行处理,需要有领域内特定的处理方法。
问题描述
根据任务目标的类型可以划分为不同的任务类型。
首先,目标可以是一个全局的单标签,可以每个时间帧都有一个标签,也可以是一个自有长度的序列。
其次,每个标签可以为一个单一的类别,可以为多个类别,也可以是一个数值。
声音信号分析任务可以划分为两个属性:预测的标签数量(左),标签的类型(右)
预测一个全局的单标签的任务称为序列分类(Sequence Classification),这个标签可以为一个语言,说话人,音乐键或者声音场景等。当目标为多个类别的集合时,称为多标签序列分类(Multi-label Sequence Classification)。当目标是一个连续的数值时,称为序列回归(sequence regression)。实际上,回归任务通常是可以离散化并且转化为分类任务,比如,连续坐标的定位任务是一个回归任务,但是当把定位区间划分为几个范围,就可以当做分类任务来处理。
在音频信号处理领域,构建适当的特征表示和分类模型通常被作为两个分离的问题。
这种做法的一个缺点是人工构建的特征可能对于目标任务可能不是最优的。
深度神经网络具有自动提取特征的能力,因此可以将上述两个问题进行联合优化。例如,在语音识别中,Mohamed [1] 等人认为深度神经网络的低层提取一些适应说话人的特征,而高层提取类别间的判别信息。
给定声音表示,我们可以使用很多模型对其进行分析,包括MLP,CNN,RNN及其他们的变种网络。
深度学习的表征能力需要庞大的数据来支撑。
对于声音处理领域,语音相关的开源数据集很多,尤其是英文的;音乐相关的也有很多开源数据集,比如Million Song Dataset和MusicNet;环境声相关的数据集最大的就是AudioSet了,超过200万个音频片段,但是基本都是Weakly-label的。因此,我们实际使用中,数据还是很有限的,尤其是对与环境声来说。
语音识别
语音识别指的是将语音信号转化为文字序列,它是所有基于语音交互的基础。对于语音识别而言,高斯混合模型(GMM)和马尔科夫模型(HMM)曾占据了几十年的发展历史。这些模型有很多优点,最重要的就是他们可以进行数学描述,研究人员可以有理有据的推导出适用某个方向的可行性办法。
音乐信息检索
和语音不同,音乐通常包含很广泛的声源信息,并且在不同音乐源之间存在这复杂的依赖关系。
环境声识别
有关环境声的任务主要有三类:声音场景识别、声音事件检测和标注。
定位和跟踪
利用多通道信号可以对声源位置进行跟踪和定位。跟踪和定位的主要设备条件是麦克风阵列,通常包含线性阵列、环形阵列和球形阵列等。
声源分离
指的是在多声源混合的信号中提取单一的目标声源。主要应用在一些鲁棒声音识别的预处理以及音乐编辑和重谱。
声音增强
通常为语音增强,指的是通过减小噪声来提高语音质量。主要技术是去噪自编码器、CNN、RNN、GAN(SEGAN)等。
生成模型
根据数据集中的声音属性特征来生成新的数据,要求这些数据不能和原始数据集一样、要具有多样性并且训练和生成时间要很小,理想情况下是实时的。
1.音频分类
音频分类是语音处理领域的一个基本问题,从本质上说,它就是从音频中提取特征,然后判断具体属于哪一类。现在我们已有许多优秀的音频分类应用,如genre classification、instrument recognition和artist identification等。
解决音频分类问题的常用方法是预处理音频输入以提取有用的特征,然后在其上应用分类算法。
2.音频指纹识别
音频指纹识别的目的是从音频中提取一段特定的数字摘要,用于快速识别该段音频是否来自音频样本,或从音频库中搜索出带有相同数字摘要的音频。
3.自动音乐标注
音乐标注是音频分类的升级版。它包含多个类别,一个音频可以同时属于不同类,也就是有多个标签。自动音乐标注的潜在应用是为音频创建元数据,以便日后的搜索,在这上面,深度学习在一定程度上有用武之地。
4.音频分割
从字面上我们就能理解它的含义,即根据定义的一组特征将音频样本分割成段。音频分割是一个重要的预处理步骤,通过它,我们可以将一个嘈杂而冗长的音频信号分割成短小、均匀的段落,再进行序列建模。目前它的一个应用是心音分割,即识别心脏的特定信号,帮助诊断心血管疾病。
5.音源分离
音源分离就是从一堆混合的音频信号中分离出来自不同音源的信号,它最常见的应用之一就是识别同时翻译音频中的歌词(如卡拉OK)。
6.节拍跟踪
顾名思义,节拍跟踪的目标就是跟踪音频文件中每个节拍的位置,事实上,它为这项耗时耗力又必须完成的任务提供了一种自动化解决方案,因此深受视频编辑、音乐编辑等群体的欢迎。
7.音乐推荐
音乐推荐这已经不是新鲜的技术了,我们的音乐app里收录了数以百万计的歌曲,能供我们随时收听。对于音乐,每个人的品位和偏好都各不相同,但由于数量庞大,我们往往难以挑出契合我们风格的歌曲。过去人们关注歌手,但现在,更多人有了音乐推荐。音乐推荐是一种根据用户收听历史定制个性化歌单的技术,它本质上还是一种信息处理技术。
8.音乐信息检索
这是音频处理中最困难的任务之一,它实质上是要建立一个基于音频数据的搜索引擎。
9.音乐转录(Music Transcription)
音乐转录是另一个非常有挑战性的音频处理任务。它包括注释音频和创建一个“表”,以便于之后用它生成音乐。
10.音符起始点检测
音符起始点检测是分析音频/建立音乐序列的第一步,对于以上提到的大多数任务而言,执行音符起始点检测是必要的(简单任务不需要)。