一种基于多命令词的语音唤醒方法及其系统与流程
本发明涉及嵌入式系统语音检测技术,具体涉及一种基于多命令词的语音唤醒方法及其系统。
背景技术:
通过识别语音信号反馈数据信号进行唤醒是时下电子时代急需的技术。
在现有技术中,通常在特征提取过程中采用了梅尔频率倒谱系数(mel-frequencycepstralcoefficients)的方案,对麦克风收集到语音信号进行预加重、分帧、加窗,得到一帧一帧的语音信号,再通过短时快速傅里叶变换(fft)、计算不同fft子带的能量、梅尔滤波、dct变换、lifter变换后得到语音信号的梅尔特征(mfcc),将这些mfcc特征视为神经网络的输入来训练模型;神经网络则采用最原始的循环神经网络(gru),将上一层输入的mfcc特征通过循环神经网络(gru)各个节点的计算逻辑得出每一帧语音信号的唤醒概率,并将每一帧的唤醒概率输入到下一层注意力机制层(attention)中进行计算,并得出最终的置信度。根据不同关键词的数目,置信度的标签数目也会不同,每个标签位置就代表一个不同的关键词,其置信度数值越大,该标签所代表关键词的概率越高;置信度数值一般在(0,1)区间范围内,1代表唤醒,0代表未唤醒。
但上述现有技术中,存在以下几点缺陷:
1、帧长相对较短,使得语音帧的数目较多,计算量大大增加;
2、使用固定好的长度来训练,往往是根据经验来决定大小,既浪费训练数据,也易造成冗余;
3、采用mfcc特征进行训练,在计算完fft子带的能量并做梅尔滤波之后,还要进行dct变换和lifter变换得到mfcc特征,致使训练时间增加;
4、现有技术采用ga模型,神经元个数较多、层数较深,使得计算量大大增加,进而导致生产成本增加;
5、现有技术在得到预测值后,用滑窗的机制来实现逐帧逐帧的判断,滑窗机制为每有一帧数据进入网络,便从窗长开始处重新计算到当前帧,所以gru及之后的部分需要多计算窗长-1次,耗费计算量过大。
技术实现要素:
基于此,针对上述问题,有必要提出一种基于多命令词的语音唤醒方法及其系统,利用麦克风收集用户的声音,对收集到的声音进行实时检测,识别出用户的指令后对设备做出相对应的反馈和控制,本方案模型训练帧长更长,模型训练长度不同,提取特征的算法更优,模型更小巧,后处理判定机制更方便,一方面大大降低了计算量,有效降低了生产成本;另一方面,能够保持语音的连续稳定性。
本发明提供了一种基于多命令词的语音唤醒方法,其技术方案如下:
一种基于多命令词的语音唤醒方法,包括以下步骤:
a、接收语音数据,进行cga模型训练,获取优选神经网络参数;
b、接收语音数据,对每一帧数据进行预处理,获取可供训练的数据,并将数据输入cga神经网络;
c、进行cga神经网络训练,输出预测概率值;
d、对输出的预测概率值进行解码、计算,获取关键词检测结果,并反馈。
在本技术方案中,通过不同的地域、年龄段、性别、场景按比例收集语音数据,针对不同的需求调整训练数据比例,从而获得更好的训练效果。并在所有数据上都增加了不同的底噪,结合不同的传输函数进行数据拓展,从而模拟不同设备上的噪声,增强了在不同拾音设备上的鲁棒性。本方案通过收集语音数据,对收集到的数据进行实时数据预处理,再经神经网络识别出用户的指令后,对设备做出相对应的反馈和控制,提高了语音识别的准确度和效率,同时降低计算量,节约了成本。
优选的,所述步骤a包括以下步骤:
a10、接收语音数据,对每一帧数据进行预处理,获取可供训练的数据;
a20、进行cga神经网络训练,输出预测概率值;
a30、将预测概率值与期望值进行对比,以交叉熵作为损失函数,计算出最终损失值loss,并进行反向传播。
通过模型训练,得到最终损失值loss,为后续测试提供数据支持。
优选的,所述步骤a10和步骤b中的预处理,包括以下步骤:
y10、对接收的语音数据进行预加重,其中预加重因子为0.97;
y20、基于汉明窗进行加窗,汉明窗函数为:
y30、针对每一帧数据,提取40个特征,并将40个特征输入cga神经网络。
在模型训练和测试训练中均需进行数据预加重,预加重因子通常为0.97,即每个采样点减去上一个采样点的97%;预加重完成后为防止频率泄露,使用汉明窗进行加窗,之后提取特征,每一帧的数据提取40个特征。
优选的,所述步骤y30中提取特征包括以下步骤:
y301、通过短时快速傅里叶变换(fft),将信号分离到不同的子带;
y302、计算出不同子带的能量;
y303、基于梅尔滤波函数生成相应的梅尔滤波器,并对不同子带进行滤波,其中,梅尔滤波函数为:
y304、根据下列公式提取特征,得到可供训练的数据:
通过短时快速傅里叶变换、计算能量、梅尔滤波、提取pcen特征,得到可以进行训练的数据,此时输入为40个,进入cga神经网络训练。
优选的,所述步骤c和步骤a20中的cga神经网络训练,包括以下步骤:
x10、接收所提取的特征,利用卷积神经网络进行卷积,得到cnn层的输出特征;
x20、针对cnn层的输出特征,结合历史状态进行记忆、更新和重置,得到gru当前帧的状态;
x30、经attention层变换,获取一个重要性权重;
x40、接收该权重,与gru当前帧的状态进行内积,得到预测概率值。
使用一层gru神经元,对cnn层的输出特征结合历史状态进行记忆、更新和重置,最终得到当前帧的新状态;gru的状态会经过attention层的变换得出一个重要性权重,与gru当前帧的状态做内积后,得到最终的预测概率值。
优选的,所述步骤x10包括以下步骤:
x101、对应特征数量,生成大小固定的等量卷积核;
x102、基于每一个卷积核,对特征进行内积;
x103、根据指定的步进进行卷积;
x104、拼接卷积核内积的结果,得到cnn层的输出特征。
卷积神经网络使用卷积核若干,卷积核大小固定,每一个卷积核在pcen特征上做内积,根据指定的步进进行卷积,最后把所有的卷积核内积的结果拼接起来得到cnn层的输出。
优选的,所述步骤d包括以下步骤:
d10、预设定测试阈值为0.9;
d20、获取连续20帧的预测概率值,并解码;
d30、判断连续20帧的预测概率值是否大于0.9的测试阈值,如果是,则判定检测到关键词,反馈唤醒信号;反之,则未检测到关键词。
本方案采用累计预测概率值的大小和次数,当预测概率值连续几帧都大于设定的测试阈值时判定为检测到关键词。这种方案相比与滑窗机制,在预测方面识别率会稍有下降,但是计算量缩小将近百倍。
本发明还提供了一种基于多命令词的语音唤醒系统,其技术方案如下:
一种基于多命令词的语音唤醒系统,包括数据预处理模块、神经网络训练模块以及后处理反馈模块,其中:
数据预处理模块,用于将收集到的语音数据进行预处理使其数据符合神经网络的计算需求;
神经网络训练模块,用于经cnn层、gru层、attention层分别进行内积、卷积、变换等操作后,获取预测概率值;
后处理反馈模块,用于累计预测概率值的大小和次数,判断预测概率值是否大于设定的测试阈值,并反馈唤醒信号。
优选的,所述数据预处理模块包括预加重子模块、加窗子模块、傅里叶变换子模块、能量计算子模块、梅尔滤波子模块以及特征提取子模块,其中:
预加重子模块,用于对接收的语音数据进行预加重;
加窗子模块,基于汉明窗进行加窗;
傅里叶变换子模块,用于通过短时快速傅里叶变换(fft),将信号分离到不同的子带;
能量计算子模块,用于计算出不同子带的能量;
梅尔滤波子模块,基于梅尔滤波函数生成相应的梅尔滤波器,并对不同子带进行滤波;
特征提取子模块,用于根据公式提取特征,得到可供训练的数据。
本发明的有益效果是:
1、本方案的训练数据是不同的地域、年龄段、性别、场景按比例收集而来,针对不同的需求可以调整训练数据比例,从而获得更好的训练效果;同时在所有数据上都增加了不同的底噪,并结合不同的传输函数进行数据拓展,从而模拟不同设备上的噪声,增强了在不同拾音设备上的鲁棒性。
2、帧长相对较长,可以降低语音帧的数目从而起到降低计算量的效果,同时帧长也不至于太低,能够保持语音的连续稳定性;
3、根据源数据的长度进行统计来确定的训练长度,得到的长度可以涵盖大部分的训练样本,这样既不会浪费训练数据,也不容易造成冗余。
4、本方案采用归一化通道能量(pcen)特征训练,pcen特征比mfcc特征更加适合神经网络的训练。
5、本方案在模型的选择上增加了一层cnn,充分利用卷积神经网络(cnn)在提取特征方面的优势,用神经网络提取得到的特征更加适合训练神经网络,同时,只采用单层网络模型结构并酌情舍弃了一些神经元,使得模型会更加小巧,计算量成倍减小,有效的降低了生产成本。
6、本方案采用的是累计预测概率值的大小和次数,当预测概率值连续几帧都大于设定的阈值时判定为检测到关键词;本方案大大减少了计算量,使得计算量缩小将近百倍。
附图说明
图1是本发明实施例所述基于多命令词的语音唤醒方法模型训练过程的流程图;
图2是本发明实施例所述基于多命令词的语音唤醒方法测试过程的流程图;
图3是本发明实施例所述基于多命令词的语音唤醒系统的原理框图。
附图标记说明:
10-数据预处理模块;101-预加重子模块;102-加窗子模块;103-傅里叶变换子模块;104-能量计算子模块;105-梅尔滤波子模块;106-特征提取子模块;20-神经网络训练模块;30-后处理反馈模块。
具体实施方式
下面结合附图对本发明的实施例进行详细说明。
实施例1
如图1所示,一种基于多命令词的语音唤醒方法,包括以下步骤:
a、接收语音数据,进行cga模型训练,获取优选神经网络参数;
b、接收语音数据,对每一帧数据进行预处理,获取可供训练的数据,并将数据输入cga神经网络;
c、进行cga神经网络训练,输出预测概率值;
d、对输出的预测概率值进行解码、计算,获取关键词检测结果,并反馈。
在本实施例中,通过不同的地域、年龄段、性别、场景按比例收集语音数据,针对不同的需求调整训练数据比例,从而获得更好的训练效果。并在所有数据上都增加了不同的底噪,结合不同的传输函数进行数据拓展,从而模拟不同设备上的噪声,增强了在不同拾音设备上的鲁棒性。本实施例通过收集语音数据,对收集到的数据进行实时数据预处理,再经神经网络识别出用户的指令后,对设备做出相对应的反馈和控制,提高了语音识别的准确度和效率,同时降低计算量,节约了成本。
实施例2
本实施例在实施例1的基础上,所述步骤a包括以下步骤:
a10、接收语音数据,对每一帧数据进行预处理,获取可供训练的数据;
a20、进行cga神经网络训练,输出预测概率值;
a30、将预测概率值与期望值进行对比,以交叉熵作为损失函数,计算出最终损失值loss,并进行反向传播。
通过模型训练,得到最终损失值loss,为后续测试提供数据支持。
实施例3
本实施例在实施例2的基础上,所述步骤a10和步骤b中的预处理,包括以下步骤:
y10、对接收的语音数据进行预加重,其中预加重因子为0.97;
y20、基于汉明窗进行加窗,汉明窗函数为:
y30、针对每一帧数据,提取40个特征,并将40个特征输入cga神经网络。
在模型训练和测试训练中均需进行数据预加重,预加重因子通常为0.97,即每个采样点减去上一个采样点的97%;预加重完成后为防止频率泄露,使用汉明窗进行加窗,之后提取特征,每一帧的数据提取40个特征。
实施例4
本实施例在实施例3的基础上,所述步骤y30中提取特征包括以下步骤:
y301、通过短时快速傅里叶变换(fft),将信号分离到不同的子带;
y302、计算出不同子带的能量;
y303、基于梅尔滤波函数生成相应的梅尔滤波器,并对不同子带进行滤波,其中,梅尔滤波函数为:
y304、根据下列公式提取特征,得到可供训练的数据:
通过短时快速傅里叶变换、计算能量、梅尔滤波、提取pcen特征,得到可以进行训练的数据,此时输入为40个,进入cga神经网络训练。
实施例5
本实施例在实施例2的基础上,所述步骤c和步骤a20中的cga神经网络训练,包括以下步骤:
x10、接收所提取的特征,利用卷积神经网络进行卷积,得到cnn层的输出特征;
x20、针对cnn层的输出特征,结合历史状态进行记忆、更新和重置,得到gru当前帧的状态;
x30、经attention层变换,获取一个重要性权重;
x40、接收该权重,与gru当前帧的状态进行内积,得到预测概率值。
使用一层gru神经元,对cnn层的输出特征结合历史状态进行记忆、更新和重置,最终得到当前帧的新状态;gru的状态会经过attention层的变换得出一个重要性权重,与gru当前帧的状态做内积后,得到最终的预测概率值。
实施例6
本实施例在实施例5的基础上,所述步骤x10包括以下步骤:
x101、对应特征数量,生成大小固定的等量卷积核;
x102、基于每一个卷积核,对特征进行内积;
x103、根据指定的步进进行卷积;
x104、拼接卷积核内积的结果,得到cnn层的输出特征。
卷积神经网络使用卷积核若干,卷积核大小固定,每一个卷积核在pcen特征上做内积,根据指定的步进进行卷积,最后把所有的卷积核内积的结果拼接起来得到cnn层的输出。
实施例7
本实施例在实施例1的基础上,所述步骤d包括以下步骤:
d10、预设定测试阈值为0.9;
d20、获取连续20帧的预测概率值,并解码;
d30、判断连续20帧的预测概率值是否大于0.9的测试阈值,如果是,则判定检测到关键词,反馈唤醒信号;反之,则未检测到关键词。
本实施例采用累计预测概率值的大小和次数,当预测概率值连续几帧都大于设定的测试阈值时判定为检测到关键词。这种方案相比与滑窗机制,在预测方面识别率会稍有下降,但是计算量缩小将近百倍。
实施例8
本实施例为实施例1的系统,如图2所示,一种基于多命令词的语音唤醒系统,包括数据预处理模块10、神经网络训练模块20以及后处理反馈模块30,其中:
数据预处理模块10,用于将收集到的语音数据进行预处理使其数据符合神经网络的计算需求;
神经网络训练模块20,用于经cnn层、gru层、attention层分别进行内积、卷积、变换等操作后,获取预测概率值;
后处理反馈模块30,用于累计预测概率值的大小和次数,判断预测概率值是否大于设定的测试阈值,并反馈唤醒信号。
实施例9
本实施例在实施例8的基础上,所述数据预处理模块10包括预加重子模块101、加窗子模块102、傅里叶变换子模块103、能量计算子模块104、梅尔滤波子模块105以及特征提取子模块106,其中:
预加重子模块101,用于对接收的语音数据进行预加重;
加窗子模块102,基于汉明窗进行加窗;
傅里叶变换子模块103,用于通过短时快速傅里叶变换(fft),将信号分离到不同的子带;
能量计算子模块104,用于计算出不同子带的能量;
梅尔滤波子模块105,基于梅尔滤波函数生成相应的梅尔滤波器,并对不同子带进行滤波;
特征提取子模块106,用于根据公式提取特征,得到可供训练的数据。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除