语音唤醒方法和装置与流程

文档序号:18263080发布日期:2019-07-27 08:49阅读:547来源:国知局
语音唤醒方法和装置与流程

本申请涉及语音识别技术领域,尤其涉及一种语音唤醒方法和装置。



背景技术:

目前语音唤醒技术,通常是将采集的音频数据经过信号处理后,通过音频数据传输链路发送给应用程序(application,简称app),进而app调用唤醒算法,对处理后的音频数据进行唤醒检测,根据检测结果对app进行唤醒控制。

然而这种唤醒方式,唤醒时延较长。



技术实现要素:

本申请提出一种语音唤醒方法和装置,以实现提升语音唤醒效率,降低唤醒时延。

本申请第一方面实施例提出了一种语音唤醒方法,包括:

通过电子设备的音视频硬件抽象层接口,获取所述电子设备当前采集的音频数据;

将所述采集的音频数据进行降噪处理,生成待检测的音频数据;

对所述待检测的音频数据进行唤醒词检测,确定所述待检测的音频数据中是否包含唤醒词;

若所述待检测的音频数据中包含唤醒词,则对所述电子设备进行唤醒处理。

本申请实施例的语音唤醒方法,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据,并将采集的音频数据进行降噪处理,生成待检测的音频数据,之后,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词,若是,则对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

本申请第二方面实施例提出了一种语音唤醒装置,包括:

数据获取模块,用于通过电子设备的音视频硬件抽象层接口,获取所述电子设备当前采集的音频数据;

降噪处理模块,用于将所述采集的音频数据进行降噪处理,生成待检测的音频数据;

唤醒词检测模块,用于对所述待检测的音频数据进行唤醒词检测,确定所述待检测的音频数据中是否包含唤醒词;

唤醒模块,用于若所述待检测的音频数据中包含唤醒词,则对所述电子设备进行唤醒处理。

本申请实施例的语音唤醒装置,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据,并将采集的音频数据进行降噪处理,生成待检测的音频数据,之后,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词,若是,则对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

本申请第三方面实施例提出了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请第一方面实施例提出的语音唤醒方法。

本申请第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面实施例提出的语音唤醒方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例一所提供的语音唤醒方法的流程示意图;

图2为本申请实施例二所提供的语音唤醒方法的流程示意图;

图3为相关技术中的唤醒策略示意图;

图4为本申请实施例中的唤醒策略示意图;

图5为本申请实施例三所提供的语音唤醒方法的流程示意图;

图6为本申请实施例中的任务处理流程示意图;

图7为本申请实施例中的唤醒检测和vad处理流程示意图;

图8为现有技术中的语音唤醒的测试结果示意图;

图9为本申请实施例中语音唤醒的测试结果示意图;

图10为本申请实施例四所提供的语音唤醒装置的结构示意图;

图11为本申请实施例五所提供的语音唤醒装置的结构示意图;

图12示出了适于用来实现本申请实施方式的示例性计算机设备的框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

目前,对于安卓系统而言,app或者软件开发工具包(softwaredevelopmentkit,简称sdk)通过录音机模块,获取经过信号处理后的音频数据,同时将处理后的音频数据传递给唤醒算法进行唤醒检测,根据检测结果进行后续唤醒控制。对于linux系统而言,app或者sdk通过独立的进程任务,获取信号算法所在任务生成的音频数据,同时将音频数据传递给唤醒算法进行唤醒检测,根据检测结果进行后续唤醒控制。

然而上述唤醒方式,由于音频数据的传输链路较长,唤醒时延较长。例如,根据不同的系统版本和硬件设备进行测试,音频链路的时延可以达到18毫秒-300毫秒左右。由此,将导致用户获取到数据存在较大的时延,唤醒时机靠后,进而影响唤醒方位的判决速度。

因此,本申请主要针对现有技术中唤醒时延较长的技术问题,提出一种应用唤醒方法。

本申请实施例的语音唤醒方法,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据,并将采集的音频数据进行降噪处理,生成待检测的音频数据,之后,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词,若是,则对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

下面参考附图描述本申请实施例的语音唤醒方法和装置。

图1为本申请实施例一所提供的语音唤醒方法的流程示意图。

本申请实施例以语音唤醒方法被配置于语音唤醒装置中来举例说明,该语音唤醒装置可以应用于电子设备中,以使该电子设备可以执行语音唤醒功能。

其中,电子设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备、智能音箱、智能家电等具有各种操作系统、触摸屏和/或显示屏的硬件设备。

如图1所示,该语音唤醒方法包括以下步骤:

步骤101,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据。

本申请实施例中,若用户想要对电子设备进行唤醒、语音控制等,用户可以语音输入音频数据,相应的,当电子设备通过侦听方式,监听到用户语音输入音频数据时,可以通过麦克风阵列采集音频数据,并通过电子设备的音视频硬件抽象层接口,获取麦克风阵列采集的音频数据。

步骤102,将采集的音频数据进行降噪处理,生成待检测的音频数据。

可以理解的是,当用户输入音频数据时,由于外部干扰噪声的影响,音频数据中可能携带一定的噪声数据。例如,当用户处于室内,且室内的电视机播放电视节目时,电视机播放的声音即为外部的干扰噪声;再例如,当用户处于室外时,比如位于公园、商场、马路时,外部的干扰噪声可以为鸟叫声、人的谈话声、汽车的鸣笛声等等。

因此,本申请中,为了提升后续语音唤醒的正确率和成功率,可以将采集的音频数据进行降噪处理,生成待检测的音频数据。例如,可以基于相关技术中的音频降噪算法,将采集的音频数据进行降噪处理,生成待检测的音频数据,或者,为了改善降噪效果,还可以基于深度学习的音频降噪算法,比如基于循环神经网络(recurrentneuralnetwork,简称rnn)的音频降噪算法,将采集的音频数据进行降噪处理,生成待检测的音频数据,本申请对此并不作限制。

步骤103,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词。

本申请实施例中,唤醒词可以为电子设备的厂家预先定义的,或者,还可以由用户进行设置,对此不作限制。例如,用户可以控制电子设备进入自定义唤醒词模式,其中,进入方式可以采用触发实体按键或者发出语音指令等方式。在电子设备进入自定义唤醒词模式之后,可提醒用户想要设置的唤醒词,此时,用户可根据自身需求,设置对应的唤醒词。举例而言,以电子设备为小度音箱示例,唤醒词可以为“小度小度”。

本申请实施例中,在生成待检测的音频数据后,可以对待检测的音频数据进行唤醒词检测,以确定待检测的音频数据中是否包含唤醒词。可选地,可以根据相关技术中的唤醒算法,对待检测的音频数据进行唤醒词检测,从而确定待检测的音频数据中是否包含唤醒词。

作为一种示例,可以将待检测的音频数据中的各数据帧,分别与唤醒词中的各数据帧进行比对,若待检测的音频数据中包含唤醒词中所有的数据帧,并且,待检测的音频数据中包含的各数据帧之间的排列顺序和位置与唤醒词中各数据帧之间的排列顺序和位置相同,则确定待检测的音频数据中包含唤醒词。

需要说明的是,上述仅以将待检测的音频数据中的各数据帧,分别与唤醒词中的各数据帧进行比对,来确定待检测的音频数据中是否包含唤醒词进行示例,实际应用时,还可以根据其他唤醒算法,确定待检测的音频数据中是否包含唤醒词,本申请实施例对此并不作限制。

仍以上述例子示例,唤醒词为“小度小度”,假设待检测的音频数据为“小度,你知道我小时候的顽皮程度吗”,虽然待检测的音频数据包含“小度小度”这四个字,但是,待检测的音频数据中包含的这四个字并非连续的,因此,可确定待检测的音频数据中未包含唤醒词。再例如,假设“小度,现在的温度小于26度吗”,虽然待检测的音频数据包含“小度小度”这四个字,但是,这四个字的顺序和位置与唤醒词不同,因此,可确定待检测的音频数据中未包含唤醒词。

步骤104,若待检测的音频数据中包含唤醒词,则对电子设备进行唤醒处理。

本申请实施例中,当待检测的音频数据中包含唤醒词时,可以对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层,硬件抽象层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

需要说明的是,实际应用时,是由应用程序层对电子设备进行控制的,因此,当待检测的音频数据中包含唤醒词时,可以向应用程序层发送唤醒触发消息,例如,可以通过rpc协议、socket协议,向应用程序层发送唤醒触发消息,从而当应用程序层接收到上述唤醒出发消息后,可以对电子设备进行唤醒控制。

本申请实施例的语音唤醒方法,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据,并将采集的音频数据进行降噪处理,生成待检测的音频数据,之后,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词,若是,则对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

需要说明的是,实际应用时,由于外部干扰噪声的影响,可能存在多个方位的干扰音频数据,因此,本申请实施例中,为了提升语音识别的准确性,在确定待检测的音频数据包含唤醒词之后,还可以对唤醒方位进行检测,确定当前唤醒方位的音频数据,从而对唤醒方位的音频数据进行处理和识别,可以确定识别结果的准确性。下面结合图2,对上述过程进行详细说明。

图2为本申请实施例二所提供的语音唤醒方法的流程示意图。

如图2所示,在图1所示实施例的基础上,该语音唤醒方法还可以包括以下步骤:

步骤201,根据唤醒词的起止时刻,确定第一目标音频数据。

实际应用时,用户在输入唤醒词之前,可能输入了一些无效的音频数据,例如,待检测的音频数据为“那个,小度小度,帮我播放歌曲a”,此时,实际的有效的音频数据为唤醒词的起始时刻之后的音频数据。因此,本申请中,为了提升语音识别的效率和识别结果的准确性,可以根据唤醒词的起始时刻和截止时刻,本申请中记为起止时刻确定第一目标音频数据,其中,第一目标音频数据至少包含唤醒词起止时间段内的音频数据。

例如,第一音频数据可以为唤醒词的起始时刻之后的所有音频数据,或者,第一音频数据可以为唤醒词的起始时刻之后的预设时间段内的所有音频数据,等等,对此不作限制。举例而言,假设待检测的音频数据的时长为60秒,第20秒出现了唤醒词,则可以将20秒至40秒之间的音频数据,作为第一目标音频数据。

步骤202,对第一目标音频数据进行唤醒方位检测,确定当前的唤醒方位。

本申请实施例中,当前的唤醒方位为唤醒者所在的方位,例如,唤醒方位可以为:唤醒者位于电子设备东偏南30度。

本申请实施例中,由于电子设备所处的环境中可能存在多个方位的干扰音频数据,因此,为了提升语音识别的准确性,可以对第一目标音频数据进行唤醒方位检测,确定当前的唤醒方位。

举例而言,当东偏南30度出现唤醒词时,比如“小度小度”,此时,可以确定位于电子设备东偏南30度的方位为当前的唤醒方位。

步骤203,根据当前的唤醒方位,确定第二目标音频数据。

本申请实施例中,当确定当前的唤醒方位后,可以根据该唤醒方位从第一目标音频数据中,确定第二目标音频数据。

举例而言,假设唤醒者位于室内,电子设备为智能音箱,当唤醒者的手机播放音乐或者视频时,和/或,当电视机或者电脑播放音乐或者视频时,智能音箱采集的为多个方位的音频数据,因此,为了提升语音识别的准确性,可以确定唤醒者所处的唤醒方位,即当前的唤醒方位,根据当前的唤醒方位,从第一目标音频数据中,确定第二目标音频数据。

步骤204,对第二目标音频数据进行增强处理,生成待识别的音频数据。

本申请实施例中,为了提升语音识别的准确性,可以从第一目标音频数据中提取出有效或者有用的音频数据,本申请中记为待识别的音频数据。具体地,可以对第二目标音频数据进行增强处理,生成待识别的音频数据。

可选地,可以根据相关技术中的语音增强算法,对第二目标音频数据进行增强处理,生成待识别的音频数据,例如,可以根据基于谱相减的语音增强算法、基于小波分析的语音增强算法、基于卡尔曼滤波的语音增强算法、基于信号子空间的增强方法、基于听觉掩蔽效应的语音增强方法、基于独立分量分析的语音增强方法、基于神经网络的语音增强方法等等,对第二目标音频数据进行增强处理,生成待识别的音频数据,本申请对此并不做限制。

步骤205,对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图。

本申请实施例中,在生成待识别的音频数据后,可以对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图。例如,可以对待识别的音频数据进行语音识别,确定待识别的音频数据对应的文本信息,而后对上述文本信息进行语义识别,确定当前采集的音频数据的意图,从而可以根据当前采集的音频数据的意图,对电子设备进行控制。

举例而言,当电子设备为小度音箱时,假设待识别的音频数据为:小度小度,请帮我播放歌曲a,则当前采集的音频数据的意图为:播放歌曲a,则后续可以控制小度音箱播放歌曲a。

上述本申请实施例中的技术方案,相较于上一实施例,至少还具有如下进一步地技术效果或优点:

本申请实施例中,通过根据唤醒词的起止时刻,确定第一目标音频数据,可以提升后续语音处理和识别的效率和成功率。通过对第一目标音频数据进行唤醒方位检测,确定当前的唤醒方位,并根据当前的唤醒方位,确定第二目标音频数据,可以提升语音识别的准确性。通过对第二目标音频数据进行增强处理,生成待识别的音频数据,对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图,可以进一步提升语音识别的准确性。

实际应用时,增强处理后得到的待识别的音频数据中可能存在部分无效的音频数据,例如,待识别的音频数据的时长为10秒,而前1秒和后一秒并无有效的音频数据,比如为静音。因此,作为本申请实施例的一种可能的实现方式,在图2所示实施例的基础上,步骤205之前,该语音唤醒方法还可以包括:通过语音活动检测(voiceactivitydetection,简称vad)处理,对待识别的音频数据进行过滤。具体地,可以通过vad处理,识别待识别的音频数据的语音端点,比如起点和尾点,而后可以将起点之前以及尾点之后的音频数据进行过滤,从而保留有效的音频数据。

举例而言,假设待识别的音频数据的时长为10秒,通过vad处理,确定语音端点位于第1秒和第9秒,则可以将第1秒之前的音频数据,以及第9秒至第10秒之间的音频数据进行过滤,保留第1秒至第9秒之间的音频数据。

则步骤205具体可以包括:对过滤后的待识别的音频数据进行语音识别,以确定当前采集的音频数据的意图。由此,可以提升语音识别的效率。

作为一种示例,参见图3,图3为相关技术中的唤醒策略示意图。其中,相关技术中在采集音频数据后,采集的音频数据经过硬件抽象层到数据池,然后到信号处理算法,信号处理算法对音频数据进行处理后再原路返回至硬件抽象层,硬件抽象层再通过音频数据传输链路传输至应用程序层(sdk),由应用程序层调用唤醒检测算法,对处理后的音频数据进行唤醒检测。当唤醒检测完成之后,应用程序层再下传至信号处理算法,通知信号处理算法唤醒词的起止时刻,而后信号处理根据起止时刻,对唤醒方位进行检测,并将唤醒方位通知给应用程序层,从而应用程序层可以根据唤醒方位进行意图识别。

然而,上述唤醒方式,由于音频数据的传输链路较长,唤醒时延较长,从而导致唤醒方位、意图识别的滞后性较大。

而本申请实施例中,当该语音唤醒方法应用于语音识别系统中时,通过将唤醒检测算法进行下沉,下沉至与信号处理算法同一软件层,在对音频数据进行信号处理后,立即将处理后的音频数据发送至唤醒检测算法,唤醒检测算法将唤醒词的起止时刻通知给信号处理算法,信号处理算法执行唤醒方位的判决。

其中,语音识别系统分为信号处理,语音唤醒,语音识别,自然语言处理等环节,唤醒检测算法下沉主要是针对语音唤醒环节进行优化,提升唤醒效率,从而提升唤醒方位、意图识别的效率。

作为一种示例,参见图4,图4为本申请实施例中的唤醒策略示意图。其中,图4以该语音唤醒算法应用于安卓系统的电子设备进行示例。当录音机开启时,可以利用alsa/tinyalsa库获取到采集的音频数据,采集的音频数据经信号处理算法做降噪处理,不同于相关技术中将降噪后的音频数据经录音通道逐级上传到应用程序层(sdk),然后做唤醒检测,本申请中,是将唤醒检测算法下沉,降噪处理后的音频数据会立即发送至唤醒检测算法,可以缩短音频数据的传输链路,降低唤醒时延。

也就是说,由于应用程序层和硬件抽象层为不同的进程空间,而现有技术中在唤醒时,需要跨进程进行数据传输。而本申请中,将唤醒检测算法进行下沉,无需跨进程进行传输数据,在同一进程可以实现数据的传输,可以提升唤醒效率。

并且,现有技术中,信号处理算法是对整个音频数据进行处理,当应用程序层唤醒成功,或者,识别唤醒词的起止时刻后,例如,应用程序层识别音频数据的起始时刻为30秒,此时,信号处理算法可以对30秒之后的音频数据进行唤醒方位、意图的识别,即信号处理算法的处理逻辑的转换需要30秒,时间较长。

而本申请中,由于缩短了音频数据的传输链路,可以降低信号处理算法的处理逻辑的转换,可以提升唤醒方位、意图识别的实时性。

需要说明的是,图3和图4仅以应用于安卓系统进行示例,实际应用时,本申请还可以应用于其他系统,例如linux系统等,对此并不做限制。

本申请实施例中,当将采集的音频数据进行降噪处理,生成待检测的音频数据之后,生成的待检测的音频数据是分为两路进行处理的,一路直接进行唤醒识别,识别出待检测的音频数据中是否出现唤醒词、唤醒词出现的起止时刻、唤醒方位,一路是通过电子设备中的音频数据传输链路传输至电子设备中的应用程序,以使应用程序识别出当前采集的音频数据的意图。也就是说,实际应用时,意图识别、控制指令的生成等等,可以由应用程序层进行实现。

其中,通过音频数据传输链路传输的音频数据,还可以存到一个特定的缓存区,因为信号处理后的音频数据分为了两部分:唤醒数据和识别数据,而上传到应用程序层的数据,是需要两部分数据混合的,即交织数据,因此,需要在缓存区中将两部分数据进行交织后再返回到硬件抽象层进行上传。

作为一种可能的实现方式,可以直接由应用程序识别当前采集的音频数据的意图。具体地,应用程序可以根据当前的唤醒方位,确定第二目标音频数据,对第二目标音频数据进行增强处理,生成待识别的音频数据,对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图。

作为另一种可能的实现方式,还可以由服务器端,本申请中记为服务端识别当前采集的音频数据的意图。可以理解的是,由于不同电子设备的处理逻辑、存储空间不同,为了避免电子设备存储空间限制的影响,本申请中,还可以由应用程序将待检测的音频数据发送至服务端,由服务端根据当前的唤醒方位,确定第二目标音频数据,对第二目标音频数据进行增强处理,生成待识别的音频数据,对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图。

作为一种可能的实现方式,参见图4,唤醒检测算法和vad处理算法均可以下沉至与信号处理算法同一软件层,在电子设备初始化时,可以由用户对唤醒检测算法和vad处理算法是否下沉至与信号处理算法同一软件层进行配置,比如用户可以仅将唤醒检测算法下沉至与信号处理算法同一软件层,或者,用户可以仅将vad处理算法下沉至与信号处理算法同一软件层,或者,还可以同时将唤醒检测算法和vad处理算法下沉至与信号处理算法同一软件层。当然,还可以由电子设备的默认程序,确定是否将唤醒检测算法和vad处理算法下沉至与信号处理算法同一软件层。

作为另一种可能的实现方式,用户还可以配置是否进行唤醒检测功能以及vad处理功能,比如用户可以设置只进行唤醒检测,或者,还可以设置仅进行vad处理,或者,还可以设置同时进行唤醒检测和vad处理。当然,还可以由电子设备的默认程序,确定是否进行唤醒检测功能和vad处理功能。

本申请实施例中,在步骤201之前,还可以获取应用程序层下发的用于指示在硬件抽象层对音频数据进行唤醒检测的配置消息,即只有应用程序层下发的配置消息指示在硬件抽象层对音频数据进行唤醒检测时,才在硬件抽象层对音频数据进行唤醒检测,否则,不在硬件抽象层对音频数据进行唤醒检测。也就是说,本申请中,电子设备在启动时,可以由应用程序层控制是否需要在硬件抽象层进行唤醒检测。

同样地,应用程序层还可以控制是否需要在硬件抽象层进行vad处理,即配置消息,还可以用于指示是否需要在硬件抽象层进行vad处理。

作为一种可能的实现方式,在生成待检测的音频数据后,可以将待检测的音频数据存入上述预设的缓存区,当设的缓存区中待检测的音频数据达到阈值时,对预设的缓存区中待检测的音频数据进行唤醒词检测。下面结合图5,对上述过程进程详细说明。

图5为本申请实施例三所提供的语音唤醒方法的流程示意图。

如图5所示,该语音唤醒方法可以包括以下步骤:

步骤301,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据。

步骤301的执行过程可以参见上述实施例中步骤101的执行过程,在此不做赘述。

步骤302,将采集的音频数据进行降噪处理,生成待检测的音频数据。

本申请实施例中,降噪处理算法在单独的一个任务中,唤醒检测算法为另一个任务。可以通过第一线程将采集的音频数据进行降噪处理,生成待检测的音频数据。

步骤303,将待检测的音频数据存入预设的缓存区。

本申请实施例中,预设的缓存区为预先设置的,例如可以为循环缓存区(buffer)。

步骤304,在确定预设的缓存区中待检测的音频数据达到阈值时,对预设的缓存区中待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词。

本申请实施例中,阈值为预先设置的,例如可以为电子设备的内置程序预先设置的,或者,还可以由用户进行设置,对此不作限制。比如,阈值可以为n帧数据帧。

本申请实施例中,在确定预设的缓存区中待检测的音频数据达到阈值时,可以通过第二线程对预设的缓存区中待检测的音频数据进行唤醒词检测。由此,降噪处理任务和唤醒检测任务通过数据驱动,可以避免不必要的cpu竞争,提升了任务处理的效率。

作为一种示例,参见图6,可以监测预设的缓存区中待检测的音频数据是否达到阈值,若是,则根据配置信息,确定是否进行唤醒检测,若是,则进行唤醒检测,唤醒完成后,可以根据配置信息,确定是否继续进行vad处理,若是,则进行vad处理。

其中,预设的缓存区中存储的待检测的音频数据进行唤醒检测过程,可以参见图7。可以将待检测的音频数据中的各识别数据帧可以分别与唤醒词中的各唤醒数据帧进行比对,以确定待检测的音频数据中是否包含唤醒词。

vad处理可以根据各识别数据帧来确定待检测的音频数据的语音端点。

步骤305,若待检测的音频数据中包含唤醒词,则对电子设备进行唤醒处理。

步骤305的执行过程可以参见上述实施例中步骤104的执行过程,在此不做赘述。

作为一种示例,参见图8和图9,图8为现有技术中的语音唤醒的测试结果示意图,图9为本申请实施例中语音唤醒的测试结果示意图。由图8和图9可知,在同源测试条件下,现有技术中唤醒状态的下发时机慢于本申请,就平均时间来看,现有技术中下发时间点相对于真实唤醒词起点的平均延时为169.95ms,而该值在本申请中为54ms(图),平均提升115.95ms。

作为一种示例,在同源测试条件下,现有技术和本申请的语音唤醒率如表1所示。

表1外噪唤醒率对比

由表1可以看出,在外噪75db条件下,本申请的唤醒率相对于现有技术平均提升大于4%,而在其他条件下唤醒率持平。

作为一种示例,在外噪环境下,利用200个句子,对电子设备进行唤醒测试,本申请和现有技术中字准和句准的测试结果如表2所示。

表2外噪识别率对比

其中,字准为句子中每个字的准确率,即字准为100%时,表示一个句子中的每个字均识别正确,句准为每个句子含义的准确率,即句准为100%时,表示该句子的含义正确,而每个字的含义并不一定正确。

由表2可以看出,在同源测试条件下(65db外噪源),本申请平均识别率提升1.67%,其中,3米外噪性能提升明显,达到3.5%。

为了实现上述实施例,本申请还提出一种语音唤醒装置。

图10为本申请实施例四所提供的语音唤醒装置的结构示意图。

如图10所示,该语音唤醒装置可以包括:数据获取模块101、降噪处理模块102、唤醒词检测模块103,以及唤醒模块104。

其中,数据获取模块101,用于通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据。

降噪处理模块102,用于将采集的音频数据进行降噪处理,生成待检测的音频数据。

唤醒词检测模块103,用于对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词。

唤醒模块104,用于若待检测的音频数据中包含唤醒词,则对电子设备进行唤醒处理。

进一步地,在本申请实施例的一种可能的实现方式中,参见图11,在图10所示实施例的基础上,该语音唤醒装置还可以包括:

第一确定模块105,用于在若待检测的音频数据中包含唤醒词之后,根据唤醒词的起止时刻,确定第一目标音频数据。

唤醒方位检测模块106,用于对第一目标音频数据进行唤醒方位检测,确定当前的唤醒方位。

第二确定模块107,用于根据当前的唤醒方位,确定第二目标音频数据。

增强处理模块108,用于对第二目标音频数据进行增强处理,生成待识别的音频数据。

识别模块109,用于对待识别的音频数据进行语音识别,确定当前采集的音频数据的意图。

过滤模块110,用于在对待识别的音频数据进行语音识别之前,通过语音活动检测处理,对待识别的音频数据进行过滤。

识别模块109,具体用于:对过滤后的待识别的音频数据进行语音识别。

消息获取模块111,用于在根据唤醒词的起止时刻,确定第一目标音频数据之前,获取应用程序层下发的用于指示在硬件抽象层对音频数据进行唤醒检测的配置消息。

作为一种可能的实现方式,唤醒模块104,具体用于:若待检测的音频数据中包含唤醒词,则向应用程序层发送唤醒触发消息,以使应用程序层对电子设备进行唤醒控制。

存储模块112,用于在将采集的音频数据进行降噪处理,生成待检测的音频数据之后,将待检测的音频数据存入预设的缓存区。

唤醒词检测模块103,具体用于:在确定预设的缓存区中待检测的音频数据达到阈值时,对预设的缓存区中待检测的音频数据进行唤醒词检测。

作为一种可能的实现方式,降噪处理模块102,具体用于:通过第一线程将采集的音频数据进行降噪处理,生成待检测的音频数据;在确定预设的缓存区中待检测的音频数据达到阈值时,对预设的缓存区中待检测的音频数据进行唤醒词检测,包括:在确定预设的缓存区中待检测的音频数据达到阈值时,通过第二线程对预设的缓存区中待检测的音频数据进行唤醒词检测。

传输模块113,用于在将采集的音频数据进行降噪处理,生成待检测的音频数据之后,将待检测的音频数据通过电子设备中的音频数据传输链路传输至电子设备中的应用程序。

需要说明的是,前述对语音唤醒方法实施例的解释说明也适用于该实施例的语音唤醒装置,此处不再赘述。

本申请实施例的语音唤醒装置,通过电子设备的音视频硬件抽象层接口,获取电子设备当前采集的音频数据,并将采集的音频数据进行降噪处理,生成待检测的音频数据,之后,对待检测的音频数据进行唤醒词检测,确定待检测的音频数据中是否包含唤醒词,若是,则对电子设备进行唤醒处理。本申请中,音频数据的降噪处理和唤醒词检测功能是在同一软件层执行的,而不是将降噪处理后的音频数据通过系统的音频传输链路传输到应用程序层,再由应用程序层进行唤醒检测,可以极大地提升语音唤醒效率,降低唤醒时延。

为了实现上述实施例,本申请还提出一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现如本申请前述实施例提出的语音唤醒方法。

为了实现上述实施例,本申请还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请前述实施例提出的语音唤醒方法。

图12示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图12显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图12所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图12未显示,通常称为“硬盘驱动器”)。尽管图12中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的语音唤醒方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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