一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于深度神经网络的自动语音识别方法与流程

2021-08-31 17:44:00 来源:中国专利 TAG:语音识别 神经网络 深度 方法
一种基于深度神经网络的自动语音识别方法与流程

本发明涉及自动语音识别领域,尤其涉及一种基于深度神经网络的自动语音识别方法。



背景技术:

随着人机交互技术的不断发展,人机交互的方式也变得多种多样,从过去的通过文本输入交互,到现阶段的通过语音就能进行便捷的人机交互,这离不开不断进步的交互技术,其中,自动语音识别技术便是人机交互技术中极其重要的一环。

自动语音识别技术(automaticspeechrecognition,简称asr),主要用于将采集到的人类语音中的自然语言内容转换为计算机可读的输入内容,而对自然语言的识别准确度、速度直接关乎于人机交互的有效性和实用性。故现阶段如何提高自动语音识别技术的准确度、速度便成为人机交互领域广泛讨论的问题。

为此,申请号为:cn201811112506.6的发明申请提出了一种基于卷积神经网络的语音识别方法,该方法通过:对输入的原始语音信号进行预处理;提取出反映语音信号特征的关键特征参数,形成特征矢量序列;基于dcnn网络模型为基础、以联结主义时间分类器ctc作为损失函数,构建端对端方式的声学模型。训练声学模型,得到训练好的声学模型;将待识别的特征矢量序列输入到训练好的声学模型中得到识别结果,将识别结果经过语言模型得到最终识别后的语言文字。

该方法建模过程简单、容易训练,但采用的声学特征维数过多,其中含有很多冗余的信息,从而导致构建的神经网络模型过于庞大。并且,采用dcnn网络模型过于陈旧,对声学特征的学习能力不够,无法充分的利用语音前后帧之间的关联。

又一申请号为:cn202010019733.5的发明申请提出了一种基于人工智能的自动语音识别方法及系统,该申请采用语音训练识别模块对语音特征及语音对应文字编码进行学习,先通过特征学习层进行卷积学习频谱特征,然后通过语义学习层学习频谱特征间语义信息,最后通过输出层对综合学到的信息进行解码,输出对应文本。这样在直接使用汉字映射表进行标签的编码和解码,不需要对文本进行音素编码解码,然后再解码为文本,简化了训练流程。

但是,采用mfcc作为声学特征会存在声纹等冗余信息干扰,这些信息对单一的识别任务没有帮助。声学模型采用crnn的神经网络模型结构会使其卷积神经网络的卷积核大小过大且卷积核的步长过大,导致对特征的处理不够细腻;后续使用了过深过大的循环神经网络,极其容易造成训练时梯度爆炸或者过拟合等后果。

另一申请号为:cn201811538408.9的发明申请提出了一种语音识别训练系统及方法,该方法通过对输入语音进行预处理,使用cnn提取语音信号特征,使用rnn对特征进行识别,使用同音损失函数及近似损失函数进行拟合,最终达到语音识别的目的。

该申请通过按照通常识别的误差将设置多个损失函数分别应对不同的情况,提供了系统的精度和速度。但是使用crnn作为声学模型,会存在cnn对特征的学习能力不如vgg好,且rnn的训练难度较大;使用同音损失函数和近似损失函数进行拟合,需要对语音数据做对齐,工作量巨大等问题。

因此,有必要提供一种新的,能提供更加优质的语音识别的方法及系统来解决上述技术问题。



技术实现要素:

为解决上述技术问题,本发明提出一种基于深度神经网络的自动语音识别方法,通过如下步骤进行自动语音识别:

通过音频采集设备对原始语音信号进行采样,并得到原始语音数据;

提取原始语音数据的logfbank声学特征;

构建声学模型;

将logfbank声学特征输入声学模型当中,得到声学模型输出数据;

对声学模型输出数据进行ctc解码,并得到解码数据;

通过预先设定的拼音列表对解码数据进行映射,得到拼音序列;

将拼音序列输入语言模型中进行语言识别,并得到语言识别结果。

具体的,

作为更进一步的解决方案,所述音频采集设备以16000hz采样率对原始语音信号进行采样,原始语音数据以16bit整型进行保存,且每份原始语音数据时长不超过4秒。

作为更进一步的解决方案,提取原始语音数据的logfbank声学特征需要进行如下步骤:

通过高通滤波器对原始语音数据进行预加重;

通过分帧函数对预加重数据进行分帧操作;

将每一分帧带入窗函数进行加窗操作;

对加窗后的各分帧信号进行快速傅里叶变换得到各分帧的能量谱;

通过梅尔滤波器组对能量谱进行点积运算,得到梅尔频谱图;

对梅尔频谱图进行取对数变换;

将取对数变换后的梅尔频谱图进行离散余弦变换。

作为更进一步的解决方案,所述声学模型为采用vgg加bi-gru结合的神经网络声学模型,所述声学模型包括vgg层、dense层和bi-gru层;所述声学模型通过如下步骤得到logfbank声学特征的原始预测数据:

将logfbank声学特征作为输入到vgg层中并将输出送入到下一层进行处理,所述声学模型共设置有8组vgg层,所述8组vgg层依次首尾串连,并进行8次vgg计算,并得到最终的vgg层输出数据;

将vgg层输出数据输入到dense层中,进行特征平滑,得到特征平滑输出;

将特征平滑输出放入bi-gru层进行计算,得到一次bi-gru层输出;

将一次bi-gru层输出再次放入bi-gru层,得到二次bi-gru层输出;

将二次bi-gru层输出输入到dense层进行特征平滑,得到二次特征平滑输出;

将二次特征平滑输出再次输入dense层,得到声学模型输出数据。

作为更进一步的解决方案,所述vgg层通过依次串连的第一cnn层、第二cnn层和max_pooling层构成,其中,的第一cnn层和第二cnn层用于数据卷积化,max_pooling层用于数据池化,所述第一cnn层的卷积核为5*5,所述第二cnn层的卷积核为3*3。

作为更进一步的解决方案,所述ctc解码用于对声学模型输出数据进行ctc处理将连续出现的相同结果合并,去除多余结果。

作为更进一步的解决方案,所述语言模型隐马尔科夫语言模型,所述语言模型将拼音序列作为模型输入,并得到对应的文字识别结果;所述语言模型通过如下步骤进行拼音-文字转化:

s1将拼音序列作为输入,并通过声韵母分割处理法,得到以拼音音组为基本分割单元的拼音序列;

s2通过拼音-文字字典将各个拼音音组映射得到对应的文字序列,其中,文字序列中保存着同一个拼音音组对应的不同汉字;

s3将各个拼音音组对应文字序列中所有汉字的出现的初始概率值设置为1;

s4将相邻的拼音音组对应文字序列中所有汉字按照两字词组进行排列组合;并保存为筛选序列;

s5构建两字词频率词典,所述两字词概率词典中保存着常用两字词组、所属领域常用两字词组、其他两字词组和两字词组对应的出现频率值;

s6将筛选序列中各排列组合的两字词组在两字词组词典中进行检索,若存在,则进行保留;若不存在,则删除;并得到最终的状态转移序列中;

s7构建一字词频率词典,所述一字词频率词典中保存着常用一字词、所属领域一字词、其他一字词和一字词对应出现的频率值;

s8计算状态转移序列中各两字词组的状态转移概率,其转移状态公式为:

其中,a,b分别表示两字词组的首字与尾字;p0表示初始概率值;p2(a.b)表示两字词组对应的出现频率值;p1(a)表示首字作为一字词出现的频率值;

s9将各两字词组的状态转移概率与转移阈值进行比较,若高于转移阈值,则将当前两字词组作为输出结果进行更新,并保存当前状态转移概率值;

s10重复s1至s9步骤,直至得到所有转移概率值和对应的输出结果,并将各输出结果进行依次排列,作为最终的语言识别结果进行输出。

作为更进一步的解决方案,所述bi-gru单元即双向gru神经网络模型,包括正向gru单元和反向gru单元,输入数据分别进入正向gru单元和反向gru单元进行计算,并将正向gru单元输出与反向gru单元输出进行拼接/求和作为bi-gru单元的输出。

作为更进一步的解决方案,所述自动语音识别方法用于对国语和/或外语进行自动语音识别,所述拼音-文字字典为对应识别语言发音与文字对应的字典。

作为更进一步的解决方案,所述汉明窗函数为:

其中,n表示被截取信号;a0表示汉明窗常数,值为25/46;n-1表示汉明窗的截取窗口长度;

所述梅尔滤波器的梅尔滤波函数为:

其中,f表示被滤波信号。

与相关技术相比较,本发明提供的一种基于深度神经网络的自动语音识别方法具有如下有益效果:

1.本发明通过采用logfbank作为声学特征,只需要40维特征就足够表达声学信号的特征,极大的简化的信号的处理过程和神经网络模型的大小,对减少计算量以及减少存储空间帮助极大;采用vgg加双向gru结合的神经网络模型,加上gru可以充分的利用语音前后帧的信息,从而得到最佳的识别效果。

2.本发明通过ctc解码是将连续的相同结果合并,去除多余结果,并通过预先定义好的拼音列表映射得到识别出的拼音序列,无需对齐,免除人工对齐操作;

3.本发明通过采用隐马尔科夫语言模型,将拼音序列作为模型输入,并得到对应的文字识别结果;能给出同一个拼音对应不同文字的最佳识别结果,使自动语音识别的准确性大大提升。

附图说明

图1为本发明提供的一种基于深度神经网络的自动语音识别方法的较佳实施例系统流程示意图;

图2为本发明提供的一种基于深度神经网络的自动语音识别方法的较佳实施例声学模型示意图;

图3为本发明提供的一种基于深度神经网络的自动语音识别方法的较佳实施例bi-gru层示意图。

具体实施方式

下面结合附图和实施方式对本发明作进一步说明。

如图1至图3所示,本发明一种基于深度神经网络的自动语音识别方法,通过如下步骤进行自动语音识别:

通过音频采集设备对原始语音信号进行采样,并得到原始语音数据;

提取原始语音数据的logfbank声学特征;

构建声学模型;

将logfbank声学特征输入声学模型当中,得到声学模型输出数据;

对声学模型输出数据进行ctc解码,并得到解码数据;

通过预先设定的拼音列表对解码数据进行映射,得到拼音序列;

将拼音序列输入语言模型中进行语言识别,并得到语言识别结果。

作为更进一步的解决方案,所述音频采集设备以16000hz采样率对原始语音信号进行采样,原始语音数据以16bit整型进行保存,且每份原始语音数据时长不超过4秒。

作为更进一步的解决方案,提取原始语音数据的logfbank声学特征需要进行如下步骤:

通过高通滤波器对原始语音数据进行预加重;

通过分帧函数对预加重数据进行分帧操作;

将每一分帧带入窗函数进行加窗操作;

对加窗后的各分帧信号进行快速傅里叶变换得到各分帧的能量谱;

通过梅尔滤波器组对能量谱进行点积运算,得到梅尔频谱图;

对梅尔频谱图进行取对数变换;

将取对数变换后的梅尔频谱图进行离散余弦变换。

具体的,本实施例采用了logfbank作为声学特征,只需要40维特征就足够表达声学信号的特征,极大的简化的信号的处理过程和神经网络模型的大小,对减少计算量以及减少存储空间帮助极大;采用vgg加双向gru结合的神经网络模型,vgg是目前具有最好的特征学习能力的卷积神经网络模型结构,加上gru可以充分的利用语音前后帧的信息,从而得到最佳的识别效果。

作为更进一步的解决方案,所述声学模型为采用vgg加bi-gru结合的神经网络声学模型,所述声学模型包括vgg层、dense层和bi-gru层;所述声学模型通过如下步骤得到logfbank声学特征的原始预测数据:

将logfbank声学特征作为输入到vgg层中并将输出送入到下一层进行处理,所述声学模型共设置有8组vgg层,所述8组vgg层依次首尾串连,并进行8次vgg计算,并得到最终的vgg层输出数据;

将vgg层输出数据输入到dense层中,进行特征平滑,得到特征平滑输出;

将特征平滑输出放入bi-gru层进行计算,得到一次bi-gru层输出;

将一次bi-gru层输出再次放入bi-gru层,得到二次bi-gru层输出;

将二次bi-gru层输出输入到dense层进行特征平滑,得到二次特征平滑输出;

将二次特征平滑输出再次输入dense层,得到声学模型输出数据。

作为更进一步的解决方案,所述vgg层通过依次串连的第一cnn层、第二cnn层和max_pooling层构成,其中,的第一cnn层和第二cnn层用于数据卷积化,max_pooling层用于数据池化,所述第一cnn层的卷积核为5*5,所述第二cnn层的卷积核为3*3。

具体的,由于vgg模型由于层数更深特征图更宽,故是提取声学特征首选算法,采用logfbank作为声学特征能极大的排除了不同说话人之间的差异;采用vgg加双向gru结合的神经网络模型,vgg是目前具有最好的特征学习能力的卷积神经网络,而gru是循环神经网络的一个分支,gru的训练难度远低于上述的循环神经网络。

作为更进一步的解决方案,所述ctc解码用于对声学模型输出数据进行ctc处理将连续出现的相同结果合并,去除多余结果。

具体的,ctc解码是将连续的相同结果合并,去除多余结果,并通过预先定义好的拼音列表映射得到识别出的拼音序列;例如:识别出来的结果如下:“abbbb”而我们的目标输出长度为4,则按照ctc的编码的要求,保留a,合并b,其结果为“abbb”。使用ctc损失函数,无需对齐,免除人工对齐操作。

作为更进一步的解决方案,所述语言模型隐马尔科夫语言模型,所述语言模型将拼音序列作为模型输入,并得到对应的文字识别结果;所述语言模型通过如下步骤进行拼音-文字转化:

s1将拼音序列作为输入,并通过声韵母分割处理法,得到以拼音音组为基本分割单元的拼音序列;

s2通过拼音-文字字典将各个拼音音组映射得到对应的文字序列,其中,文字序列中保存着同一个拼音音组对应的不同汉字;

s3将各个拼音音组对应文字序列中所有汉字的出现的初始概率值设置为1;

s4将相邻的拼音音组对应文字序列中所有汉字按照两字词组进行排列组合;并保存为筛选序列;

s5构建两字词频率词典,所述两字词概率词典中保存着常用两字词组、所属领域常用两字词组、其他两字词组和两字词组对应的出现频率值;

s6将筛选序列中各排列组合的两字词组在两字词组词典中进行检索,若存在,则进行保留;若不存在,则删除;并得到最终的状态转移序列中;

s7构建一字词频率词典,所述一字词频率词典中保存着常用一字词、所属领域一字词、其他一字词和一字词对应出现的频率值;

s8计算状态转移序列中各两字词组的状态转移概率,其转移状态公式为:

其中,a,b分别表示两字词组的首字与尾字;p0表示初始概率值;p2(a.b)表示两字词组对应的出现频率值;p1(a)表示首字作为一字词出现的频率值;

s9将各两字词组的状态转移概率与转移阈值进行比较,若高于转移阈值,则将当前两字词组作为输出结果进行更新,并保存当前状态转移概率值;

s10重复s1至s9步骤,直至得到所有转移概率值和对应的输出结果,并将各输出结果进行依次排列,作为最终的语言识别结果进行输出。

作为更进一步的解决方案,所述bi-gru单元即双向gru神经网络模型,包括正向gru单元和反向gru单元,输入数据分别进入正向gru单元和反向gru单元进行计算,并将正向gru单元输出与反向gru单元输出进行拼接/求和作为bi-gru单元的输出。

具体的,bi-gru是指双向gru神经网络模型,就是将bi-gru的输入按照gru流程正向计算一遍后,再将输入按照输入的反方向再按照gru的流程计算一遍,并将两个结果的输出进行拼接(或者求和)在一起,其模型如图3所示。

作为更进一步的解决方案,所述自动语音识别方法用于对国语和/或外语进行自动语音识别,所述拼音-文字字典为对应识别语言发音与文字对应的字典。

作为更进一步的解决方案,所述汉明窗函数为:

其中,n表示被截取信号;a0表示汉明窗常数,值为25/46;n-1表示汉明窗的截取窗口长度。

需要说明的是:由于直接对信号进行矩形加窗会由于截断,从而产生频谱泄露,为了改善频谱泄露的情况,故本实施通过汉明窗函数进行加窗,由于汉明窗的幅频特性,其旁瓣衰减较大,而主瓣峰值与第一个旁瓣峰值衰减在43db左右,故能改善频谱泄露的情况。

所述梅尔滤波器的梅尔滤波函数为:

其中,f表示被滤波信号。

需要说明的是:因为人耳所听到的声音的高低与声音的频率并不成线性正比关系,所以用mel频率尺度更符合人耳的听觉特征。梅尔滤波器便是为了更好的满足人耳的听觉习惯所设置的。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜