本发明涉及智能语音信号分离技术领域,具体涉及一种基于注意力机制的单通道时域鸟鸣声分离方法。
背景技术:
由于鸟类的鸣声和形态特征一样,具有独特性。因此,鸟类的鸣声是识别鸟类的重要依据。国内外对这种方法越来越重视,很多生态专家会通过这种方法对生态多样性进行监测。通过采集设备拾取到的鸟鸣声一般为单声道(用一个传声器拾取声音),信号较为复杂,伴随着环境噪声和其他物种的声音,经常是混叠信号。而现有的鸟鸣声识别算法只对只包含单个物种的音频进行识别,并不支持对混叠鸟鸣声音频进行识别。因此在进行鸟鸣声识别的步骤之前,需要对混叠鸟鸣声进行分离。目前并没有专门针对鸟鸣声混叠进行分离的方法,一般都是采用语音分离的方法。传统的单通道语音分离方法有以下三种。
(1)独立成分分析(ica)方法可以通过某个对比函数(contrastfunction)的目标函数达到极大值来消除观察信号中的高阶统计关联,实现盲源分离。然而,对于某些模型,不能保证估计或提取的信号与源信号具有完全相同的波形,因此有时要求放宽到提取的波形是源信号的失真或滤波版本。2004年,hoyer根据源语音信号的稀疏性等其他特性提出非负矩阵分解算法(nmf)。
(2)nmf基本思想是:对于任意给定的一个非负矩阵v,nmf算法能够寻找到一个非负矩阵w和一个非负矩阵h,使得满足v≈w×h,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。nmf把混合信号分解成一系列的非负元素构成的基矩阵及权重矩阵,然后对测试语音通过求解基矩阵的权重系数进而恢复目标信号。
(3)计算听觉场景分析(casa)就是利用计算机技术,让计算机模仿人类对听觉信号的处理过程进行建模,从而具备和人类一样从复杂混合声源中感知声音、处理声音、解释声音的能力。casa起源于bregman在1990年对人的听觉系统的感知机理的研究,他将听觉场景分析分成分割和组织两个步骤,并在频域上进行的同时组织和时域上进行的顺序组织两种方式解释了人类对声学场景进行重组的机理。
随着深度学习在图像处理、语音识别中取得很好的进展,近些年来研究者们也采用深度学习来解决语音分离问题。目前主流的基于深度学习的单通道语音分离有两种,分别是基于频域的和基于时域的单通道语音分离方法。一方面,频域方法的优点在于可以与传统的信号处理方法(如频域波束形成)更好的相融,可以得到更加稀疏和结构化的声学特征表征。同时缺点也比较明显,如精准的相位重建比较困难、需要较长的窗长满足频率分辨率的要求而导致的长时延等。另一方面,基于时域的语音分离近两年来受到了更多关注。基于时域的方法避免了相位重建带来的退化和高分辨率谱图带来的延迟,同时认为短时傅里叶变换(stft)不一定适合做语音分离任务。其缺点就是mask的可解释性较差。
herskey等提出了一种深度聚类的单通道语音分离算法,系统可以从训练数据中学习到每个时频单元转换到高维可分离空间的映射关系。通过约束条件,使得同属于一个说话人时频单元,它们在高维嵌入空间中的距离较小;属于不同说话人的时频单元,它们在高维嵌入空间中的距离很大。俞栋等提出置换不变训练的单通道语音分离算法,该方法将分离误差直接最小化。以两个说话人分离为例,如果我们将每个输出分配给训练数据中的一个参考说话人,则有两个可能的分配方式,每个分配方式与均分误差有关。神经网络的目标是最小化估计掩码(mask)和理想掩码的均方误差(mse)。
时域上建模的方法以哥伦比亚大学yiluo等人提出的时域音频网络(tasnet)为代表。tasnet使用编解码框架直接在时域对信号进行建模,并对非负编码器输出进行语音分离。这种方法省去了频率分解步骤,并将分离问题减少到估计编码器输出上的语音掩码,然后由解码器对其进行合成。2020年,yiluo等提出一种双路径递归神经网络(dprnn)。dprnn分为分割、块处理和重叠相加三步,分割把输入序列分割成互相重叠的块并拼接为3d向量,接着把向量传给堆叠的dprnn块来反复执行局部和全局建模,最后一层输出通过重叠相加转化为输出序列。
上述现有技术主要还是以人类语音的分离为主,缺少在生物声学方面的应用。由于人类正常说话的频率范围在300hz-3khz之间,而鸟鸣声的频率范围在500hz-10khz之间。为了满足奈奎斯特采样定理,一般的鸟鸣声音频采样频率≥32khz,比人声(一般为8khz或16khz)高了很多,因此计算复杂度增加了很多。
因此,行业内急需研发一种基于深度学习的且适用生物声学的,能降低计算复杂度的单通道语音分离方法。
技术实现要素:
本发明的目的是为了克服以上现有技术存在的不足,提供了一种适用生物声学的,能降低计算复杂度的基于注意力机制的单通道时域鸟鸣声分离方法。
本发明的目的通过以下的技术方案实现:
一种基于注意力机制的单通道时域鸟鸣声分离方法,包括:
s1,在野外采集待分离的混叠鸟鸣声信号,并进行预处理;
s2,将预处理后的混叠鸟鸣声信号输入到预先建立并训练完毕的基于注意力机制的时域单通道鸟鸣声分离模型,时域单通道鸟鸣声分离模型输出分离后的鸟鸣声音频。
优选地,建立并训练基于注意力机制的时域单通道鸟鸣声分离模型包括:s21,在野外采集混叠鸟鸣声信号,并进行预处理;将预处理后的鸟鸣声信号分成训练集和验证集;s22,建立基于注意力机制的时域单通道鸟鸣声分离模型,将训练集输入时域单通道鸟鸣声分离模型进行语句级的置换不变性训练。s23,将验证集的混合鸟鸣声输入到训练完毕的模型进行鸟鸣声分离,模型从输入的混合鸟鸣声中估计出对应声源的mask,将对应声源的mask和输入的混合鸟鸣声信号相乘,得到分离后的鸟鸣声音频,验证模型的性能。
优选地,步骤s21包括:通过鸟鸣声采集设备收集鸟鸣声音频;确定鸟鸣声音频对应的真正的鸟鸣声种类,并鸟鸣声音频上添加真正的鸟鸣声种类标签;设置鸟鸣声音频的采样率和量化精度;对鸟鸣声音频进行端点检测,筛选出鸟鸣声片段和非鸟鸣声片段;将鸟鸣声片段进行降噪处理,去掉背景噪声;将已降噪后的鸟鸣声片段和随机的已知鸟种类的鸟鸣声片段进行混合;将混合音频划分为训练集和验证集。
优选地,设置鸟鸣声音频文件的采样率为32khz,量化精度为16位;鸟鸣声片段的长度统一为1秒。
优选地,基于注意力机制的时域单通道鸟鸣声分离模型包括编码器、分离网络和解码器;步骤s22包括:s221,编码器将混合音频通过非线性变化转换到潜在空间中的对应特征向量;s222,在分离网络的潜在空间进行特征学习,并估计出每个声源的掩码;其中分离网络以时间卷积网络为基本框架,其中时间卷积网络由堆叠的一维卷积模块组成;每个一维卷积块使用了残差路径和跳跃连接路径;s223,解码器对每个声源的特征进行逆变换,重构源波形。
优选地,步骤s221包括:
将输入的混合鸟鸣声音频分成一系列片段xk,其中
xk∈r1×l,k=1,2,…,t,t为片段的总数目,l为片段的长度;
片段xk通过一维卷积操作转换成n维的非负特征向量w;
其中,u∈rn×l为编码器的基函数,
优选地,在步骤s222中,每个声源的特征di通过估计c个掩码mi乘以编码器的输出w得到;
di=w⊙mi
其中,mi∈r1×n,i=1,…,c,c为混合鸟鸣声音频中鸟类的数目。
优选地,步骤s223中,重构源波形的公式为:
其中,v∈rn×l为解码器的基函数,
优选地,每一卷积块使用的非线性函数为mish。
优选地,在分离网络中加入卷积块注意力模块,卷积块注意力模块包括:通道注意力模块和空间注意力模块;通道注意力模块的公式如下:
mc(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
其中,特征f是通道注意力模块的输入,mlp为一个两层的神经网络,这两层的神经网络是共享的;avgpool和maxpool分别为平均池化层和最大池化层;σ为激活函数,mc(f)为通道注意力模块的输出;
空间注意力模块的公式如下:
ms(f)=σ(f7*7([avgpool(f`),maxpool(f`)]))
其中,特征f`是空间注意力模块的输入,avgpool和maxpool分别为平均池化层和最大池化层;f7*7为一个7×7的卷积层,σ为激活函数,ms(f)为空间注意力模块的输出。
优选地,在步骤s22中,对时域单通道鸟鸣声分离模型进行语句级的置换不变性训练时,时域单通道鸟鸣声分离网络的损失函数包括:最大化网络重构的源音频和干净的源音频的尺度不变的源信噪比、最小化网络重构的源音频和干净的源音频之间的均方误差;
其中,最大化网络重构的源音频和干净的源音频的尺度不变的源信噪比的计算方式为:
时域单通道鸟鸣声分离模型的损失函数j为:
其中,sn代表所有排列方式的集合,n为声源数目,
本发明相对于现有技术具有如下优点:
1、由于鸟鸣声音频采样频率≥32khz,为了减少计算复杂度,本发明使用了基于卷积时域音频网络(conv-tasnet)为基础框架。conv-tasnet里的跳跃连接、深度可分离卷积都能有效的减少计算量。
2、本发明引入了注意力机制,即通过自上而下的信息选择机制来过滤掉大量的无关信息,使模型能够把“注意力”放在更有用的信息上,提高模型的鲁棒性。
3、修改了损失函数,在尺度不变的信噪比(si-snr)的基础上增加计算网络估计的音频与原始音频的均方误差,以句子级的置换不变训练(upit)方法进行联合优化训练神经网络,提升网络分离的性能。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的基于注意力机制的单通道时域鸟鸣声分离方法的流程示意图。
图2为本发明的基于注意力机制的时域单通道鸟鸣声分离模型的结构图。
图3为本发明的一维卷积块的结构图。
图4为本发明的cbam模块的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
参见图1,一种基于注意力机制的单通道时域鸟鸣声分离方法,其特征在于,包括:
s1,在野外采集待分离的混叠鸟鸣声信号,并进行预处理;可以将待分离的混叠鸟鸣声信号作为测试集。
s2,将预处理后的混叠鸟鸣声信号输入到预先建立并训练完毕的基于注意力机制的时域单通道鸟鸣声分离模型,时域单通道鸟鸣声分离模型输出分离后的鸟鸣声音频。
在本实施例,建立并训练基于注意力机制的时域单通道鸟鸣声分离模型包括:
s21,在野外采集混叠鸟鸣声信号,并进行预处理;将预处理后的鸟鸣声信号分成训练集和验证集;具体地,步骤s21包括:通过鸟鸣声采集设备收集鸟鸣声音频;确定鸟鸣声音频对应的真正的鸟鸣声种类,并鸟鸣声音频上添加真正的鸟鸣声种类标签;设置鸟鸣声音频的采样率和量化精度;通过鸟鸣声采集设备拾取到的鸟鸣声音频文件一般采样率(fs)≥32khz,量化精度(nbits)≥16位。在预处理开始阶段,将鸟鸣声音频文件的fs设置为32khz,nbits设置为16位。对鸟鸣声音频进行端点检测,筛选出鸟鸣声片段和非鸟鸣声片段;其中鸟鸣声片段的长度统一为1秒,方便输入到后续的神经网络(时域单通道鸟鸣声分离模型)。将鸟鸣声片段进行降噪处理,去掉背景噪声;将已降噪后的鸟鸣声片段和随机的两种已知鸟种类的鸟鸣声片段进行混合;混合时两个片段的信噪比范围是0db-5db,具体信噪比值为随机选择。将混合音频划分为训练集和验证集鸟鸣声片段的长度统一为1秒。最后将混合音频划分为训练集和验证集,占比分别为90%和10%。训练集用来训练和拟合模型,验证集调整模型参数使效果最佳。
需要说明的是,步骤s1和上述在野外采集混叠鸟鸣声信号,并进行预处理的步骤完全一样。
s22,建立基于注意力机制的时域单通道鸟鸣声分离模型,将训练集输入时域单通道鸟鸣声分离模型进行语句级的置换不变性训练。在本实施例,本发明提出一个新的单通道鸟鸣声分离网络模型,如图2所示,基于注意力机制的时域单通道鸟鸣声分离网络模型包括以下三个部分:包括编码器、分离网络和解码器;分离网络在这个潜在空间进行特征学习并估计出每个声源的掩码,最后使用解码器模块对每个声源的掩码进行变换,重构源波形。
具体地,步骤s22包括:
s221,编码器将混合音频通过非线性变化转换到潜在空间中的对应特征向量;具体地步骤s221包括:
将输入的混合鸟鸣声音频分成一系列片段xk,其中xk∈r1×l,k=1,2,…,t,t为片段的总数目,l为片段的长度;
片段xk通过一维卷积操作转换成n维的非负特征向量w;(n为512)
其中,u∈rn×l为编码器的基函数,
s222,在分离网络的潜在空间进行特征学习,并估计出每个声源的掩码;其中分离网络以时间卷积网络(tcn)为基本框架,其中时间卷积网络由堆叠的一维卷积模块组成;每个一维卷积块如图3所示,使用了残差路径和跳跃连接路径;为了减少参数量,每一块中的标准卷积操作都替换为深度可分离卷积。每一卷积块使用的非线性函数为mish。mish是一个平滑的曲线,平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化;在负值的时候并不是完全截断,允许比较小的负梯度流入。
y=x*tanh(ln(1+exp(x)))
具体地,在步骤s222中,每个声源的特征di通过估计c个掩码mi乘以编码器的输出w得到;
di=w⊙mi
其中,mi∈r1×n,i=1,…,c,c为混合鸟鸣声音频中鸟类的数目。
s223,解码器对每个声源的特征进行逆变换,重构源波形。具体地,步骤s223中,重构源波形的公式为:
其中,v∈rn×l为解码器的基函数,
在本实施例,在分离网络中加入卷积块注意力模块(cbam),这能使网络选择性地关注突出部分,以便更好地捕捉到有用的特征。cbam如图4所示,分为通道注意力模块和空间注意力模块。通道注意力模块的公式如下:
mc(f)=σ(mlp(avgpool(f))+mlp(maxpool(f)))
其中,特征f是通道注意力模块的输入,mlp为一个两层的神经网络,这两层的神经网络是共享的;avgpool和maxpool分别为平均池化层和最大池化层;σ为激活函数,mc(f)为通道注意力模块的输出;
空间注意力模块的公式如下:
ms(f)=σ(f7*7([avgpool(f`),maxpool(f`)]))
其中,特征f`是空间注意力模块的输入,avgpool和maxpool分别为平均池化层和最大池化层;f7*7为一个7×7的卷积层,σ为激活函数,ms(f)为空间注意力模块的输出。
在步骤s22中,对时域单通道鸟鸣声分离模型进行语句级的置换不变性训练时,时域单通道鸟鸣声分离网络的损失函数包括:最大化网络重构的源音频和干净的源音频的尺度不变的源信噪比(si-snr)、最小化网络重构的源音频和干净的源音频之间的均方误差(mse);
其中,最大化网络重构的源音频和干净的源音频的尺度不变的源信噪比(si-snr)的计算方式为:
时域单通道鸟鸣声分离模型的损失函数j为:
其中,sn代表所有排列方式的集合,n为声源数目,
在训练阶段,混合鸟鸣声音频的片段长度l为16,所用的编码器和解码器都是一维卷积,分离网络有3组tcn结构,每组有8个一维卷积块和一个cbam模块,β设置为0.5。训练所选取的样本数(batchsize)为4,迭代次数为100,使用adam优化算法来对模型进行优化,初始学习速率为1e-3,如果在连续三个epoch内验证集的准确率没有提高,则学习率减半。当学习率低于1e-8时,训练过程自动终止。在训练完成后,保存此时的网络参数。
在本实施例,步骤s22之后还包括:将验证集的混合鸟鸣声输入到训练完毕的模型进行鸟鸣声分离。在测试阶段,直接将测试集的混合鸟鸣声输入到已经训练完毕的网络模型里。模型从输入的混合鸟鸣声中估计出对应声源的mask,将对应声源的mask和输入的混合鸟鸣声信号相乘,得到分离后的鸟鸣声音频,验证模型的性能。
本发明采用si-snr作为评价指标来评估本发明方法在提升语音分离性能方面的潜力。如表1所示,本发明方法在混叠鸟鸣声场景下得到了比其他方法更好的分离性能。由于加入了注意力机制cbam模块和更好的非线性函数mish,相比于其他分离方法(如chimera++、conv-tasnet)都有相应的提升。此外,相比于常规的损失函数si-snr,增加网络重构的源音频和干净的源音频之间的均方误差会使网络分离出的鸟鸣声与干净的鸟鸣声相似度更高,提高了后续鸟鸣声识别环节的识别率。
表1实验结果分析
综上,本发明构建并训练了基于注意力机制的单通道鸟鸣声分离模型,使用网络估计的源音频与干净源音频的尺度不变的信噪比和均方误差作为联合训练目标,采用句子级的置换不变训练方法进行训练,从而使得单通道鸟鸣声分离和后续的鸟鸣声识别得到很好的结果,解决了现有技术主要还是以人类语音的分离为主,缺少在生物声学方面的应用。
上述具体实施方式为本发明的优选实施例,并不能对本发明进行限定,其他的任何未背离本发明的技术方案而所做的改变或其它等效的置换方式,都包含在本发明的保护范围之内。