嵌入式语音识别系统及方法与流程

文档序号:12128609阅读:606来源:国知局
嵌入式语音识别系统及方法与流程

本发明涉及语音信号处理技术领域,特别是涉及一种嵌入式语音识别系统及方法。



背景技术:

语音端点检测是语音识别中的关键技术之一。语音端点检测是指在连续声音信号中找出语音部分的起始点和终止点。端点检测准确与否,会直接影响到语音识别系统的性能。

一般的语音识别系统都是将采集的语音信号存储起来,当一定时间之后,再通过归一化计算,找出存储的语音信号中是否有有效的语音信号,然后再将有效的语音信号进行特征提取及后续语音识别模块。上述方法一方面需要较大的存储空间,另一方面不利于信号的采集,有可能在一段时间内存储的语音信号中根本就没有有效的语音信号。而在采集结束后,使用者又下达语音命令,很容易导致命令的丢失,不利于语音识别的实时性。



技术实现要素:

鉴于上述语音识别系统的实时性差,占用较大存储空间的问题,本发明的目的在于提供一种嵌入式语音识别系统及方法,语音信号的存储空间占用小,且实时性高。

为实现上述目的,本发明采用如下技术方案:

一种嵌入式语音识别系统,包括:

语音采集模块,用于获取语音信号,并对获取的所述语音信号进行分帧处理;

第一存储模块,用于存储所述语音信号的各个帧对应的梅尔频率倒谱系数;

第二存储模块,用于存储所述语音信号中包含的语音帧;

语音处理模块,包括预处理子模块、第一端点特征检测子模块、第一数据处理子模块和第二数据处理子模块;所述预处理子模块用于对所述语音信号的当前输入帧进行预处理;所述第一端点特征检测子模块用于计算所述当前输入帧的梅尔频率倒谱系数和短时能量值,并将所述当前输入帧的梅尔频率倒谱系数存储在第一存储模块中;

所述第一数据处理子模块用于根据所述当前输入帧的短时能量值判断当前输入帧是否为语音帧;当所述当前输入帧为语音帧时,将所述当前输入帧对应的梅尔频率倒谱系数存储至第二存储模块中;所述第二数据处理子模块用于当所述语音信号结束时,根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别。

在其中一个实施例中,所述系统还包括先入先出阵列;

所述第一数据处理子模块还用于当所述当前输入帧的短时能量值大于或等于第一能量阈值时,输出第一状态信号至所述先入先出阵列中;当所述当前输入帧的短时能量值小于所述第一能量阈值时,输出第二状态信号至所述先入先出阵列中;并当所述先入先出阵列中所述第一状态信号的个数大于或等于第一预设个数时,则判定当前输入帧为语音帧。

在其中一个实施例中,所述第一数据处理子模块还用于当下一输入帧的短时能量值小于或等于第二能量阈值时,输出第三状态信号至所述先入先出阵列中;当所述下一输入帧的短时能量值大于所述第二能量阈值时,输出第四状态信号至所述先入先出阵列中;当所述先入先出阵列中所述第三状态信号的个数大于或等于第二预设个数时,则判定当前输入帧为非语音帧。

在其中一个实施例中,所述语音处理模块还包括第二端点特征检测子模块和第三数据处理子模块,所述第二端点特征检测子模块用于根据连续输出的非语音帧的帧长获得非语音帧的持续时间;

所述第三数据处理子模块用于判断所述非语音帧的持续时间是否大于或等于第一预设时间;当所述非语音帧的持续时间大于或等于第一预设时间时,则判定所述语音信号结束,并将所述语音信号结束的信号传送至所述第二数据处理子模块和所述语音采集模块。

在其中一个实施例中,所述语音处理模块还包括运算子模块和第四数据处理子模块;

所述运算子模块用于当所述语音信号结束后,根据所述第二存储模块中一个或多个语音帧的帧长,获得所述语音信号的语音段的持续时间;

第四数据处理子模块用于判断所述语音段的持续时间是否大于或等于第二预设时间;当所述语音段的持续时间大于或等于第二预设时间时,则调用所述第二数据处理子模块进行语音特征识别;当所述语音段的持续时间小于所述第二预设时间时,则清空所述第一存储模块和所述第二存储模块。

在其中一个实施例中,所述语音处理模块还包括判断子模块,用于判断所述第二存储模块是否满载;

所述第二数据处理子模块还用于当所述第二存储模块满载时,根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别,并停止获取语音信号。

在其中一个实施例中,所述系统还包括语音识别模块;

所述第二数据处理子模块还包括归一化计算单元和差分计算单元;

所述归一化单元用于对所述第二存储模块中的一个或多个语音帧的梅尔频率倒谱系数进行归一化处理,获得归一化参数;

所述差分计算单元用于根据所述第二存储模块中的一个或多个语音帧的梅尔频率倒谱系数计算获得一阶差分参数和二阶差分参数;

所述语音识别模块用于根据所述归一化参数、所述一阶差分参数和所述二阶差分参数进行语音特征识别。

此外,本发明还提供了一种嵌入式语音识别方法,包括如下步骤:

获取语音信号,并对获取的所述语音信号进行分帧处理;

对所述语音信号的当前输入帧进行预处理;

计算所述当前输入帧的梅尔频率倒谱系数,并将所述当前输入帧的梅尔频率倒谱系数存储在第一存储模块中;

计算所述当前输入帧的短时能量值;

根据所述当前输入帧的短时能量值判断当前输入帧是否为语音帧;

当所述当前输入帧为语音帧时,将所述当前输入帧对应的梅尔频率倒谱系数存储至第二存储模块中;

当所述语音信号结束时,根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别。

在其中一个实施例中,根据所述当前输入帧的短时能量值判断当前输入帧是否为语音帧的步骤包括:

判断当前输入帧的短时能量值是否大于或等于第一能量阈值;

当所述当前输入帧的短时能量值大于或等于第一能量阈值时,输出第一状态信号至先入先出阵列中;

当所述当前输入帧的短时能量值小于所述第一能量阈值时,输出第二状态信号至所述先入先出阵列中;

当所述先入先出阵列中所述第一状态信号的个数大于或等于第一预设个数时,则判定当前输入帧为语音帧。

在其中一个实施例中,所述方法还包括如下步骤:

判断所述当前输入帧的短时能量值小于或等于第二能量阈值;

当所述当前输入帧的短时能量值小于或等于第二能量阈值时,输出第三状态信号至所述先入先出阵列中;

当所述当前输入帧的短时能量值大于所述第二能量阈值时,输出第四状态信号至所述先入先出阵列中;

当所述先入先出阵列中所述第三状态信号的个数大于或等于第二预设个数时,则判定当前输入帧为非语音帧。

在其中一个实施例中,所述方法还包括如下步骤:

根据连续输出的非语音帧的帧长获得非语音帧的持续时间;

判断所述非语音帧的持续时间是否大于或等于第一预设时间;

当所述非语音帧的持续时间大于或等于第一预设时间时,则判定所述语音信号结束,根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别,并重新获取下一个语音信号。

在其中一个实施例中,当判定所述语音信号结束后,所述方法还包括如下步骤:

根据所述第二存储模块中一个或多个语音帧的帧长,获得所述语音信号的语音段的持续时间;

判断所述语音段的持续时间是否大于或等于第二预设时间;

当所述语音段的持续时间大于或等于第二预设时间时,则根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别;

当所述语音段的持续时间小于所述第二预设时间时,则清空所述第一存储模块和所述第二存储模块。

在其中一个实施例中,所述方法还包括如下步骤:

判断所述第二存储模块是否满载;

当所述第二存储模块满载时,根据所述第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别,并停止获取语音信号。

在其中一个实施例中,对获取的所述语音信号进行特征识别的步骤包括:

对所述第二存储模块中的一个或多个语音帧的梅尔频率倒谱系数进行归一化处理,获得归一化参数;

根据所述第二存储模块中的一个或多个语音帧的梅尔频率倒谱系数计算获得一阶差分参数和二阶差分参数。

本发明的有益效果是:

本发明的嵌入式语音识别系统及方法,通过将语音信号的各个帧对应的梅尔频率倒谱系数存储在第一存储模块,当判定当前输入帧为语音帧时,再将该语音帧对应的梅尔频率倒谱系数复制到第二存储模块中,这样可以保证第二存储模块中存储的信号均为语音帧,从而可以优化第二存储模块的存储资源,节省第二存储模块的存储空间;同时,根据第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别,可以保证语音特征识别的实时性,避免了语音信号丢失的情况,进一步保证了语音信号识别的可靠性。

附图说明

图1为本发明的嵌入式语音识别系统一实施例的结构框图;

图2为本发明的嵌入式语音识别系统另一实施例的结构框图;

图3为本发明的嵌入式语音识别方法一实施例的流程图;

图4为本发明的嵌入式语音识别方法中判断语音与非语音一实施例的流程图;

图5为本发明的嵌入式语音识别方法另一实施例的流程图。

具体实施方式

为了使本发明的技术方案更加清楚,以下结合附图,对本发明的嵌入式语音识别系统及方法作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明并不用于限定本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如图1所示,本发明一实施例的嵌入式语音识别系统包括语音采集模块100、语音处理模块200、第一存储模块300、第二存储模块400和语音识别模块500。其中,语音采集模块100用于获取语音信号,并对获取的语音信号进行分帧处理。本实施例中,语音采集模块100可以是麦克风或语音采集芯片等语音信号拾取装置。同时,根据语音的短时平稳特性,语音可以以帧为单位进行处理,语音采集模块100可以选取20毫秒~30毫秒作为语音分帧的帧长,10毫秒~20毫秒作为帧叠,将获取的语音信号分隔为多个帧。

第一存储模块300用于存储语音信号的各个帧对应的梅尔频率倒谱系数,其中,语音信号的多个帧可以分为语音帧和非语音帧(静音帧等等)。本实施例中,第一存储模块300采用临时存储器,如缓存等等。进一步地,该第一存储模块300采用的是FIFO(First In First Out,先进先出)结构的临时存储器。第二存储模块400用于存储语音信号中包含的语音帧,第二存储模块400可以为RAM(Ramdom Access Memory,随机存取存储器)或Flash等等。

如图2所示,语音处理模块200可以包括预处理子模块210、第一端点特征检测子模块220、第一数据处理子模块230和第二数据处理子模块240。其中,预处理子模块210用于对语音信号的当前输入帧进行预处理,具体的,预处理子模块210可以对获取的语音信号进行去直流、A/D变换以及预加重处理。去直流处理及对语音信号进行预滤波的过程,在模拟语音信号进行离散化采集前,通过低通滤波器等滤除语音信号中包含的直流成分。A/D变换即将获取的模拟语音信号转换为数字语音信号。预加重处理即通过一个一阶激励响应高通滤波器,使语音信号的频谱变得平坦,不易受到有限字长效应的影响。

第一端点特征检测子模块220用于计算当前输入帧的梅尔频率倒谱系数(MFCC,Mel Frequency Cepstrum Coefficient)和短时能量值,并将当前输入帧的梅尔频率倒谱系数存储在第一存储模块300中。其中,梅尔频率倒谱系数的计算过程如下:第一端点特征检测子模块220对预加重处理后的当前输入帧进行加窗运算、时频转换、梅尔滤波器组滤波、对数运算、离散余弦变换等一系列的处理后可以获得梅尔频率倒谱系数。本实施例中,可以采用哈明窗对当前输入帧进行加窗处理,以减小吉布斯效应的影响。之后,对加窗后的当前输入帧进行快速傅里叶变换,将时域信号转换为信号的功率谱。然后,可以采用一组梅尔频标上线性分布的滤波器对信号的功率谱进行滤波。然后,对上述梅尔滤波器输出的结果求对数,从而得到近似于同态变换的结果。最后,通过离散余弦变换去除各维信号之间的相关性,如可以取离散余弦变换后的第2个到第13个系数作为梅尔频率倒谱系数。

其中,短时能量值表示当前输入帧的振幅的大小,因此,可以通过短时能量值来过滤掉语音信号中的噪声。具体地,第一数据处理子模块230用于根据当前输入帧的短时能量值判断当前输入帧是否为语音帧;若当前输入帧为语音帧时,将当前输入帧对应的梅尔频率倒谱系数存储至第二存储模块400中。具体地,若当前输入帧为语音帧时,则将当前输入帧对应的梅尔频率倒谱系数从第一存储模块300中复制到第二存储模块400中,从而使得语音帧保存至第二存储模块400中。若当前输入帧为非语音帧时,则不会将当前输入帧对应的梅尔频率倒谱系数复制到第二存储模块400中。这样,第二存储模块400仅用于存储语音帧信号,提高了第二存储模块400的存储空间利用率,优化了第二存储模块400的存储资源。进一步地,若当前输入帧为非语音帧时,第一数据处理子模块230可以直接将当前输入帧对应的梅尔频率倒谱系数从第一存储模块300中删除。

第二数据处理子模块240用于当上述语音信号结束后,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别,获得该语音信号的特征参数,以便于进行语音信号的识别等操作。这样保证语音特征识别的实时性,避免了语音信号丢失的情况,进一步保证了语音信号识别的可靠性。

在一个实施例中,上述系统还包括先入先出(FIFO,First In First Out)阵列,该先入先出阵列可以具有N(N≥1,N为正整数)帧存储空间。第一数据处理子模块230用于判断当前输入帧是否为语音帧。具体地,第一数据处理子模块230首先判断当前输入帧的短时能量值是否大于或等于第一能量阈值。在当前输入帧的短时能量值大于或等于预设的第一能量阈值时,则第一数据处理子模块230将输出第一状态信号(如第一状态信号可以为“1”)至先入先出阵列。在当前输入帧的短时能量小于预设的第一能量阈值时,则第一数据处理子模块230可以输出第二状态信号(如第二状态信号可以为“0”)至先入先出阵列。

同时,第一数据处理子模块230还可以根据多帧语音信号对应的状态信号判断当前输入帧是否为语音帧。当上述先入先出阵列中第一状态信号的个数大于或等于第一预设个数时,则可以判定当前输入帧为语音帧。本实施例中,系统会首先初始化语音信号的状态为非语音信号,当第一数据处理子模块230判定当前输入帧为语音帧时,将把默认的非语音信号修改为语音信号。同时,为进一步判断语音信号的终止点,第一数据处理子模块230在判定当前输入帧为语音帧后,清空上述先入先出阵列。

之后,第一数据处理子模块230还用于继续检测下一输入帧是否为非语音帧。具体地,在下一输入帧的短时能量值小于或等于第二能量阈值时,输出第三状态信号(如第三状态信号可以为“1”)至先入先出阵列中。在下一输入帧的短时能量值大于第二能量阈值时,输出第四状态信号(如第四状态信号可以为“0”)至先入先出阵列中。当先入先出阵列中第三状态信号的个数大于或等于第二预设个数时,则判定下一输入帧为非语音帧。

进一步地,还可以通过第一端点检测子模块220计算当前输入帧的短时过零率。通过当前输入帧的短时能量值和短时过零率结合的方式,判断当前输入帧是否为语音帧。

在一个实施例中,语音处理模块200还包括用于检测语音信号终止点的第二端点特征检测子模块250和第三数据处理子模块260。其中,第二端点特征检测子模块250用于检测语音信号的终止点,具体的,第二端点特征检测子模块250用于根据连续输出的非语音帧的帧长获得非语音帧的持续时间,此处的非语音帧的持续时间可以为一个非语音帧的帧长,也可以是连续的多个非语音帧的帧长之和。

第三数据处理子模块260用于判断非语音帧的持续时间是否大于或等于第一预设时间;当非语音帧的持续时间大于或等于第一预设时间时,则判定语音信号结束,并将语音信号结束的信号传送至第二数据处理子模块240和语音采集模块100。第二数据处理子模块240可以根据接收到的语音信号结束的信号,根据第二存储模块400中存储的当前语音信号的语音帧对应的梅尔频率倒谱系数进行语音特征识别。同时,第三数据处理子模块260将当前语音信号结束的信号传送至语音采集模块100,从而,语音采集模块100可以根据其接收到的信号进行下一个语音信号的采集操作。

在一个实施例中,语音处理模块200还包括运算子模块270和第四数据处理子模块280。其中,当检测到语音信号结束后,运算子模块270用于根据第二存储模块400中一个或多个语音帧的帧长,获得语音信号的语音段的持续时间。此处的语音段的持续时间可以为第二存储模块400中一个或多个语音帧的帧长之和。

第四数据处理子模块280用于判断语音段的持续时间是否大于或等于第二预设时间;当语音段的持续时间大于或等于第二预设时间时,则可以说明当前语音段为有效的语音,调用第二数据处理子模块240进行语音特征识别。当语音段的持续时间小于第二预设时间时,则上述语音段可能为噪声,此时第四数据处理子模块280将清空上述第一存储模块300和第二存储模块400,从而可以节省第二存储模块400的存储空间,优化存储空间。之后,语音采集模块100可以根据上述删除信号继续采集下一个语音信号,重新开始下一个语音信号的端点检测。

在一个实施例中,语音处理模块200还可以包括判断子模块290,用于判断第二存储模块400是否满载。本实施例中,可以根据第二存储模块400的存储空间大小计算获得该第二存储模块400最多能存储的语音帧的帧数(下称“第二存储模块400的最大帧数”)。当第二存储模块400中存储的语音帧的帧数等于第二存储模块400的最大帧数时,则可以说明该第二存储模块400已经满载。第二数据处理子模块240还用于当第二存储模块400满载时,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别,并停止获取语音信号。这样,当第二存储模块400满载时,停止获取语音信号,从而可以避免语音信号的丢失,可以语音识别的实时性。

在一个实施例,在语音信号结束或第二存储模块400满载时,第二数据处理子模块240开始工作,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别。具体的,第二数据处理子模块240还包括归一化计算单元241和差分计算单元242。其中,归一化计算单元241用于对第二存储模块400中的一个或多个语音帧的梅尔频率倒谱系数进行归一化处理,获得归一化参数,并将上述归一化参数传送至语音识别模块500。其中,上述归一化参数可以用来反映该语音信号的静态特性。差分计算单元242用于根据第二存储模块400中的一个或多个语音帧的梅尔频率倒谱系数计算获得一阶差分参数和二阶差分参数,并将上述一阶差分参数和二阶差分参数传送至语音识别模块500。其中,一阶差分参数即为相邻两个语音帧的梅尔频率倒谱系数之差。二阶差分参数上述相邻两个一阶差分之差。本实施例中,可以通过一阶差分参数和二阶差分参数可以用来反映该语音信号的动态特性。语音识别模块500用于根据归一化参数、一阶差分参数和二阶差分参数进行语音特征识别。

以下结合附图简要说明本发明的工作原理:

首先,语音采集模块100采集一段语音信号,并将采集到的语音信号进行分帧处理,之后,将上述分帧后的语音信号按帧输入至语音处理模块200中。

针对每一帧语音信号,语音处理模块200均按照如下方式进行信号处理。具体地,语音处理模块200的预处理子模块210首先对当前输入帧进行去直流和预加重等预处理过程,之后,将预处理后的当前输入帧传送至第一端点特征检测子模块220。第一端点特征检测子模块220计算预加重后的当前输入帧的梅尔频率倒谱系数和短时能量值,并将上述当前输入帧的梅尔倒谱系数存储在第一存储模块300(临时存储器)中。同时,第一数据处理子模块230根据当前输入帧的短时能量值判断当前输入帧是否为语音帧。例如,第一数据处理子模块230在当前输入帧的短时能量值大于或等于第一能量阈值时,输出第一状态信号至先入先出阵列中;并当先入先出阵列中所述第一状态信号的个数大于或等于第一预设个数时,则判定当前输入帧为语音帧。当第一数据处理子模块230判定当前输入帧为语音帧时,第一数据处理子模块230可以将当前输入帧对应的梅尔频率倒谱系数从第一存储模块300转存至第二存储模块400中。之后,第一数据处理子模块230清空上述先入先出阵列,并继续判断下一输入帧是否为非语音帧。

之后,语音处理模块200中的第三数据处理子模块260可以根据非语音帧的持续时间判断该语音信号是否结束。当该语音信号结束时,语音采集模块100停止获取语音信号。同时,当语音信号结束时,语音处理模块200中的第四数据处理子模块280可以根据第二存储中存储的一个或多个语音帧形成的语音段的持续时间判断该语音段是否为有效语音。具体地,当第四数据处理子模块280判定语音段的持续时间大于或等于第二预设时间时,则说明该语音段为有效的语音段。否则,则说明该语音段可能为噪音,第四数据处理子模块280将上述语音段从第二存储模块400中删除,即当语音段的持续时间小于第二预设时间时,同时清空第一存储模块300和第二存储模块400。

进一步地,语音处理模块200中的判断子模块290还可以判断上述第二存储模块400是否满载。当语音信号结束或第二存储模块400满载时,语音处理模块200中的第二数据处理子模块240将根据第二存储模块400中存储的语音帧的梅尔频率倒谱系数进行语音特征识别,并将获得语音信号的特征参数(归一化参数、一阶差分参数及二阶差分参数)传送至语音识别模块500,语音识别模块500对语音信号进行更进一步的处理。

此外,如图3所示,本发明还提供了一种嵌入式语音识别方法,包括如下步骤:

S110、获取语音信号,并对获取的语音信号进行分帧处理;具体地,可以通过语音采集模块100获取语音信号,同时语音采集模块100可以选取20毫秒~30毫秒作为语音分帧的帧长,10毫秒~20毫秒作为帧叠,将获取的语音信号分隔为多个帧。

S120、对语音信号的当前输入帧进行预处理;具体的,预处理子模块210可以对获取的语音信号进行去直流、A/D变换以及预加重处理。

S130、计算当前输入帧的梅尔频率倒谱系数,并将当前输入帧的梅尔频率倒谱系数存储在第一存储模块300中;其中,梅尔频率倒谱系数可以用来表示语音信号的特征,第一存储模块300采用的是FIFO(First In First Out,先进先出)结构的临时存储器。

S140、计算当前输入帧的短时能量值;其中,短时能量值表示当前输入帧的振幅的大小,因此,可以通过短时能量值来过滤掉语音信号中的噪声。

S150、根据当前输入帧的短时能量值判断当前输入帧是否为语音帧;

在当前输入帧为语音帧时,则执行步骤S160,将当前输入帧对应的梅尔频率倒谱系数存储至第二存储模块400中;这样,第二存储模块400仅用于存储语音帧信号,提高了第二存储模块400的存储空间利用率,优化了第二存储模块400的存储资源。在当前输入帧为非语音帧(如静音帧)时,则此时可以不做任何操作,直接返回步骤S110,进行下一帧语音信号的处理。即在当前输入帧为非语音帧时,不会将当前输入帧对应的梅尔频率倒谱系数存储至第二存储模块400中,从而可以优化第二存储模块的存储空间。

S170、当上述语音信号结束时,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别。本实施例中,针对同一个语音信号,重复执行上述步骤S150至步骤S160,直至该语音信号结束后,再执行步骤S170。之后,返回步骤S110,重新采集下一个语音信号,进行下一个语音信号的处理。这样保证语音特征识别的实时性,避免了语音信号丢失的情况,进一步保证了语音信号识别的可靠性。

在一个实施例中,如图4所示,上述步骤S150具体包括如下步骤:

S151、判断当前输入帧的短时能量值是否大于或等于第一能量阈值。

在当前输入帧的短时能量值大于或等于第一能量阈值时,则执行步骤S152,输出第一状态信号至先入先出阵列中;其中,第一状态信号可以为“1”,该先入先出阵列可以具有N(N≥1,N为正整数)帧存储空间。在当前输入帧的短时能量值小于第一能量阈值时,输出第二状态信号至先入先出阵列中;其中,第二状态信号可以为“0”。

S153、判断先入先出阵列中第一状态信号的个数是否大于或等于第一预设个数;可以通过先入先出阵列中存储的多帧语音信号的状态信号判断当前输入帧是否为语音帧。

当先入先出阵列中第一状态信号的个数大于或等于第一预设个数时,则执行步骤S154,判定当前输入帧为语音帧。

当判定当前输入帧为语音帧之后,执行步骤S155,清空上述先入先出阵列。同时将系统默认的非语音信号修改为语音信号。之后,通过判断下一帧语音信号是否为非语音帧,判断语音信号是否结束。

进一步地,上述步骤S150还包括如下步骤:

S156、判断下一输入帧的短时能量值小于或等于第二能量阈值;

当下一输入帧的短时能量值小于或等于第二能量阈值时,则执行步骤S157,输出第三状态信号至先入先出阵列中;其中,第三状态信号可以为“1”。在下一输入帧的短时能量值大于第二能量阈值时,输出第四状态信号至先入先出阵列中,其中,第四状态信号可以为“0”。

S158、判断先入先出阵列中第一状态信号的个数是否大于或等于第一预设个数;可以通过先入先出阵列中存储的多帧语音信号的状态信号判断当前输入帧是否为非语音帧。

当先入先出阵列中第三状态信号的个数大于或等于第二预设个数时,则执行步骤S159,判定下一输入帧为非语音帧。

作为进一步的改进,如图5所示,上述方法还包括如下步骤:

S210、根据连续输出的非语音帧的帧长获得非语音帧的持续时间;其中,非语音帧的持续时间可以为一个非语音帧的帧长,也可以是连续的多个非语音帧的帧长之和。

S220、判断非语音帧的持续时间是否大于或等于第一预设时间;

当非语音段的持续时间大于或等于第一预设时间时,则判定语音信号结束。此时,可以执行步骤S170,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别,获得当前语音信号的特征参数。同时,当判定语音信号结束时,执行步骤S260,重新获取下一个语音信号,进行下一个语音信号的处理。否则,当非语音段的持续时间小于第一预设时间,此时可以判定该语音信号尚未结束,继续进行下一帧语音信号的处理,直至该语音信号结束。

在一个实施例中,上述方法还包括如下步骤:

S230、根据第二存储模块400中一个或多个语音帧的帧长,获得语音信号的语音段的持续时间;其中,语音段的持续时间可以为第二存储模块400中一个或多个语音帧的帧长之和。

S240、判断语音段的持续时间是否大于或等于第二预设时间;

当语音段的持续时间大于或等于第二预设时间时,则可以说明当前语音段为有效的语音,此时执行步骤S170,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别,以获得该语音信号的特征参数。

当语音段的持续时间小于第二预设时间时,则上述语音段可能为噪声,此时,执行步骤S250,清空第一存储模块300和第二存储模块400,从而可以优化存储空间。

在一个实施例中,上述方法还包括如下步骤:

S270、判断第二存储模块400是否满载;本实施例中,可以根据第二存储模块400的存储空间大小计算获得该第二存储模块400最多能存储的语音帧的帧数(下称“第二存储模块400的最大帧数”)。当第二存储模块400中存储的语音帧的帧数等于第二存储模块400的最大帧数时,则可以说明该第二存储模块400已经满载。

当第二存储模块400满载时,则执行步骤S170,根据第二存储模块400中的语音帧的梅尔频率倒谱系数进行语音特征识别,并停止获取语音信号。即当第二存储模块400满载时,即使该语音信号尚未结束,也不再接收该语音信号的其他帧,从而可以避免语音信号的丢失,可以语音识别的实时性。当第二存储模块未满载时,说明第二存储模块中还有剩余的存储空间可以用来存储该语音信号的语音帧,此时,继续接收下一帧语音信号。

在一个实施例中,上述步骤S170具体可以包括如下步骤:

S171、对第二存储模块400中的一个或多个语音帧的梅尔频率倒谱系数进行归一化处理,获得归一化参数,并将上述归一化参数传送至语音识别模块。其中,上述归一化参数可以用来反映该语音信号的静态特性。

S172、根据第二存储模块400中的一个或多个语音帧的梅尔频率倒谱系数计算获得一阶差分参数和二阶差分参数,并将上述一阶差分参数和二阶差分参数传送至语音识别模块。其中,一阶差分参数即为相邻两个语音帧的梅尔频率倒谱系数之差。二阶差分参数上述相邻两个一阶差分之差。本实施例中,可以通过一阶差分参数和二阶差分参数可以用来反映该语音信号的动态特性。语音识别模块500用于根据归一化参数、一阶差分参数和二阶差分参数进行语音特征识别。

应当清楚的是,上述方法的各个执行步骤与上述系统的工作原理基本一致,具体可参见上文中的描述。

本发明的嵌入式语音识别系统及方法,通过将语音信号的各个帧对应的梅尔频率倒谱系数存储在第一存储模块,当判定当前输入帧为语音帧时,再将该语音帧对应的梅尔频率倒谱系数复制到第二存储模块中,这样可以保证第二存储模块中存储的信号均为语音帧,从而可以优化第二存储模块的存储资源,节省第二存储模块的存储空间;同时,根据第二存储模块中的语音帧的梅尔频率倒谱系数进行语音特征识别,可以保证语音特征识别的实时性,避免了语音信号丢失的情况,进一步保证了语音信号识别的可靠性。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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