本发明涉及音频信号处理与模式识别技术,特别涉及一种基于瓶颈特征的复杂音频分割聚类方法。
背景技术:
随着多媒体采集设备、互联网及云存储平台的发展与普及,海量复杂音频内容分析与检索的需求日益迫切。复杂音频分割、聚类作为一种无监督的方法,是音频内容分析的重要手段之一。虽然可以采用人工标注的方法找出音频流中的各音频类型,但人工标注成本高、主观性强、效率低,而有监督的音频分类方法需要预先知道音频流中的音频类型、提前训练特定类型的分类器。因此无监督的复杂音频分割、聚类方法应用范围更广,更适合海量复杂音频数据的内容分析。
传统的复杂音频分割聚类方法采用的特征大多来源于语音识别领域,如梅尔频率倒谱系数,感知线性预测系数等。由于复杂音频中的各类音频事件来源各异,没有语音那样的特定结构单元(音素或音节),在语音识别中能有效刻画语音单元差异的传统音频特征并不一定能有效刻画复杂音频类型之间的特性差异。因此,提取有效刻画复杂音频类型差异的特征是提升复杂音频分割与聚类性能的关键。
技术实现要素:
本发明的目的在于克服现有技术的不足和缺点,提供一种基于瓶颈特征的复杂音频分割聚类方法:首先训练一个带瓶颈层的深度神经网络;接着,提取复杂音频流的音频特征并输入深度神经网络,从深度神经网络的瓶颈层提取瓶颈特征;以瓶颈特征作为输入,采用基于贝叶斯信息准则的音频分割方法对复杂音频流进行分割,使得每个音频段只包含一种音频类型,相邻音频段的音频类型不同;最后,采用谱聚类算法对分割后的音频段进行聚类,得到复杂音频中的音频类型个数,并将相同音频类型的音频段合并在一起。
本发明的目的通过以下技术方案实现:一种基于瓶颈特征的复杂音频分割聚类方法,其特征在于,包括如下步骤:
s1、带瓶颈层的深度神经网络构造:读入训练数据并提取梅尔频率倒谱系数(melfrequencycepstralcoefficients,mfcc)特征,再通过无监督预训练和有监督精确调整两个步骤构造一个带瓶颈层的深度神经网络(deepneuralnetwork,dnn)特征提取器;
s2、端点检测:读入复杂音频流,通过基于门限判决的静音检测方法找出音频流中所有的静音段和非静音信号段,并将各个非静音信号段拼接成一个长信号段;
s3、瓶颈特征提取:提取上述长信号段的mfcc特征并输入dnn特征提取器,从dnn特征提取器的瓶颈层提取瓶颈特征;
s4、音频分割:采用基于贝叶斯信息准则(bayesinformationcriterion,bic)的方法检测长信号段中的音频类型改变点,根据这些改变点把长信号段分割成若干个音频段,使得每个音频段只包含一种音频类型且相邻音频段的音频类型不同;
s5、音频聚类:采用谱聚类算法对各音频段进行聚类,得到音频类型个数,并将相同音频类型的音频段合并在一起。
优选的,步骤s1中带瓶颈层的深度神经网络构造具体包括以下步骤:
s1.1、读入训练数据并提取mfcc特征,具体步骤如下:
s1.1.1、预加重:设置数字滤波器的传递函数为h(z)=1-αz-1,其中α为一个系数且取值为:0.9≤α≤1,读入的音频流通过该数字滤波器后实现预加重;
s1.1.2、分帧:设置音频帧的帧长为25毫秒、帧移为10毫秒,帧长和帧移所对应的采样点个数分别为n=0.025×fs和s=0.01×fs,其中fs为音频采样频率,将读入的音频流切分成音频帧xt'(n),1≤t≤t,0≤n≤n-1,其中t和n分别表示帧数和每帧的采样点数;
s1.1.3、窗函数ω(n)为汉明窗:
将每帧音频信号xt'(n)与汉明窗ω(n)相乘得到加窗后的音频信号xt(n):
xt(n)=ω(n)×xt'(n)n=0,1,...,n-1;t=1,2,...,t
s1.1.4、提取mfcc特征:
s1.1.4.1、对第t帧音频信号xt(n)做离散傅立叶变换(discretefouriertransformation,dft)得到线性频谱xt(k):
s1.1.4.2、将上述线性频谱xt(k)通过梅尔频率滤波器组得到梅尔频谱,再进行对数运算得到对数频谱st(m),其中梅尔频率滤波器组为若干个带通滤波器hm(k),0≤m<m,m为滤波器的个数,其值设置为13,每个滤波器具有三角形滤波特性,其中心频率为f(m),当m值较小时相邻f(m)的间隔较小,随着m的增加相邻f(m)的间隔逐渐变大,每个带通滤波器的传递函数为:
其中,0≤m<m,f(m)定义如下:
其中,fl、fh为滤波器的最低频率和最高频率,b-1为b的逆函数:
b-1(b)=700(eb/1125-1),
因此由线性频谱xt(k)到对数频谱st(m)的变换为:
s1.1.4.3、将上述对数频谱st(m)经过离散余弦变换(discretecosinetransformation,dct)变换到倒谱域,得到第t帧音频信号的mfcc特征,即ct(p):
s1.1.4.3、对每帧音频信号重复步骤s1.1.4.1-s1.1.4.3,得到所有音频帧的mfcc特征,将它们按帧的顺序组合成一个mfcc特征矩阵;
s1.2、预训练:采用逐层堆叠受限玻尔兹曼机(restrictedboltzmannmachine,rbm)的方法构造一个深度置信网(deepbeliefnets,dbn),得到预训练的网络参数;
rbm采用基于能量的通用分布模型去表示任意概率分布,其能量函数定义为:
其中v,h分别代表可视层单元和隐含层单元的状态矢量,wij表示可视层第i个节点与隐含层第j个节点的连接权重,vi和ai分别表示可视层的第i个节点的状态和偏移量,hj和bj分别表示隐含层的第j个节点的状态和偏移量,vis和hid分别表示可视层和隐含层的节点集合;当所有参数都确定时,可以得到rbm能量函数关于v和h的联合概率分布:
由联合分布得到边缘概率分布:
条件概率为:
高斯-伯努利rbm的条件概率分布可以表示为:
其中
伯努利-伯努利rbm的条件概率分布表示为:
在给定训练集
训练rbm的目标就是最大化似然函数:
即:
其中p(d(t))为对样本d(t)的似然估计;
dbn的构造过程具体包括如下步骤:
s1.2.1、选取当前帧的前后5帧作为上下文信息,共计11*13=143维作为第一个rbm的可视层输入节点数,隐含层节点数取固定值1024,将输入特征的每一维进行倒谱均值方差归一化,采用对比散度(contrastivedivergence,cd)算法训练一个高斯-伯努利rbm;
具体过程如下:
s1.2.1.1、将连接权重初始化,值为10-3,偏移量、似然函数对权重的偏导数、似然函数对可视层以及隐含层偏移量的偏导数均初始化为0,迭代次数设置为30;
s1.2.1.2、对每一次迭代,取初始值d(0),d(0)={di(0)},i∈vis,为训练样本集合d中的任意一个样本d,执行k步gibbs采样得到d(k),其中在第s步(s=0,2...,k-1)过程如下:
s1.2.1.2.1、隐含层中的每一个节点的激活概率可以表示为:
s1.2.1.2.2、产生[0,1]区间的随机数rj,得到隐含层状态h(s):
s1.2.1.2.3、根据隐含层状态h(s),得到可视层每一个节点的激活概率为:
s1.2.1.2.4、产生[0,1]上的随机数ri,重构可视层输入d(s+1):
s1.2.1.3、经过k步gibbs采样后得到的d(k)近似估计rbm参数的梯度:
其中p(hi=1|d(k))表示在可视层限定为已知的训练样本d(k)时隐含层的激活概率,由于该rbm为高斯-伯努利rbm,则
s1.2.1.4、得到似然函数对权重的偏导数、似然函数对可视层以及隐含层偏移量的偏导数δw,δa和δb,其中
s1.2.1.5、更新参数:
式中η为权重学习率,设置为0.01;
s1.2.2、保持上一个rbm的权重和偏移量不变,将上一个rbm的隐含层作为下一个rbm的可视层,并保持隐含层节点数与可视层节点数相同,迭代训练一个伯努利-伯努利rbm,其步骤与s1.2.1类似,只是在执行k步gibbs采样得到d(k)时,其可视层每一个节点的激活概率公式变为:
此过程中,权重学习率变为0.04,迭代次数降为15次;
s1.2.3、按照s1.2.2中的步骤,重复迭代训练伯努利-伯努利rbm,直到瓶颈层的前一个隐含层;
s1.2.4、将rbm的隐含层节点数设置为mfcc特征维数的2倍,按照s1.2.2中的步骤,迭代训练伯努利-伯努利rbm;
s1.2.5、恢复隐含层节点数为1024,按照s1.2.2中的步骤,重复迭代训练伯努利-伯努利rbm,直到最后一个隐含层;
s1.2.6、将所有的rbm按照构造时的顺序依次堆叠起来,就构成一个带瓶颈层的dbn;
s1.3、精确调整:采用有监督训练方法对预训练后的dbn网络参数进行精确调整,具体包括如下步骤:
s1.3.1、在dbn的基础上再增加一个输出层,并随机初始化dbn最后一层与该增加的输出层之间的网络参数,从而构成一个完整的深度神经网络dnn;
s1.3.2、利用反向传播(back-propagation,bp)算法有监督地调整dnn网络参数,每一次迭代的具体步骤如下:
s1.3.2.1、计算样本损失函数:
对于单个有标签的训练样本(x,t),其中x为声学特征,t为样本标签,其维度与输出节点数相同,即训练的音频类别数,对于音频类型集合y={y1,y2,..,yk,..,yk},t={t1,t2,…ti,…,tk},其中ti:
单个样本损失函数记为:
其中hw,b(x)为网络输出层的激活函数的输出值;
给定一个含有n个训练样本集{(x(1),t(1)),(x(2),t(2)),...,(x(n),t(n))},则整体损失函数为:
其中ml为网络总层数,sl为第l层上的节点总数,
s1.3.2.2、根据s1.3.2.1中的整体样本损失函数,分别对网络连接权重和偏移量求导,利用反向传播算法得到偏导数值,具体过程如下:
s1.3.2.2.1、首先利用前向传播算法,分别计算隐含层以及输出层中所有节点的激活值
其中σ(·)为选取的sigmoid激活函数,
s1.3.2.2.2、对于输出层的每个输出单元i,其残差为:
其中ti表示输出层第i个节点的标签,
根据反向传播算法,对于输出层前的各个隐含层(l=2,3,…,ml-2,ml-1),依次计算其残差为:
其中
s1.3.2.2.3、单个样本最终的偏导数值为:
其中,δ(l+1)={δi(l+1)},i=1,2,...,sl为第l+1层的残差向量,a(l)={ai(l)},i=1,2,...,sl为第l层的激活值,t为转置符号,
对于i=1:n的所有训练样本{(x(1),t(1)),(x(2),t(2)),...,(x(n),t(n))},则有:
其中δw(l)是一个与矩阵w(l)={wij(l)}维度相同的矩阵,初始化为0,δb(l)是一个与矩阵b(l)={bi(l)}维度相同的向量,初始值也为0,δw(l,i)和δb(l,i)分别表示对第i个训练样本计算出的δw(l)和b(l),
s1.3.2.3、更新网络的连接权重w(l)和偏移量b(l):
其中α为学习速率,设置为0.01,λ为平衡因子,设为0.08;
优选的,所述步骤s2中对读入的复杂音频信号做端点检测包括以下步骤:
s2.1、按照步骤s1.1.1-s1.1.3对复杂音频信号做预加重,分帧,加窗处理,将读入的音频文件分成t帧,如果最后一帧音频信号的采样点个数小于n,则将其舍去;计算第t帧音频信号xt(n)的能量et:
得到音频流的能量特征矢量e={e1,e2,...,et},其中t为总帧数;
s2.2、用固定的能量门限判断静音与非静音信号段有很大的局限性,因为各种环境下的非静音信号能量相差很大,但非静音信号与静音之间能量大小的相对关系是不变的,所以定义每帧音频的能量门限te:
te=min(e)+0.3×[mean(e)-min(e)],
其中,min(e)是各帧能量的最小值,mean(e)是各帧能量的平均值。
s2.3、将每帧音频的能量与能量门限比较,低于能量门限的帧为静音帧,否则为非静音帧,将所有静音帧都舍弃,将相邻的非静音帧按时间顺序拼接成一个非静音信号段。
优选的,步骤s3中瓶颈特征提取包括以下步骤:
s3.1、按照步骤s1.1.4提取端点检测后非静音信号的mfcc特征;
s3.2、将mfcc特征输入到dnn特征提取器,从dnn特征提取器的瓶颈层提取瓶颈特征。
优选的,步骤s4中音频分割包括以下步骤:
s4.1、将长信号段的特征矩阵切分成数据窗,窗长为200帧,窗移为10帧;
s4.2、计算两个相邻数据窗(x和y)之间的bic距离,bic距离计算公式如下:
其中,z是将数据窗x和y合并之后得到的数据窗,nx和ny分别是数据窗x和y的帧数,fx、fy和fz分别是数据窗x、y和z的特征矩阵,cov(fx)、cov(fy)和cov(fz)分别是特征矩阵fx、fy和fz的协方差矩阵,det(·)表示求矩阵的行列式值,α是惩罚系数且实验取值为2.0;
s4.3、如果bic距离δbic大于零,则这两个数据窗被视为属于两个不同的音频类型,否则这两个数据窗被视为属于同一个音频类型并将它们合并;
s4.4、不断滑动数据窗判断两个相邻数据窗之间的bic距离是否大于零,并保存音频类型改变点,直到长信号段的所有相邻数据窗之间的bic距离都被判断完为止,得到若干只包含一种音频类型的音频段,且相邻音频段的类型不同。
优选的,步骤s5中音频事件聚类包括以下步骤:
s5.1、假设音频分割后的所有音频段特征矩阵集合f={f1,f2,...,fj},j为音频段总个数,根据f构造亲和矩阵a∈rj×j,a的第(j,k)个元素ajk定义如下:
其中d(fj,fk)是特征矩阵fj与fk之间的欧氏距离,σj是一个尺度参数,定义为第j个特征矩阵fj与其他j-1个特征矩阵之间的欧氏距离矢量的方差;
s5.2、对角矩阵h的第(j,j)个元素代表亲和矩阵中第j行所有元素之和,再根据对角矩阵h和a构造归一化的亲和矩阵:
s5.3、计算矩阵l的前kmax个最大的特征值{λ1,λ2,...,λi,...,λkmax}及其特征矢量{q1,q2,...,qi,...,qkmax},其中1≤i≤kmax,qi为列矢量,λ1≥λ2≥...≥λi≥…≥λkmax,根据相邻特征值之间的差值估计最优类别数(即音频类数)k:
根据估计出来的音频类型个数k,构造矩阵q=[q1,q2,...,qk]∈rj×k;
s5.4、归一化矩阵q的每一行,得到矩阵y∈rj×k,y的第(j,k)个元素yjk:
s5.5、将矩阵中的每一行当作空间rk中的一个点,利用k均值算法(k-meansalgorithm)将矩阵y的j行聚类成k类。将特征矩阵fj所对应的音频段判为第k类,当且仅当矩阵y的第j行被聚类在第k类中;
s5.6、根据上述聚类结果,得到音频类型个数,并将相同音频类型的音频段合并在一起。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明中的瓶颈特征是一种深层变换特征,比传统音频特征能更有效刻画复杂音频类型的特性差异,在复杂音频分割聚类中获得更加优异的效果。
2、本发明方法是一种无监督的音频内容分析方法,无需事先知道音频类型及训练分类器,与有监督的方法相比更具普适性。
3、本发明方法是复杂音频内容分析与检索、音频场景估计、音频摘要提取等应用的重要基础。
附图说明
图1为本发明的rbm网络结构图;
图2为本发明的dbn网络结构图;
图3为本发明的带瓶颈层的dnn生成过程示意图;
图4为本发明实施例的流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例
图4是基于瓶颈特征的复杂音频分割聚类方法的一个实施例的流程图,它主要包括以下过程:
1、带瓶颈层的深度神经网络构造:读入训练数据并提取mfcc特征,再通过无监督预训练和有监督精确调整两个步骤训练一个带瓶颈层的dnn特征提取器;具体步骤包括:
s1.1、读入训练数据并提取梅尔频率倒谱系数特征,具体步骤如下:
s1.1.1、预加重:设置数字滤波器的传递函数为h(z)=1-αz-1,其中α为一个系数且取值为:0.9≤α≤1,读入的音频流通过该数字滤波器后实现预加重;
s1.1.2、分帧:设置音频帧的帧长为25毫秒、帧移为10毫秒,帧长和帧移所对应的采样点个数分别为n=0.025×fs和s=0.01×fs,其中fs为音频采样频率,将读入的音频流切分成音频帧xt'(n),1≤t≤t,0≤n≤n-1,其中t和n分别表示帧数和每帧的采样点数;
s1.1.3、窗函数ω(n)为汉明窗:
将每帧音频信号xt'(n)与汉明窗ω(n)相乘得到加窗后的音频信号xt(n):
xt(n)=ω(n)×xt'(n)n=0,1,...,n-1;t=1,2,...,t,
s1.1.4、提取梅尔频率倒谱系数特征:
s1.1.4.1、对第t帧音频信号xt(n)做离散傅立叶变换得到线性频谱xt(k):
s1.1.4.2、将上述线性频谱xt(k)通过梅尔频率滤波器组得到梅尔频谱,再进行对数运算得到对数频谱st(m),其中梅尔频率滤波器组为若干个带通滤波器hm(k),0≤m<m,m为滤波器的个数,每个滤波器具有三角形滤波特性,其中心频率为f(m),当m值较小时相邻f(m)的间隔较小,随着m的增加相邻f(m)的间隔逐渐变大,每个带通滤波器的传递函数为:
其中,0≤m<m,f(m)定义如下:
其中,fl、fh为滤波器的最低频率和最高频率,b-1为b的逆函数:
b-1(b)=700(eb/1125-1),
因此由线性频谱xt(k)到对数频谱st(m)的变换为:
s1.1.4.3、将上述对数频谱st(m)经过离散余弦变换变换到倒谱域,得到第t帧音频信号的梅尔频率倒谱系数特征,即ct(p):
s1.1.4.3、对每帧音频信号重复步骤s1.1.4.1-s1.1.4.3,得到所有音频帧的梅尔频率倒谱系数特征,将它们按帧的顺序组合成一个梅尔频率倒谱系数特征矩阵;
s1.2、预训练:采用逐层堆叠受限玻尔兹曼机的方法构造一个深度置信网,得到预训练的网络参数;rbm的网络结构如图1所示,dbn的网络结构如图2所示;
受限玻尔兹曼机采用基于能量的通用分布模型去表示任意概率分布,其能量函数定义为:
其中v,h分别代表可视层单元和隐含层单元的状态矢量,wij表示可视层第i个节点与隐含层第j个节点的连接权重,vi和ai分别表示可视层的第i个节点的状态和偏移量,hj和bj分别表示隐含层的第j个节点的状态和偏移量,vis和hid分别表示可视层和隐含层的节点集合;当所有参数都确定时,可以得到受限玻尔兹曼机能量函数关于v和h的联合概率分布:
由联合分布得到边缘概率分布:
条件概率为:
高斯-伯努利受限玻尔兹曼机的条件概率分布可以表示为:
其中
伯努利-伯努利受限玻尔兹曼机的条件概率分布表示为:
在给定训练集
训练受限玻尔兹曼机的目标就是最大化似然函数:
即:
其中p(d(t))为对样本d(t)的似然估计;
深度置信网的构造过程具体包括如下步骤:
s1.2.1、选取当前帧的前后5帧作为上下文信息,共计11*13=143维作为第一个受限玻尔兹曼机的可视层输入节点数,隐含层节点数取固定值1024,将输入特征的每一维进行倒谱均值方差归一化,采用对比散度算法训练一个高斯-伯努利受限玻尔兹曼机;
具体过程如下:
s1.2.1.1、将连接权重初始化,值10-3,偏移量、似然函数对权重的偏导数、似然函数对可视层以及隐含层偏移量的偏导数均初始化为0,迭代次数设置为30;
s1.2.1.2、对每一次迭代,取初始值d(0),d(0)={di(0)},i∈vis,为训练样本集合d中的任意一个样本d,执行k步gibbs采样得到d(k),其中在第s步(s=0,2...,k-1)过程如下:
s1.2.1.2.1、隐含层中的每一个节点的激活概率可以表示为:
s1.2.1.2.2、产生[0,1]区间的随机数rj,得到隐含层状态h(s):
s1.2.1.2.3、根据隐含层状态h(s),得到可视层每一个节点的激活概率为:
s1.2.1.2.4、产生[0,1]上的随机数ri,重构可视层输入d(s+1):
s1.2.1.3、经过k步gibbs采样后得到的d(k)近似估计受限玻尔兹曼机参数的梯度:
其中p(hi=1|d(k))表示在可视层限定为已知的训练样本d(k)时隐含层的激活概率,由于该rbm为高斯-伯努利rbm,则
s1.2.1.4、得到似然函数对权重的偏导数、似然函数对可视层以及隐含层偏移量的偏导数δw,δa和δb,其中
s1.2.1.5、更新参数:
式中η为权重学习率,设置为0.01;
s1.2.2、保持上一个受限玻尔兹曼机的权重和偏移量不变,将上一个受限玻尔兹曼机的隐含层作为下一个受限玻尔兹曼机的可视层,并保持隐含层节点数与可视层节点数相同,迭代训练一个伯努利-伯努利受限玻尔兹曼机,其步骤与s1.2.1类似,只是在执行k步gibbs采样得到d(k)时,其可视层每一个节点的激活概率公式变为:
此过程中,权重学习率变为0.04,迭代次数降为15次;
s1.2.3、按照s1.2.2中的步骤,重复迭代训练伯努利-伯努利受限玻尔兹曼机,直到瓶颈层的前一个隐含层;
s1.2.4、将受限玻尔兹曼机的隐含层节点数设置为梅尔频率倒谱系数特征维数的2倍,按照s1.2.2中的步骤,迭代训练伯努利-伯努利受限玻尔兹曼机;
s1.2.5、恢复隐含层节点数为1024,按照s1.2.2中的步骤,重复迭代训练伯努利-伯努利受限玻尔兹曼机,直到最后一个隐含层;
s1.2.6、将所有的受限玻尔兹曼机按照构造时的顺序依次堆叠起来,就构成一个带瓶颈层的深度置信网;
s1.3、精确调整:采用有监督训练方法对预训练后的深度置信网络参数进行精确调整,具体包括如下步骤:
s1.3.1、在深度置信网的基础上再增加一个输出层,并随机初始化深度置信网最后一层与该增加的输出层之间的网络参数,从而构成一个完整的深度神经网络;其过程示意图如图3所示;
s1.3.2、利用反向传播算法有监督地调整深度神经网络参数,最大迭代次数设为100,并且当相邻两次迭代的损失变化率小于0.01时终止训练,对于每一次迭代,具体步骤如下:
s1.3.2.1、计算样本损失函数:
对于单个有标签的训练样本(x,t),其中x为声学特征,t为样本标签,其维度与输出节点数相同,即训练的音频类别数,对于音频类型集合y={y1,y2,..,yk,..,yk},t={t1,t2,…ti,…,tk},其中ti:
单个样本损失函数记为:
其中hw,b(x)为网络输出层的激活函数的输出值;
给定一个含有n个训练样本集{(x(1),t(1)),(x(2),t(2)),...,(x(n),t(n))},则整体损失函数为:
其中ml为网络总层数,sl为第l层上的节点总数,
s1.3.2.2、根据s1.3.2.1中的整体样本损失函数,分别对网络连接权重和偏移量求导,利用反向传播算法得到偏导数值,具体过程如下:
s1.3.2.2.1、首先利用前向传播算法,分别计算隐含层以及输出层中所有节点的激活值
其中σ(·)为选取的sigmoid激活函数,
s1.3.2.2.2、对于输出层的每个输出单元i,其残差为:
其中ti表示输出层第i个节点的标签,
根据反向传播算法,对于输出层前的各个隐含层(l=2,3,…,ml-2,ml-1),依次计算其残差为:
其中
s1.3.2.2.3、单个样本最终的偏导数值为:
其中,
对于i=1:n的所有训练样本{(x(1),t(1)),(x(2),t(2)),...,(x(n),t(n))},则有:
其中δw(l)是一个与矩阵w(l)={wij(l)}维度相同的矩阵,初始化为0,δb(l)是一个与矩阵b(l)={bi(l)}维度相同的向量,初始值也为0,δw(l,i)和δb(l,i)分别表示对第i个训练样本计算出的δw(l)和b(l),
s1.3.2.3、更新网络的连接权重和偏移量:
其中α为学习速率,设置为0.01,λ为平衡因子,设为0.08。
2、端点检测:读入复杂音频流,通过基于门限判决的静音检测方法找出音频流中所有的静音段和非静音信号段,并将各个非静音信号段拼接成一个长信号段;具体步骤如下:
s2.1、按照步骤s1.1.1-s1.1.3对复杂音频信号做预加重,分帧,加窗处理,将读入的音频文件分成t帧,如果最后一帧音频信号的采样点个数小于n,则将其舍去;计算第t帧音频信号xt(n)的能量et:
得到音频流的能量特征矢量e={e1,e2,...,et},其中t为总帧数;
s2.2、用固定的能量门限判断静音与非静音信号段有很大的局限性,因为各种环境下的非静音信号能量相差很大,但非静音信号与静音之间能量大小的相对关系是不变的,所以定义每帧音频的能量门限te:
te=min(e)+0.3×[mean(e)-min(e)],
其中,min(e)是各帧能量的最小值,mean(e)是各帧能量的平均值;
s2.3、将每帧音频的能量与能量门限比较,低于能量门限的帧为静音帧,否则为非静音帧,将所有静音帧都舍弃,将相邻的非静音帧按时间顺序拼接成一个非静音信号段。
3、瓶颈特征提取:提取的上述长信号段的mfcc特征并输入到dnn特征提取器,从dnn特征提取器的瓶颈层提取瓶颈特征;具体步骤如下:
s3.1、按照步骤s1.1.4提取端点检测后非静音信号的mfcc特征;
s3.2、将mfcc特征输入到dnn特征提取器,从dnn特征提取器的瓶颈层提取瓶颈特征。
4、音频分割:通过贝叶斯信息准则检测长信号段中的音频类型改变点,根据这些改变点把长信号段分割成若干个音频段,使得每个音频段只包含一种音频类型,相邻音频段的音频类型不同;
s4.1、将长信号段的特征矩阵切分成数据窗,窗长为200帧,窗移为10帧;
s4.2、计算两个相邻数据窗(x和y)之间的bic距离,bic距离计算公式如下:
其中,z是将数据窗x和y合并之后得到的数据窗,nx和ny分别是数据窗x和y的帧数,fx、fy和fz分别是数据窗x、y和z的特征矩阵,cov(fx)、cov(fy)和cov(fz)分别是特征矩阵fx、fy和fz的协方差矩阵,det(·)表示求矩阵的行列式值,α是惩罚系数且实验取值为2.0;
s4.3、如果bic距离δbic大于零,则这两个数据窗被视为属于两个不同的音频类型,否则这两个数据窗被视为属于同一个音频类型并将它们合并;
s4.4、不断滑动数据窗判断两个相邻数据窗之间的bic距离是否大于零,并保存音频类型改变点,直到长信号段的所有相邻数据窗之间的bic距离都被判断完为止,得到若干只包含一种音频类型的音频段,且相邻音频段的类型不同。
5、音频聚类:采用谱聚类算法对各音频段进行聚类,得到音频类型个数,并将相同音频类型的音频段合并在一起。
s5.1、假设音频分割后的所有音频段特征矩阵集合f={f1,f2,...,fj},j为音频段总个数,根据f构造亲和矩阵a∈rj×j,a的第(j,k)个元素ajk定义如下:
其中d(fj,fk)是特征矩阵fj与fk之间的欧氏距离,σj是一个尺度参数,定义为第j个特征矩阵fj与其他j-1个特征矩阵之间的欧氏距离矢量的方差;
s5.2、对角矩阵h的第(j,j)个元素代表亲和矩阵中第j行所有元素之和,再根据对角矩阵h和a构造归一化的亲和矩阵:
s5.3、计算矩阵l的前kmax个最大的特征值
根据估计出来的音频类型个数k,构造矩阵q=[q1,q2,...,qk]∈rj×k;
s5.4、归一化矩阵q的每一行,得到矩阵y∈rj×k,y的第(j,k)个元素yjk:
s5.5、将矩阵中的每一行当作空间rk中的一个点,利用k均值算法(k-meansalgorithm)将矩阵y的j行聚类成k类。将特征矩阵fj所对应的音频段判为第k类,当且仅当矩阵y的第j行被聚类在第k类中;
s5.6、根据上述聚类结果,得到音频类型个数,并将相同音频类型的音频段合并在一起。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。