一种语音端点检测和唤醒方法及装置与流程

文档序号:14357456阅读:341来源:国知局

本发明涉及机器学习语音识别领域技术领域,尤其涉及一种语音端点检测和唤醒方法及装置。



背景技术:

当前,随着语音识别技术、数字化设备以及多媒体技术的发展,语音端点检测技术得到了良好的发展。目前,语音端点检测(voiceactivitydetection,简称vad)是在连续信号中检测出语音片段的技术,语音端点检测常与自动语音识别(automaticspeechrecognition,简称asr)系统、声纹识别系统相结合,检测有效而准确的语音端点成为这些系统的重要组成部分。语音唤醒指在音频流中检测预定义的关键字的过程,一旦检测到关键词即唤醒手机、音箱等嵌入式设备。要实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术,必须设计一个简单的模型和高效的后端评判策略,同时可以把网络模型压缩以适应于嵌入式系统和便携式设备。

在现有技术中,g.chen等人在“small-footprintkeywordspottingusingdeepneuralnetworks”(acoustics,speechandsignalprocessing(icassp),2014)中提出了可以采用深度神经网路(deepneuralnetworks,简称dnn)和后验平滑策略检测关键词从而唤醒设备。之后sainath等人又在“convolutionalneuralnetworksforsmall-footprintkeywordspotting”(interspeech,2015)中提出了采用卷积神经网络(convolutionalneuralnetworks,,简称cnn)和dnn结合的方式同时辅助后验平滑策略检测关键词同时唤醒设备。虽然这些方法是简洁高效的,但是现有技术存在两个问题,一是因为,要实现较好的性能,需要采用传统的cnn和dnn网络需要做大量的加法、减法和乘法操作而消耗大量的内存和功耗。二是现有技术模型很大,4层512个节点的dnn网络,占用硬件存储空间6m,导致非常受限于某些应用场景,比如fpga系统和嵌入式芯片等需要极小模型和极低的功耗。可见,当前如何实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术成为了一个亟待解决的问题。



技术实现要素:

本发明的实施例提供一种语音端点检测和唤醒方法及装置,以解决现有技术中难以实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术的问题。

为达到上述目的,本发明采用如下技术方案:

一种语音端点检测和唤醒方法,包括:

获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据;

将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据;

根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。

具体的,获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据,包括:

根据预先设置的采样频率,在预先设置的采样环境中采集获取语音端点检测数据和唤醒数据;

对所述语音端点检测数据采用26维fbank特征提取,并加一阶和二阶偏导,得到语音端点检测fbank特征数据;

对所述唤醒数据采用40维fbank特征提取,并加一阶和二阶偏导,得到唤醒fbank特征数据。

具体的,将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据,包括:

将所述语音端点检测fbank特征数据输入到由2层cnn和1层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第一模型输出结果;

将所述唤醒fbank特征数据输入到由2层cnn和4层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第二模型输出结果。

具体的,根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,包括:

对所述第一模型输出结果进行后验平滑处理得到各帧语音的声母和韵母合后的非静音的概率pj;

若从一第一目标帧语音开始连续m帧语音的概率pj均大于预先设置的非静音的阈值,则确定所述第一目标帧语音为语音端点检测数据的语音起始位置;所述m为预先设置的数值;

若从一第二目标帧语音开始连续n帧语音的概率pj均小于预先设置的静音的阈值,则确定所述第二目标帧语音为语音端点检测数据的语音结束位置;所述n为预先设置的数值。

具体的,根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,检测唤醒数据中的唤醒词数据,包括:

对所述第二模型输出结果进行后验平滑处理得到各帧语音中与唤醒词中各关键字对应的关键字概率;

若从一第一目标帧语音开始连续m帧语音的一目标关键字的关键字概率大于目标关键字的预设阈值,则确定所述第二模型输出结果中包含所述目标关键字;所述m为预先设置的数值。

一种语音端点检测和唤醒装置,包括:

特征提取单元,用于获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据;

二值化神经网络处理单元,用于将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据;

语音端点检测和唤醒处理单元,用于根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。

具体的,所述特征提取单元,包括:

采样模块,用于根据预先设置的采样频率,在预先设置的采样环境中采集获取语音端点检测数据和唤醒数据;

语音端点检测fbank特征数据确定模块,用于对所述语音端点检测数据采用26维fbank特征提取,并加一阶和二阶偏导,得到语音端点检测fbank特征数据;

唤醒fbank特征数据确定模块,用于对所述唤醒数据采用40维fbank特征提取,并加一阶和二阶偏导,得到唤醒fbank特征数据。

具体的,所述二值化神经网络处理单元,包括:

第一模型输出结果确定模块,用于将所述语音端点检测fbank特征数据输入到由2层cnn和1层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第一模型输出结果;

第二模型输出结果确定模块,用于将所述唤醒fbank特征数据输入到由2层cnn和4层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第二模型输出结果。

此外,所述语音端点检测和唤醒处理单元,具体用于:

对所述第一模型输出结果进行后验平滑处理得到各帧语音的声母和韵母合后的非静音的概率pj;

在从一第一目标帧语音开始连续m帧语音的概率pj均大于预先设置的非静音的阈值时,确定所述第一目标帧语音为语音端点检测数据的语音起始位置;所述m为预先设置的数值;

在从一第二目标帧语音开始连续n帧语音的概率pj均小于预先设置的静音的阈值时,确定所述第二目标帧语音为语音端点检测数据的语音结束位置;所述n为预先设置的数值。

此外,所述语音端点检测和唤醒处理单元,具体用于:

对所述第二模型输出结果进行后验平滑处理得到各帧语音中与唤醒词中各关键字对应的关键字概率;

在从一第一目标帧语音开始连续m帧语音的一目标关键字的关键字概率大于目标关键字的预设阈值时,确定所述第二模型输出结果中包含所述目标关键字;所述m为预先设置的数值。

本发明实施例提供的一种语音端点检测和唤醒方法及装置,获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据;将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据;根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。本发明的系统框架能够同时适用于语音端点检测和语音唤醒技术,能够实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种语音端点检测和唤醒方法的流程图一;

图2为本发明实施例提供的一种语音端点检测和唤醒方法的流程图二;

图3为本发明实施例中的语音端点检测的示意图;

图4为本发明实施例中的唤醒技术示意图;

图5为本发明实施例提供的一种语音端点检测和唤醒装置的结构示意图一;

图6为本发明实施例提供的一种语音端点检测和唤醒装置的结构示意图二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供一种语音端点检测和唤醒方法,包括:

步骤101、获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据。

步骤102、将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据。

步骤103、根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。

本发明实施例提供的一种语音端点检测和唤醒方法,获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据;将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据;根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。本发明的系统框架能够同时适用于语音端点检测和语音唤醒技术,能够实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术。

为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供一种语音端点检测和唤醒方法,包括:

步骤201、根据预先设置的采样频率,在预先设置的采样环境中采集获取语音端点检测数据和唤醒数据。

此处,所述预先设置的采样频率可以为16khz,预先设置的采样环境可以是普通手机在比较安静的安静下。对于唤醒技术,环境技术的训练集数据可以采用普通手机采集的1k采样频率的只有唤醒词和相近词数据集的音频数据。例如,唤醒词为“小微”,相近词为“小微小微”。

步骤202、对所述语音端点检测数据采用26维fbank特征提取,并加一阶和二阶偏导,得到语音端点检测fbank特征数据。

步骤203、对所述唤醒数据采用40维fbank特征提取,并加一阶和二阶偏导,得到唤醒fbank特征数据。

步骤204、将所述语音端点检测fbank特征数据输入到由2层cnn和1层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第一模型输出结果。

此处的2层cnn(包括8通道、3*3的卷积核、2*2的池化层)和1层dnn(16个节点)组成的二值化神经网络模型,其最后一层的softmax层为9个输出节点。其中9个输出节点是根据hmm-gmm(高斯隐马尔科夫混合模型)进行三状态聚类得到,0~2号节点代表静音,3~5号节点代表声母,6~8号节点代表韵母,这样因为声母和韵母可以更好的刻画声音的起止位置,具有更好的效果。

步骤205、将所述唤醒fbank特征数据输入到由2层cnn和4层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第二模型输出结果。

此处的由2层cnn(包括8通道、3*3的卷积核、2*2的池化层)和4层dnn(512节点)组成的二值化神经网络模型,其最后一层的softmax层可为3个输出节点,例如唤醒词为“小微”,则3个输出节点分别代表杂音、“小”和“微”,其中杂音包含所有非“小”和“微”的声音。“杂音”是0号节点,“小”是1号节点,“微”是2号节点。

对于二值化神经网络模型,优化如下:

对于32位的浮点网络参数,采用符号函数,大于0的设置为1,小于0的设置为-1,进行二值化。

在进行反向传播时,为了解决梯度无法计算的问题,将浮点权重在(-1,1)之间的导数设置为1,其它导数设置为0。

gr=gq1|r|≤1

对于激活函数,为了保证量化,我们采用优化的二值化激活函数:

htanh(x)=clip(x,-1,1)=max(-1,min(1,x))。

对于二值化神经网络模型中的正则化层,传统的批量正则化层的是需要将所有权重求均值和方差,在涉及庞大的数据时,给内存和硬件设计带来了巨大的挑战,同时带来了巨大的延时,所以此处将其中的求均值和方差进行优化,使其只有移位操作,大大降低了计算量。对于正则化层,优化如下:

传统的批量正则化层的计算公式是:

在这个公式中γ和β是训练好的参数,因此可以把这个公式简化为:

xi=kx+b

这样k和b在前向传播时都可以通过计算得到,然后可以把k近似为2的n次方,这个公式可以被简化为:

采用这种近似计算策略我们不需要大量减法、加法、乘法和除法计算,只需要移位计算就可到达很好的效果。

步骤206、对所述第一模型输出结果进行后验平滑处理得到各帧语音的声母和韵母合后的非静音的概率pj。

首先计算元音和辅音在每帧的得分即dnn网络的sofmax得分,然后对其进行平滑处理和评判。即连续n帧求平均作为该帧的后验分数,然后进行评判是音频的端点还是唤醒设备。在现有技术的方法中是连续m帧把所有的元音和辅音softmax节点分数最大值找到,然后最大值连乘、开根号,大于某个阈值设置为音频起点或者关键词,小于某个阈值设置为音频终点。但是这种方法需要乘法器和除法器,复杂度很高且不易于硬件设计,所以对后端评判策略进行改进。即在平滑策略之后,连续m帧大于一定阈值就直接将其设置为音频的起点,连续n帧小于一定阈值设置为音频的终点,作为端点检测标准;连续m帧大于一定阈值直接设置为某个关键词,作为唤醒技术评判标准。这样改进的评判策略大大降低了计算复杂度和大大提升了速度。

步骤207、若从一第一目标帧语音开始连续m帧语音的概率pj均大于预先设置的非静音的阈值,则确定所述第一目标帧语音为语音端点检测数据的语音起始位置。

其中,所述m为预先设置的数值。

步骤208、若从一第二目标帧语音开始连续n帧语音的概率pj均小于预先设置的静音的阈值,则确定所述第二目标帧语音为语音端点检测数据的语音结束位置。

其中,所述n为预先设置的数值。

步骤209、对所述第二模型输出结果进行后验平滑处理得到各帧语音中与唤醒词中各关键字对应的关键字概率。

步骤210、若从一第一目标帧语音开始连续m帧语音的一目标关键字的关键字概率大于目标关键字的预设阈值,则确定所述第二模型输出结果中包含所述目标关键字;所述m为预先设置的数值。

对于后端评判策略的优化,可以如下:

(1)后验平滑策略:

其中j是第j帧,wsmooth是平滑窗口。当j<wsmooth时,第j帧是前面所有帧平均值。当j≥wsmooth时,第j帧为当前帧及之前所有wsmooth帧的平均值。

对于端点检测和唤醒技术的评判策略优化后如下:

(1)端点检测技术评判策略

把第j帧所有音频分数相加为音频j帧分数,连续n0帧p′jα大于静音到音频的阈值tsil_audio设置为音频声音起始位置,连续n1帧p′jβ小于音频到静音的阈值taudio_sil设置为因为声音终止位置,并且β>α,即声音的终止点一定在声音的起止点之后。

(2)唤醒技术评判策略

比如唤醒词为“小微”,连续n0帧大于“小”的阈值ath,则关键词“小”检测到,接着检测关键词“微”,同样当连续n1帧大于“微”的阈值bth,则唤醒词“小微”检测到唤醒设备。

对于上述步骤201至步骤210中的语音端点检测,其示意图可以如图3所示。对于上述步骤201至步骤210中的唤醒技术,其示意图可以如图4所示。如图3和图4所示,在本发明实施例中,采用相同的架构设计语音唤醒系统和端点检测系统,只是网络的层数的每层的节点数不同,和网络二值化的程度不同。端点检测技术采用完全二值化,即网络权重和激活函数都二值化;而唤醒技术采用完全二值化时,精度损失比较严重,所以采用部分二值化,即只是把权重二值化,激活函数仍然采用传统激活函数;此处的二值化神经网络,就是权重在进行训练时,大于0的浮点权重设置为1,小于0的浮点权重设置为-1,这样可以将庞大的32位浮点参数网络缩小32倍,变为1bit的权重参数。在进行训练反向传播时,为了解决残差进行梯度计算的问题,我们把在权重在(-1,1)之间的反向梯度强制设置为1,其它设置为0,保证其可以进行反向传传播,同时,这也是一种无损传输。

本发明实施例提供的一种语音端点检测和唤醒方法,针对语音端点检测技术和唤醒技术系统进行改进,将唤醒策略移植到语音端点检测技术。同时将两个技术的网络模型进行压缩,即将网络浮点的参数运算变成1bit的二值网络运算,这样可以将训练模型压缩32倍同时将实时率提升5倍。此外因为在训练时使用的批量正则化层运算比较复杂,对其进行了优化,使其只有移位操作,没有乘法、除法和减法操作,大大降低了计算复杂度和提高了运算效率端点检测。本发明的系统框架能够同时适用于语音端点检测和语音唤醒技术,能够实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术。

对应于上述图1和图2所述的方法实施例,如图5所示,本发明实施例提供一种语音端点检测和唤醒装置,包括:

特征提取单元31,用于获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据。

二值化神经网络处理单元32,用于将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据。

语音端点检测和唤醒处理单元33,用于根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。

具体的,如图6所示,所述特征提取单元31,包括:

采样模块311,用于根据预先设置的采样频率,在预先设置的采样环境中采集获取语音端点检测数据和唤醒数据。

语音端点检测fbank特征数据确定模块312,用于对所述语音端点检测数据采用26维fbank特征提取,并加一阶和二阶偏导,得到语音端点检测fbank特征数据。

唤醒fbank特征数据确定模块313,用于对所述唤醒数据采用40维fbank特征提取,并加一阶和二阶偏导,得到唤醒fbank特征数据。

具体的,如图6所示,所述二值化神经网络处理单元32,包括:

第一模型输出结果确定模块321,用于将所述语音端点检测fbank特征数据输入到由2层cnn和1层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第一模型输出结果。

第二模型输出结果确定模块322,用于将所述唤醒fbank特征数据输入到由2层cnn和4层dnn组成的二值化神经网络模型,从模型最后一层的softmax层得到第二模型输出结果。

此外,所述语音端点检测和唤醒处理单元33,具体用于:

对所述第一模型输出结果进行后验平滑处理得到各帧语音的声母和韵母合后的非静音的概率pj。

在从一第一目标帧语音开始连续m帧语音的概率pj均大于预先设置的非静音的阈值时,确定所述第一目标帧语音为语音端点检测数据的语音起始位置;所述m为预先设置的数值。

在从一第二目标帧语音开始连续n帧语音的概率pj均小于预先设置的静音的阈值时,确定所述第二目标帧语音为语音端点检测数据的语音结束位置;所述n为预先设置的数值。

此外,所述语音端点检测和唤醒处理单元33,具体用于:

对所述第二模型输出结果进行后验平滑处理得到各帧语音中与唤醒词中各关键字对应的关键字概率。

在从一第一目标帧语音开始连续m帧语音的一目标关键字的关键字概率大于目标关键字的预设阈值时,确定所述第二模型输出结果中包含所述目标关键字;所述m为预先设置的数值。

值得说明的是,本发明实施例提供的一种语音端点检测和唤醒装置的具体实现方式可以参见上述图1和图2对应的方法实施例,此处不再赘述。

本发明实施例提供的一种语音端点检测和唤醒装置,获取语音端点检测数据和唤醒数据,并对所述语音端点检测数据和唤醒数据进行fbank特征提取,得到语音fbank特征数据;将所述语音fbank特征数据输入到二值化神经网络模型,得到二值化神经网络输出结果数据;根据预先设置的后端评判策略,对所述二值化神经网络输出结果数据进行处理,确定语音端点检测数据的语音起始位置和语音结束位置,并检测唤醒数据中的唤醒词数据。本发明的系统框架能够同时适用于语音端点检测和语音唤醒技术,能够实现准确的、快速的、低延迟、小模型和低功耗的语音端点检测技术和语音唤醒技术。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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