一种唤醒模型生成方法、智能终端唤醒方法及装置
技术领域
本发明涉及数据安全技术领域,特别涉及一种唤醒模型生成方法、智能终端唤醒方法及装置。
背景技术
目前,语音唤醒的应用领域比较广泛,例如机器人、手机、可穿戴设备、智能家居、车载等。不同的智能终端会有不同的唤醒词,当用户说出特定的唤醒词,能够使智能终端从待机状态切换到工作状态,只有快速、精准地完成状态的切换,用户才能近乎无感知地直接使用智能终端的其他功能,因此,提高唤醒效果至关重要。
现有技术中,对智能终端进行唤醒主要采用基于神经网络的唤醒技术。在数据准备阶段,需要人工将正样本数据统一截取到固定时间长度t,且录制唤醒词的时长不能超过该时间长度t,这样会极大地增加人力成本,并且对语速较慢的唤醒语音无法识别;另外,由于唤醒词的时间可能较短,导致对神经网络的训练不足,最终对智能终端唤醒效果造成影响;此外,在终端唤醒阶段,由于神经网络每次都需要处理终端内存中的时间长度t的音频,这样相邻两个时间长度t之间就会有大量的重复数据需要处理,从而增加了终端的计算时间和功耗。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一,为此本发明提供一种唤醒模型生成方法、智能终端唤醒方法及装置。
本发明实施例提供的具体技术方案如下:
第一方面,提供了一种唤醒模型生成方法,所述方法包括:
对样本音频集合中的唤醒词音频所包含的每个唤醒词的起止时间进行标注,得到标注后的唤醒词音频,其中,所述唤醒词音频的时间长度不固定;
利用包含背景噪声的负样本音频对标注后的所述唤醒词音频进行加噪,得到正样本音频;
从所述正样本音频和所述负样本音频中分别提取多个音频帧特征,并对所述正样本音频和所述负样本音频进行帧标签的标注,获得多个音频训练样本;
使用所述多个音频训练样本对循环神经网络进行训练,生成唤醒模型。
进一步地,所述对样本音频集合中的唤醒词音频所包含的每个唤醒词的起止时间进行标注,得到标注后的唤醒词音频,包括:
识别所述唤醒词音频中的仅包含所述唤醒词的至少一个关键音频段;
根据各个所述关键音频段各自的起止时间,分别标注每个所述唤醒词的起止时间,得到所述标注音频。
进一步地,所述利用包含背景噪声的负样本音频对标注后的所述唤醒词音频进行加噪,得到正样本音频,包括:
从所述负样本音频中截取与标注后的所述唤醒词音频的时长相同的负样本音频段;
对所述负样本音频段的振幅均值进行调整,利用调整后的所述负样本音频段对所述标注音频进行混合加噪,得到所述正样本音频。
进一步地,所述帧标签包括正标签、负标签和中间标签,所述对所述正样本音频和所述负样本音频进行帧标签的标注,获得多个音频训练样本,包括:
针对所述正样本音频的每个音频帧,判断所述音频帧的部分或全部是否落入任一唤醒词的起止时间段内,若判断为是,则将所述音频帧标记为中间标签;
若判断为否,则判断所述音频帧的前一个音频帧是否落入任一所述唤醒词的起止时间段内,且所述音频帧首次不包含唤醒词的结束时间,若是,则将所述音频帧标记为正标签,否则,则将所述音频帧标记为负标签;
针对所述负样本音频的每个音频帧,将所述音频帧标记为负标签。
第二方面,提供了一种智能终端唤醒方法,所述方法包括:
智能终端获取当前时刻的实时音频;
从所述实时音频中提取多个音频帧特征;
将提取到的多个音频帧特征依次输入到预先部署的唤醒模型中,并结合所述唤醒模型前一个时刻保存的状态进行计算,以获得所述实时音频中是否包含唤醒词的唤醒结果;
其中,所述唤醒模型为利用第一方面所述的唤醒模型生成方法生成的。
第三方面,提供了一种唤醒模型生成装置,所述装置包括:
第一标注模块,用于对样本音频集合中的唤醒词音频所包含的每个唤醒词的起止时间进行标注,得到标注后的唤醒词音频,其中,所述唤醒词音频的时间长度不固定;
加噪处理模块,用于利用包含背景噪声的负样本音频对标注后的所述唤醒词音频进行加噪,得到正样本音频;
特征提取模块,用于从所述正样本音频和所述负样本音频中分别提取多个音频帧特征;
第二标注模块,用于对所述正样本音频和所述负样本音频进行帧标签的标注,获得多个音频训练样本;
模型生成模块,用于使用所述多个音频训练样本对循环神经网络进行训练,生成唤醒模型。
进一步地,所述第一标注模块具体用于:
识别所述唤醒词音频中的仅包含所述唤醒词的至少一个关键音频段;
根据各个所述关键音频段各自的起止时间,分别标注每个所述唤醒词的起止时间,得到所述标注音频。
进一步地,所述加噪处理模块具体用于:
从所述负样本音频中截取与标注后的所述唤醒词音频的时长相同的负样本音频段;
对所述负样本音频段的振幅均值进行调整,利用调整后的所述负样本音频段对所述标注音频进行混合加噪,得到所述正样本音频。
进一步地,所述帧标签包括正标签、负标签和中间标签,所述第二标注模块具体用于:
针对所述正样本音频的每个音频帧,判断所述音频帧的部分或全部是否落入任一唤醒词的起止时间段内,若判断为是,则将所述音频帧标记为中间标签;
若判断为否,则判断所述音频帧的前一个音频帧是否落入任一所述唤醒词的起止时间段内,且所述音频帧首次不包含唤醒词的结束时间,若是,则将所述音频帧标记为正标签,否则,则将所述音频帧标记为负标签;
针对所述负样本音频的每个音频帧,将所述音频帧标记为负标签。
第四方面,提供了一种智能终端唤醒装置,所述装置包括:
音频获取模块,用于智能终端获取当前时刻的实时音频;
特征提取模块,用于从所述实时音频中提取多个音频帧特征;
模型识别模块,用于将提取到的多个音频帧特征依次输入到预先部署的唤醒模型中,并结合所述唤醒模型前一个时刻保存的状态进行计算,以获得所述实时音频中是否包含唤醒词的唤醒结果;
其中,所述唤醒模型为利用第一方面所述的唤醒模型生成方法生成的。
本发明实施例提供的技术方案带来的有益效果是:
1、由于唤醒词音频的时间长度不固定,利用唤醒词音频作为变长输入数据进行循环神经网络RNN的训练,从而避免了手工截取数据,减少人工处理数据流程,节约了人力成本,且对语速较慢的唤醒语音也能够识别;
2、由于样本音频集合中可以包含长音频,能够实现不间断地训练RNN,从而提高唤醒词的识别精度,有利于提高智能终端的唤醒效果;
3、在终端唤醒过程中,对于新加入终端内存的每一帧音频,无需重复计算旧数据,减小了终端的计算时间和功耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提供的一种唤醒模型生成方法的流程示意图;
图2示出了本发明实施例提供的唤醒词的起止时间标注示意图;
图3示出了本发明实施例提供的MFCC特征向量获取示意图;
图4示出了本发明实施例提供的帧标签的标注示意图;
图5示出了本发明实施例提供的一种智能终端唤醒方法的流程示意图;
图6a示出了本发明实施例提供的t=1时终端内存中的唤醒过程示意图;
图6b示出了本发明实施例提供的t=M时终端内存中的唤醒过程示意图;
图7示出了本发明实施例提供的一种唤醒模型生成装置的结构示意图;
图8示出了本发明实施例提供的一种智能终端唤醒装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
实施例一
本发明实施例提供了一种唤醒模型生成方法,该方法可以应用于服务器中,如图1所示,该方法可以包括步骤:
101,对样本音频集合中的唤醒词音频所包含的每个唤醒词的起止时间进行标注,得到标注后的唤醒词音频,其中,唤醒词音频的时间长度不固定。
其中,样本音频集合中包含多个唤醒词音频,各个唤醒词音频均包含至少一个唤醒词。具体实现时,可以在安静的环境下,录制包含唤醒词的多个唤醒词音频,其中,在录制一个唤醒词音频时,相邻的唤醒词之间需保留一定的时间间隔,各个唤醒词的内容均相同,例如“小biu小biu”。在本实施例中,每个唤醒词音频的时间长度大致为几秒到几分钟,唤醒词的时间长度大致为1秒左右。
具体地,识别唤醒词音频中的仅包含唤醒词的至少一个关键音频段,根据各个关键音频段各自的起止时间,分别标注每个唤醒词的起止时间,得到标注音频。在具体实施时,可以通过人工的方式在服务器上为唤醒词音频中的每个唤醒词进行标注起止时间,得到标注后的唤醒词音频。
其中,起止时间包括开始时间和结束时间,对唤醒词进行开始时间结束时刻的标注,例如,可以startN和endN分别作为第N个唤醒词的开始时间和结束时间如图2所示,图2示出了本发明实施例提供的唤醒词的起止时间标注示意图,其中,黑色部分表示为唤醒词。
102,利用包含背景噪声的负样本音频对标注后的唤醒词音频进行加噪,得到正样本音频。
其中,可以预先录制不同场景下的背景噪声,得到负样本音频,这里不同场景下可以是各种场景,例如,播放电视时的场景、做饭时的场景或其他场景等。
具体地,从负样本音频中截取与标注后的唤醒词音频的时长相同的负样本音频段,对负样本音频段的振幅均值进行调整,利用调整后的负样本音频段对标注音频进行混合加噪,得到正样本音频。
在具体实施时,可以先将负样本音频段的振幅均值调整为等于标注音频的振幅均值,然后再将负样本音频段的振幅均值降低到该振幅均值的预设百分比,其中,该预设百分比可以介于5%至10%之间。
本实施例中,为扩增正样本音频数据集,可以使用N个负样本音频对M个唤醒词音频中的每一个唤醒词音频进行加噪,得到N*M个正样本音频。
103,从正样本音频和负样本音频中分别提取多个音频帧特征,并对正样本音频和负样本音频进行帧标签的标注,获得多个音频训练样本。
具体地,从正样本音频和负样本音频中分别提取多个音频帧特征,该过程可以包括:
从正样本音频的每个音频帧中以及负样本音频的每个音频帧中分别提取多个音频帧特征,生成正样本音频的特征频谱图和负样本音频的特征频谱图,其中,音频帧特征具体可以为梅尔频率倒谱系数特征,特征频谱图为梅尔倒频谱图,也即梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC)的谱图,梅尔倒频谱中的每个特征向量表示每个音频帧的MFCC特征向量。
图3示出了本发明实施例提供的MFCC特征向量获取示意图。如图3所示,针对每一个正样本音频以及每一个负样本音频,可以分别以预设的窗口宽度W、移动步长S以及梅尔频率倒谱系数CMel,计算梅尔频率倒谱系数特征,生成梅尔倒频谱图。
具体地,对正样本音频和负样本音频进行帧标签的标注,其中,帧标签包括正标签、负标签和中间标签,该过程可以包括:
针对正样本音频的每个音频帧,判断音频帧的部分或全部是否落入任一唤醒词的起止时间段内,若判断为是,则将音频帧标记为中间标签;若判断为否,则判断音频帧的前一个音频帧是否落入任一唤醒词的起止时间段内,且音频帧首次不包含唤醒词的结束时间,若是,则将音频帧标记为正标签,否则,则将音频帧标记为负标签;针对负样本音频的每个音频帧,将音频帧标记为负标签。
本实施例中,正标签、负标签和中间标签可以分别表示为“Positive”、“Negative”、“Middle”或者“1”、“-1”、“0”。
图4示出了本发明实施例提供的帧标签的标注示意图。如图4所示,假设窗口的开始时间记为t,窗口宽度为w,对于正样本音频的每个音频帧,若该音频帧落入任一唤醒词的起止时间段外,则将该音频帧标记为“Negative”,即:(endN-1<t)&&(t+w<startN);若该音频帧的部分或全部落入任一唤醒词的起止时间段内,则将该音频帧标记为“Middle”,即:(startN<t+w)&&(t<endN);若该音频帧的前一个音频帧落入任一唤醒词的起止时间段内,且该音频帧首次不包含唤醒词的结束时间,即:(endN≤t)&&(t-1<endN),则将该音频帧标记为“Positive”。
可以理解的是,将负样本音频的每个音频帧均标记为“Negative”。
104,使用多个音频训练样本对循环神经网络进行训练,生成唤醒模型。
具体地,针对每一个音频训练样本的第N个音频帧,将该音频帧的帧特征作为循环神经网络的输入层t时刻的输入数据,将该音频帧的帧标签作为循环神经网络的输出层t时刻的输出结果,并结合循环神经网络的隐层t时刻的上一时刻的状态值St-1,计算循环神经网络的隐层t时刻的状态值St,依次计算得到循环神经网络的隐层的各个时刻的状态值,生成唤醒模型。
需要说明的是,本发明实施例在生成唤醒模型后,可以将该唤醒模型部署到智能终端上,以便利用该唤醒模型对智能终端进行唤醒处理。
本发明实施例提供了一种唤醒模块生成方法,由于唤醒词音频的时间长度不固定,利用唤醒词音频作为变长输入数据进行循环神经网络RNN的训练,从而避免了手工截取数据,节约了人力成本,且对语速较慢的数据也能够识别;同时,由于样本音频集合中可以包含长音频,能够实现不间断地训练RNN,从而提高唤醒词的识别精度,有利于提高智能终端的唤醒效果。
实施例二
本发明实施例提供了一种智能终端唤醒方法,该方法可以应用于智能终端中,该智能终端预先部署有基于上述实施例一中的唤醒模型生成方法所生成的唤醒模型,如图5所示,该方法可以包括步骤:
501,智能终端获取当前时刻的实时音频。
具体地,智能终端可以利用麦克风采集场景中当前时刻的实时音频。其中,智能终端包括但不限于机器人、智能手机、可穿戴设备、智能家居、车载终端等。
502,从实时音频中提取多个音频帧特征。
具体地,以预设的窗口宽度W、移动步长S以及梅尔频率倒谱系数CMel,从实时音频的每一个音频帧中分别提取梅尔频率倒谱系数特征,得到多个音频帧特征。
进一步地,为提高唤醒词的识别精度,提高唤醒效果,在执行步骤202之前,本发明实施例提供的方法还可以包括:
对当前时刻的实时音频进行预处理,其中,预处理包括但不限于回声消除和降噪处理。
503,将提取到的多个音频帧特征依次输入到预先部署的唤醒模型中,并结合唤醒模型前一个时刻保存的状态进行计算,以获得实时音频中是否包含唤醒词的唤醒结果。
具体地,按照提取到的多个音频帧特征对应在实时音频中的时序,将各个音频帧特征依次输入唤醒模型中,结合唤醒模型前一个时刻保存的状态进行计算,根据唤醒模型的输出结果,获得当前时刻的实时音频的多个音频帧分别对应的帧标签以及唤醒模型当前时刻的状态,保存唤醒模型当前时刻的状态,并根据多个音频帧分别对应的帧标签,获取实时音频中是否包含唤醒词的唤醒结果,其中,当多个音频帧分别对应的帧标签中包含正标签时,则确定实时音频中包含唤醒词。
下面结合图6a至图6b对本发明实施例的智能终端唤醒方法作进一步说明。
假设智能终端的内存每次只能存储N帧数据,如图6a所示,在智能终端首次上电时,将t=1时刻的实时音频加载到内存,唤醒模型中的RNN网络前一个时刻的状态S0为0,需要将t=1时刻的实时音频特征输入唤醒模型的RNN网络中,得到t=1时RNN网络中的状态S1,并输出识别结果。如图6b所示,在智能终端上电后的任意时刻,假设t=M,其中M大于1,只需要将t=M时新加入内存的实时音频帧特征输入到唤醒模型的RNN网络中,结合RNN网络上一时刻保存的状态SM-1进行计算,而不需要重复计算内存中所有的数据。
本实施例中,由于目前智能终端大多采用低端芯片,终端内存的容量有限,而现有技术中,在终端唤醒阶段,由于神经网络每次都需要处理终端内存中的时间长度t的音频,这样相邻两个时间长度t之间就会有大量的重复数据需要处理,导致增加了终端的计算时间和功耗。本发明利用变长输入的RNN唤醒模型进行判断实时音频中是否包含唤醒词,无需重复计算旧数据,由此减小了计算量,加快了处理速度,降低功耗。
实施例三
作为对上述实施例一提供的唤醒模型生成方法的实现,本发明实施例提供了一种唤醒模型生成装置,如图7所示,该装置包括:
第一标注模块71,用于对样本音频集合中的唤醒词音频所包含的每个唤醒词的起止时间进行标注,得到标注后的唤醒词音频,其中,唤醒词音频的时间长度不固定;
加噪处理模块72,用于利用包含背景噪声的负样本音频对标注后的唤醒词音频进行加噪,得到正样本音频;
特征提取模块73,用于从正样本音频和负样本音频中分别提取多个音频帧特征;
第二标注模块74,用于对正样本音频和负样本音频进行帧标签的标注,获得多个音频训练样本;
模型生成模块75,用于使用多个音频训练样本对循环神经网络进行训练,生成唤醒模型。
进一步地,第一标注模块71具体用于:
识别唤醒词音频中的仅包含唤醒词的至少一个关键音频段;
根据各个关键音频段各自的起止时间,分别标注每个唤醒词的起止时间,得到标注音频。
进一步地,加噪处理模块72具体用于:
从负样本音频中截取与标注后的唤醒词音频的时长相同的负样本音频段;
对负样本音频段的振幅均值进行调整,利用调整后的负样本音频段对标注音频进行混合加噪,得到正样本音频。
进一步地,帧标签包括正标签、负标签和中间标签,第二标注模块74具体用于:
针对正样本音频的每个音频帧,判断音频帧的部分或全部是否落入任一唤醒词的起止时间段内,若判断为是,则将音频帧标记为中间标签;
若判断为否,则判断音频帧的前一个音频帧是否落入任一唤醒词的起止时间段内,且音频帧首次不包含唤醒词的结束时间,若是,则将音频帧标记为正标签,否则,则将音频帧标记为负标签;
针对负样本音频的每个音频帧,将音频帧标记为负标签。
本发明实施例提供的唤醒模型生成装置,与本发明实施例一所提供的唤醒模型生成方法属于同一发明构思,可执行本发明任意实施例所提供的唤醒模型生成方法,具备执行唤醒模型生成方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明实施例提供的唤醒模型生成方法,此处不再加以赘述。
实施例四
作为对上述实施例二提供的智能终端唤醒方法的实现,本发明实施例提供了一种智能终端唤醒装置,如图8所示,该装置包括:
音频获取模块81,用于智能终端获取当前时刻的实时音频;
特征提取模块82,用于从实时音频中提取多个音频帧特征;
模型识别模块83,用于将提取到的多个音频帧特征依次输入到预先部署的唤醒模型中,并结合唤醒模型前一个时刻保存的状态进行计算,以获得实时音频中是否包含唤醒词的唤醒结果;
其中,唤醒模型为利用实施例一中的唤醒模型生成方法生成的。
进一步地,为提高唤醒词的识别精度,提高唤醒效果,该装置还可以包括:
预处理模块,用于对当前时刻的实时音频进行预处理,其中,预处理包括但不限于回声消除和降噪处理。
特征提取模块82,还用于从预处理后的实时音频中提取多个音频帧特征。
本发明实施例提供的智能终端唤醒装置,与本发明实施例二所提供的智能终端唤醒方法属于同一发明构思,可执行本发明任意实施例所提供的智能终端唤醒方法,具备执行业务请求处理方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明实施例提供的智能终端唤醒方法,此处不再加以赘述。
此外,本发明另一实施例还提供了一种计算机设备,包括:
一个或者多个处理器;
存储器;
存储在存储器中的程序,当被一个或者多个处理器执行时,程序使处理器执行如上述实施例所述的唤醒模型生成方法的步骤。
此外,本发明另一实施例还提供了一种计算机设备,包括:
一个或者多个处理器;
存储器;
存储在存储器中的程序,当被一个或者多个处理器执行时,程序使处理器执行如上述实施例所述的智能终端唤醒方法的步骤。
此外,本发明另一实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被处理器执行时,使得处理器执行如上述实施例所述的唤醒模型生成方法的步骤。
此外,本发明另一实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被处理器执行时,使得处理器执行如上述实施例所述的智能终端唤醒方法的步骤。
本领域内的技术人员应明白,本发明实施例中的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例中是参照根据本发明实施例中实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个liuc流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。