基于拼音的语音唤醒方法、装置和计算机设备与流程

文档序号:20912002发布日期:2020-05-29 13:06阅读:298来源:国知局
基于拼音的语音唤醒方法、装置和计算机设备与流程

本申请涉及到计算机领域,特别是涉及到基于拼音的语音唤醒方法、装置和计算机设备。



背景技术:

在自定义唤醒词系统中,或者自定义命令词识别模型中,现有技术一般采用音素序列预测或者音节分类的方法,通过预测的音素序列与设定的音素序列进行比对来确定下一步的操作。但语音识别场景中要面对同音字、近音字、多音字等复杂情况,且无法实现流式的高效识别,导致唤醒灵敏度差,唤醒效果不佳。



技术实现要素:

本申请的主要目的为提供基于拼音的语音唤醒方法,旨在解决现有语音唤醒被唤醒的灵敏度不高的技术问题。

本申请提出一种基于拼音的语音唤醒方法,包括:

接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;

根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;

根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;

根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;

输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;

判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;

若是,则根据所述目标拼音序列进行唤醒。

优选地,所述接收指定神经网络模型计算第二音频数据得到的第二概率向量的步骤之前,包括:

获取唤醒词样本包含的真实拼音类别,以及特定的混肴音对应的混淆拼音;

将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别,其中,所述指定拼音类别属于真实拼音类别中的一种,且所述混淆拼音与所述指定拼音类别具有满足预设相似度的发音;

将与所述训练拼音类别对应的拼音样本,输入至所述指定神经网络模型进行训练;

训练过程中时刻判断损失函数是否收敛;

若是,则终止训练并确定所述指定神经网络模型的各参数。

优选地,所述混淆拼音包括前鼻音和/或后鼻音对应的第一类混淆拼音,所述将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别的步骤,包括:

获取第一拼音类别中的第一韵母,以及第二拼音类别的第二韵母,其中,所述第一拼音类别和所述第二拼音类别为所述真实拼音类别中的任一种;

判断所述第一韵母和所述第二韵母的发音相似度是否达到第一相似阈值;

若是,则判断所述第一拼音类别和所述第二拼音类别分别对应的音节组成结构,是否达到第二相似阈值;

若是,则将所述第一拼音类别和所述第二拼音类别归为同一训练拼音类别。

优选地,所述混淆拼音包括平翘舌发音对应的第二类混淆拼音,所述将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别的步骤,包括:

获取第三拼音类别中的第一声母,以及第四拼音类别的第二声母,其中,所述第三拼音类别和所述第四拼音类别为所述真实拼音类别中的任一种;

判断所述第一声母和所述第二声母的发音相似度是否达到第三相似阈值;

若是,则判断所述第三拼音类别与第四拼音类别分别对应的音节组成结构,是否达到第四相似阈值;

若是,则将所述第三拼音类别和所述第四拼音类别归为同一训练拼音类别。

优选地,所述指定神经网络模型包括依次衔接的gcnn层、rnn层以及wave-attention结构,所述wave-attention结构包括headself-attention和soft-attention两种注意力结构,所述将与所述训练拼音类别对应的拼音样本,输入至所述指定神经网络模型进行训练的步骤,包括:

提取各拼音样本分别对应的数据特征矩阵;

将各所述数据特征矩阵输入所述gcnn层进行卷积运算,得到第一输出结果;

将所述第一输出结果输入所述rnn层,以提取时序特征并输出各所述数据特征矩阵分别对应的指定长度的数据颗粒;

将所述指定长度的数据颗粒输入所述headself-attention进行均分,并进行局部注意力学习后输出局部特征;

将各所述局部特征分别输入到所述soft-attention,进行全局注意力学习后输出全局特征;

将所述全局特征加上残差连接后,通过fc分类后输出的各拼音样本分别对应的拼音类别的概率矩阵。

优选地,所述根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值的步骤,包括:

将所述第二概率向量与所述第一前置概率向量相乘,得到所述第二音频数据对应的概率阵列;

将所述第二音频数据对应的概率阵列从大到小进行排序;

抽取排序靠前的前n个概率值作为所述指定概率值,其中,数量n与所述第一前置概率向量的n维向量相对应。

优选地,接收指定神经网络模型计算第二音频数据得到的第二概率向量的步骤之前,包括:

按照所述指定神经网络模型中的时域卷积的步长,释放所述第一时刻对应的第一音频数据中的指定帧,得到第一时刻对应的重复帧,其中,所述指定帧为音频生成时序中排在前面的音频帧,所述指定帧的长度等于所述时域卷积的步长;

实时接收所述实时音频流的更新帧;

判断所述第一时刻对应的重复帧加上所述更新帧的长度是否满足预设输入长度;

若是,则将所述更新帧按照音频生成时序接续在所述第一时刻对应的重复帧之后,形成所述第二音频数据;

将所述第二音频数据输入所述指定神经网络模型进行计算。

本申请还提供了一种基于拼音的语音唤醒装置,包括:

第一接收模块,用于接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;

第一输出模块,用于根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;

更新模块,用于根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;

第二输出模块,用于根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;

第三输出模块,用于输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;

第一判断模块,用于判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;

唤醒模块,用于若是,则根据所述目标拼音序列进行唤醒。

本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。

本申请在对实时音频流进行检测时,通过设置前置概率向量,实现检测结果的实时记录与更新,以得到整个实时音频流的检测信息实时解码识别,实现流式解码,加快响应效率;通过直接识别出实时音频流的拼音序列,然后从拼音序列中找到唤醒词的目标拼音序列,不识别文字,避免了同音、近音带来的误判,也避免了原始训练数据中不标准发音对模型造成的不良影响。

附图说明

图1本申请一实施例的基于拼音的语音唤醒方法流程示意图;

图2本申请一实施例的基于拼音的语音唤醒装置结构示意图;

图3本申请一实施例的计算机设备内部结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请一实施例的基于拼音的语音唤醒方法,包括:

s1:接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;

s2:根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;

s3:根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;

s4:根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;

s5:输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;

s6:判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;

s7:若是,则根据所述目标拼音序列进行唤醒。

本申请在对实时音频流进行检测时,通过设置前置概率向量,实现检测结果的实时记录与更新,以得到整个实时音频流的检测信息实时解码识别,实现流式解码,加快响应效率。上述前置概率向量跟随输入帧数据的变化实时更新,初始化状态为各元素值相等的n维向量矩阵,比如为元素值均为0.5或均为1的向量矩阵。然后根据每次向神经网络模型输入的音频帧数据的输出结果,取最大的n个概率值实时更新前置概率向量中各维度上的向量值,如此循环向后运算,实现流式解码识别,直至实时音频流检测完毕,输出的概率值最大的类别即为当前预测的结构。本申请中不同的拼音类别对应概率矩阵中不同的路径,通过概率值最大的类别,确定实时音频流包括的拼音类别,以确定其对应的拼音序列,然后根据预设唤醒词的目标拼音序列相比较,判断实时音频流中是否包括预设唤醒词。上述拼音类别指拼音的不同音节组成,如“nihao”为包括两个拼音类别的拼音序列。本申请通过直接识别出实时音频流的拼音序列,然后从拼音序列中找到唤醒词的目标拼音序列,不识别文字,避免了同音、近音带来的误判,也避免了原始训练数据中不标准发音对模型造成的不良影响,而且本申请通过设置前置概率向量实现流式识别,实时音频流输入完毕后可直接识别拼音结果,使得匹配策略更简化。一般的唤醒词或者命令词的字数在3-5个字之间,本申请基于拼音确定唤醒词,其寻找策略会相对从音素序列中找唤醒词的目标音素序列策略简单许多,可以在相对少的数据量上实现有效的神经网络模型的训练。上述的第一时刻、第二时刻、第三时刻为实时音频流输入神经网络模型过程中任意相邻的三个时刻,上述三个时刻对应的输入模型的音频帧数据不同。本申请的“第一”、“第二”、“第三”等仅用于区别,不用于限定,本申请其他处的类似用语作用相同,不赘述。

进一步地,所述根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值的步骤s2,包括:

s21:将所述第二概率向量与所述第一前置概率向量相乘,得到所述第二音频数据对应的概率阵列;

s22:将所述第二音频数据对应的概率阵列从大到小进行排序;

s23:抽取排序靠前的前n个概率值作为所述指定概率值,其中,数量n与所述第一前置概率向量的n维向量相对应。

本申请中根据每次向神经网络模型输入的音频帧数据的输出结果,取最大的n个概率值,实时更新前置概率向量中各维度上的向量值,如此循环向后运算,实现流式解码识别的过程中,通过将后一时刻的音频数据对应的概率向量与前一时刻更新的前置概率向量相乘的方式,得到后一时刻的音频数据对应的输出结果,然后再取后一时刻的音频数据对应的输出结果中较大的n个向量值,作为当前时刻前置概率向量中各维向量的赋值,进而实现对前置概率向量的更新。通过把每个连续输入的音频数据对应的输出结果,通过更新前置概率向量的方式实现实时存储,达到实时音频流的高效在线识别效果。

进一步地,所述接收指定神经网络模型计算第二音频数据得到的第二概率向量的步骤s1之前,包括:

s11:获取唤醒词样本包含的真实拼音类别,以及特定的混肴音对应的混淆拼音;

s12:将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别,其中,所述指定拼音类别属于真实拼音类别中的一种,且所述混淆拼音与所述指定拼音类别具有满足预设相似度的发音;

s13:将与所述训练拼音类别对应的拼音样本,输入至所述指定神经网络模型进行训练;

s14:训练过程中时刻判断损失函数是否收敛;

s15:若是,则终止训练并确定所述指定神经网络模型的各参数。

本申请在神经网络模型的训练过程中,对拼音样本进行了归类处理,将容易混淆的发音拼音归为同一拼音类别,以提高神经网络模型识别唤醒词的拼音序列的容错率。比如:“li/ni”容易混淆,则将“li/ni”归类为“l-ni”对应的训练拼音类别;则将“l-ni”的拼音样本将从单独的一个“li”或“ni”拼音类别,扩大到所有的“li”和“ni”,并将“li”和“ni”归为同一个训练拼音类别,通过增加本拼音类别中的拼音样本,提升“l-ni”拼音类别的唤醒词的识别准确度。上述真实拼音类别指拼音真实对应的类别,如,拼音“li”和“ni”分别对应两个不同的拼音类别。本申请的拼音类别不考虑声调的不同。上述的混淆拼音指“li”或“ni”,上述的指定拼音类别为唤醒词对应的拼音类别,比如,唤醒词为“你好”,则“ni”为指定拼音类别,为避免混淆发音导致唤醒灵敏度低,则将混淆拼音“li”归到指定拼音类别“ni”,视为两者为同一拼音类别。经过类似上述的归类处理,得到的用于训练本申请的唤醒类神经网络模型的训练拼音类别,数量将降至300-400之间。本申请采用神经网络模型建模的方法,使用ctc作为损失函数进行模型训练。得到的神经网络模型在识别实时音频流的音频数据时,将会给出其识别到的属于各个拼音类别的概率。由于ctc具有自动对齐机制,所以训练的样本数据不需要将音频与拼音进行严格对齐。

进一步地,所述混淆拼音包括前鼻音和/或后鼻音对应的第一类混淆拼音,所述将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别的步骤s12,包括:

s121:获取第一拼音类别中的第一韵母,以及第二拼音类别的第二韵母,其中,所述第一拼音类别和所述第二拼音类别为所述真实拼音类别中的任一种;

s122:判断所述第一韵母和所述第二韵母的发音相似度是否达到第一相似阈值;

s123:若是,则判断所述第一拼音类别和所述第二拼音类别分别对应的音节组成结构,是否达到第二相似阈值;

s124:若是,则将所述第一拼音类别和所述第二拼音类别归为同一训练拼音类别。

本实施例中的混淆拼音包括前鼻音和/或后鼻音对应的第一类混淆拼音。比如,“ling”和“lin”。这类混淆拼音的归类处理,可通过韵母的发音相似性判断是否需要归类处理。汉语拼音的韵母表中包括24个韵母,通过判断大数据特性获取韵母发音相似度的第一相似阈值,达到第一相似度阈值则认为发音相似。上述大数据特性指通过收集不同地域、不同人对上述韵母表中各韵母的发音,根据音质、音素等特征进行分析判断,比如,根据对应的音质、音素等发音特征对应的特征向量之间的余弦距离等,判断它们之间的相似度。然后结合音节组成结构中的差异占比,进行综合判断。比如“ling”和“lin”在音节组成结构中的差异占比为1/4。为增强判断精准度,可限定声母相同,韵母的音节组成结构的相似度或差异度。为进一步增强效果,可设定发音相似度的权重占比大于音节组成结构的相似度权重占比。如果均满足上述条件,则将进行归类处理,比如将“ing/in”规划为“in-ing”对应的训练拼音类别。将“li/ni”归类为“l-ni”对应的训练拼音类别,也可适用本实施例对应的判断过程,不赘述。

进一步地,所述混淆拼音包括平翘舌发音对应的第二类混淆拼音,所述将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别的步骤s12,包括:

s1201:获取第三拼音类别中的第一声母,以及第四拼音类别的第二声母,其中,所述第三拼音类别和所述第四拼音类别为所述真实拼音类别中的任一种;

s1202:判断所述第一声母和所述第二声母的发音相似度是否达到第三相似阈值;

s1203:若是,则判断所述第三拼音类别与第四拼音类别分别对应的音节组成结构,是否达到第四相似阈值;

s1204:若是,则将所述第三拼音类别和所述第四拼音类别归为同一训练拼音类别。

本实施例的混淆拼音包括平翘舌发音对应的第二类混淆拼音,其归类判断的过程,与前鼻音和/或后鼻音对应的第一类混淆拼音的归类判断过程相似,区别仅在于发音相似度是基于汉语拼音中的声母表实现的,上述声母表包括23个声母。通过判断大数据特性获取声母发音相似度的第三相似阈值,达到第三相似度阈值则认为发音相似。上述大数据特性指通过收集不同地域、不同人对上述声母表中各声母的发音,根据音质、音素等特征进行分析判断,比如,根据对应的音质、音素等发音特征对应的特征向量之间的余弦距离等,判断它们之间的相似度。然后结合音节组成结构中的差异占比,进行综合判断。比如“shi”和“si”在音节组成结构中的差异占比为1/3。为增强判断精准度,可限定韵母相同,声母的音节组成结构的相似度或差异度。为进一步增强效果,可设定发音相似度的权重占比大于音节组成结构的相似度权重占比。如果均满足上述条件,则将进行归类处理,比如将“shi/si”规划为“si-shi”对应的训练拼音类别。

进一步地,所述指定神经网络模型包括依次衔接的gcnn层、rnn层以及wave-attention结构,所述wave-attention结构包括headself-attention和soft-attention两种注意力结构,所述将与所述训练拼音类别对应的拼音样本,输入至所述指定神经网络模型进行训练的步骤s13,包括:

s131:提取各拼音样本分别对应的数据特征矩阵;

s132:将各所述数据特征矩阵输入所述gcnn层进行卷积运算,得到第一输出结果;

s133:将所述第一输出结果输入所述rnn层,以提取时序特征并输出各所述数据特征矩阵分别对应的指定长度的数据颗粒;

s134:将所述指定长度的数据颗粒输入所述headself-attention进行均分,并进行局部注意力学习后输出局部特征;

s135:将各所述局部特征分别输入到所述soft-attention,进行全局注意力学习后输出全局特征;

s136:将所述全局特征加上残差连接后,通过fc分类后输出的各拼音样本分别对应的拼音类别的概率矩阵。

本申请的指定神经网络模型包括依次衔接的gcnn(gatedconvolutionneuralnewwork,即门控卷积,一种带glu机制的cnn结构)层、rnn(循环神经网络recurrentneuralnetwork)层以及wave-attention结构,wave-attention结构包括headself-attention和soft-attention两种注意力结构。上述的rnn层为三层,数据特征矩阵首先输入gcnn,经过一层gcnn和三层rnn网络后,得到输出矩阵,然后跟一个wave-attention结构,最后全连接网络fc分类。上述的rnn层采用gru网络,gru网络是lstm的变体,可以解决rnn网络中的长依赖问题。上述的gcnn结构如下所示,一个卷积经过一个sigmod门控函数后的输出结果与另外一个卷积的输出结果相乘即为门控卷积的输出。上述的三层rnn层提取时序特征。注意力机制wave-attention里面包含headself-attention和soft-attention两种注意力结构,输入矩阵的数据颗粒num_uints,首先经过head均匀等分后分别基于小矩阵进行局部自注意力学习,然后将输出结果拼接起来做全局注意力学习,最终输出结果加上残差连接。本申请的指定神经网络模型的结构模拟人的学习行为,可实现从局部到全局学习更多特征的学习过程。通过注意力机制为特征进行加权,给有效特征以更大的权重,对特征的加权更加的合理和有效;注意力机制有全局注意力机制如soft-attention,也有局部的多头注意力机制multi-headattention,将两种结构结合起来,先局部学习再全局学习,更好地模拟人的认知过程,通过同时学习细节信息和全局信息,提升识别的效果。最后的fc分类,输出的是概率矩阵,每一列给出当前时间点预测的音频数据属于每个拼音类别的概率。

进一步地,接收指定神经网络模型计算第二音频数据得到的第二概率向量的步骤s1之前,包括:

s11:按照所述指定神经网络模型中的时域卷积的步长,释放所述第一时刻对应的第一音频数据中的指定帧,得到第一时刻对应的重复帧,其中,所述指定帧为音频生成时序中排在前面的音频帧,所述指定帧的长度等于所述时域卷积的步长;

s12:实时接收所述实时音频流的更新帧;

s13:判断所述第一时刻对应的重复帧加上所述更新帧的长度是否满足预设输入长度;

s14:若是,则将所述更新帧按照音频生成时序接续在所述第一时刻对应的重复帧之后,形成所述第二音频数据;

s15:将所述第二音频数据输入所述指定神经网络模型进行计算。

本申请在应用指定神经网络模型对实时音频流进行分析的过程中,使用gcnn进行时域卷积,卷积核大小为(29,11),步长为(3,2),即该卷积运算一次计算29帧的数据。一个字发音的时长一般在0.25s-0.3s之间,取0.3s这个值,0.3s长的音频可以分成29帧数据。但每次输入的29帧数据为上一时刻的输入数据按照音频生成时序,音频数据的尾部添加更新帧、头部释放指定帧后的数据,上述音频数据的尾部的生成时刻晚于头部的生成时刻。本申请的卷积步长为(3,2),时域卷积就是在时序上每步滑3帧数据,所以上述更新帧为3帧,指定帧也为3帧,即每次接收3帧新数据,释放3帧老数据。本申请的输出序列长度为n/3,n/3指输入的特征数据为n帧时,比如n*dim的一个矩阵,经过卷积后,输出的是n/3*dim的矩阵。

参照图2,本申请一实施例的基于拼音的语音唤醒装置,包括:

第一接收模块1,用于接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;

第一输出模块2,用于根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;

更新模块3,用于根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;

第二输出模块4,用于根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;

第三输出模块5,用于输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;

第一判断模块6,用于判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;

唤醒模块7,用于若存在预设唤醒词对应的目标拼音序列,则根据所述目标拼音序列进行唤醒。

本申请在对实时音频流进行检测时,通过设置前置概率向量,实现检测结果的实时记录与更新,以得到整个实时音频流的检测信息实时解码识别,实现流式解码,加快响应效率。上述前置概率向量跟随输入帧数据的变化实时更新,初始化状态为各元素值相等的n维向量矩阵,比如为元素值均为0.5或均为1的向量矩阵。然后根据每次向神经网络模型输入的音频帧数据的输出结果,取最大的n个概率值实时更新前置概率向量中各维度上的向量值,如此循环向后运算,实现流式解码识别,直至实时音频流检测完毕,输出的概率值最大的类别即为当前预测的结构。本申请中不同的拼音类别对应概率矩阵中不同的路径,通过概率值最大的类别,确定实时音频流包括的拼音类别,以确定其对应的拼音序列,然后根据预设唤醒词的目标拼音序列相比较,判断实时音频流中是否包括预设唤醒词。上述拼音类别指拼音的不同音节组成,如“nihao”为包括两个拼音类别的拼音序列。本申请通过直接识别出实时音频流的拼音序列,然后从拼音序列中找到唤醒词的目标拼音序列,不识别文字,避免了同音、近音带来的误判,也避免了原始训练数据中发音不标准对模型造成的影响,而且本申请通过设置前置概率向量实现流式识别,实时音频流输入完毕后可直接识别拼音结果,使得匹配策略更简化。一般的唤醒词或者命令词的字数在3-5个字之间,本申请基于拼音确定唤醒词,其寻找策略会相对从音素序列中找唤醒词的目标音素序列策略简单许多,可以在相对少的数据量上实现有效的神经网络模型的训练。上述的第一时刻、第二时刻、第三时刻为实时音频流输入神经网络模型过程中任意相邻的三个时刻,上述三个时刻对应的输入模型的音频帧数据不同。本申请的“第一”、“第二”、“第三”等仅用于区别,不用于限定,本申请其他处的类似用语作用相同,不赘述。

进一步地,第一输出模块2,包括:

得到单元,用于将所述第二概率向量与所述第一前置概率向量相乘,得到所述第二音频数据对应的概率阵列;

排序单元,用于将所述第二音频数据对应的概率阵列从大到小进行排序;

抽取单元,用于抽取排序靠前的前n个概率值作为所述指定概率值,其中,数量n与所述第一前置概率向量的n维向量相对应。

本申请中根据每次向神经网络模型输入的音频帧数据的输出结果,取最大的n个概率值,实时更新前置概率向量中各维度上的向量值,如此循环向后运算,实现流式解码识别的过程中,通过将后一时刻的音频数据对应的概率向量与前一时刻更新的前置概率向量相乘的方式,得到后一时刻的音频数据对应的输出结果,然后再取后一时刻的音频数据对应的输出结果中较大的n个向量值,作为当前时刻前置概率向量中各维向量的赋值,进而实现对前置概率向量的更新。通过把每个连续输入的音频数据对应的输出结果,通过更新前置概率向量的方式实现实时存储,达到实时音频流的高效在线识别效果。

进一步地,基于拼音的语音唤醒装置,包括:

获取模块,用于获取唤醒词样本包含的真实拼音类别,以及特定的混肴音对应的混淆拼音;

合并模块,用于将所述混淆拼音合并入指定拼音类别,以将所述真实拼音类别处理为训练拼音类别,其中,所述指定拼音类别属于真实拼音类别中的一种,且所述混淆拼音与所述指定拼音类别具有满足预设相似度的发音;

输入模块,用于将与所述训练拼音类别对应的拼音样本,输入至所述指定神经网络模型进行训练;

第二判断模块,用于训练过程中时刻判断损失函数是否收敛;

终止模块,用于若损失函数收敛,则终止训练并确定所述指定神经网络模型的各参数。

本申请在神经网络模型的训练过程中,对拼音样本进行了归类处理,将容易混淆的发音拼音归为同一拼音类别,以提高神经网络模型识别唤醒词的拼音序列的容错率。比如:“li/ni”容易混淆,则将“li/ni”归类为“l-ni”对应的训练拼音类别;则将“l-ni”的拼音样本将从单独的一个“li”或“ni”拼音类别,扩大到所有的“li”和“ni”,并将“li”和“ni”归为同一个训练拼音类别,通过增加本拼音类别中的拼音样本,提升“l-ni”拼音类别的唤醒词的识别准确度。上述真实拼音类别指拼音真实对应的类别,如,拼音“li”和“ni”分别对应两个不同的拼音类别。本申请的拼音类别不考虑声调的不同。上述的混淆拼音指“li”或“ni”,上述的指定拼音类别为唤醒词对应的拼音类别,比如,唤醒词为“你好”,则“ni”为指定拼音类别,为避免混淆发音导致唤醒灵敏度低,则将混淆拼音“li”归到指定拼音类别“ni”,视为两者为同一拼音类别。经过类似上述的归类处理,得到的用于训练本申请的唤醒类神经网络模型的训练拼音类别,数量将降至300-400之间。本申请采用神经网络模型建模的方法,使用ctc作为损失函数进行模型训练。得到的神经网络模型在识别实时音频流的音频数据时,将会给出其识别到的属于各个拼音类别的概率。由于ctc具有自动对齐机制,所以训练的样本数据不需要将音频与拼音进行严格对齐。

进一步地,所述混淆拼音包括前鼻音和/或后鼻音对应的第一类混淆拼音,合并模块,包括:

第一获取单元,用于获取第一拼音类别中的第一韵母,以及第二拼音类别的第二韵母,其中,所述第一拼音类别和所述第二拼音类别为所述真实拼音类别中的任一种;

第一判断单元,用于判断所述第一韵母和所述第二韵母的发音相似度是否达到第一相似阈值;

第二判断单元,用于若达到第一相似阈值,则判断所述第一拼音类别和所述第二拼音类别分别对应的音节组成结构,是否达到第二相似阈值;

第一归类单元,用于若达到第二相似阈值,则将所述第一拼音类别和所述第二拼音类别归为同一训练拼音类别。

本实施例中的混淆拼音包括前鼻音和/或后鼻音对应的第一类混淆拼音。比如,“ling”和“lin”。这类混淆拼音的归类处理,可通过韵母的发音相似性判断是否需要归类处理。汉语拼音的韵母表中包括24个韵母,通过判断大数据特性获取韵母发音相似度的第一相似阈值,达到第一相似度阈值则认为发音相似。上述大数据特性指通过收集不同地域、不同人对上述韵母表中各韵母的发音,根据音质、音素等特征进行分析判断,比如,根据对应的音质、音素等发音特征对应的特征向量之间的余弦距离等,判断它们之间的相似度。然后结合音节组成结构中的差异占比,进行综合判断。比如“ling”和“lin”在音节组成结构中的差异占比为1/4。为增强判断精准度,可限定声母相同,韵母的音节组成结构的相似度或差异度。为进一步增强效果,可设定发音相似度的权重占比大于音节组成结构的相似度权重占比。如果均满足上述条件,则将进行归类处理,比如将“ing/in”规划为“in-ing”对应的训练拼音类别。将“li/ni”归类为“l-ni”对应的训练拼音类别,也可适用本实施例对应的判断过程,不赘述。

进一步地,所述混淆拼音包括平翘舌发音对应的第二类混淆拼音,所述将合并模块,包括:

第二获取单元,用于获取第三拼音类别中的第一声母,以及第四拼音类别的第二声母,其中,所述第三拼音类别和所述第四拼音类别为所述真实拼音类别中的任一种;

第三判断单元,用于判断所述第一声母和所述第二声母的发音相似度是否达到第三相似阈值;

第四判断单元,用于若达到第三相似阈值,则判断所述第三拼音类别与第四拼音类别分别对应的音节组成结构,是否达到第四相似阈值;

第二归类单元,用于若达到第四相似阈值,则将所述第三拼音类别和所述第四拼音类别归为同一训练拼音类别。

本实施例的混淆拼音包括平翘舌发音对应的第二类混淆拼音,其归类判断的过程,与前鼻音和/或后鼻音对应的第一类混淆拼音的归类判断过程相似,区别仅在于发音相似度是基于汉语拼音中的声母表实现的,上述声母表包括23个声母。通过判断大数据特性获取声母发音相似度的第三相似阈值,达到第三相似度阈值则认为发音相似。上述大数据特性指通过收集不同地域、不同人对上述声母表中各声母的发音,根据音质、音素等特征进行分析判断,比如,根据对应的音质、音素等发音特征对应的特征向量之间的余弦距离等,判断它们之间的相似度。然后结合音节组成结构中的差异占比,进行综合判断。比如“shi”和“si”在音节组成结构中的差异占比为1/3。为增强判断精准度,可限定韵母相同,声母的音节组成结构的相似度或差异度。为进一步增强效果,可设定发音相似度的权重占比大于音节组成结构的相似度权重占比。如果均满足上述条件,则将进行归类处理,比如将“shi/si”规划为“si-shi”对应的训练拼音类别。

进一步地,所述指定神经网络模型包括依次衔接的gcnn层、rnn层以及wave-attention结构,所述wave-attention结构包括headself-attention和soft-attention两种注意力结构,输入模块,包括:

第一提取单元,用于提取各拼音样本分别对应的数据特征矩阵;

运算单元,用于将各所述数据特征矩阵输入所述gcnn层进行卷积运算,得到第一输出结果;

第二提取单元,用于将所述第一输出结果输入所述rnn层,以提取时序特征并输出各所述数据特征矩阵分别对应的指定长度的数据颗粒;

第一输入单元,用于将所述指定长度的数据颗粒输入所述headself-attention进行均分,并进行局部注意力学习后输出局部特征;

第二输入单元,用于将各所述局部特征分别输入到所述soft-attention,进行全局注意力学习后输出全局特征;

输出单元,用于将所述全局特征加上残差连接后,通过fc分类后输出的各拼音样本分别对应的拼音类别的概率矩阵。

本申请的指定神经网络模型包括依次衔接的gcnn(gatedconvolutionneuralnewwork,即门控卷积,一种带glu机制的cnn结构)层、rnn(循环神经网络recurrentneuralnetwork)层以及wave-attention结构,wave-attention结构包括headself-attention和soft-attention两种注意力结构。上述的rnn层为三层,数据特征矩阵首先输入gcnn,经过一层gcnn和三层rnn网络后,得到输出矩阵,然后跟一个wave-attention结构,最后全连接网络fc分类。上述的rnn层采用gru网络,gru网络是lstm的变体,可以解决rnn网络中的长依赖问题。上述的gcnn结构如下所示,一个卷积经过一个sigmod门控函数后的输出结果与另外一个卷积的输出结果相乘即为门控卷积的输出。上述的三层rnn层提取时序特征。注意力机制wave-attention里面包含headself-attention和soft-attention两种注意力结构,输入矩阵的数据颗粒num_uints,首先经过head均匀等分后分别基于小矩阵进行局部自注意力学习,然后将输出结果拼接起来做全局注意力学习,最终输出结果加上残差连接。本申请的指定神经网络模型的结构模拟人的学习行为,可实现从局部到全局学习更多特征的学习过程。通过注意力机制为特征进行加权,给有效特征以更大的权重,对特征的加权更加的合理和有效;注意力机制有全局注意力机制如soft-attention,也有局部的多头注意力机制multi-headattention,将两种结构结合起来,先局部学习再全局学习,更好地模拟人的认知过程,通过同时学习细节信息和全局信息,提升识别的效果。最后的fc分类,输出的是概率矩阵,每一列给出当前时间点预测的音频数据属于每个拼音类别的概率。

进一步地,基于拼音的语音唤醒装置,包括:

释放模块,用于按照所述指定神经网络模型中的时域卷积的步长,释放所述第一时刻对应的第一音频数据中的指定帧,得到第一时刻对应的重复帧,其中,所述指定帧为音频生成时序中排在前面的音频帧,所述指定帧的长度等于所述时域卷积的步长;

第二接收模块,用于实时接收所述实时音频流的更新帧;

第三判断模块,用于判断所述第一时刻对应的重复帧加上所述更新帧的长度是否满足预设输入长度;

接续模块,用于若满足预设输入长度,则将所述更新帧按照音频生成时序接续在所述第一时刻对应的重复帧之后,形成所述第二音频数据;

计算模块,用于将所述第二音频数据输入所述指定神经网络模型进行计算。

本申请在应用指定神经网络模型对实时音频流进行分析的过程中,使用gcnn进行时域卷积,卷积核大小为(29,11),步长为(3,2),即该卷积运算一次计算29帧的数据。一个字发音的时长一般在0.25s-0.3s之间,取0.3s这个值,0.3s长的音频可以分成29帧数据。但每次输入的29帧数据为上一时刻的输入数据按照音频生成时序,音频数据的尾部添加更新帧、头部释放指定帧后的数据,上述音频数据的尾部的生成时刻晚于头部的生成时刻。本申请的卷积步长为(3,2),时域卷积就是在时序上每步滑3帧数据,所以上述更新帧为3帧,指定帧也为3帧,即每次接收3帧新数据,释放3帧老数据。本申请的输出序列长度为n/3,n/3指输入的特征数据为n帧时,比如n*dim的一个矩阵,经过卷积后,输出的是n/3*dim的矩阵。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于拼音的语音唤醒过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于拼音的语音唤醒方法。

上述处理器执行上述基于拼音的语音唤醒方法,包括:接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;若是,则根据所述目标拼音序列进行唤醒。

上述计算机设备,在对实时音频流进行检测时,通过设置前置概率向量,实现检测结果的实时记录与更新,以得到整个实时音频流的检测信息实时解码识别,实现流式解码,加快响应效率;通过直接识别出实时音频流的拼音序列,然后从拼音序列中找到唤醒词的目标拼音序列,不识别文字,避免了同音、近音带来的误判,也避免了原始训练数据中发音不标准对模型造成的影响。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于拼音的语音唤醒方法,包括:接收指定神经网络模型计算第二音频数据得到的第二概率向量,其中,所述第二音频数据为实时音频流第二时刻对应的音频数据;根据所述第二概率向量和第一时刻更新的第一前置概率向量,输出所述第二音频数据对应的指定概率值,其中,所述第一时刻为所述第二时刻的前一时刻;根据所述第二音频数据对应的指定概率值,更新所述第一前置概率向量,得到第二前置概率向量;根据所述第二前置概率向量,输出第三时刻的第三音频数据对应的所述指定概率值,并更新所述第二前置概率向量,根据所述第一时刻、所述第二时刻以及所述第三时刻的处理过程,依次进行至所述实时音频流检测完毕,其中,所述第三时刻为所述第二时刻的后一时刻;输出所述实时音频流对应的最大概率值,以及所述实时音频流对应的拼音序列;判断所述拼音序列中是否存在预设唤醒词对应的目标拼音序列;若是,则根据所述目标拼音序列进行唤醒。

上述计算机可读存储介质,在对实时音频流进行检测时,通过设置前置概率向量,实现检测结果的实时记录与更新,以得到整个实时音频流的检测信息实时解码识别,实现流式解码,加快响应效率;通过直接识别出实时音频流的拼音序列,然后从拼音序列中找到唤醒词的目标拼音序列,不识别文字,避免了同音、近音带来的误判,也避免了原始训练数据中发音不标准对模型造成的影响。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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