连续长语音识别方法及系统、硬件设备的制造方法

文档序号:9930271阅读:787来源:国知局
连续长语音识别方法及系统、硬件设备的制造方法
【技术领域】
[0001]本发明属于语言信号识别技术领域,特别涉及一种连续长语音识别方法及系统、硬件设备。
【背景技术】
[0002]目前的语音识别领域,HMM(HiddenMarkov Model,隐马尔可夫模型)是语音识别的基础,语音识别中的主流RNN声学模型框架,主要还包含两部分:双向LSTM RNN和CTC输出层。双向RNN对当前语音帧进行判断时,要使用历史的语音信息和未来的语音信息,即需要语音有正确的开始帧和结束帧,才能正确识别,正确的开始帧必须是一句话的开始,它是数据的第一帧,正确的结束帧必须是一句话的结束,它是数据的最后一帧,只有满足上述条件才能把一句话识别完整。
[0003]但是,在进行语言识别时,语音识别电脑(或云端服务器)的缓冲有限,当语音数据到来时,需要在数据缓冲区等待识别,随着时间累计,必然造成电脑(或云端服务器)缓冲溢出,使电脑卡死(或服务器阻塞),目前语音识别方法为了防止以上情况,一般通过限制语音长度和限制数据量来解决,这会导致当连续语音超过限定值时被强行切断,从而造成不正确结束帧,强行切断帧的相关语音识别不准确,其后的音频数据则无法识别。

【发明内容】

[0004]【要解决的技术问题】
[0005]本发明的目的是提供一种连续长语音识别方法及系统、硬件设备,通过将连续语音切片成短语音数据序列进行识别,以解决在连续长语音识别过程中,大段语音造成服务器缓冲区溢出的问题。
[0006]【技术方案】
[0007]本发明是通过以下技术方案实现的。
[0008]本发明首先涉及一种连续长语音识别方法,该方法包括步骤:
[0009]A、初始化缓冲区,设置分帧时间长度、停顿时间阈值;
[0010]B、将待识别的连续长语音读入缓冲区并对缓冲区内的数据进行降噪处理;
[0011 ] C、按照预设的分帧时间长度对缓冲区内的数据进行分帧,识别各帧信号的类型,所述信号类型包括正常语音帧和静音帧;
[0012]D、对于各个正常语音帧后的首个静音帧,计算连续的静音帧的总静音时间,如果总静音时间大于预设停顿时间阈值,则将所述连续的静音帧设置为停顿状态,分别将两个连续停顿状态之间的语音信号保存在各个切片中,并在各个切片中追加一段静音帧;
[0013]E、分别对各个切片进行识别。
[0014]上述步骤中,通过步骤D,将长语音切断成短语句切片,并在执行过程中丢弃长段不影响语音识别准确率的静音包,有效避免了大段语音造成服务器缓冲区溢出问题。具体地,对于连续的长语音信号,通过步骤C的分帧得到了信号类型为正常语音帧或静音帧的分段信号,通过对连续的静音帧的总静音时间进行判断,从而判断该连续的静音帧是否为静音包(即语音信号是否为停顿状态),对于连续的两个静音包之间的信号,将其保存在切片中,通过步骤E进行短语音信号识别。
[0015]作为一种优选的实施方式,所述步骤B具体包括:首先对缓冲区内的数据进行快速傅立叶变换,并将非人声频率部分的声音系数设置为0,然后进行小波变换,并根据场景调整相应尺度小波系数,然后将处理后得到的数据替换原缓冲区的数据。
[0016]作为另一种优选的实施方式,所述步骤C根据各帧信号的平均能量值、过零率对该信号的类型进行识别。
[0017]作为另一种优选的实施方式,所述步骤A中预设的的停顿时间阈值为100?150ms。
[0018]作为另一种优选的实施方式,所述步骤D中追加的静音帧的长度为30?50ms。
[0019]本发明还涉及一种连续长语音识别系统,包括初始化模块、降噪模块、分帧模块、切片模块、分片识别模块,
[0020]所述初始化模块被配置成:初始化缓冲区,设置分帧时间长度、停顿时间阈值;
[0021 ]所述降噪模块被配置成:将待识别的连续长语音读入缓冲区并对缓冲区内的数据进行降噪处理;
[0022]所述分帧模块被配置成:按照预设的分帧时间长度对缓冲区内的数据进行分帧,识别各帧信号的类型,所述信号类型包括正常语音帧和静音帧;
[0023]所述切片模块被配置成:对于各个正常语音帧后的首个静音帧,计算连续的静音帧的总静音时间,如果总静音时间大于预设停顿时间阈值,则将所述连续的静音帧设置为停顿状态,分别将两个连续停顿状态之间的语音信号保存在各个切片中,并在各个切片中追加一段静音帧;
[0024]所述分片识别模块被配置成:分别对各个切片进行识别。
[0025]作为一种优选的实施方式,所述降噪模块具体被配置成:首先对缓冲区内的数据进行快速傅立叶变换,并将非人声频率部分的声音系数设置为0,然后进行小波变换,并根据场景调整相应尺度小波系数,然后将处理后得到的数据替换原缓冲区的数据。
[0026]作为另一种优选的实施方式,所述分帧模块根据各帧信号的平均能量值、过零率对该信号的类型进行识别。
[0027]作为另一种优选的实施方式,所述初始化模块预设的停顿时间阈值为100?150ms ο
[0028]作为另一种优选的实施方式,所述切片模块中追加的静音帧的长度为30?50ms。
[0029]本发明还涉及一种硬件设备,所述硬件设备被配置成安装有上述的任一连续长语音识别系统以对连续长语音进行识别。
[0030]【有益效果】
[0031]本发明提出的技术方案具有以下有益效果:
[0032]本发明综合运用快速傅立叶变换和小波变换,并结合人类语言特点,准确判断人类语句间隙,快速准确的将长语音切断成短语句切片,并在执行过程中丢弃长段不影响语音识别准确率的静音包,最后分段对各个切片进行识别,有效避免了大段语音造成服务器缓冲区溢出问题。同时,切片满足语音引擎识别所要求的开始帧和结束帧的约束,识别率等同于短语音。
【附图说明】
[0033]图1为本发明的实施例一提供的连续长语音识别系统的原理框图。
[0034]图2为本发明的实施例二提供的连续长语音识别方法中的切片编号流程示意图。
[0035]图3为本发明的实施例二提供的连续长语音识别方法中的分组切片识别流程示意图。
【具体实施方式】
[0036]为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的【具体实施方式】进行清楚、完整的描述。
[0037]实施例一
[0038]图1为本发明实施例一提供的连续长语音识别系统的原理框图。如图1所示,该连续长语音识别系统包括初始化模块、降噪模块、分帧模块、切片模块、分片识别模块。
[0039]本实施例中,初始化模块被配置成:初始化缓冲区,设置分帧时间长度、停顿时间阈值。具体地,初始化模块预设的停顿时间阈值为120ms。
[0040]本实施例中,降噪模块用于将待识别的连续长语音读入缓冲区并对缓冲区内的数据进行降噪处理。降噪模块具体被配置成:首先对缓冲区内的数据进行快速傅立叶变换,并将非人声频率部分的声音系数设置为0(人的发声频率在10Hz到10000Hz范围内),以最大限度滤除人声外噪声,然后进行小波变换,并根据场景预设阀值调整相应尺度小波系数到预设小波系数,进一步降低噪声,将小波变换得到的数据替换原缓冲区的数据。
[0041 ]本实施例中,分帧模块被配置成:按照预设的分帧时间长度对缓冲区内的数据进行分帧,识别各帧信号的类型,其中信号类型包括正常语音帧和静音帧。分帧模块根据各帧信号的平均能量值、过零率、超预设阈值次数对该信号的类型进行识别。
[0042]本实施例中,切片模块被配置成:对于各个正常语音帧后的首个静音帧,计算连续的静音帧的总静音时间,如果总静音时间大于预设停顿时间阈值,则将该连续的静音帧设置为停顿状态,分别将两个连续停顿状态之间的信号顺序保存在各个切片中。具体地,切片模块的处理流程可以参考下述具体方法实施例。
[0043]本实施例中,分片识别模块被配置成:分别对各个切片进行识别。
[0044]采用实施例一中的系统实现的连续长语音识别方法可以参考下述具体方法实施例。
[0045]实施例二
[0046]实施例二提供一种连续长语音识别方法,该方法包括切片编号流程和分组切片识别流程。
[0047]图2为本发明实施例二提供的连续长语音识别方法中的切片编号流程示意图。如图2所示,切片编号流程包括以下步骤:
[0048]1.1:初始化缓冲区,设置分帧时间长度、停顿时间阈值。具体地,预设的停顿时间阈值为120ms。具体地,在内存中开辟一段缓冲区,并分成百字节级的小段读入待识别的音频数据,在读入音频数据段(实际读入字节数会小于等于设定值)后计算缓冲区是否已满,如果缓冲区未满且未到音频数据尾端则继续读入音频数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1