1.本发明涉及语音识别领域,尤其涉及一种命令词识别方法、装置、移动终端和可读存储介质。
背景技术:2.目前语音识别作为一种常用的人机交互技术,已广泛应用于各类电子产品中,用户可以通过发出带有命令词的语音控制电子产品,该语音控制方式以其自然方便的交互方式收到了消费者的喜爱,逐渐成为了智能产品时代的主流交互控制方式。
3.但是,现有命令词识别算法(例如,gmm
‑
hmm和基于深度学习的命令词识别算法)为了达到足够高的准确率,都需要占用移动终端较多的内存,导致移动终端可用内存减少,降低移动终端的工作效率,尤其对于一些内存较小的移动终端,移动终端的内存十分有限,设置现有命令词识别算法后,移动终端难以保证自身可以继续维持正常工作。
4.虽然,解决内存占用问题可以通过提高硬件配置、云计算服务解决,但是提高硬件配置会增加设备成本,而云计算服务需要网络才能使用,且需要上传语音数据,安全性较差。
技术实现要素:5.鉴于上述问题,本技术提出一种命令词识别方法、装置、移动终端和可读存储介质,该方法仅占用移动终端较少的内存,实现在离线情况下对进行命令词的有效识别。
6.本技术实施例提出一种命令词识别方法,所述方法包括:
7.将接收到的命令词转换为标准矩阵;
8.利用命令词离线识别模型的各个特征提取层对所述标准矩阵进行逐通道卷积运算和逐点卷积运算以获得所述命令词的特征张量;
9.利用所述命令词离线识别模型的输出层基于所述命令词的特征张量确定所述命令词的类别。
10.本技术实施例所述的命令词识别方法,所述命令词离线识别模型包括n个特征提取层,每一个特征提取层包括逐通道卷积运算层、逐点卷积运算层、归一化层、激活层和最大池化层,所述利用命令词离线识别模型的各个特征提取层对所述标准矩阵进行逐通道卷积运算和逐点卷积运算以获得所述命令词的特征张量,包括:
11.利用第一个特征提取层的第一逐通道卷积运算层、第一逐点卷积运算层、第一归一化层、第一激活层和第一最大池化层对所述标准矩阵进行特征提取以获得第一特征张量;
12.利用第n个特征提取层的第n逐通道卷积运算层、第n逐点卷积运算层、第n归一化层、第n激活层和第n最大池化层对第n
‑
1特征张量进行特征提取以获得第n特征张量,2≤n≤n;
13.将第n特征张量作为所述命令词的特征张量。
14.本技术实施例所述的命令词识别方法,所述利用第n个特征提取层的第n逐通道卷积运算层、第n逐点卷积运算层、第n归一化层、第n激活层和第n最大池化层对第n
‑
1特征张量进行特征提取以获得第n特征张量,包括:
15.利用所述第n逐通道卷积运算层对所述第n
‑
1特征张量进行逐通道卷积运算以获得第n逐通道卷积张量;
16.利用所述第n逐点卷积运算层对所述第n逐通道卷积张量进行逐点卷积运算以获得第n逐点卷积张量;
17.利用所述第n归一化层对所述第n逐点卷积张量进行归一化运算以获得第n个归一化后的特征张量;
18.利用所述第n激活层对所述第n个归一化后的特征张量进行激活运算以获得第n个激活后的特征张量;
19.利用所述第n最大池化层对所述第n个激活后的特征张量进行激活运算以获得所述第n特征张量。
20.本技术实施例所述的命令词识别方法,每一个逐通道卷积运算的公式如下:
[0021][0022]
x
d
是输入逐通道卷积层的特征张量,wd是逐通道卷积运算的卷积核,dw
ijk
(x
d
)是x
d
和wd逐通道卷积运算的输出结果,w
h
是卷积核wd的高度,w
w
是卷积核wd的宽度,stride
h
是卷积核wd在x
d
的高度方向的步进,stride
w
是卷积核wd在x
d
的宽度方向的步进,i是特征张量的高度方向上的指标,j是特征张量的宽度方向上的指标,i’是卷积核的高度方向上的指标,j’是卷积核的高度方向上的指标,k表示第k个通道;
[0023]
所述每一个逐点卷积运算的公式如下:
[0024][0025]
x
p
是输入逐点卷积层的特征张量,wp是逐点卷积运算的卷积核,x
c
是输入特征的通道数,b
k
是第k个通道的卷积偏差,pw
ijk
(x
p
)是x
p
和wd逐点卷积运算的输出结果,k’是求和指标。
[0026]
本技术实施例所述的命令词识别方法,n的取值范围为4~8。
[0027]
本技术实施例所述的命令词识别方法,所述将接收到的命令词转换为标准矩阵,包括:
[0028]
对接收到的命令词的音频进行预加重处理以获得标准的时域音频信号;
[0029]
利用傅里叶变换将所述时域音频信号转换为频域信号;
[0030]
对所述频域信号做离散余弦变化以获得标准矩阵。
[0031]
本技术实施例所述的命令词识别方法,所述输出层包括降维层、线性层和概率输出层,所述利用所述命令词离线识别模型的输出层基于所述特征张量确定所述命令词的类别,包括:
[0032]
利用所述降维层将所述命令词的特征张量转换为特征矢量;
[0033]
利用所述线性层计算所述特征矢量为各个类别的概率;
[0034]
利用所述概率输出层对各个类别的概率进行归一化处理并输出所述命令词的类
别以及所述类别对应的概率。
[0035]
本技术实施例还一种命令词识别装置,所述装置包括:
[0036]
转换模块,用于将接收到的命令词转换为标准矩阵;
[0037]
运算模块,用于利用命令词离线识别模型的各个特征提取层对所述标准矩阵进行逐通道卷积运算和逐点卷积运算以获得所述命令词的特征张量;
[0038]
确定模块,用于利用所述命令词离线识别模型的输出层基于所述特征张量确定所述命令词的类别。
[0039]
本技术实施例还一种移动终端,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行本技术实施例所述的命令词识别方法。
[0040]
本技术实施例还一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行本技术实施例所述的命令词识别方法。
[0041]
本技术将接收到的命令词转换为标准矩阵;利用命令词离线识别模型的各个特征提取层对所述标准矩阵进行逐通道卷积运算和逐点卷积运算以获得所述命令词的特征张量;利用所述命令词离线识别模型的输出层基于所述命令词的特征张量确定所述命令词的类别。一方面,命令词离线识别模型的每一个特征提取层均利用逐通道卷积运算和逐点卷积运算替代传统的传统卷积运算,可以大大降低了命令词离线识别模型对内存空间的占用;另一方面,该命令词离线识别模型对硬件要求低,无需提高的硬件配置,可以有效降低硬件成本;再一方面,在识别带有命令词的语音时,无需持续向云计算服务器发送语音数据,保证了用户的隐私。
附图说明
[0042]
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
[0043]
图1示出了本技术实施例提出的一种命令词识别模型的结构示意图;
[0044]
图2示出了本技术实施例提出的一种命令词识别方法的流程示意图;
[0045]
图3示出了本技术实施例提出的一种命令词识别方法中获得标准矩阵的流程示意图;
[0046]
图4示出了本技术实施例提出的一种命令词识别方法中获得命令词的特征张量的流程示意图;
[0047]
图5示出了本技术实施例提出的一种命令词识别装置的结构示意图。
具体实施方式
[0048]
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0049]
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范
围。
[0050]
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
[0051]
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0052]
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
[0053]
本技术实施例公开的命令词识别方法,可以将收到的命令词(例如,接通、挂断或回拨)转换为标准矩阵,然后,将标准矩阵输入至预设的命令词离线识别模型,利用命令词离线识别模型对标准矩阵进行处理,以确定命令词的所属的类别,即确定命令词是接通,还是挂断,还是回拨。
[0054]
下面将以具体实施例对命令词到标准矩阵的转换过程、命令词离线识别模型和命令词识别方法进行详细说明。
[0055]
实施例1
[0056]
请参见图1,本技术实施例,提出一种命令词识别模型,该命令词离线识别模型包括输出层和多个特征提取层,多个特征提取层依次连接,输出层连接最末端的一个特征提取层。
[0057]
进一步的,每一个特征提取层包括逐通道卷积运算层、逐点卷积运算层、归一化层、激活层和最大池化层。输出层包括降维层、线性层和概率输出层。
[0058]
每一个特征提取层的逐通道卷积运算层对输入的特征张量先进性逐通道卷积运算,再将逐通道卷积运算结果进行逐点卷积运算,该特征提取过程与传统的特征提取过程相比,运算量明显降低,使得整个命令词离线识别模型仅仅占用较少的内存空间。
[0059]
示例性的,传统的特征提取是利用以下公式进行卷积运算:
[0060][0061]
其中,x是输入的三维的特征张量,wt是传统卷积运算的卷积核,y是x和wt卷积的输出结果,x
c
是输入特征的通道数,w
h
是卷积核的高度,w
w
是卷积核的宽度,stride
h
是卷积核wt在x的高度方向的步进,stride
w
是卷积核wt在x的宽度方向的步进,i是特征张量的高度方向上的指标,j是特征张量的宽度方向上的指标,i’是卷积核的高度方向上的指标,j’是卷积核的高度方向上的指标,b
k
是第k个通道的卷积偏差。
[0062]
在卷积核wt的每一个权重占用int8的存储空间情况下,传统卷积运算的所有卷积核需要占用w
h
×
w
w
×
w
c
比特内存,其中,w
c
=x
c
×
f,f表示卷积核个数,为了进一步减少特征
提取过程所占用的空间,可以利用逐通道卷积运算(dw)和逐点卷积运算(pw)两步来近似传统卷积,即:
[0063]
y
ijk
=pw
ijk
(dw
ijk
(x))
[0064]
其中,wd是逐通道卷积运算的卷积核,wp是逐点卷积运算的卷积核。
[0065]
在逐通道卷积运算和逐点卷积运算中,卷积核占用w
h
×
w
w
+w
c
比特内存,进而使得整个命令词离线识别模型占用的内存可以有效降低。
[0066]
需要说明的是,命令词离线识别模型的特征提取层的总数可以根据需要进行调整,特征提取层的总数太少,可能降低命令词离线识别模型对命令词的识别精度,但是特征提取层的总数太多,命令词离线识别模型将占用较多的内存空间,导致移动终端的内存空间被过度占用。特征提取层的总数的取值范围可以为4~8,包括4和8。在识别接通、挂断或回拨命令词时,特征提取层的总数为5效果最好。
[0067]
优选的,该命令词离线识别模型包括5个特征提取层,分别为第一个特征提取层、第二个特征提取层、第三个特征提取层、第四个特征提取层、第五个特征提取层。
[0068]
第一个特征提取层包括第一逐通道卷积运算层、第一逐点卷积运算层、第一归一化层、第一激活层和第一最大池化层,第二个特征提取层包括第二逐通道卷积运算层、第二逐点卷积运算层、第二归一化层、第二激活层和第二最大池化层,第三个特征提取层包括第三逐通道卷积运算层、第三逐点卷积运算层、第三归一化层、第三激活层和第三最大池化层,第四个特征提取层包括第四逐通道卷积运算层、第四逐点卷积运算层、第四归一化层、第四激活层和第四最大池化层,第五个特征提取层包括第五逐通道卷积运算层、第五逐点卷积运算层、第五归一化层、第五激活层和第五最大池化层。
[0069]
示例性的,在利用命令词离线识别模型识别接通、挂断或回拨命令词的情况下,每一个逐通道卷积运算层的卷积核的大小可以为3
×
3,每一个逐点卷积运算的卷积核的大小可以为1
×
1。在第一个特征提取层中,第一逐点卷积运算层中卷积核的个数为16,步进为2
×
2,第一最大池化层的大小为2
×
1,该第一个特征提取层输出张量维度是24
×7×
16;在第二个特征提取层中,第二逐点卷积运算层中卷积核的个数为32,步进为1
×
1,第二最大池化层的大小为2
×
1,该第二个特征提取层输出张量维度是12
×7×
32;在第三个特征提取层中,第三逐点卷积运算层中卷积核的个数为64,步进为1
×
1,第三最大池化层的大小为2
×
1,该第三个特征提取层输出张量维度是6
×7×
64;在第四个特征提取层中,第四逐点卷积运算层中卷积核的个数为64,步进为1
×
1,第四最大池化层的大小为2
×
1,该第一个特征提取层输出张量维度是3
×3×
64;在第五个特征提取层中,第五逐点卷积运算层中卷积核的个数为128,步进为1
×
1,第五最大池化层的大小为2
×
1,该第五个特征提取层输出张量维度是1
×1×
128;在降维层中三维张量1
×1×
128变换成128
×
1矢量;在线性层中,基于128
×
1矢量计算命令词为接听、挂断、回拨和其他的概率,最后利用输出层输出命令词为接听、挂断、回拨和其他的概率。
[0070]
本实施例中,命令词离线识别模型的每一个特征提取层与现有的传统卷积层相比,命令词离线识别模型的每一个特征提取层的卷积核所占用的内存空间均小于传统卷积层,进而在使用多个特征提取层的情况下,多个传统卷积层被替代,大大降低了命令词离线
次采样获得的语音信号,y[n]是第n次采样获得的语音信号对应的标准的时域音频信号,本实施例中,a的取值可以是0.9~1之间的任一值,包括0.9和1,优选的,a=0.97,a取0.97时,命令词离线识别模型对命令词的识别准确率最高。
[0089]
需要说明的是,预加重滤波器可以补偿语音信号受人体发声系统被抑制的高频部分,同时突出高频的共振峰,进而可以提高命令词识别准确率。
[0090]
步骤s120,利用傅里叶变换将所述时域音频信号转换为频域信号。
[0091]
可以将标准的时域音频信号进行分帧处理,每帧长度一般取20到30ms,帧叠为帧长的60%。优选的,帧长为25ms时,命令词离线识别模型的识别效果最好。
[0092]
进一步的,利用傅里叶变换将每帧的时域音频信号转换为频域信号。
[0093]
步骤s130,对所述频域信号做离散余弦变化以获得标准矩阵。
[0094]
傅里叶变换输出的0hz到8khz的所有频带通过mel滤波器组,其中,mel滤波器组可以用以下公式表示:
[0095]
mel(f)=2595*log10(1+f/700),f为傅里叶变换输出的0hz到8khz的频带。
[0096]
进一步的,对mel滤波器组的输出做取模平方处理,并通过log10转换到db标度,在对转换为db标度的结果做离散余弦变换(dct),取dct的前13个系数,只保留低频部分,随后第一个系数替换成当前帧的能量值。该过程可以有效降低不同说话音量对识别效果的影响,保证命令词离线识别模型识别命令词的准确性。
[0097]
示例性的,请参见图4,上述步骤s200包括以下步骤s210~步骤s220:
[0098]
步骤s210,利用第n个特征提取层的第n逐通道卷积运算层、第n逐点卷积运算层、第n归一化层、第n激活层和第n最大池化层对第n
‑
1特征张量进行特征提取以获得第n特征张量,1≤n≤n,所述第零特征张量为所述标准矩阵。
[0099]
示例性的,n=1的情况下,可以利用所述第一逐通道卷积运算层对所述标准矩阵进行逐通道卷积运算以获得第一逐通道卷积张量,利用所述第一逐点卷积运算层对所述第一逐通道卷积张量进行逐点卷积运算以获得第一逐点卷积张量,利用所述第一归一化层对所述第一逐点卷积张量进行归一化运算以获得第一个归一化后的特征张量,利用所述第一激活层对所述第一个归一化后的特征张量进行激活运算以获得第一个激活后的特征张量,利用所述第一最大池化层对所述第一个激活后的特征张量进行激活运算以获得所述第一特征张量。
[0100]
进一步的,2≤n≤n的情况下,利用第n个特征提取层的第n逐通道卷积运算层、第n逐点卷积运算层、第n归一化层、第n激活层和第n最大池化层对第n
‑
1特征张量进行特征提取以获得第n特征张量。
[0101]
示例性的,可以利用所述第n逐通道卷积运算层对所述第n
‑
1特征张量进行逐通道卷积运算以获得第n逐通道卷积张量,利用所述第n逐点卷积运算层对所述第n逐通道卷积张量进行逐点卷积运算以获得第n逐点卷积张量,利用所述第n归一化层对所述第n逐点卷积张量进行归一化运算以获得第n个归一化后的特征张量,利用所述第n激活层对所述第n个归一化后的特征张量进行激活运算以获得第n个激活后的特征张量,利用所述第n最大池化层对所述第n个激活后的特征张量进行激活运算以获得所述第n特征张量。
[0102]
可以理解,把步骤s210执行n次,分别为对标准矩阵、第一特征张量至第n
‑
1特征张量依次进行逐通道卷积运算层、逐点卷积运算层、归一化运算、激活运算和最大池化运算,
以获得第一特征张量至第n特征张量。
[0103]
需要说明的是,每一个逐通道卷积运算的公式如下:
[0104][0105]
x
d
是输入逐通道卷积层的特征张量,wd是逐通道卷积运算的卷积核,dw
ijk
(x
d
)是x
d
和wd逐通道卷积运算的输出结果,w
h
是卷积核wd的高度,w
w
是卷积核wd的宽度,stride
h
是卷积核wd在x
d
的高度方向的步进,stride
w
是卷积核wd在x
d
的宽度方向的步进,i是特征张量的高度方向上的指标,j是特征张量的宽度方向上的指标,i’是卷积核的高度方向上的指标,j’是卷积核的高度方向上的指标,k表示第k个通道。
[0106]
需要说明的是,每一个逐点卷积运算的公式如下:
[0107][0108]
x
p
是输入逐点卷积层的特征张量,wp是逐点卷积运算的卷积核,x
c
是输入特征的通道数,b
k
是第k个通道的卷积偏差,pw
ijk
(x
p
)是x
p
和wd逐点卷积运算的输出结果,k’是求和指标。
[0109]
步骤s220,将第n特征张量作为所述命令词的特征张量。
[0110]
本实施例中,命令词离线识别模型的每一个特征提取层均利用逐通道卷积运算和逐点卷积运算替代传统的传统卷积运算,由于逐通道卷积运算和逐点卷积运算的卷积核所占用的内存空间均小于传统卷积的卷积核所占用的内存空间,因此,在使用多个特征提取层的情况下,多个传统卷积运算均被逐通道卷积运算和逐点卷积运算替代,大大降低了命令词离线识别模型对内存空间的占用。并且,该命令词离线识别模型对硬件要求低,无需提高的硬件配置,可以有效降低硬件成本,在识别带有命令词的语音时,也无需持续向云计算服务器发送语音数据,有效保证了用户的隐私。
[0111]
实施例3
[0112]
请参见图5,本技术实施例,提出一种命令词识别装置10包括:转换模块11、运算模块12和确定模块13。
[0113]
转换模块11,用于将接收到的命令词转换为标准矩阵;运算模块12,用于利用命令词离线识别模型的各个特征提取层对所述标准矩阵进行逐通道卷积运算和逐点卷积运算以获得所述命令词的特征张量;确定模块13,用于利用所述命令词离线识别模型的输出层基于所述特征张量确定所述命令词的类别。
[0114]
本实施例公开的命令词识别装置10通过转换模块11、运算模块12和确定模块13的配合使用,用于执行上述实施例所述的命令词识别方法,上述实施例所涉及的实施方案以及有益效果在本实施例中同样适用,在此不再赘述。
[0115]
实施例4
[0116]
本技术实施例,还提出一种移动终端,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例所述的命令词识别方法。
[0117]
移动终端可以是手机、pad和蓝牙话务耳机等。
[0118]
需要说明的是,蓝牙话务耳机的内存十分有限,可以将本技术公开的命令词离线
识别模型保存在蓝牙话务耳机上,一方面,由于本技术公开的命令词离线识别模型仅仅占用少量的内存空间,不会影响蓝牙话务耳机的其他功能,可以使得蓝牙话务耳机准确识别接通、挂断和回拨等语音命令;另一方面,本技术公开的命令词离线识别模型对硬件要求低,无需提高蓝牙话务耳机的硬件配置,可以有效降低蓝牙话务耳机成本;再一方面,在识别带有命令词的语音时,无需持续向云计算服务器发送语音数据,保证了蓝牙话务耳机用户的隐私。
[0119]
实施例5
[0120]
本技术实施例,还提出一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例所述的命令词识别方法。
[0121]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0122]
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
[0123]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:u盘、移动硬盘、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。