本发明涉及电子信息技术领域,更具体的,涉及一种语音唤醒方法及装置。
背景技术:
随着科技的发展,很多电子设备引入了语音识别技术,可以通过语音唤醒电子设备,控制电子设备从非工作状态切换到工作状态,进行工作。
但是,目前对电子设备进行语音唤醒存在着较高的误唤醒率和唤醒失败率,用户体验差。
技术实现要素:
有鉴于此,本发明提供了一种语音唤醒方法及装置,提高了语音唤醒的准确率。
为了实现上述发明目的,本发明提供的具体技术方案如下:
一种语音唤醒方法,包括:
在接收到语音信号的情况下,提取所述语音信号的fbank特征;
将所述fbank特征输入预先训练得到的音素识别模型,得到所述语音信号对应的音素序列,所述音素识别模型为利用已标注音素序列的fbank特征训练样本对预设深度神经网络模型进行训练后得到的;
对所述语音信号对应的音素序列与唤醒词的音素序列进行比较,根据比较结果,确定是否进行语音唤醒。
可选的,所述提取所述语音信号的fbank特征,包括:
对所述语音信号进行分帧处理,得到多帧音频;
对每一帧音频进行预加重、添加汉明窗;
通过快速傅里叶变换,将预加重和添加汉明窗后的音频从时域转换为频域;
利用三角滤波器对频域音频进行处理,得到所述fbank特征。
可选的,所述方法还包括:
获取多条已标注中文文本的音频信息与发音词典,所述已标注中文文本的音频信息包括:包括唤醒词的音频信息以及不包括唤醒词的音频信息;
根据所述发音词典,将每条所述已标注中文文本的音频信息的对应的中文文本转换为音素序列;
提取每条所述已标注音素序列的音频信息的fbank特征,得到所述唤醒模型的训练样本;
利用所述训练样本对预设深度神经网络模型进行训练,得到所述音素识别模型。
可选的,所述预设深度神经网络模型包括七层,第一层为输入层,第一层的节点数为71,第二层到第七层节点数为20,第七层为输出层,第七层包括对数归一化模块。
可选的,所述对所述语音信号对应的音素序列与唤醒词的音素序列进行比较,根据比较结果,确定是否进行语音唤醒,包括:
判断所述语音信号对应的音素序列是否包含唤醒词的音素序列;
若不包含唤醒词的音素序列,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若包含唤醒词的音素序列,判断所述语音信号对应的音素序列中是否包含预设帧数的非唤醒词音素;
若包含预设帧数的非唤醒词音素,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若不包含预设帧数的非唤醒词音素,确定进行语音唤醒。
一种语音唤醒装置,包括:
fbank特征提取单元,用于在接收到语音信号的情况下,提取所述语音信号的fbank特征;
音素序列识别单元,用于将所述fbank特征输入预先训练得到的音素识别模型,得到所述语音信号对应的音素序列,所述音素识别模型为利用已标注音素序列的fbank特征训练样本对预设深度神经网络模型进行训练后得到的;
音素序列比较单元,用于对所述语音信号对应的音素序列与唤醒词的音素序列进行比较,根据比较结果,确定是否进行语音唤醒。
可选的,所述fbank特征提取单元,具体用于:
对所述语音信号进行分帧处理,得到多帧音频;
对每一帧音频进行预加重、添加汉明窗;
通过快速傅里叶变换,将预加重和添加汉明窗后的音频从时域转换为频域;
利用三角滤波器对频域音频进行处理,得到所述fbank特征。
可选的,所述装置还包括音素识别模型训练单元,具体用于:
获取多条已标注中文文本的音频信息与发音词典,所述已标注中文文本的音频信息包括:包括唤醒词的音频信息以及不包括唤醒词的音频信息;
根据所述发音词典,将每条所述已标注中文文本的音频信息的对应的中文文本转换为音素序列;
提取每条所述已标注音素序列的音频信息的fbank特征,得到所述唤醒模型的训练样本;
利用所述训练样本对预设深度神经网络模型进行训练,得到所述音素识别模型。
可选的,所述预设深度神经网络模型包括七层,第一层为输入层,第一层的节点数为71,第二层到第七层节点数为20,第七层为输出层,第七层包括对数归一化模块。
可选的,所述音素序列比较单元,具体用于:
判断所述语音信号对应的音素序列是否包含唤醒词的音素序列;
若不包含唤醒词的音素序列,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若包含唤醒词的音素序列,判断所述语音信号对应的音素序列中是否包含预设帧数的非唤醒词音素;
若包含预设帧数的非唤醒词音素,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若不包含预设帧数的非唤醒词音素,确定进行语音唤醒。
相对于现有技术,本发明的有益效果如下:
本发明公开的一种语音唤醒方法,利用fbank特征是根据人耳处理语音信号的方式提取的音频特征的优势,通过音素识别模型识别fbank特征,能得到更为准确的音素序列,在此基础上,对语音信号的音素序列与唤醒词的音素序列进行比较,根据比较结果能准确判断语音信号是否包含唤醒词方式,提高了语音唤醒的准确性,减少了误唤醒以及唤醒失败情况的发生,提升用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种语音唤醒方法的流程示意图;
图2为本发明实施例公开的一种提取语音信号的fbank特征的方法的流程示意图;
图3为本发明实施例公开的一种音素识别模型的训练方法的流程示意图;
图4为本发明实施例公开的一种预设深度神经网络模型的结构示意图;
图5为本发明实施例公开的一种时序音素比较方法的流程示意图;
图6为本发明实施例公开的一种语音唤醒装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明利用fbank特征是根据人耳处理语音信号的方式提取的音频特征的优势通过音素识别模型识别fbank特征,能得到更为准确的音素序列。并利用语音信号具有时序性的特点,对语音信号的音素序列与唤醒词的音素序列进行比较,根据比较结果能准确判断语音信号是否包含唤醒词方式,提高了语音唤醒的准确性。
具体的,本实施例公开了一种语音唤醒方法,应用于智能终端设备,如智能电视、智能音响、智能空调等,请参阅图1,本实施例公开的一种语音唤醒方法包括以下步骤:
s101:在接收到语音信号的情况下,提取所述语音信号的fbank特征;
具体的,请参阅图2,提取语音信号的fbank特征的方法如下:
s201:对语音信号进行分帧处理,得到多帧音频;
其中,512个采样点为一帧,每次移动160个采样点。
s202:对每一帧音频进行预加重、添加汉明窗;
音频预加重的方法如下:
yt+1=xt+1-α*xt
其中,xt表示t时刻采样点的数值;
y表示预加重后的采样点的值;
α为预加重系数,其范围为0.95到1。
音频第一个采样点不变。
汉明窗是语音识别中的添加窗,在每一帧音频中添加汉明窗的目的为防止后续傅里叶变换后边缘出现震荡的现象。
添加汉明窗的方法如下:
zn=yn*hn
其中,z表示添加汉明窗后的采样点;
y表示添加汉明窗前的采样点;
h表示加窗系数。
α=0.46;
n表示需要加窗的点的总数,n表示某一个采样点。
s203:通过快速傅里叶变换,将预加重和添加汉明窗后的音频从时域转换为频域;
s204:利用三角滤波器对频域音频进行处理,得到fbank特征。
具体的,首先通过以下公式将快速傅里叶变换后的频域音频转换为梅尔顿谱,而后将梅尔顿谱等分为71三角滤波器,再利用三角滤波器对频域音频进行处理,得到fbank特征。
s102:将所述fbank特征输入预先训练得到的音素识别模型,得到所述语音信号对应的音素序列,所述音素识别模型为利用已标注音素序列的fbank特征训练样本对预设深度神经网络模型进行训练后得到的;
请参阅图3,所述音素识别模型的训练方法如下:
s301:获取多条已标注中文文本的音频信息与发音词典,已标注中文文本的音频信息包括:包括唤醒词的音频信息以及不包括唤醒词的音频信息;
其中,唤醒词是根据需要预先设定的,如“你好小华”。
发音词典是根据语言的发音特征制作的词典,如“你好小华”的对应发音词典为“ni3hao3xiao3hua2”。
s302:根据发音词典,将每条已标注中文文本的音频信息的对应的中文文本转换为音素序列;
即将音频信息已标注的中文文本转换为因素序列,如将唤醒词的中文文本“你好小华”转换为“silni3hao3xiao3hua2sil”,其中,“sil”表示静音段。并对每一帧都做一标记,如第56-60帧,标记为“n”,第61-65帧标记为“i3”。
为了提高标记效率,上述标记过程通过已有的语音识别通用模型进行标记,在此不再赘述。
进一步,在通过已有的语音识别通用模型进行标记之后,通过抽查部分音频,人工进行标记纠错,以提高标记的准确性。
s303:提取每条已标注音素序列的音频信息的fbank特征,得到唤醒模型的训练样本;
提取音频信息的fbank特征的方法请参阅图2所示的方法,在此不再赘述。
s304:利用训练样本对预设深度神经网络模型进行训练,得到音素识别模型。
训练得到的因素识别模型对每一帧音频的fbank特征进行识别,得到每种因素的概率,将概率最高的因素作为该帧音频的因素。
预设深度神经网络模型的一种可选结构请参阅图4,该预设深度神经网络模型包括七层,第一层为输入层,第一层的节点数为71,第二层到第七层节点数为20,第七层为输出层,第七层包括对数归一化模块。
根据实际需要还可以对预设深度神经网络模型的结构进行修改,如修改网络层数、节点数等。
s103:对所述语音信号对应的音素序列与唤醒词的音素序列进行比较,根据比较结果,确定是否进行语音唤醒。
本实施例通过时序音素比较方法对语音信号对应的音素序列与唤醒词的音素序列进行比较。
请参阅图5,时序音素比较方法包括以下步骤:
s401:判断语音信号对应的音素序列是否包含唤醒词的音素序列;
若不包含唤醒词的音素序列,s402:确定语音信号不包含唤醒词,不进行语音唤醒;
若包含唤醒词的音素序列,s403:判断语音信号对应的音素序列中是否包含预设帧数的非唤醒词音素;
预设帧数可以为5帧,6帧等,在此不做具体限定。
若包含预设帧数的非唤醒词音素,s402:确定语音信号不包含唤醒词,不进行语音唤醒;
若不包含预设帧数的非唤醒词音素,s404:确定进行语音唤醒。
以唤醒词音素序列:音素1,音素2,音素3,...,音素10;非唤醒词音素,音素0为例,可以从音素10开始判断直到音素1,也可以从音素1开始判断直到音素10。以从音素10开始判断直到音素1为例:
保存3s的音素特征。
每次新来一帧音频,则根据该帧音频被音素识别模型识别后输出结果的概率得分判断是否为唤醒词最后一个音素10(前两个最大概率)。
若该帧为音素10,则判断上一帧是否为音素9。
若该帧为音素9,则判断上一帧是否是音素8或音素9或音素10。以此类推,直到音素1,或3s内全部数据都判断一遍。
若中间出现非需要音素,则跳过该音素。如上一帧的音素为音素6,则判断前一帧是否为音素5或音素6或音素7,但判断结果为非唤醒词音素0或其他非音素5\6\7,则跳过该帧,再判断下一帧。
每一种音素状态持续出现5帧以上,才被允许跳转到上一个唤醒词状态。
本实施例公开的一种语音唤醒方法,利用fbank特征是根据人耳处理语音信号的方式提取的音频特征的优势,通过音素识别模型识别fbank特征,能得到更为准确的音素序列,在此基础上,对语音信号的音素序列与唤醒词的音素序列进行比较,根据比较结果能准确判断语音信号是否包含唤醒词方式,提高了语音唤醒的准确性,减少了误唤醒以及唤醒失败情况的发生,提升用户体验。
基于上述实施例公开的一种语音唤醒方法,本实施例对应公开了一种语音唤醒装置,请参阅图6,该装置包括:
fbank特征提取单元100,用于在接收到语音信号的情况下,提取所述语音信号的fbank特征;
音素序列识别单元200,用于将所述fbank特征输入预先训练得到的音素识别模型,得到所述语音信号对应的音素序列,所述音素识别模型为利用已标注音素序列的fbank特征训练样本对预设深度神经网络模型进行训练后得到的;
音素序列比较单元300,用于对所述语音信号对应的音素序列与唤醒词的音素序列进行比较,根据比较结果,确定是否进行语音唤醒。
可选的,所述fbank特征提取单元100,具体用于:
对所述语音信号进行分帧处理,得到多帧音频;
对每一帧音频进行预加重、添加汉明窗;
通过快速傅里叶变换,将预加重和添加汉明窗后的音频从时域转换为频域;
利用三角滤波器对频域音频进行处理,得到所述fbank特征。
可选的,所述装置还包括音素识别模型训练单元,具体用于:
获取多条已标注中文文本的音频信息与发音词典,所述已标注中文文本的音频信息包括:包括唤醒词的音频信息以及不包括唤醒词的音频信息;
根据所述发音词典,将每条所述已标注中文文本的音频信息的对应的中文文本转换为音素序列;
提取每条所述已标注音素序列的音频信息的fbank特征,得到所述唤醒模型的训练样本;
利用所述训练样本对预设深度神经网络模型进行训练,得到所述音素识别模型。
可选的,所述预设深度神经网络模型包括七层,第一层为输入层,第一层的节点数为71,第二层到第七层节点数为20,第七层为输出层,第七层包括对数归一化模块。
可选的,所述音素序列比较单元300,具体用于:
判断所述语音信号对应的音素序列是否包含唤醒词的音素序列;
若不包含唤醒词的音素序列,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若包含唤醒词的音素序列,判断所述语音信号对应的音素序列中是否包含预设帧数的非唤醒词音素;
若包含预设帧数的非唤醒词音素,确定所述语音信号不包含唤醒词,不进行语音唤醒;
若不包含预设帧数的非唤醒词音素,确定进行语音唤醒。
本实施例公开的一种语音唤醒装置,利用fbank特征是根据人耳处理语音信号的方式提取的音频特征的优势,通过音素识别模型识别fbank特征,能得到更为准确的音素序列,在此基础上,对语音信号的音素序列与唤醒词的音素序列进行比较,根据比较结果能准确判断语音信号是否包含唤醒词方式,提高了语音唤醒的准确性,减少了误唤醒以及唤醒失败情况的发生,提升用户体验。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本申请。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。