基于联合深度神经网络的端点检测方法及系统与流程

文档序号:24880257发布日期:2021-04-30 12:58阅读:207来源:国知局
基于联合深度神经网络的端点检测方法及系统与流程

本发明涉及语音处理技术领域,特别涉及一种基于联合深度神经网络的端点检测方法及系统。



背景技术:

端点检测(voiceactivitydetection,vad)是指从连续音频信号中检测出实际语音片段的起始位置和结束位置,用于提取有效的音频片段,排除其他非语音干扰信号。端点检测能够为后续语音处理系统提供可靠的语音数据,同时将非语音信号去除,减少了后续语音处理系统的计算压力,有助于提高系统的响应速度。

端点检测可分为两大类,一类是传统的端点检测算法,一类是基于深度神经网络的端点检测算法。传统算法的计算量相对简单,但在实际环境中尤其是低信噪比环境下效果较差,而基于深度神经网络的算法计算量较大,且依赖于数据,需要匹配的人工标记的帧级别数据作为训练数据集,而真实环境中包含的声音场景和背景噪音种类繁多较为复杂,获取标记数据需要耗费大量的人工,要想取得较为理想的效果,网络结构复杂计算量较大。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于联合深度神经网络的端点检测方法,能够减少依赖标记数据。

本发明还提出一种具有上述基于联合深度神经网络的端点检测方法的基于联合深度神经网络的端点检测系统。

本发明还提出一种具有上述基于联合深度神经网络的端点检测方法的计算机可读存储介质。

根据本发明的第一方面实施例的基于联合深度神经网络的端点检测方法,包括以下步骤:s100,基于开源音频数据集获取音频及第一帧级别标签,对所述音频进行混合加噪得到第一音频数据,以及,录制真实场景声音,得到第二音频数据,并进行分段标记,得到分段标签;s200,将所述第一音频数据及第一帧级别标签作为第一训练数据,将所述第二音频数据及所述分段标签作为第二训练数据,输入至第一神经网络中进行训练,得到第一阶段网络模型;s300,通过所述第一阶段网络模型得到所述第二音频数据相应的第二帧级别标签,将所述第二音频数据及所述第二帧级别标签输入到第二神经网络中进行训练,得到第二阶段网络模型;s400,基于所述第一阶段网络模型及所述第二阶段网络模型,对音频信号进行端点检测。

根据本发明实施例的基于联合深度神经网络的端点检测方法,至少具有如下有益效果:通过开源数据集及对真实场景录音制作弱标签(即分段标签)数据,替代人工标记的帧级别数据,减少前期人工耗费,对真实场景录音并分段标记,而弥补了由于缺少实际标注数据,应用场景不匹配而导致vad效果较差的缺陷;并通过两阶段网络结构联合训练,在第一阶段产生了真实场景下帧级别的数据,因此,第二阶段可采用较小的网络进行重新训练,大大降低了在实际过程中的计算量,加快了推理过程,兼顾了性能和运算速度;且充分利用合成音频的帧级别标签数据和真实声音场景的弱标签数据进行联合训练,可使网络能够得到较为准确的帧级别标签。

根据本发明的一些实施例,所述步骤s100包括:s110,基于开源音频数据集获取所述音频,进行加窗分帧处理,根据预设能量阈值逐帧进行标记,获得所述第一帧级别标签,并按比例将所述音频进行混合加噪处理,得到所述第一音频数据;s120,对所述第二音频数据按固定时长进行分段,判断每一分段是否存在人类语音信息,根据判断结果得到所述分段标签。

根据本发明的一些实施例,所述步骤s200包括:s210,对所述第一音频数据及所述第二音频数据,按照预设帧长及预设帧间隔进行加窗分帧处理,提取每帧的m阶mel频谱系数作为当前帧的特征,选取n帧的特征值输入至所述第一阶段网络模型;s220,所述第一阶段网络模型包括用于提取特征的cnn、用于特征预测的gru及最终分类输出的dnn,其中dnn分为两种,分别对所述第一音频数据及所述第二音频数据进行相应处理并得到相应的分类数据;所述第一阶段网络模型中loss函数采用加权二分类交叉熵函数,加权系数为[w1,w2],其中,w1表示根据所述第一音频数据得出的所述分类数据所占权重,w2表示根据所述第一音频数据得出的所述分类数据所占权重。

根据本发明的一些实施例,还包括:所述第二阶段网络模型相对于第二测试集收敛,则将所述第二阶段网络模型的loss函数反馈给所述第一阶段网络模型继续训练;若所述第一阶段网络模型继续训练后对第一测试集收敛,则继续迭代训练所述第二阶段网络模型,直至所述第一阶段网络模型相对于所述第一测试集及所述第二阶段网络模型相对于所述第二测试集均收敛。

根据本发明的一些实施例,还包括:选取多个所述第二音频数据,进行帧级别标记,得到第三音频数据集;将所述第三音频数据集拆分成两组数据集,其中一组数据集用于对所述第一阶段网络模型进行验证测试,另一组数据集用于对所述第二阶段网络模型进行验证测试。

根据本发明的一些实施例,所述第二阶段网络模型的卷积神经网络中的卷积块堆叠层数小于第一阶段网络模型的卷积神经网络中的卷积块堆叠层数。

根据本发明的一些实施例,所述第二阶段网络模型包括用于提取特征的cnn、用于特征预测的gru及最终分类输出的dnn,其中dnn层采用linear和softmax,loss函数采用二分类交叉熵函数。

根据本发明的第二方面实施例的基于联合深度神经网络的端点检测系统,包括:数据采集处理模块,用于基于开源音频数据集获取音频及第一帧级别标签,对所述音频进行混合加噪得到第一音频数据,以及,录制真实场景声音,得到第二音频数据,并进行分段标记,得到分段标签;网络联合训练模块,用于将所述第一音频数据及第一帧级别标签作为第一训练数据,将所述第二音频数据及所述分段标签作为第二训练数据,输入至第一神经网络中进行训练,得到第一阶段网络模型,以及,通过所述第一阶段网络模型得到所述第二音频数据相应的第二帧级别标签,将所述第二音频数据及所述第二帧级别标签输入到第二神经网络中进行训练,得到第二阶段网络模型;端点检测模块,用于基于所述第一阶段网络模型及所述第二阶段网络模型,对音频信号进行端点检测。

根据本发明实施例的基于联合深度神经网络的端点检测系统,至少具有如下有益效果:通过开源数据集及对真实场景录音制作弱标签(即分段标签)数据,替代人工标记的帧级别数据,减少前期人工耗费,对真实场景录音并分段标记,而弥补了由于缺少实际标注数据,应用场景不匹配而导致vad效果较差的缺陷;并通过两阶段网络结构联合训练,在第一阶段产生了真实场景下帧级别的数据,因此,第二阶段可采用较小的网络进行重新训练,大大降低了在实际过程中的计算量,加快了推理过程,兼顾了性能和运算速度;且充分利用合成音频的帧级别标签数据和真实声音场景的弱标签数据进行联合训练,可使网络能够得到较为准确的帧级别标签。

根据本发明的一些实施例,还包括:网络模型验证模块,用于选取多个所述第二音频数据,进行帧级别标记,得到第三音频数据集,并将所述第三音频数据集拆分成两组数据集,其中一组数据集用于对所述第一阶段网络模型进行验证测试,另一组数据集用于对所述第二阶段网络模型进行验证测试。

根据本发明的第三方面实施例的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的第一方面实施例的方法。

根据本发明实施例的计算机可读存储介质,至少具有与本发明的第一方实施例的方法同样的有益效果。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例的方法的流程示意图。

图2为本发明实施例的方法中对神经网络进行训练的数据交互示意图。

图3为本发明实施例的方法中的深度神经网络模型的网络基本结构示意图。

图4为本发明实施例的系统的模块示意框图。

附图标记:

数据采集处理模块100、网络联合训练模块200、端点检测模块300、网络模型验证模块400。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

名词解释:

cnn:卷积神经网络,(convolutionalneuralnetworks,cnn)是一类包含卷积计算且具有深度结构的前馈神经网络(feedforwardneuralnetworks),是深度学习(deeplearning)的代表算法之一。

gru(gaterecurrentunit),是循环神经网络(recurrentneuralnetwork,rnn)的一种。

dnn,深度神经网络(deepneuralnetworks,以下简称dnn)是深度学习的基础

flatten,flatten层用来将输入“压平”,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。

参照图1,本发明的实施例的方法包括:s100,基于开源音频数据集获取音频及第一帧级别标签,对音频进行混合加噪得到第一音频数据,以及,录制真实场景声音,得到第二音频数据,并对第二音频数据分段,并按分段进行标记,得到分段标签;s200,将第一音频数据及第一帧级别标签作为第一训练数据,将第二音频数据及分段标签作为第二训练数据,输入至第一神经网络中进行训练,得到第一阶段网络模型;s300,通过第一阶段网络模型得到第二音频数据相应的第二帧级别标签,将第二音频数据及第二帧级别标签输入到第二神经网络中进行训练,得到第二阶段网络模型;s400,基于第一阶段网络模型及第二阶段网络模型,对音频信号进行端点检测。

本发明的实施例中,对神经网络的的训练过程,参照图2,首先,将第一音频数据及第一帧级别标签作为第一训练数据,将第二音频数据及分段标签作为第二训练数据,输入到第一神经网络中进行训练,使第一神经网络相对第一测试集收敛,得到第一阶段网络模型,以便通过该第一阶段网络模型得到第二音频数据对应的帧级别标签,即第二帧级别标签;其中第一测试集可包括少量第三音频数据,这些第三音频数据为真实场景的录音音频数据,且通过人工进行帧级别标签的标记。显然,第三音频数据可复用已录制的第二音频数据,然后进行人工帧级别标记。第二音频数据及第二帧级别标签被输入到第二神经网络对该网络进行训练,使得第二神经网络相对于第二测试集收敛,得到第二阶段网络模型;第二测试集也可包括与第一测试集中不相同的第三音频数据。然后将第二阶段网络模型得出的损失函数反馈给第一神经网络,反复迭代训练,直至第一神经网络与第二神经网络均收敛。因第二神经网络仅针对真实场景录音的音频数据及相应帧级别标签进行处理,第二神经网络可采用相对于第一神经网络较小的网络进行重新训练,从而降低了在实际过程中的计算量,加快了推理过程。

本发明的实施例中,音频数据集的获取方法分为两种,第一种是采用干净音频人工合成为带噪音频,第二种为真实环境场景声音。在本发明的实施例之一中,第一种获取方式为:从开源音频数据集中,选取若干时长(如200h,即200小时)的原始干净音频(不含背景音,非噪音),获取原始音频的第一帧级别标签,将这些原始音频通过开源噪音数据集进行混合加噪,得到第一音频数据;第二种获取方式为:在真实场景中录制含有人类语音(即含人说话声)和不含人类语音的音频各50h,共计100h,作为第二音频数据;两种方式获取的音频统一处理为采样率为16khz,16bit的单声道wav格式。应理解的是,本发明的实施例中,为保证数据的均衡性,来自于开源数据集的原始音频总时长及真实录制的第二音频数据的总时长之间的比例接近为1:1;但在实际运用中,可以不限定于1:1,类似地,第二音频数据中,含人类语音及不含人类语音的音频总时长的比例也不限定于1:1。

获取到音频数据集,需要进行处理得到相应的标签。对于从开源数据集中得到的100h原始干净语音进行加窗分帧处理,并划定能量阈值,根据该能量阈值逐帧进行标记,其中,语音帧标记为“1”,非语音帧标记为“0”,并将标记的数据标签进行保存。本发明的实施例之一中,用作训练数据的第一训练数据中包括:根据原始干净语音得到的第一帧级别标签及对原始干净语音进行加噪处理后的带噪音频。而对第二种方式获取到的第二音频数据,无法得到帧级别的标签,将该第二音频数据分成固定时长的小段,每段时长t秒,将含有人类语音的小段标记为“1”,不含人类语音的小段标记为“0”,此时得到的标签是分段标签(以分段音频为单位,并非帧级别的标签)。

将第一音频数据及第二音频数据进行加窗分帧,帧长为t(ms)(备注:帧长的划分一般取20-50ms),间隔为t/2(ms)(备注:帧间间隔一般取1/4-3/4帧长),提取每帧音频的m阶mel频谱系数作为当前帧的特征。然后,将n帧的特征的m阶mel频谱系数,输入深度神经网络模型进行联合训练。对于第一音频数据,选取n帧的特征值作为输入,预测当前帧的帧标签,标签“1”代表语音帧,用向量[0,1]表示,标签“0”代表非语音帧,用向量[1,0]表示,对于深度神经网络模型的网络层的输入为[1,n,m]维的特征向量。对于第二音频数据,分段的音频时长为t秒,帧长t(ms),间隔t/2(ms),共包含n帧,则相应的第二种网络的输入为n帧(帧数=(时长-帧长)/间隔+1)的m维mel谱。标签“1”用向量[0,1]表示,标签“0”代表用向量[1,0]表示,对于深度神经网络模型的网络层的输入为[1,n,m]维的特征向量,输出为[1,2]维的标签。

本发明的实施例中,深度神经网络模型的网络基本结构由cnn+gru+dnn组成,参照图3。网络结构的参数设置可根据实际任务进行选择,本文中给出的输入输出仅用于描述过程。

其中,cnn主要用于特征提取:cnn包含cnn_block(卷积块)和pool2d,其中cnn_block由bn(batchnormalization)层、卷积层和激活层组成。cnn中cnn_block和pool2d的堆叠的层数以及一些参数的设置例如步长,卷积核的个数及大小可以根据实际情况进行选取,本例中对于[1,n,m]维的输入,假设经过cnn得到[128,n/4,m/4]的输出。flatten用于变换cnn的输出作为gru的输入,对于[128,n/4,m/4]的cnn输出,经过flatten变换得到[1,n/4,128*m/4]的特征。gru主要利用特征进行预测:将flatten变换得到[1,n/4,128*m/4]输出经过gru得到预测结果,本例中假设经过gru的输出维度仍为[1,n/4,128*m/4]。插值则主要用于将时间维度恢复到输入维度,进行帧级别对齐:例如本例中对于[1,n/4,128*m/4]的gru输出,经过插值后变为[1,n,128*m/4]。dnn主要用于最终的分类输出:根据输入数据和相应标签的不同,dnn也分为两种,第一种dnn(帧级别):将经过插值后的特征[1,n,128*m/4]经过全连接网络最终得到[1,t,2]的输出并连接softmax得到最终的输出标签。其中全连接的层数和参数设置仍需根据实际情况进行选取,只需保证最后一层的输出维度为2即可(对应于二维的标签)。第二种dnn(分段级别):将经过插值后的特征[1,n,128*m/4]经过全连接网络最终得到[1,n,2]的输出,而对于每一小段只有一个标签,对于[1,n,128*m/4]的输出,进行时间(n)维度上取平均再进行softmax操作,可得到输出lable[1,1,2]。

一方面为了充分利用真实场景中的录制数据提升训练效果,另一方面能够加速最终的预测过程,本发明的实施例中,将网络训练分为两阶段。

第一阶段,将通过两种方式获取到的数据和标签作为训练数据,即第一音频数据及对应的第一帧级标签作为第一训练数据,第二音频数据及对应的分段标签作为第二训练数据,神经网络结构上采用多层cnn_block进行堆叠,保证神经网络能够充分学习到数据的特征,loss函数(即损失函数)采用加权交叉熵函数,交叉熵函数为二分类交叉熵函数,加权系数为[w1,w2],w1表示第一训练数据计算出loss的权重,w2表示第二训练数据计算出loss的权重,根据实际训练结果来调整w1,w2的取值,并始终保持w1+w2=1。如果仅利用第一种方式获取到的数据进行训练会使得模型对真实场景的拟合效果不佳,若仅采用第二种方式获取到的数据进行训练会使得测试时难以得到较为准确的帧级别的标签,即难以正确预测出人说话声的起始位置和结束位置。

第二阶段:将第二音频数据输入第一阶段的神经网络模型生成第二帧级别标签,并将第二音频数据输入和对应第二帧级别标签作为第二阶段的训练集。在本发明的实施例中,第二阶段的网络结构基本不变,但可以适当的减少cnn中cnn_block堆叠的层数,此外,由于第二阶段的训练数据只包含帧级别的标签,因此,dnn层只需采用linear和softmax即可,对应的loss函数采用二分类交叉熵即可。

由于本发明实施例中更关注模型在最终场景下的性能,均采用实际场景中录制的音频作为验证测试集。为了保证训练效果,可选取少量真实场景下的音频进行人工帧级别标记作为验证测试集,且使第一阶段、第二阶段的验证测试集不同。

第三阶段:待第二阶段的神经网络训练完成(测试集收敛),将loss函数反馈给第一阶段的神经网络继续训练,待第一阶段神经网络继续训练完成后,继续迭代训练第二阶段的神经网络,如此迭代直到第一阶段和第二阶段训练完成(两个阶段测试集表现均收敛)。

对于真实场景音频中的每一帧,第二阶段神经网络的输出结果为[a,b],a表示标签为0(即不含人类语音)的概率,b表示标签为1(即人类语音)的概率,将b的概率值作为每一帧的输出结果,对于帧级别的输出结果,本发明的实施例中可以通过多种平滑方式进行平滑得到最终的输出标签。

参照图4,本发明实施例的系统包括:数据采集处理模块100,用于基于开源音频数据集获取音频及第一帧级别标签,对音频进行混合加噪得到第一音频数据,以及,录制真实场景声音,得到第二音频数据,并进行分段,对各分段进行标记,得到分段标签;网络联合训练模块200,用于将第一音频数据及第一帧级别标签作为第一训练数据,将第二音频数据及分段标签作为第二训练数据,输入至第一神经网络中进行训练,得到第一阶段网络模型,以及,通过第一阶段网络模型得到第二音频数据相应的第二帧级别标签,将第二音频数据及第二帧级别标签输入到第二神经网络中进行训练,得到第二阶段网络模型;端点检测模块300,用于基于第一阶段网络模型及第二阶段网络模型,对音频信号进行端点检测。网络模型验证模块400,用于选取多个第二音频数据,进行帧级别标记,得到第三音频数据集,并将第三音频数据集拆分成两组数据集,其中一组数据集用于对第一阶段网络模型进行验证测试,另一组数据集用于对第二阶段网络模型进行验证测试。

尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本公开的范围内。

上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。

因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。

本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。

软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施方案中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。

软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

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