音频处理方法及装置与流程

文档序号:24390408发布日期:2021-03-23 11:25阅读:230来源:国知局
音频处理方法及装置与流程

本申请涉及音频技术领域,尤其涉及一种音频处理方法及装置。



背景技术:

语音交互是一种常用的人机交互方式。使用语音识别进行人机交互时,需要先进行语音端点检测,即检测麦克风录制进来的声音中哪些部分可能含有语音。各种语音端点检测方法的抗干扰能力和算力消耗彼此不同,如何兼顾抗干扰能力和算力消耗成为语音端点检测中亟待解决的问题。



技术实现要素:

本申请实施例提供一种音频处理方法及装置,用以解决现有技术中在语音端点检测过程中无法兼顾抗干扰能力和算力消耗,并由此导致存在抗干扰能力差、算力消耗量大的技术问题。

第一方面,本申请实施例提供一种音频处理方法,包括:根据音频信号的音频特征信息在所述音频信号中截取音频片段;基于所述音频片段判断是否执行窗口识别操作;所述窗口识别操作包括如下操作:在所述音频片段之后的所述音频信号中移动采样窗口,并对所述采样窗口内的音频信号进行语音识别。

第二方面,本申请实施例提供一种音频处理装置,包括:处理器和存储器;所述存储器,用于存储程序代码;所述处理器,调用所述程序代码,当程序代码被执行时,用于执行以下操作:根据音频信号的音频特征信息在所述音频信号中截取音频片段;基于所述音频片段判断是否执行窗口识别操作;所述窗口识别操作包括如下步骤:在所述音频片段之后的所述音频信号中移动采样窗口,并对所述采样窗口内的音频信号进行语音识别。

第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行上述第一方面任一项所述的音频处理方法。

第四方面,本申请实施例提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现上述第一方面任一项所述的音频处理方法。

本申请实施例提供一种音频处理方法及装置,通过在语音端点检测过程中根据具体应用场景的特点选择并切换语音端点检测方法,可以兼顾抗干扰能力和算力消耗。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1a为本申请实施例提供的音频处理方法的应用场景示意图一;

图1b为本申请实施例提供的音频处理方法的应用场景示意图二;

图2为本申请一实施例提供的音频处理方法的流程示意图;

图3a-图3c为本申请一实施例提供的音频子片段将音频片段的噪声排除在外的示意图;

图4为本申请另一实施例提供的音频处理方法的流程示意图;

图5为本申请实施例提供的语音活性检测方法的流程示意图;以及

图6为本申请一实施例提供的音频处理装置的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供的音频处理方法可以应用于任何需要进行语音端点检测的音频处理过程中,该音频处理方法具体可以由音频处理装置执行。该音频处理装置可以为包括音频采集模块(例如,麦克风)的装置,相应的,本申请实施例提供的音频处理方法的应用场景示意图可以如图1a所示。具体的,该音频处理装置的音频采集模块可以采集用户讲话的语音获得音频信号,音频处理装置的处理器可以对音频采集模块采集的音频信号采用本申请实施例提供的音频处理方法进行处理。需要说明的是,图1a仅为示意图,并不对音频处理装置的结构作限定。例如麦克风与处理器之间还可以连接有放大器,用于对麦克风采集到的音频信号进行放大。又例如,麦克风与处理器之间还可以连接有滤波器,用于对麦克风采集到的音频信号进行滤波。

或者,该音频处理装置也可以为不包括音频采集模块的装置,相应的,本申请实施例提供的音频处理方法的应用场景示意图可以如图1b所示。具体的,该音频处理装置的通信接口可以接收其他装置或设备采集的音频信号,音频处理装置的处理器可以对接收到的音频信号采用本申请实施例提供的音频处理方法进行处理。需要说明的是,图1b仅为示意图,并不对音频处理装置的结构以及音频处理装置与其他装置或设备之间的连接方式作限定,例如音频处理装置中通信接口可以替换为收发器。

需要说明的是,对于包括该音频处理装置的设备的类型,本申请实施例可以不做限定,该设备例如可以为智能音响、智能照明设备、智能机器人、手机、平板电脑等。

本申请实施例提供的音频处理方法,可以根据具体应用场景的特点,自动切换语音活性检测方法与滑动窗口检测方法,因而可以从总体上提高语音端点检测的抗干扰能力,同时降低语音端点检测的算力消耗。即可以使语音端点检测的抗干扰能力比单纯使用语音活性检测方法强,同时可以使语音端点检测的算力消耗比单纯使用滑动窗口检测方法少。

需要说明的是,本申请实施例提供的音频处理方法,可以应用于语音识别领域,具有语音识别功能的智能硬件设备、音频事件检测领域、具有音频事件检测功能的智能硬件设备等,本申请在此不做限定。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

图2为本申请一实施例提供的音频处理方法的流程示意图,本实施例的执行主体可以为音频处理装置,具体可以为音频处理装置的处理器。如图2所示,本实施例的方法例如可以包括步骤s201和步骤s202。

步骤s201,根据音频信号的音频特征信息在音频信号中截取音频片段。

需要说明的是,在本申请实施例中,在步骤s201,基于音频特征信息截取音频片段,由于其截取的端点不准确,因而截取的音频片段内通常会含有噪声,若单纯基于由此截取的音频片段进行语音识别,准确率不高。

需要说明的是,对于所述音频特征信息的具体类型,本申请实施例可以不做限定。可选的,音频特征例如可以包括梅尔频率倒谱系数(melfrequencycepstrumcoefficient,简称mfcc)特征、线性预测系数(linearpredictioncoefficients,简称lpc)特征、滤波器组(filterbank,fbank)特征中的一种或多种。

具体地,在本申请实施例中,在步骤s201,可以使用算力消耗较低的语音端点检测方法对音频信号进行处理。

在实现本申请实施例的过程中,发明人发现,语音活性检测方法是通过能量与过零率双门限或者噪声-语音分类模型等方法识别音频信号是否为语音信号的,并且只有确定是语音信号时才截取出来进行语音识别,因而语音活性检测方法可以有效区分静音与非静音,并且用于语音识别时可以节约算力。

因此,在一个实施例中,在步骤s201,可以使用语音活性检测方法来根据音频信号的音频特征信息在音频信号中截取音频片段。

此外,在实现本申请实施例的过程中,发明人还发现,语音活性检测方法在面对语音类噪声或者能量稍大的非语音类噪声时,不能有效区分。例如语音活性检测方法用于指令词语音识别时,易在指令语音片段前后混入噪声,从而降低语音指令识别率,而滑动窗口检测方法能够从音频流中抽取一定长度的语音片段不断地进行语音识别,对于指令词语音识别而言,该方法能有效防止噪声混入指令词语音片段前后,但是滑动窗口检测方法由于语音识别计算量大,不停地进行语音识别会消耗智能硬件设备大量的计算资源与电量。

因此,在本申请实施例中,在抗干扰性要求低的应用场景中可以使用语音活性检测方法进行音频处理,以降低算力消耗,但在抗干扰性要求高的应用场景中可以使用滑动窗口检测方法进行音频处理,以提高抗干扰能力。

步骤s202,基于由步骤s201得到的音频片段判断是否执行窗口识别操作。

其中,窗口识别操作例如可以包括如下操作:在由步骤s201得到的音频片段之后的音频信号中移动采样窗口,并对采样窗口内的音频信号进行语音识别。

由于滑动窗口检测方法可以在一个或多个窗口中将语音活性检测所截取出的音频片段中包括的噪声排除在外。例如,如图3a所示,假设音频信号的开始部分包括噪声,则音频片段x1可以将该噪声排除在外。再例如,如图3b所示,假设音频信号的中间部分包括噪声,则音频片段x2可以将该噪声排除在外。又例如,如图3c所示,假设音频信号的结束部分包括噪声,则音频片段x3可以将该噪声排除在外。需要说明的是,图3a至图3c中网格线填充的部分用于表示噪声。

具体地,在步骤s202,可以判断由步骤s201得到的音频片段中是否包含或者可能包含语音类噪声或能量稍大的非语音类噪声,进而判断是否执行窗口识别操作。其中,如果确定由步骤s201得到的音频片段中包含或者可能包含语音类噪声或能量稍大的非语音类噪声,则执行窗口识别操作。否则,如果确定由步骤s201得到的音频片段中不包含或者可能不包含语音类噪声或能量稍大的非语音类噪声,则继续执行步骤s201和步骤s202。

例如,在一个实施例中,由于在指令类语音信息前后容易混入噪声,由此容易导致语音片段截取不准确和/或语音识别不准确。因此针对由步骤s201得到的音频片段,如果检测到指令类语音信息,则执行窗口识别操作,以排除噪声的影响。

再例如,在另一个实施例中,针对由步骤s201得到的音频片段,如果检测到能量稍大的非语音类信息,例如如果检测到发生特定敲击声、鼓掌声、拍手声等预设音频事件,则执行窗口识别操作,以避免由于语音活性检测方法无法有效区分这类信息而导致音频片段截取不准确和/或语音识别不准确。

通过本申请实施例,在对音频信号进行处理时,可以根据具体应用场景的特点选取对应的语音端点检测方法。例如对抗干扰能力要求低的应用场景,可以采用语音活性检测方法对音频信号进行处理,以节约算力。对抗干扰能力要求高的应用场景,可以采用滑动窗口检测方法对音频信号进行处理,以提高抗干扰能力,由此可以兼顾滑动窗口检测方法抗干扰能力高以及语音活性检测方法算力消耗少的优点,使语音端点检测的抗干扰能力总体上比单纯使用语音活性检测方法强,同时使语音端点检测的算力消耗量总体上比单纯使用滑动窗口检测方法少。

需要说明的是,在本申请实施例中,在步骤s202,可以通过多种方式确定由步骤s201得到的音频片段中是否存在或者可能存在指令类语音信息。

例如,在一个实施例中,可以从由步骤s201得到的音频片段中提取语音信息,并根据提取的语音信息的内容和/或语音长度来判断是否存在或者可能存在指令类信息,进而确定是否执行窗口识别操作。

具体地,在本申请实施例中,该方法例如还可以包括:从音频片段中提取语音信息。对应地,步骤s202例如可以包括:基于提取的语音信息判断是否执行窗口识别操作。

例如,在一个实施例中,可以基于提取的语音信息的内容判断是否执行窗口识别操作。具体地,在该实施例中,可以判断该语音信息的内容是否满足特定条件(如该语音信息中是否包含指令类信息)。如果确定该语音信息的内容满足特定条件,则执行窗口识别操作。否则,如果确定该语音信息的内容不满足特定条件,则不执行窗口识别操作。

再例如,在另一个实施例中,可以基于提取的语音信息的语音长度判断是否执行窗口识别操作。具体地,在该实施例中,可以判断该语音信息的语音长度是否小于或等于预设值。如果确定该语音信息的语音长度小于或等于预设值,则执行窗口识别操作。否则,如果确定该语音信息的语音长度大于预设值,则不执行窗口识别操作。

再例如,在另一个实施例中,可以基于提取的语音信息的内容和语音长度判断是否执行窗口识别操作。

具体地,在该实施例中,可以先判断该语音信息的内容是否满足特定条件。如果该语音信息的内容不满足特定条件再判断该语音信息的语音长度是否小于等于预设值。如果确定该语音信息的内容不满足特定条件且该语音信息的语音长度也不小于或不等于预设值,则不执行窗口识别操作。否则,则执行窗口识别操作。

或者,在该实施例中,还可以先判断该语音信息的语音长度是否小于或者等于预设值。如果该语音信息的内容不小于或者不等于预设值再判断该语音信息的内容是否满足特定条件。如果确定该语音信息的语音长度不小于或不等于预设值且该语音信息的内容也不满足特定条件,则不执行窗口识别操作。否则,则执行窗口识别操作。

需要说明的是,根据提取的语音信息的内容和/或语音长度,可以确定由步骤s201得到的音频片段中是否存在指令类信息。如果确定由步骤s201得到的音频片段中存在指令类信息,考虑到用户在实际使用过程中可能会连续讲话,从而可能连续发出多条指令,因而在该音频片段之后的音频信号处理过程中,可以选用滑动窗口检测方法进行语音端点检测,以防在指令前后混入过多噪声而导致语音片段截取不准确和/或语音识别不准确。

此外,需要说明的是,由于指令词的长度有限,因而包含指令词的语音信息对应的语音长度也有限。由此可以根据提取的语音信息的语音长度粗略估计该语音信息中是否存在或者可能存在指令词,进而可以判断是否执行窗口识别操作。

通过本申请实施例,针对由步骤s201得到的音频片段,可以先提取其中包含的语音信息,再基于该语音信息的内容和/或语音长度确定或者估计该音频片段中是否存在指令类信息,并由该确定或者估计结果判断是否执行窗口识别操作,由此可以避免对指令类语音信息进行语音片段截取和语音识别时由于混入过多的噪声而导致不准确。

此外,在另一个实施例中,可以从由步骤s201得到的音频片段中提取语音信息,并根据提取的语音信息的内容和/或该音频片段的时长来判断是否存在或者可能存在指令类信息,进而确定是否执行窗口识别操作。

例如,在本申请实施例中,作为一个实施例,可以同时根据提取的语音信息的内容和该音频片段的时长确定是否执行窗口识别操作。

具体地,在本申请实施例中,该方法例如还可以包括:从由步骤s201得到的音频片段中提取语音信息。对应地,步骤s202例如可以包括如下操作。先判断提取的语音信息是否与第一语音信息相匹配。若不匹配,则再判断该音频片段的时长是否大于或等于第一时长阈值。若不大于或不等于第一时长阈值,则针对该音频片段之后的音频信号,执行步骤s201和步骤s202。

或者,在本申请实施例中,步骤s202例如也可以包括如下操作。先判断由步骤s201得到的音频片段的时长是否大于或等于第一时长阈值。若不大于或不等于第一时长阈值,则再判断提取的语音信息是否与第一语音信息相匹配。若不匹配,则针对该音频片段之后的音频信号,执行步骤s201和步骤s202。

需要说明的是,在本申请实施例中,第一语音信息可以根据表征指令(如第一控制指令)的词汇设置。作为一种可选的实施例,在该音频处理方法应用于具有语音识别功能的智能硬件设备时,第一语音信息可以根据表征应用于该智能硬件设备的所有控制指令的词汇设置。

与指令词的长度有限,包含指令词的语音信息对应的语音长度也有限类似,包含指令词的音频片段的时长也有限。由此可以根据由步骤s201得到的音频片段的时长粗略估计该音频片段中是否存在或者可能存在指令词,进而可以判断是否执行窗口识别操作。

需要说明的是,在本申请实施例中,第一时长阈值可以根据包含指令(如第一控制指令)的音频片段的最大时长、平均时长或任一时长设置。

通过本申请实施例,针对由步骤s201得到的音频片段,可以提取其中包含的语音信息,并基于该语音信息的内容和该音频片段的时长确定或者估计该音频片段中是否存在指令类信息,并由该估计结果判断是否执行窗口识别操作。由此也可以避免对指令类语音信息进行语音片段截取和语音识别时由于混入过多的噪声而导致不准确。

再例如,在本申请实施例中,作为另一个实施例,还可以根据提取的语音信息的内容和音频片段的时长中的一个或多个(即两个)确定是否执行窗口识别操作。

具体地,该方法例如还可以包括在发生如下任意事件的情况下执行窗口识别操作:从由步骤s201得到的音频片段中提取的语音信息与第一语音信息相匹配(简称事件1);和/或,由步骤s201得到的音频片段的时长大于或等于第一时长阈值(简称事件2)。

需要说明的是,在本申请实施例中,对于事件1和事件2都发生的情况,方式1,可以先判断事件1是否发生,再判断事件2是否发生。或者,方式2,也可以先判断事件2是否发生,再判断事件1是否发生。但是无论是方式1还是方式2,必须是两个事件都发生才执行窗口识别操作。

此外,在本申请实施例中,第一语音信息和第一时长阈值的设置与前述实施例中的设置方法相同或类似,本申请实施例在此不再赘述。

此外,在本申请实施例中,对于事件1,可以先从由步骤s201得到的音频片段中提取语音信息,再将提取的语音信息与第一语音信息匹配,从而确定提取的语音信息是否与该第一语音信息相匹配。

类似地,在本申请实施例中,对于事件2,可以先确定由步骤s201得到的音频片段的时长,再比较该时长是否大于或等于该第一时长阈值。

通过本申请实施例中,通过事件1和事件2中的一个或多个都可以确定或者估计由步骤s201得到的音频片段中包含或者可能包含指令类信息,由此执行窗口识别操作截取语音片段可以将指令前后的噪声排除在外,使得语音片段的截取结果更准确,进而使得由此得到的语音识别结果也更准确。

需要说明的是,在本申请实施例中,在步骤s202,也可以通过多种方式检测由步骤s201得到的音频片段中是否存在能量稍大的非语音类信息。

具体地,步骤s202例如可以包括:基于由步骤s201得到的音频片段判断是否发生预设音频事件,以确定该音频片段中是否存在能量稍大的非语音类信息。

其中,如果判断发生该预设音频事件,则认为该音频片段中存在能量稍大的非语音类信息,可以执行窗口识别操作,由此截取音频片段时可以将噪声排除在外,使得音频片段的截取结果更准确,进而使得由此得到的音频处理结果也更准确。此外,如果判断未发生该预设音频事件,则认为该音频片段中不存在能量稍大的非语音类信息,可以不执行窗口识别操作。

需要说明的是,在本申请实施例中,上述预设音频事件例如可以包括音频片段中存在以下一种或多种声音:敲击声、鼓掌声、拍手声。其中,上述预设音频事件例如可以根据音频片段中经常出现的敲击声、鼓掌声、拍手声等能量稍大的非语音类信息进行设置。

应该理解,通常情况下用户在实际使用过程中可能会连续讲话,从而会连续发出多条指令,因而在进行语音端点检测时,一旦检测到指令类语音信息,便可以切换至滑动窗口检测方法进行语音端点检测,从而可以防在指令前后混入过多噪声而导致语音片段截取和/或语音识别不准确。但是,还存在一些特殊情况,例如用户在实际使用过程中可能不会连续讲话,而是发出一条指令后在很长一段时间内便不会再发出任何指令。例如,用户对具有语音识别功能的智能硬件设备(如机器人)说“请进入休眠状态”,或者用户对具有语音识别功能的智能硬件设备(如无人机)说“请绕a飞行2圈”,等等,这些情况下,在发出指令后的很长一段时间内用户一般不会再发出其他控制指令。因此如果检测到这些特殊指令类语音信息,也切换至滑动窗口检测方法进行语音端点检测,不仅抗干扰能力没有明显提高,而且反而会增加算力消耗。因此,在本申请实施例中,如果发生这些特殊情况,则可以不切换至滑动窗口检测方法,由此可以避免切换后不仅抗干扰能力没有明显提高,而且反而会增加算力消耗的缺陷。

即,在另一个实施例中,在基于由步骤s201得到的音频片段判断是否执行窗口识别操作的过程中,还可以检测是否出现特定语音信息。其中,如果检测到出现特定语音信息,则针对由步骤s201得到的音频片段之后的音频信号,执行步骤s201和步骤s202,而不执行窗口识别操作。

具体地,步骤s202例如可以包括:从由步骤s201得到的音频片段中提取语音信息,并判断提取的语音信息是否与第二语音信息相匹配。其中,若匹配,针对由步骤s201得到的音频片段之后的音频信号,执行步骤s201和步骤s202。

需要说明的是,在本申请实施例中,上述第二语音信息例如可以根据表征第二控制指令的词汇设置。其中,第二控制指令例如可以具有以下任意特征:处理器执行第二控制指令期间暂停执行其他控制指令(简称特征1);第二控制指令表征与用户的语音交互暂停(简称特征2)。

对于特征1,第二控制指令例如可以是上述示例中的“请绕a飞行2圈”。对于特征2,第二控制指令例如可以是上述示例中的“请进入休眠状态”。具体地,第二控制指令可以是具有上述特征1和/或特征2的任意控制指令,本申请实施例在此不做限定。

此外,在本申请实施例中,在切换至滑动窗口检测方法之后,即在执行窗口识别操作之后,如果发现具体应用场景再次发生变化,还可以由滑动窗口检测方法再切换回之前采用的语音端点检测方法,以保证尽量节约算力。

具体地,在本申请实施例中,该方法例如还可以包括:在执行在由步骤s201得到的音频片段之后的音频信号中移动采样窗口,并对采样窗口内的音频信号进行语音识别步骤的过程中,即在执行窗口识别操作的过程中,响应于发生的切换触发事件,针对采样窗口当前所处位置之后的音频信号,执行步骤s201和步骤s202。

具体地,在本申请实施例中,上述切换触发事件例如可以包括以下中的任意一种或几种:在对采样窗口内的音频信号进行语音识别的过程中,检测到与第三语音信息相匹配的语音信息;采样窗口的移动次数达到最大移动次数;以及移动采样窗口并对采样窗口内的音频信号进行语音识别的处理时长达到第二时长阈值。

具体地,在本申请实施例中,第三语音信息例如可以根据表征第二控制指令的词汇设置。其中,第二控制指令具有以下任意特征:处理器执行第二控制指令期间暂停执行其他控制指令;第二控制指令表征与用户的语音交互暂停。

需要说明的是,在本申请实施例中,上述第三语音信息可以与前述实施例中的第二语音信息相同或类似,本申请实施例在此不再赘述。

此外,本申请实施例中的第二控制指令与前述实施例中的第二控制指令相同,本申请实施例在此也不再赘述。

在本申请实施例提供的音频处理方法中,由于窗口识别操作不仅影响总体的抗干扰能力,而且还影响总体的算力消耗。并且相关参数不同的窗口本身在排除噪声时其能力大小以及所消耗的算力也都不同。因此,在执行窗口识别操作的过程中,还可以根据语音识别结果动态地调整窗口的相关参数,以实现最大限度地兼顾抗干扰能力和算力消耗。

需要说明的是,在本申请实施例中,滑动窗口检测是指:设置一个窗口长度固定为w毫秒的滑动窗,每次只取滑动窗内的音频信号进行识别,该滑动窗可以从某段音频信号的起始点以s毫秒为步长逐步向后滑动,从而达到滑动窗口检测的目的。其中,在一个示例中,该滑动窗口的总滑动次数n与时间段t分钟之间的关系可以表达为:t*60*1000=(w+s*n)。

在本申请实施例中,在执行在由步骤s201得到的音频片段之后的音频信号中移动采样窗口,并对采样窗口内的音频信号进行语音识别步骤的过程中,即在执行窗口识别操作的过程中,例如可以基于对采样窗口的音频信号进行语音识别的识别结果,动态调整采样窗口的最大移动次数(即总滑动次数n)和/或移动步长(即步长s)。

例如,在一个实施例中,可以基于在语音识别中检测到指令的个数,动态调整采样窗口的最大移动次数(即总滑动次数n)和/或移动步长(即步长s)。

具体地,在本申请实施例中,基于对采样窗口的音频信号进行语音识别的识别结果,动态调整采样窗口的最大移动次数和/或移动步长例如可以包括:基于识别结果中检测到的指令的个数,动态调整采样窗口的最大移动次数和/或移动步长。

更具体地,在本申请实施例中,基于检测到的指令的个数,动态调整采样窗口的最大移动次数例如可以包括:响应于检测到的指令的个数超过第一预设值,将采样窗口的最大移动次数从第一值调整为大于第一值的第二值。

例如,在n次(即总滑动次数n)滑动窗口检测的识别期间,若检测到指令的个数达到了某个数值(如m1,其中m1<n),则说明用户在该期间存在连续讲话行为,并且存在连续发送指令的行为。因此可以将原定的总滑动次数n次加大到2n次或者其他次数,以便通过执行更多次的滑动窗口检测来排除噪声,从而提高抗干扰能力。

此外,更具体地,在本申请实施例中,基于检测到的指令的个数,动态调整采样窗口的移动步长例如可以包括:响应于检测到的指令的个数超过第二预设值,将采样窗口的移动步长从第一步长调整为小于第一步长的第二步长。

需要说明的是,在本申请实施例中,第二预设值可以与前述实施例中的第一预设值相同或者不同,本申请实施例在此不做限定。

例如,在n次(即总滑动次数n)滑动窗口检测的识别期间,若检测到指令的个数达到了某个数值(如m2,其中m2<n),则说明用户在该期间存在连续讲话行为,并且存在连续发送指令的行为。因此可以将原定的滑动步长s毫秒减少到s/2毫秒或者其他步长,以便通过执行更小的滑动步长的滑动窗口检测来排除噪声,从而提高抗干扰能力。

或者,更具体地,基于检测到的指令的个数,动态调整采样窗口的移动步长例如还可以包括:响应于检测到的指令的个数低于第三预设值(如m3,其中m3<n),将采样窗口的移动步长从第一步长调整为大于第一步长的第三步长。

需要说明的是,在本申请实施例中,第三预设值例如可以小于前述实施例中的第二预设值。

例如,在前n/2次(即总滑动次数n)滑动窗口检测的识别期间,若检测到指令的个数低于某个数值(如m3,其中m3<n),则说明用户在该期间虽然存在讲话行为,但可能不是连续讲话行为,或者即使是连续讲话行为,但是不是连续发送指令的行为。因此可以将原定的滑动步长s毫秒加大到2s毫秒或者其他步长,以便通过执行更大的滑动步长的滑动窗口检测来排除噪声,同时节约算力,从而达到在执行窗口识别操作过程中尽量兼顾抗干扰能力和算力消耗。

需要说明的是,在本申请实施例中,对于基于语音活性检测方法从音频信号中截取音频片段所采用的具体算法,本申请实施例可以不做限定,例如可以采用能量与过零率双门限算法、噪声-语音分类模型算法、方差法、谱距离法、谱熵法中的一种或多种。以采用能量与过零率双门限算法为例,如图4所示,步骤s201例如可以包括如下步骤s401至步骤s404。

步骤s401,首先对音频信号进行分帧,然后逐帧计算各帧的短时平均能量,得到短时能量包络。

其中,可以以一个固定时长对音频信号进行分帧,以固定时长为1秒为例,则可以将音频信号第0秒至第1秒分为一帧,第1秒至第2秒分为一帧,第3秒至第4秒分为一帧,……,从而完成对音频信号的分帧。一帧的短时平均能量即为该帧的平均能量,对能量包络进行连线即可得到短时能量包络。

步骤s402,选择一个较高的阈值t1,标记t1与短时能量包络的首尾交点为c和d。

其中,高于阈值t1的部分被认为是语音的概率较高。

步骤s403,选取一个较低的阈值t2,其与短时能量包络的交点b位于c的左边,交点e位于d的右边。

其中,t2小于t1。

步骤s404,计算各帧的短时平均过零率,选取阈值t3,其与短时平均过零率线的交点a位于b的左边,交点f位于e的右边。

其中,一帧的短时平均过零率即为该帧的平均过零率。

至此,交点a和f即为基于语音活性检测方法所确定的该音频信号的两个端点,交点a至交点f的音频片段即为基于语音活性检测方法从音频信号中所截取音频片段。

需要说明的是,步骤s401至步骤s404以从一段音频信号中只截取出一个音频片段为例,可以理解的是,从一段音频信号中也可以截取出多个音频片段,本申请实施例对此可以不做限定。

此外,需要说明的是,在本申请实施例中,在进行语音识别时,可以使用语音识别模型。语音识别模型例如可以是gmm-hmm模型(gaussianmixedmodel-hiddenmarkovmodel,高斯混合模型-隐马尔科夫模型),训练流程如下:使用若干指令语音、负样本作为训练数据;对训练语音进行mfcc特征提取;然后进行gmm-hmm模型的训练,训练过程中hmm参数估计例如可以采用baum-welch算法,为指令词的类别、噪声类别设置若干个状态,高斯数量若干,gmm-hmm模型训练使用em(expectationmaximization,期望最大化)方法,训练若干次,得到本申请所需的gmm-hmm模型。由此,语音识别流程可以为:提取检测到的声音片段的mfcc(梅尔频率倒谱系数)特征,利用提前训练好的gmm-hmm模型进行viterbi解码,输出识别结果。

以下结合附图以一个具体实施例详细阐述本申请。

在该实施例中,智能硬件设备刚开机时,例如可以默认通过语音活性检测方法进行语音端点检测,在满足一定条件时(即应用场景发生改变时)切换到滑动窗口检测方法运行一段时间,然后恢复到语音活性检测方法,具体切换过程如图5所示,该过程例如可以包括以下步骤。

步骤s501,开机。智能硬件设备启动语音端点检测功能,并默认通过语音活性检测方法进行语音端点检测。

步骤s502,实时获取音频流。

步骤s503,通过语音活性检测方法截取音频流中的音频片段。

步骤s504,检测截取的音频片段中是否存在声音。如果存在,则执行步骤s505;否则,跳转至步骤s503。

步骤s505,进行第一次语音识别,得到语音信息。

步骤s506,判断该语音信息是否为控制指令(第一切换条件)。如果是,则执行步骤s507;否则,执行步骤s508。

步骤s507,执行指令,执行完指令后执行步骤s509。

即,若第一次语音识别的结果为控制指令,则进行人机交互。交互结束后,在一段时间t分钟内(该时间段内的总滑动次数是n)通过滑动窗口检测方法进行语音端点检测。滑动窗口检测期间对每个滑动窗内的音频片段进行语音识别。

步骤s508,判断该语音信息的语音长度是否长于l秒(第二切换条件)。如果是,则执行步骤s509;否则,跳转至步骤s503。

即,若第一次语音识别的结果不是控制指令,则进一步判断该通过语音活性检测方法截取的语音片段的时长是否超过一定时长l秒(比如0.5s)。若该语音片段的时长小于l秒,则继续通过语音活性检测方法进行语音端点检测,即回到步骤s503。若该语音片段的时长大于或等于l秒,则认为此时用户有较大可能存在连续讲话的行为。因此在t分钟内通过滑动窗口检测方法进行语音端点检测,滑动窗口检测期间对每个滑动窗内的音频片段进行语音识别,流程如步骤s510~步骤s512。

步骤s509,初始化窗口滑动次数n=0。

步骤s510,滑动窗口检测一次,记录窗口滑动次数n=n+1。

步骤s511,进行语音识别。

步骤s512,判断n<n?如果是,则执行步骤s510;否则,跳转至步骤s503。

其中,步骤s510~步骤s512描述了滑动窗口检测期间的运行逻辑与退出逻辑。若滑动窗口检测与识别期间语音识别模块识别到控制指令,则暂停滑动窗口检测,转而执行指令动作。指令动作执行结束后,继续进行滑动窗口检测,直到执行完该段时间(即t分钟)的n次滑动窗口检测。n次滑动窗口检测结束后,恢复到默认的语音活性检测方法进行语音端点检测,即回到步骤s503。

图6为本申请一实施例提供的音频处理装置的结构示意图,如图6所示,该装置600可以包括:处理器601和存储器602。

所述存储器602,用于存储程序代码;

所述处理器601,调用所述程序代码,当程序代码被执行时,用于执行以下操作:

根据音频信号的音频特征信息在音频信号中截取音频片段;

基于音频片段判断是否执行窗口识别操作;

窗口识别操作包括如下操作:在音频片段之后的音频信号中移动采样窗口,并对采样窗口内的音频信号进行语音识别。

本实施例提供的音频处理装置,可以用于执行前述方法实施例的技术方案,其实现原理和技术效果与方法实施例类似,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

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