一种语音唤醒方法、装置及计算机可读存储介质与流程

文档序号:21021181发布日期:2020-06-09 19:42阅读:171来源:国知局
一种语音唤醒方法、装置及计算机可读存储介质与流程

本发明属于信号处理领域,具体涉及一种语音唤醒方法、装置及计算机可读存储介质。



背景技术:

近些年随着语音助手的不断流行,行业内越来越迫切的需要一种芯片可以超低功耗的运行,进而在检测到声音的时候唤醒整个系统。

现有技术中,通常采用语音端点检测(voiceactivitydetection,简称vad)实现上述唤醒。语音端点检测可以连续声音信号中找出人声语音部分的起始点。简单的语音端点检测方法主要包括:首先基于固定窗口对语音信号进行分割,而后获取各语音信号的一个或多个特征,例如,全频带能量、低频带能量或过零率,并基于预设的算法以及上述多个特征来估计语音信号的端点。

近年来,端点检测算法的优化过程偏向于运算准确性的发展趋势,同时也带来越来越大的运算量,而智能设备却越来越倾向于轻型化发展趋势,因此,利用现有技术中的语音段点检测算法所得到的系统唤醒方法或装置过多的消耗了计算资源与硬件设备,难以找到一种以超低功耗运行的唤醒方法或装置。



技术实现要素:

针对上述现有语音端点检测算法越来越复杂,进一步导致难以找到一种以超低功耗运行的唤醒方法或装置这一问题,提出了一种语音唤醒方法、装置及计算机可读存储介质,其能基于较少的运算量与较少的硬件需求实现较高准确度的目标语音处理系统的语音唤醒。

依据本发明的第一方面,提供了一种语音唤醒方法,其特征在于,所述方法包括:

获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值;

若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

优选地,其中,所述计算所述当前帧语音信号的包络值包括:

对所述当前帧语音信号的短时能量执行第一运算操作,得到所述当前帧语音信号的包络值;

其中,对所述当前帧语音信号的短时能量执行第一运算操作至少包括对所述当前帧语音信号的短时能量执行开平方运算。

优选地,其中,所述根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值包括:

若所述当前帧语音信号为初始帧语音信号,则根据所述预设时间内获取的语音信号获取初始阈值,并将所述初始阈值设置为所述当前帧语音信号的所述第一实时阈值;

若所述当前帧语音信号为非初始帧语音信号,则根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值,以获取所述当前帧语音信号的所述第一实时阈值。

优选地,其中,所述根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值,以获取所述当前帧语音信号的所述第一实时阈值包括:

对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作以获取中间值;

判断所述中间值是否超过所述第二实时阈值,并根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值。

优选地,其中,对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作包括以下中的至少一种:

对所述当前帧语音信号的上一帧语音信号的包络值乘以第一预设系数;

对所述当前帧语音信号的上一帧语音信号的包络值加上第二预设系数。

优选地,其中,所述根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值包括:

若所述中间值超过所述第二实时阈值,则所述第一实时阈值大于所述第二实时阈值,对所述上一帧语音信号的所述第二实时阈值增加第三预设系数和/或乘以第四预设系数,从而得到所述当前帧语音信号的第一实时阈值;

若所述中间值未超过所述第二实时阈值,则所述第一实时阈值不大于所述第二实时阈值,对所述上一帧语音信号的第二实时阈值减去第五预设系数和/或乘以第六预设系数,从而得到所述当前帧语音信号的第一实时阈值。

优选地,其中,所述方法还包括:

响应于所述唤醒所述目标语音处理系统,控制所述目标语音处理系统进入预设时长的触发冷却期;

在所述触发冷却期内,所述目标语音处理系统不再被唤醒。

依据本发明的第二方面,还提供了一种语音唤醒装置,其特征在于,所述装置包括:

获取模块,用于获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

阈值模块,用于根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

判断模块,用于判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值;

唤醒模块,用于若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

优选地,其中,所述获取模块进一步用于:对所述当前帧语音信号的短时能量执行第一运算操作,得到所述当前帧语音信号的包络值;

其中,对所述当前帧语音信号的短时能量执行第一运算操作至少包括对所述当前帧语音信号的短时能量执行开平方运算。

优选地,其中,所述阈值模块进一步包括初始阈值模块与阈值更新模块,其中,

所述初始阈值模块用于,若所述当前帧语音信号为初始帧语音信号,则根据所述预设时间内获取的语音信号获取初始阈值,并将所述初始阈值设置为所述当前帧语音信号的所述第一实时阈值;

所述阈值更新模块用于,若所述当前帧语音信号为非初始帧语音信号,则根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值,以获取所述当前帧语音信号的所述第一实时阈值。

优选地,其中,所述阈值更新模块进一步用于:

对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作以获取中间值;

判断所述中间值是否超过所述第二实时阈值,并根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值。

优选地,其中,对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作包括以下中的至少一种:

对所述当前帧语音信号的上一帧语音信号的包络值乘以第一预设系数;

对所述当前帧语音信号的上一帧语音信号的包络值加上第二预设系数。

优选地,其中,所述根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值包括:

若所述中间值超过所述第二实时阈值,则所述第一实时阈值大于所述第二实时阈值,对所述上一帧语音信号的所述第二实时阈值增加第三预设系数和/或乘以第四预设系数,从而得到所述当前帧语音信号的第一实时阈值;

若所述中间值未超过所述第二实时阈值,则所述第一实时阈值不大于所述第二实时阈值,对所述上一帧语音信号的第二实时阈值减去第五预设系数和/或乘以第六预设系数,从而得到所述当前帧语音信号的第一实时阈值。

优选地,其中,所述装置还包括唤醒模块,用于:

响应于所述唤醒所述目标语音处理系统,控制所述目标语音处理系统进入预设时长的触发冷却期;

在所述触发冷却期内,所述目标语音处理系统不再被唤醒。

依据本发明的第三方面,还提供了一种语音唤醒装置,其特征在于,包括:

一个或者多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或者多个处理器执行时,使得所述一个或多个处理器实现:

获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值;

若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

依据本发明的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行如上所述的方法。

利用以上技术方案,通过控制目标语音处理系统在被唤醒后才运行可以降低系统功耗,此外,相较于现有技术应用于语音端点检测中的信号过零率等方式,本实施例通过采用信号包络值进行语音端点检测,且同时采用实时获取的阈值参数作为进行唤醒判定的参数,可以以较少的运算量实现较高准确度的语音端点检测。

应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举说明本发明的具体实施方式。

附图说明

通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的有点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:

图1为根据本发明一实施例的语音唤醒方法的流程示意图;

图2(a)为根据本发明一实施例的语音信号示意图;

图2(b)为根据本发明另一实施例的语音信号示意图;

图3为根据本发明另一实施例的语音唤醒方法的流程示意图;

图4为根据本发明又一实施例的语音唤醒方法的流程示意图;

图5为根据本发明一实施例的语音唤醒装置的示意图;

图6为根据本发明一实施例的语音唤醒装置的示意图;

图7为根据本发明一实施例的可读存储介质的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。

另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

图1示出了根据本发明一实施例的语音唤醒方法的流程示意图,下面结合图1具体描述本发明实施例所提供的语音唤醒方法:

s101:获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

具体地,上述获取当前帧语音信号包括:实时获取语音信号,并对该实时获取的语音信号进行加窗处理获取当前帧语音信号。

本领域技术人员可以理解的是,信号处理技术领域中,将一段时间区间内的高频信号的峰值点连线,就可以得到上方(正的)一条线和下方(负的)一条线,这两条线就叫包络面,包络面就是反映高频信号幅度变化的曲线,由于该曲线可以描述信号的外形,因此该包络面携带有用信息。上述两个包络面对称且包含的信息一致,因此本发明实施例中仅以处于上方的包络面为例进行描述。

具体地,若包络面上的值突然上升突破实时阈值,也即可以认为接收到了有用信号(非静音帧)。

s102:根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

具体地,上述第一实时阈值为实时获取的,除非获取的语音信号发生突变(也即接收到具有较高幅度的非静音帧语音信号时),上述第一实时阈值都尝试维持于包络面上方一定距离处。具体地,可以是根据当前帧语音信号之前的预设帧数内的语音信号获取的实时阈值,也可以是根据经验值预设上述实时阈值,在此不做限制。

具体地,上述预设时间内获取的语音信号包括在当前帧语音信号之前一段预设时间内所获取的语音信号。

s103:判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值。

s104:若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

具体地,上述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值时,也即当前帧语音信号为具有较高幅度的非静音帧语音信号时。

图2(a)示出了一段截取的语音信号时域波形,其中,横轴为时间轴,纵轴为信号幅度,波形a具体为实际获取的语音信号(也即每一帧语音信号的集合),波形b为实时阈值曲线(也即图中每一帧语音信号所对应的实时阈值的集合),a点、c点为波形a与波形b的明显交界点。从图中可以明确看出a点后附近与c点后附近的语音信号为有用信号,其余的语音信号为静音信号(或底噪信号)。

本发明实施例的基本思路在于,运行本实施例中所提供的超低功耗的语音唤醒装置以执行语音唤醒方法,其余语音处理系统处于非运行状态(例如,休眠状态),该语音唤醒方法设置一个尝试维持在包络面附近(大于包络值的一侧)的实时阈值,当获取的语音信号的包络面突然超过该实时阈值的时候,判断该语音信号为非静音帧,并向目标语音处理系统发送唤醒指令以唤醒目标语音处理系统进行后续的语音处理,由于一帧语音信号的时间通常为10ms~30ms,因此具有较快的唤醒速度。

本实施例通过控制目标语音处理系统在被唤醒后才运行可以降低系统功耗,此外,相较于现有技术应用于语音端点检测中的信号过零率等方式,本实施例通过采用信号包络值进行语音端点检测,且同时采用实时获取的阈值参数作为进行唤醒判定的参数,可以以较少的运算量实现较高准确度的语音端点检测。

图3示出了本发明实施例提供的另一个语音唤醒方法的流程图,以下结合图3对本发明实施例提供的另一语音唤醒方法进行详细描述。

s201:获取当前帧语音信号。

s202:对所述当前帧语音信号的短时能量执行第一运算操作,得到所述当前帧语音信号的包络值;

其中,对所述当前帧语音信号的短时能量执行第一运算操作至少包括对所述当前帧语音信号的短时能量执行开平方运算。

本领域技术人员可以理解的是,上述短时能量为常见的语音信号的特征值,可以对每帧语音信号进行信号幅值的平方运算后,再进行求平均运算获得,具体可以参见现有技术中短时能量特征的提取方案。

s203:获取所述当前帧语音信号的第一实时阈值,并判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的实时阈值。

s204:若所述当前帧语音信号的包络值超过所述当前帧语音信号的实时阈值,则唤醒所述目标语音处理系统。

其中,s201、s203以及s204的步骤内容分别与如上的s101、s102以及s103的步骤内容对应相同,在此不做赘述。

具体地,可以采用以下方式获取所述当前帧语音信号的包络值:

对获取的语音信号进行加窗分帧处理后,设第n帧语音信号的短时能量为en,则第n帧语音信号的包络值为对en开方值。

本实施例中采用短时能量的开方值进行端点检测的方法,相较于现有技术中直接使用短时能量进行端点检测的方法具有更低的误触发率。

此外,本实施例对获取包络值的方式并非采用传统式的小波变换或希尔伯特变换等复杂运算,而是通过至少对窗内的短时能量执行开方运算直接获取,由于在端点检测过程中无需对信号形状的细节进行详细分析,仅需要大致判断信号的幅度趋势即可,因此无需进行对信号包络进行详细求解。由此相较于前述实施例,本实施例中提供的获取当前帧语音信号的包络值的方法可以利用极少运算量与更少的硬件电路实现端点检测。

图4示出了本发明实施例提供的另一个语音唤醒方法的流程图,以下结合图4对本发明实施例提供的另一语音唤醒方法进行详细描述。

s301:获取当前帧语音信号,并计算所述当前帧语音信号的包络值。

s302:判断所述当前帧语音信号是否为初始帧语音信号。

s303:若所述当前帧语音信号为初始帧语音信号,则根据所述预设时间内获取的语音信号获取初始阈值,并将所述初始阈值设置为所述当前帧语音信号的所述第一实时阈值;

具体地,可以根据预设时间内获取的语音信号推测出一经验值,并根据经验值预设初始阈值,也即该初始阈值在经过若干次更新之后会逐渐收敛至包络面上方一位置,并且具有与包络面类似的波动趋势。

上述初始阈值会在经过若干次更新后收敛至包络面上方一位置,具体可参见图2(a)中a点之前的波形a与波形b的波动趋势,可以看出波形b维持于波形a上方一段距离处。其中,图2(a)中所示出的是一段截取的语音信号时域波形,其中,横轴为时间轴,纵轴为信号幅度,波形a具体为实际获取的语音信号(也即每一帧语音信号的集合),波形b为实时阈值曲线(也即图中每一帧语音信号所对应的实时阈值的集合),a点、c点为波形a与波形b的明显交界点。从图中可以明确看出a点后附近与c点后附近的语音信号为有用信号,其余的语音信号为静音信号(或底噪信号)。

可选地,若所述当前帧语音信号为初始帧语音信号,也可以默认当前语音帧为静音帧,并根据当前帧语音信号的包络值设置初始的第一实时阈值。具体地,可以将上述当前帧语音信号的包络值乘以预设系数e和/或加上预设系数f以获取第一实时阈值,其中,上述e大于1、f大于0。

例如,假设初始帧语音信号的包络值为g,预设系数e的值为2,预设系数f的值为3,且预设的关系式为:初始帧语音信号的第一实时阈值h=初始帧语音信号的包络值g×预设系数e+预设系数f。则上述初始帧语音信号的第一实时阈值h=g×2+3。

本实施例中,设置上述预设系数e、f的意义在于,为信号的小幅度波动预留出一定的波动空间,以防止误触发而导致误唤醒目标语音处理系统。同样的,该初始帧语音信号的实时阈值在经过若干次更新之后会逐渐收敛至包络面上方一位置,并且与包络面具类似的波动趋势(落后于包络面一帧语音信号的时间差)。

s304:若所述当前帧语音信号为非初始帧语音信号,则根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值以获取所述当前帧语音信号的所述第一实时阈值。

具体地,上述对实时阈值的更新过程也即利用上一帧语音信号的信号包络趋势预测下一帧语音信号的信号包络以获取自适应的实时阈值。

s305:判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的实时阈值。

s306:若所述当前帧语音信号的包络值超过所述当前帧语音信号的实时阈值,则唤醒所述目标语音处理系统。

其中,s301、s305以及s306的步骤内容分别与如上的s101、s102以及s103的步骤内容对应相同,在此不做赘述。

本实施例通过设置初始实时阈值并根据语音信号本身对实时阈值不断地进行更新以获取动态变换且自适应的实时阈值,相较于前述实施例,本实施例中的实时阈值为自适应的实时阈值,具有更高的准确性,因此当判别是否需要唤醒目标语音处理系统时(也即检测是否为语音端点)也具有更高的准确性。

在一实施例中,在执行上述s303:若所述当前帧语音信号为非初始帧语音信号,则根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值以获取所述当前帧语音信号的所述第一实时阈值时,可选地,可以采用如下方式:

首先,对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作以获取中间值;

其次,判断所述中间值是否超过所述第二实时阈值,并根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值。

进一步地,上述对当前帧语音信号的上一帧语音信号的包络值进行第二运算操作包括以下中的至少一种:

对所述当前帧语音信号的上一帧语音信号的包络值乘以第一预设系数;

对所述当前帧语音信号的上一帧语音信号的包络值加上第二预设系数。

具体地,上述第一预设系数大于1、上述第二预设系数大于0。例如,如图2(a)所描述,本发明实施例中,为了防止语音信号中的小幅度波动而导致的目标语音处理系统的误唤醒,设置的实时阈值(a线)通常要比实际的语音信号包络值(b线)要高出一段距离。因此,可以通过在进行实时阈值的更新过程中设置上述第一预设系数和/或第二预设系数以实现上述预留的波动空间。相应的,在通过信号包络判断语音信号的幅度处于上升状态还是下降状态时,可以通过上述第一预设系数与第二预设系数对信号包络进行处理后再进行判断。

进一步地,上述根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值包括:

若所述中间值超过所述第二实时阈值,则所述第一实时阈值大于所述第二实时阈值,对所述上一帧语音信号的所述第二实时阈值增加第三预设系数和/或乘以第四预设系数,从而得到所述当前帧语音信号的第一实时阈值;

若所述中间值未超过所述第二实时阈值,则所述第一实时阈值不大于所述第二实时阈值,对所述上一帧语音信号的第二实时阈值减去第五预设系数和/或乘以第六预设系数,从而得到所述当前帧语音信号的第一实时阈值。

例如,假设:第n帧语音信号的包络值为p,第n帧语音信号的第n实时阈值为q,对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作为上述对所述当前帧语音信号的上一帧语音信号的包络值乘以第一预设系数,且第一预设系数为2。

由此,若要计算第n+1帧语音信号的第n+1实时阈值,首先需要判断p×2与q之间的大小。

进一步地,方法还包括:

①若p×2>q,则可以采用预设的增长函数对第n实时阈值进行更新以获取第n+1实时阈值。

具体地,上述预设的增长函数可以是:预设一系数k1(第三预设系数),则第n+1实时阈值可以是q+k1。

②若p×2<q,则可以采用预设的衰减函数对第n实时阈值进行更新以获取第n+1实时阈值。

具体地,上述预设的衰减函数可以是:预设一系数k2(第四预设系数),则第n+1实时阈值可以是q-k2。

本实施例中,上述第一预设系数至第六预设系数的选取可以根据实际情况具体设置或组合,本实施例仅以上述预设系数为例,但不限于此。

本实施例通过采用极为简单的函数就可以将实时阈值控制于包络面上方一定位置,相较于前述实施例,本实施例中所采用的实时阈值的更新方法对于硬件的需求更少,具体来说,仅需要加法器与移位电路就可以实现。

在一实施例中,本发明实施例提供的语音唤醒方法进一步可以包括:

响应于所述唤醒所述目标语音处理系统,控制所述目标语音处理系统进入预设时长的触发冷却期;

在所述触发冷却期内,所述目标语音处理系统不再被唤醒。

例如,图2(b)示出了一段截取的语音信号时域波形,其中,横轴为时间轴,纵轴为信号幅度,波形a具体为实际获取的语音信号(也即每一帧语音信号的集合),波形b为实时阈值曲线(也即图中每一帧语音信号所对应的实时阈值的集合),a点、c点为波形a与波形b的明显交界点,b点、d点为触发冷却期的结束点。从图中可以明确看出a点后附近与c点后附近的语音信号为有用信号,其余的语音信号为静音信号(或底噪信号)。

其中,a点至b点,以及c点至d点之间均为触发冷却期。此外,a点之前、b点至c点以及d点之后均为可触发唤醒的期间。

本领域技术人员可以理解的是,正常的有用语音信号(非静音帧语音信号)通常包括几帧到几十帧,因此,在接收到第一帧非静音帧语音信号之后仍然会接不断收到超过实时阈值的语音信号,进一步不断地执行触发唤醒目标语音处理系统(表现形式可以是不断地向目标语音处理系统发送唤醒指令)。相较于前述实施例,本实施例通过设置上述触发冷却期可以防止目标语音处理系统在被唤醒之后被重复执行唤醒。

上述目标语音处理系统在被唤醒后执行预设的语音信号处理过程,并可以在对连续多帧语音信号进行分析之后,在判断当前帧语音信号为静音帧之后自动进入休眠状态,等待下一次被唤醒。具体地,本领域技术人员可以理解的是,上述目标语音处理系统进入休眠状态的方法可参考现有技术,也可以其由目标语音处理系统自行分析后决定,在此不再赘述。

图5示出了本发明实施例提供的语音唤醒装置500,下面结合图5详细描述用于实现上述语音唤醒方法的语音唤醒装置500,该语音唤醒装置500包括:

获取模块501,用于获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

具体地,上述获取当前帧语音信号包括:实时获取语音信号,并对该实时获取的语音信号进行加窗处理获取当前帧语音信号。

本领域技术人员可以理解的是,信号处理技术领域中,将一段时间区间内的高频信号的峰值点连线,就可以得到上方(正的)一条线和下方(负的)一条线,这两条线就叫包络面,包络面就是反映高频信号幅度变化的曲线,由于该曲线可以描述信号的外形,因此该包络面携带有用信息。上述两个包络面对称且包含的信息一致,因此本发明实施例中仅以处于上方的包络面为例进行描述。

具体地,若包络面上的值突然上升突破实时阈值,也即可以认为接收到了有用信号(非静音帧)。

阈值模块502,用于根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

具体地,上述第一实时阈值为实时获取的,除非获取的语音信号发生突变(也即接收到具有较高幅度的非静音帧语音信号时),上述第一实时阈值都尝试维持于包络面上方一定距离处。具体地,可以是根据当前帧语音信号之前的预设帧数内的语音信号获取的实时阈值,也可以是根据经验值预设上述实时阈值,在此不做限制。

具体地,上述预设时间内获取的语音信号包括在当前帧语音信号之前一段预设时间内所获取的语音信号。

判断模块503,用于判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值。

唤醒模块504,用于若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

具体地,上述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值时,也即当前帧语音信号为具有较高幅度的非静音帧语音信号时。

图2(a)示出了一段截取的语音信号时域波形,其中,横轴为时间轴,纵轴为信号幅度,波形a具体为实际获取的语音信号(也即每一帧语音信号的集合),波形b为实时阈值曲线(也即图中每一帧语音信号所对应的实时阈值的集合),a点、c点为波形a与波形b的明显交界点。从图中可以明确看出a点后附近与c点后附近的语音信号为有用信号,其余的语音信号为静音信号(或底噪信号)。

本发明实施例的基本思路在于,运行本实施例中所提供的超低功耗的语音唤醒装置以执行语音唤醒方法,其余语音处理系统处于非运行状态(例如,休眠状态),该语音唤醒方法设置一个尝试维持在包络面附近(大于包络值的一侧)的实时阈值,当获取的语音信号的包络面突然超过该实时阈值的时候,判断该语音信号为非静音帧,并向目标语音处理系统发送唤醒指令以唤醒目标语音处理系统进行后续的语音处理,由于一帧语音信号的时间通常为10ms~30ms,因此具有较快的唤醒速度。

本实施例通过控制目标语音处理系统在被唤醒后才运行可以降低系统功耗,此外,相较于现有技术应用于语音端点检测中的信号过零率等方式,本实施例通过采用信号包络值进行语音端点检测,且同时采用实时获取的阈值参数作为进行唤醒判定的参数,可以以较少的运算量实现较高准确度的语音端点检测。

优选地,其中,所述获取模块进一步用于:对所述当前帧语音信号的短时能量执行第一运算操作,得到所述当前帧语音信号的包络值;

其中,对所述当前帧语音信号的短时能量执行第一运算操作至少包括对所述当前帧语音信号的短时能量执行开平方运算。

优选地,其中,所述阈值模块进一步包括初始阈值模块与阈值更新模块,其中,

所述初始阈值模块用于,若所述当前帧语音信号为初始帧语音信号,则根据所述预设时间内获取的语音信号获取初始阈值,并将所述初始阈值设置为所述当前帧语音信号的所述第一实时阈值;

所述阈值更新模块用于,若所述当前帧语音信号为非初始帧语音信号,则根据预设规则更新所述当前帧语音信号的上一帧语音信号的第二实时阈值,以获取所述当前帧语音信号的所述第一实时阈值。

优选地,其中,所述阈值更新模块进一步用于:

对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作以获取中间值;

判断所述中间值是否超过所述第二实时阈值,并根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值。

优选地,其中,对所述当前帧语音信号的上一帧语音信号的包络值进行第二运算操作包括以下中的至少一种:

对所述当前帧语音信号的上一帧语音信号的包络值乘以第一预设系数;

对所述当前帧语音信号的上一帧语音信号的包络值加上第二预设系数。

优选地,其中,所述根据判断结果对所述第二实时阈值进行更新以获取所述第一实时阈值包括:

若所述中间值超过所述第二实时阈值,则所述第一实时阈值大于所述第二实时阈值,对所述上一帧语音信号的所述第二实时阈值增加第三预设系数和/或乘以第四预设系数,从而得到所述当前帧语音信号的第一实时阈值;

若所述中间值未超过所述第二实时阈值,则所述第一实时阈值不大于所述第二实时阈值,对所述上一帧语音信号的第二实时阈值减去第五预设系数和/或乘以第六预设系数,从而得到所述当前帧语音信号的第一实时阈值。

优选地,其中,所述装置还包括唤醒模块,用于:

响应于所述唤醒所述目标语音处理系统,控制所述目标语音处理系统进入预设时长的触发冷却期;

在所述触发冷却期内,所述目标语音处理系统不再被唤醒。

如图6所示,本发明还提供了一种语音唤醒装置6。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为设备、方法或计算机可读存储介质。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“设备”。

在一些可能的实施方式中,本发明的语音唤醒检测装置可以至少包括一个或多个处理器、以及至少一个存储器。其中,所述存储器存储有程序,当所述程序被所述处理器执行时,使得所述处理器执行如图:1所示的步骤:

s101:获取当前帧语音信号,并计算所述当前帧语音信号的包络值;

s102:根据预设时间内获取的语音信号计算所述当前帧语音信号的第一实时阈值;

s103:判断所述当前帧语音信号的包络值是否超过所述当前帧语音信号的第一实时阈值;

s104:若所述当前帧语音信号的包络值超过所述当前帧语音信号的第一实时阈值,则唤醒目标语音处理系统。

此外,尽管附图中未示出,但本发明的所述程序被所述处理器执行时,还使得所述处理器执行上述示例性方法中描述的其他操作或步骤。

下面参照图6来描述根据本发明的这种实施方式的用于语音唤醒的设备6。图6显示的设备6仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,设备6可以以通用计算设备的形式表现,包括但不限于:至少一个处理器10、至少一个存储器20、连接不同设备组件的总线60。

总线60包括数据总线、地址总线和控制总线。

存储器20可以包括易失性存储器,例如随机存取存储器(ram)21和/或高速缓存存储器22,还可以进一步包括只读存储器(rom)23。

存储器20还可以包括程序模块24,这样的程序模块24包括但不限于:操作设备、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

设备6还可以与一个或多个外部设备2(例如键盘、指向设备、蓝牙设备等)通信,也可与一个或者多个其他设备进行通信。这种通信可以通过输入/输出(i/o)接口40进行,并在显示单元30上进行显示。并且,设备6还可以通过网络适配器50与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器50通过总线60与设备6中的其它模块通信。应当明白,尽管图中未示出,但可以结合设备6使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid设备、磁带驱动器以及数据备份存储设备等。

如图7所示,本发明还提供了一种计算机可读存储介质的形式,其包括程序代码,当所述程序代码在被处理器执行时,所述程序代码用于使所述处理器执行上面描述的方法。

上面描述的方法包括了上面的附图中示出和未示出的多个操作和步骤,这里将不再赘述。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的设备、设备或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图7所示,描述了根据本发明的实施方式的计算机可读存储介质70,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的计算机可读存储介质不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行设备、设备或者器件使用或者与其结合使用。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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