基于多层时序池化的音频表示学习方法与流程

文档序号:18885411发布日期:2019-10-15 20:49阅读:615来源:国知局
基于多层时序池化的音频表示学习方法与流程

本发明涉及音频表示学习方法,属于音频分类技术领域。



背景技术:

随着现代社会对互联网技术的高度依赖和多媒体技术的迅猛发展,海量的音频数据充斥在人们的日常生活和工作当中。如何自动、高效地处理大量的音频数据并对其进行归类和识别,就成为一个既迫切又具有挑战性的研究课题。音频分类作为一种涉及声音信号处理的人机交互技术,其广泛应用于各种人工智能领域,例如,基于内容的音频检索,鲁棒性语音识别,智能安防监控以及无人驾驶等。音频数据分类旨在根据预先定义好的语义,对不同声音数据进行分类和识别。常见的语义包括声学场景如机场、地铁站和公园等当中的背景音,以及声音事件如枪声、婴儿哭声和汽车引擎声等。该技术的关键点在于如何提取或者学习出能够代表包含某种语义的声音样本的特征表示。

音频信号是一段具有时间顺序的序列化数据,提取其中的动态时序信息对于音频表示学习具有非常重要的意义。传统的音频特征表示的策略主要是估计声音样本的低层帧级别特征如梅尔倒谱系数中的分布规律及其统计信息,常见的方法有高斯混合模型和词袋等。该种策略通常假设音频帧之间相互独立,会忽略其中的时序关联。另一种策略是基于片段级别的时频特征表示方法,例如将提取自某一声音片段的频谱特征的梯度直方图作为该片段的特征表示或者对属于某一特定类别的声音片段级频谱特征进行非负特征矩阵分解以得到能够刻画该类别空间的基向量。此种策略捕捉了片段内的时序信息,但没有考虑到片段与片段之间的时序关联,同时该种策略通常要求输入片段的长度一致,使得其在处理任意长度的声音片段时缺乏一定的灵活性。近几年,基于深度学习的方法越来越多地被应用于音频特征表示,例如深度神经网络(deepneuralnetworks,dnn)和深度卷积网络(convolutionalneuralnetworks,cnn),然而dnn和cnn与基于片段级特征的表示学习策略一样无法捕捉片段之间的时序关联。基于这一限制,目前基于递归神经网络(recurrentneuralnetworks,rnn)的长短时记忆网络(longshort-termmemory,lstm)被广泛应用于处理序列化的数据,该种网络可以有效地对任意时长的音频数据进行建模,然而相比dnn与cnn等神经网络而言其结构更加复杂,而且通常需要大量的计算资源和训练数据才能得到理想的模型。因此研究一种能够灵活、高效地捕捉任意时长音频样本的时序动态信息的特征表示方法既具有理论意义又具有现实意义。



技术实现要素:

本发明为解决现有缺少能够灵活、高效地捕捉任意时长音频样本的时序动态信息的特征表示技术的问题,提供了基于多层时序池化的音频表示学习方法。

本发明所述基于多层时序池化的音频表示学习方法,通过以下技术方案实现:

步骤一、分别提取训练集和待表示音频中每个音频样本的频谱特征,并将每个频谱特征切分成长度相等的片段,从而得到训练集片段级别时频特征集合以及待表示音频的片段级别时频特征集合,利用训练集的片段级别时频特征集合训练cnn网络,然后将训练好的cnn网络作为片段级别特征表示提取器,提取待表示音频的片段级别特征表示;

步骤二、将步骤一中训练好的cnn网络提取的待表示音频的片段级别特征表示作为多层时序池化网络的输入,所述多层时序池化网络的每个时序池化层依次对输入数据进行非线性特征映射和时序编码操作,最终输出待表示音频的表示向量。

本发明最为突出的特点和显著的有益效果是:

本发明所涉及的基于多层时序池化的音频表示学习方法,包括基于cnn的片段级别特征表示以及基于多层时序池化的音频表示两个阶段;可有效地捕捉任意时长音频数据的时序动态演变趋势,从而得到可以刻画音频样本内在语义的表示,本发明提出的多层时序池化网络可以学习出更加鲁棒和高级别的音频表示,从而进一步提升音频分类系统的性能;实施例在包含10个场景的dcase2018声学场景分类(asc)数据集和包含28种事件的声音事件识别(aer)数据集中都取得了较好的分类和识别性能,相比现有的深度神经网络技术,在声学场景分类和声音事件识别的两个任务下性能分别提升16.1%和2.1%。

本发明的优点具体如下:

(a)与基于帧级别特征的传统方法相比,多层时序池化方法可以捕捉音频样本中的动态时序信息;

(b)与基于时频特征的方法和cnn/dnn网络相比,多层时序池化方法不受输入音频长度的限制,可以将任意时长的序列转换为一个固定维度的向量,同时弥补了cnn网络的独立训练机制造成的片段之间的时序关联丢失的缺陷;

(c)与rnn-lstm网络相比,多层时序池化方法采用样本依赖的学习机制,更为灵活,在音频表示学习的过程中,不需要训练复杂的生成模型和人工标注信息,同时由于时序编码方法本质上是一个线性回归操作,使得时序池化方法十分高效;

(d)通过层级的学习机制,可以得到更加鲁棒和高级别的音频特征表示;

(e)作为一个样本依赖的学习方法,可以很方便地与其他方法进行结合。

附图说明

图1为本发明方法流程图;

图2为k=2的多层时序池化网络结构示意图;

图3为实施例中多层时序池化网络在不同svr惩罚因子的取值下,系统分类性能的曲线图。

具体实施方式

具体实施方式一:结合图1对本实施方式进行说明,本实施方式给出的基于多层时序池化的音频表示学习方法,具体包括以下步骤:

步骤一、分别提取训练集和待表示音频中每个音频样本的频谱特征,并将每个频谱特征切分成长度相等的片段,从而得到训练集片段级别时频特征集合以及待表示音频的片段级别时频特征集合,利用训练集的片段级别时频特征集合训练cnn网络(将该时频特征集合作为cnn网络的输入,cnn网络对每个片段级别时频特征输出其表示向量),然后将训练好的cnn网络作为片段级别特征表示提取器,提取待表示音频的片段级别特征表示;

步骤二、将步骤一中训练好的cnn网络提取的待表示音频的片段级别特征表示作为多层时序池化网络的输入,所述多层时序池化网络的每个时序池化层依次对输入数据进行非线性特征映射和时序编码操作,最终输出待表示音频的表示向量。图2显示了一个两层的时序池化网络,每个时序池化层包括非线性特征映射和时序编码两种操作。

具体实施方式二:本实施方式与具体实施方式一不同的是,所述步骤一具体包括以下步骤:

步骤一一、对训练集和待表示音频分别提取片段级别时频特征:

对每个音频样本提取其120维的对数梅尔能量谱(log-mel);随后将每个样本的对数梅尔能量谱切分成长度相等的多个对数梅尔能量谱片段,即,片段级别时频特征;相邻片段之间存在50%的交叠;得到训练集片段级别时频特征集合以及待表示音频的片段级别时频特征集合;

步骤一二、cnn网络训练:

对步骤一一中得到的训练集片段级别时频特征集合中的片段进行归一化处理,具体做法是计算该集合中片段的均值和标准差,然后通过减去该均值再除以标准差的方式对片段进行归一化;随后利用归一化后的训练集片段级别特征训练cnn网络;

步骤一三、提取片段级别特征表示向量:

将训练好的cnn网络的模型参数保存下来,以验证模式(即只在网络中进行前向计算不反向传播其误差)生成待表示音频的片段级别特征表示;对于输入的每一个音频样本,cnn网络会对应输出一个片段级别特征表示序列;对于某个输入片段,本发明采用cnn网络中的最后一个fc层(全连接层)的输出向量作为该片段的表示,经过如此操作,每个音频样本就被转换成由若干512维的向量所组成的序列。

其他步骤及参数与具体实施方式一相同。

具体实施方式三:本实施方式与具体实施方式二不同的是,所述cnn网络包括两个卷积层(conv)、三个池化层(pool)、三个全连接层(fc)以及输出层,其中,每一个卷积层和全连接层都进行了批量归一化操作,最后一个(第三个)池化层为全时域(完整时域)池化;所述cnn网络采用可泄漏的线性整流激活函数leakyrelu,来保留各层输出向量中取值为负数的部分,从而保证cnn网络能够尽可能多地保留动态信息。具体网络架构及训练参数设置见表1:

表1、cnn网络架构及训练参数设置

如表1所示,本发明设计的cnn网络中的每一个conv层(卷积层)和fc层(全连接层)都进行了batchnormalization(批量归一化)操作,该操作可以使得网络在更少的迭代次数内收敛。同时为缓解网络过拟合和降低网络模型参数,在最后一个max-pooling(最大池化)层中采用全时域尺度的池化操作,并对fc层的输出进行50%的dropout(丢弃)操作。此外,由于该cnn网络的目的在于提取片段特征的表示,因此采用能够保留更多信息的leakyrelu激活函数(可泄漏的线性整流激活函数)替代常用的relu激活函数。

其他步骤及参数与具体实施方式二相同。

具体实施方式四:本实施方式与具体实施方式一、二或三不同的是,步骤二中所述多层时序池化网络的每个时序池化层依次对输入数据进行非线性特征映射和时序编码操作,最终输出待表示音频的表示向量具体为:

对于输入的任意片段级别特征表示序列x={x1,x2,...,xn},n表示序列x中向量的数目;第k个时序池化层中的非线性映射操作ψ(·)会将该序列中的向量进行逐一映射,形成更高维的向量序列v(k)={v1(k),v2(k),...,vn(k)};k=1,…,k-1;k表示多层时序池化网络中时序池化层的数目;随后利用滑动窗把v(k)切分成nk个子序列,其中nk=(nk-1-win)/stride+1;win为窗口大小,stride表示步长,n0=n;相应的,第k个时序池化层中nk个φk(·)时序编码操作将会对各个子序列进行编码,以得到子序列的编码结果所组成的向量序列第k个时序池化层的输出序列u(k)继而将作为下一层的输入;

第k个时序池化层需要先经过ψ(·)的非线性映射,然后得到映射后的向量序列v(k),而与第1~k-1个时序池化层不同之处在于,作为网络的最后一层,第k个时序池化层需要输出整个输入的片段级别特征表示序列的表示向量,因此该层的时序编码操作φk(·)对整个v(k)进行编码,得到表示向量序列u(k)

对输入的待表示音频的片段级别特征表示都用上述方式进行处理,得到待表示音频的表示向量。

不难看出,多层时序池化网络的深度和每一层的宽度取决于除了第一个时序池化层以外的其余层的窗口大小win和滑动步长stride。此外,由于各个样本的表示学习过程都是互相独立的,因此可以采用并行处理的方式同时处理多个样本,而且由于该网络本质上是一个前馈型的无监督学习网络,因此整个学习过程只需要一次前向操作即可完成,不需要反复多次迭代。

其他步骤及参数与具体实施方式一、二或三相同。

具体实施方式五:本实施方式与具体实施方式四不同的是,所述非线性特征映射采用基于posneg的非线性映射操作,posneg核函数可看作是hellinger(海林格)核函数的一种衍生版本;hellinger核本身是一个平方根核函数,其原始形式为:

其中,x和y分别表示输入向量,hellinger核函数对于输入向量中取值较小的部分更加敏感,可以看作是一个方差稳定的转换,适合于处理音频信号这种动态变化剧烈的数据。然而为保证cnn网络的片段级别特征表示学习能够尽可能多地保留动态信息,采用了可以保留各层输出向量中取值为负数部分的leakyrelu激活函数。这样便导致多层时序池化网络的输入向量中也包含取值为负数的部分,直接采用公式(1)的hellinger核函数进行映射会得到非常复杂的核矩阵。基于此,为避免映射后产生复数,posneg核函数khell-psng(x,y)在开方操作之前先将输入向量中的非负数部分和负数部分分离,具体如下:

其中,posneg(·)操作用于将向量中的非负数部分和负数部分分离;经过该操作,原始向量的维数被扩展成了原来的两倍。x、y均为输入向量;上标t表示转置;

由公式(2)得到形式确定的基于posneg的非线性映射操作:

通过利用该形式确定的非线性映射操作能够使得后续的时序编码操作具备非线性建模能力。

其他步骤及参数与具体实施方式四相同。

具体实施方式六:本实施方式与具体实施方式五不同的是,所述窗口大小win为3,步长stride为1。

其他步骤及参数与具体实施方式五相同。

具体实施方式七:本实施方式与具体实施方式五不同的是,所述时序编码操作具体包括:

本发明提出的时序编码基于以下假设:对于含有相同语义的不同音频样本来说,其中所蕴含的动态时序信息d会呈现出相似的特性,d所反映的就是时序序列中任意一个时刻到下一个时刻的演变趋势。基于这一假设,对于一个经过非线性特征映射后的向量序列表示v中元素数目,时序编码的目标是对v中的d进行编码,则时序编码问题能够转化为如下的优化问题:

其中f(v;u)是一个参数为u的线性函数,用于重构d,通过求解式(4)得到的最优系数u,即可作为v的时序编码表示;

动态时序信息d可以看作是一种排序规则,可以将序列中每个元素按照正确的时间顺序进行摆放,并最终还原出原始的时序序列。因此为寻找最优系数u,f(v;u)还必须满足以下时序约束:

其中,ta和tb是序列中向量的时刻索引;

在式(5)的约束条件下,通过训练一个正则化的支持向量回归模型(supportvectorregression,svr)来求解优化问题式(4);具体做法是将每个时刻的向量vt作为回归因子,时间索引t作为标签,对f(v;u)进行拟合,则优化问题式(4)能够写成如下形式:

其中,[·]≥0=max{·,0}为ε-insensitive(ε-不敏感)损失函数,ε为敏感系数;λ是svr模型的惩罚因子;为求解式(6),引入松弛变量ξt和ξt*

其中,b为偏差项,构造式(7)的拉格朗日函数,将式(7)转化为无约束的优化问题:

其中,αi、αi*、ηt、ηt*是拉格朗日乘子,且都为非负数;

遵从拉格朗日鞍点条件的约束,分别对式(8)中的变量b、u、ξt、ξt*求偏导,并令导数为0得到:

将式(9)~式(12)的求导结果带入式(8)中能够得到其对偶问题:

其中,

在推导出(13)的过程中已经消去了对偶拉格朗日乘子ηt和ηt*,同时由式(10)得到:

又因为只有当vi是支持向量时,对偶变量αi、αi*才不同时为0,因此u仅跟支持向量有关;最后通过对式(13)所表示的优化问题进行求解就能够得到能够刻画v的动态时序变化的表示向量u。

时序编码作为时序池化网络的关键操作,其大致思想就是将输入特征向量序列作为自变量,将特征序列的时间索引作为因变量,通过训练一个线性的支持向量回归模型(supportvectorregression,svr)将输入序列与相应的时间索引建立直接联系,从而可以完整地刻画序列中的动态时序信息,最后将svr的模型参数作为序列的表示向量。该操作使得时序池化网络在学习过程中无需使用类别标注信息,同时不受输入序列长度必须固定的限制。此外,考虑到音频数据中剧烈的动态变化和复杂的多样性,在时序编码操作之前利用非线性映射操作,可以使得时序编码操作在更高维的空间中捕捉到更复杂的动态变化信息。

其他步骤及参数与具体实施方式五或六相同。

实施例

采用以下实施例验证本发明的有益效果:

1、数据集描述

分别采用dcase2018挑战赛提供的asc数据集和来源于在线声音数据共享平台freesound的aer数据集。asc数据集一共包括在不同国家和地区录制的8640个声音样本,每个声音样本时长均为10秒。数据集共涵盖10种不同的声学场景,训练集和测试集的划分采用官方给定的分配方式,其中训练集包括6122个声音样本,其余2518个样本构成测试集。该数据集中的所有音频样本都统一转换成采样率48khz,采样精度16bits,单声道的wav格式。aer数据集一共包括来自不同用户上传的5223个音频样本,每个样本的时长从3秒到12秒不等,总时长768分钟。数据集共涵盖28种不同的声学事件,其中训练集和测试集各占数据集的75%和25%。该数据集中所有音频样本都统一转换成采样率16khz,采样精度16bits,单声道的wav格式。

2、基于cnn的片段级别特征表示学习

对数据集音频样本进行加窗分帧,其中帧长为40ms,帧移20ms,然后提取其120维的对数梅尔能量谱(log-mel)。随后将每个样本的log-mel能量谱切分成长度为50帧的多个log-mel能量谱片段,其中相邻片段之间存在50%的交叠。经过这一步骤处理,得到训练集片段级别时频特征集合以及测试集音频的片段级别时频特征集合,每个片段的大小为(50,120)。

计算得到的训练集片段级别时频特征集合中片段的均值和标准差,然后通过减去该均值再除以标准差的方式对片段进行归一化;随后利用归一化后的训练集片段级别特征训练cnn网络,cnn网络的具体网络架构及训练参数设置见表1。

将分别在asc和aer数据集下训练好的两个cnn模型的参数保存下来,以验证模式生成各个音频样本的片段级特征表示序列。本实施例中采用cnn网络中的fc5层的输出向量作为输入片段的表示,经过如此操作,每个音频样本就被转换成由若干512维的向量所组成的序列。

3、基于多层时序池化的音频表示学习

本实施例采用如图2所示的两层时序池化网络,将训练好的cnn网络提取的测试集音频的片段级别特征表示作为多层时序池化网络的输入;对于输入的某个片段级别特征表示序列x={x1,x2,...,xn};第一个时序池化层中的非线性映射操作ψ(·)会将该序列中的向量进行逐一映射,形成更高维的向量序列v(1)={v1(1),v2(1),...,vn(1)};随后利用窗口大小win为3和步长stride为1滑动窗把v(1)切分成n1个子序列,其中n1=(n-3)/1+1;相应的,第一个时序池化层中n1个φ1(·)时序编码操作将会对各个子序列进行编码,以得到子序列的编码结果所组成的向量序列第一个时序池化层的输出序列u(1)继而将作为下一层的输入;与第一个时序池化层相同的是,在第二个时序池化层中输入向量序列需要先经过ψ(·)的非线性映射,然后得到映射后的向量序列v(2),而与第一层不同之处在于,由于第二层作为网络的最后一层,需要输出整个输入序列的表示,因此此处的时序编码操作φ2(·)将会对整个v(2)进行编码,以得到代表整个音频的表示向量u(2)。对输入的测试集音频的片段级别特征表示都用上述方式进行处理,得到待表示音频的表示向量。

4、svm分类器训练

为了验证本发明方法的效果,如图1所示,将多层时序池化网络输出的待表示音频的表示向量输入svm分类器;

4.1、预处理:对每个由多层时序池化网络得到的表示向量除以其本身的l2-范数。

4.2、模型参数筛选:采用k-fold(k-折)交叉验证法和网格搜索法确定最优的svm惩罚因子的取值。具体是将属于训练集部分的样本表示按照不同类别平均分成四份,三份用作模型训练,一份用于验证,在惩罚因子的取值为搜索范围内的某一确定值时,将四次得到的结果的平均值作为在该取值下的模型性能。其中惩罚因子取值范围为0.01~1000以几何倍数为10的等比数列。

4.3、模型训练:使用训练集中所有样本的表示向量训练分类器,惩罚因子的取值采用上一步骤确定的最优取值。

4.4、测试样本:使用训练好的分类器对测试集的样本表示进行预测。

5、结果

分别实施三组对比实验来观察多层时序池化网络的网络结构、非线性映射操作、时序编码操作三个部分对于网络性能的影响。

(1)时序池化层数对性能影响的对比实验:

实验条件:

(a)网络中的时序编码操作的svr惩罚因子固定为0.01;

(b)网络采用基于posneg核的非线性映射操作;

(c)分类器采用基于卡方核的svm。

性能评价标准:

(a)asc数据集采用与dcase官方相同的类别平均分类正确率(meanclassaccuracy);

(b)aer数据集采用识别正确率(accuracy)。

实验结果如表2所示:

表2、时序池化层数对时序池化网络的性能影响

从表2中的结果可以看出,多层时序池化网络确实比单层时序池化的性能更优,在本实验中两层的网络就足够取得很好的效果,这也是因为两个数据集的样本时长还是整体偏短,最长的样本也就只有12秒左右,导致高层时序编码过程中参与运算的序列都很短,无法捕捉更丰富的时序信息。有理由相信,若样本的时长足够长,则越深的网络会取得更好的分类和识别效果。

(2)svr惩罚因子的取值对性能影响的对比实验:

实验条件:

(a)2层时序池化网络;

(b)其余条件与第一组实验中的(b)与(c)保持一致。

性能评价标准:与第一组保持一致。

实验结果见图3,从图3中可以看出,两个数据集在svr惩罚因子不同的取值下均呈现出相似的性能变化趋势,并且在0.01处取得最好的性能。

(3)非线性映射操作对性能影响的对比实验:

实验条件:

(a)2层时序池化网络;

(b)时序编码的svr惩罚项设置为0.01。

性能评价标准:与第一组实验保持一致。

实验结果见表3,其中等价映射表示不使用任何非线性映射,chi2-svm表示基于卡方核的svm分类器,psng-svm表示基于posneg核的svm分类器。

表3、不同类型的非线性映射对时序池化网络的性能影响

从表3显示的结果可以看出,非线性映射确实有助于提升方法的分类和识别性能,并且在使用相同核函数的svm分类器下,posneg核映射相比其他核映射在绝大部分情况下都能取得更好的性能,同时,在使用相同映射方法的情况下,基于posneg核函数的svm也总能获得更优的结果。这也说明了对于多本发明方法来说,将输入序列中的正值和负值分开考虑是有助于学习出更具区分能力的音频表示的。

最后,将本发明方法与目前其他的主流方法进行对比,其中表4显示了方法在asc数据集上与dcase2018官方提供的基线系统在各类别分类正确率的对比情况,表5显示了方法在aer数据集上与目前其他主流当前方法在识别正确率上的性能对比情况。

表4、与dcase2018基线系统性能对比结果

表5、与其他主流先进方法识别性能对比结果

本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1