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

一种语音识别方法与流程

2021-08-31 17:44:00 来源:中国专利 TAG:语音识别 方法
一种语音识别方法与流程

本发明属于语音识别技术领域,具体涉及一种语音识别方法。



背景技术:

随着计算能力的提升和大数据语料的不断积累,语音识别技术飞速发展,准确率大幅提高,应用的场景也越来越广。语音识别作为连接人类与智能硬件设备的桥梁变得越来越受关注。在实际的应用场景中,语音识别技术通常与自然语言处理、语音合成等相关技术结合使用,创造出切实可行的语音接口,搭建一个可以实现实际功能的人机语音交互平台,这些技术在很大程度上提高了用户在可穿戴设备、智能汽车、智能家居和众多移动终端等智能设备的体验,同时使得人类和计算机真正在交互层面实现自然融合。

随着智能移动终端的普及应用,语料和文本的获取途径变得多种多样,正是因为这些丰富的资源,大规模的语音类型的模型才能够得以训练。而且近年来,由于机器学习不断发展,新型的语音识别技术借助机器学习算法的突破能够大幅地降低语音识别的错误率。

语音识别技术是自然语言处理中最为基础的研究领域,它直接影响着机器是否能听懂人类的语言。传统隐马尔科夫模型(hiddenmarkovmodel,hmm)的混合系统虽然在录制语音识别中已经接近人类水准,但是在实际应用中受现实世界噪声干扰严重,且存在需要专门的词典来实现词到音素的映射、需要对用hmm结构与音素逐帧对齐以及需要满足条件独立性建设等缺点。



技术实现要素:

为解决上述问题,本发明提供了一种语音识别方法,所述方法包括步骤:

获取原始语音;

预处理所述原始语音;

获取残差卷积神经网络和双向长短时记忆神经网络;

根据所述残差卷积神经网络和所述双向长短时记忆神经网络构建语音识别模型;

使用ctc损失函数对所述语音识别模型进行参数优化;

检测所述语音识别模型的有效性。

优选地,所述预处理所述原始语音包括步骤:

对所述原始语音进行预加重处理;

对所述原始语音进行分帧处理;

对所述原始语音进行加窗处理;

对所述原始语音进行端点检测处理。

优选地,所述预处理所述预加重处理中传递函数的表达式为:

h(z)=1-μz-1

其中,h(z)表示所述传递函数,μ表示预加重系数,取值范围为0.9<μ<1.0,z表示自变量。

优选地,所述预处理所述语音识别模型包括:7层残差卷积神经网络和7层双向长短时记忆神经网络。

优选地,所述预处理所述ctc损失函数的表达式为:

l(s)=-lnп(x,z)∈sp(z|x)=-∑(x,z)∈slnp(z|x);

其中,l(s)表示ctc损失函数,p(z|x)代表给定输入x输出序列z的概率,s表示训练集。

优选地,所述检测所述语音识别模型的有效性包括步骤:

获取测试数据;

将所述测试数据输入所述语音识别模型中;

获取所述语音识别模型的输出数据;

计算所述输出数据的词错误率。

优选地,所述词错误率的表达式为:

其中,wer表示所述词错误率,s表示输出数据中替换单词的个数,d表示输出数据中删除单词的个数,i表示输出数据中插入单词的个数,n表示测试数据中单词的总个数。

本专利提供了一种语音识别方法,从空间和时间上充分提取语音数据的特征信息,同时该模型结构也采用了端到端的模型结构,能够进一步简化语音识别的流程,通过上述方法不仅提高了语音识别的准确率,而且也提高了语音识别的效率。

附图说明

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

图1是本发明提供的一种语音识别方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

本申请中的缩略语和关键术语定义如下:

残差卷积神经网络:残差卷积神经网络是一种在线性模块和非线性模块之间增加残差块,通过包含的卷积层和降采样层计算深度结构的前馈神经网络。它可以降低网络复杂度,减小训练误差和测试误差,具有表征学习能力,能够按照其阶层结果对输入的信息进行平移不变分类。

双向长短时记忆循环神经网络:双向循环神经网络是由一个向前的循环神经网络和一个向后的循环神经网络组成,提供给输出层输入序列中的每一个点的完整的过去和未来的上下文信息。双向长短时记忆循环神经网络则是在循环神经网络中的隐含层引入长短时记忆模块,来弥补“梯度弥散”和“梯度消失”的问题。

语音识别:语音识别技术的本质是一种基于语音特征参数的模式识别,即通过学习将人类的语音中的词汇按照一定的模式进行分类,进而依据判定准则找出最佳的匹配结果。

如图1,在本申请实施例中,本发明提供了一种语音识别方法,所述方法包括步骤:

s1:获取原始语音;

s2:预处理所述原始语音;

s3:获取残差卷积神经网络和双向长短时记忆神经网络;

s4:根据所述残差卷积神经网络和所述双向长短时记忆神经网络构建语音识别模型;

s5:使用ctc损失函数对所述语音识别模型进行参数优化;

s6:检测所述语音识别模型的有效性。

在本申请实施例中,步骤s2中的预处理所述原始语音包括步骤:

对所述原始语音进行预加重处理;

对所述原始语音进行分帧处理;

对所述原始语音进行加窗处理;

对所述原始语音进行端点检测处理。

在本申请实施例中,对语音数据进行预处理主要分为四个部分,分别为预加重、分帧,加窗和端点检测等。语音识别的准确率的高低与输入的语音信号有着很密切的关系。因而将语音数据输入到模型之前,对其进行预加重、分帧、加窗等预处理操作是必不可少的。预处理技术不仅就能够减小甚至消除人类的发声器官对语音本身所产生的影响,而且可以降低在获取语音数据时由于设备本身所造成的信道和高频等因素的影响,从而能够最大限度使得预处理之后的语音信号更加准确、平坦,为后续特征参数的提取更加准确和优质的参数进而提高最终语音识别的准确率。同时也为了消除静音部分对于模型准确率的影响,在语音信号处理的过程中的往往会采用端点检测的方法。

在本申请实施例中,所述预处理所述预加重处理中传递函数的表达式为:

h(z)=1-μz-1

其中,h(z)表示所述传递函数,μ表示预加重系数,取值范围为0.9<μ<1.0,z表示自变量。

在本申请实施例中,步骤s4中的预处理所述语音识别模型包括:7层残差卷积神经网络和7层双向长短时记忆神经网络。

在本申请实施例中,语音识别模型的前端首先使用的是残差卷积神经网络,要使得该网络结构能够提取更深层次的特征,增加网络层数是可行的方法之一。更重要的是深层次的网络结构提取的特征更加抽象,其包含更丰富的语义信息。然而如果一味的只增加网络的层数,则也会有其弊端。其中之一就是会造成梯度弥散或梯度爆炸。通常针对该问题,经常会使用正则化的方法。然而该方法在网络层数过多的时候并不能起到很好地作用。原因在于网络层数增加,利用训练集在训练模型的过程中,其准确率会有下降的趋势。这很显然也不是模型过拟合产生的结果,当模型过拟合的时候其在训练集上的表现会更好。因而优化深度神经网络则成了需要继续解决的问题。残差卷积网络结构很好地解决了这个问题,它优化的方法有两种,一种是恒等映射,一种是残差映射,当训练的网络模型已经到达最优的结果,如果继续加深网络层数,残差映射将被置成0,因而只剩下恒等映射,这样网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。

当语音数据从残差卷积层输出后就会进入双向长短时记忆神经网络,该网络结构的作用在于不仅能够利用过去的上下文信息同时也能够利用未来的上下文信息,结合这两种上下文信息对于许多序列标注任务是非常有帮助的。例如,在对某个单词进行识别的时候,如果可以知道这个单词之前的信息,也知道这个单词之后的信息,那么对于该单词的判断有更高的准确率。在语音识别的场景中也是一样,如果知道某一帧语音前后的信息,那么对于该帧语音的判断会更加准确。然而传统的循环神经网络在时序上处理序列总是从前往后单向传播的,他们往往不会利用未来的上下文信息。因而许多学者在传统循环神经网络基础之上进行不断优化,利用双向长短时记忆神经网络不仅能够解决梯度爆炸的问题,还能够充分利用过去和未来上下文的信息,这对于模型准确率的提高会有更大的帮助。

在本申请实施例中,步骤s5中的预处理所述ctc损失函数的表达式为:

l(s)=-ln∏(x,z)∈sp(z|x)=-∑(x,z)∈slnp(z|x);

其中,l(s)表示ctc损失函数,p(z|x)代表给定输入x输出序列z的概率,s表示训练集。

在本申请实施例中,步骤s6中的检测所述语音识别模型的有效性包括步骤:

获取测试数据;

将所述测试数据输入所述语音识别模型中;

获取所述语音识别模型的输出数据;

计算所述输出数据的词错误率。

在本申请实施例中,所述词错误率的表达式为:

其中,wer表示所述词错误率,s表示输出数据中替换单词的个数,d表示输出数据中删除单词的个数,i表示输出数据中插入单词的个数,n表示测试数据中单词的总个数。

为了提高该模型方法的准确率并使该模型有更强的泛化能力,模型采用ctc损失函数对模型进一步调参。同时为了测试该方法的有效性,使用了在语音识别中最常用的评估标准为词错误率wer,为了使识别出来的词序列和标准的词序列之间保持一致,需要进行替换,删除,或者插入某些词,这些插入,替换,删除的词的总个数,除以标准的词序列中词的个数的百分比,就是词错误率,词错误率的值越低越好。

本申请提供一种基于残差卷积神经网络和双向长短时记忆神经网络相结合的语音识别方法,从空间和时间上充分提取了语音数据的特征,并且从模型结构上进一步做了优化,与传统的神经网络方法相比,该方法能够有效的提高语音识别的准确率和效率。

在本申请实施例中,首先使用的数据集为aishell-1,aishell-1是由希尔内壳公司录制的中文语音数据集,由400名来自中国不同口音区域的发言人参与录制,每个人录制三百多句语音,总录音时长178小时,语音内容涵盖财经、科技、体育、娱乐、时事新闻。该语音数据录制的环境较为安静且在室内,同时该录音使用的录制设备有3种:高保真麦克风(44.1khz,16-bit);android系统手机(16khz,16-bit);ios系统手机(16khz,16-bit)。高保真麦克风录制的音频降采样为16khz。

同时也要对这些特征进行预处理,预处理过程包含一下四个部分:

(1)预加重,语音信号预加重处理是将语音信号预处理的第一步,在获取到原始语音数据之后,首先将其通过一个高通滤波器来降低声门脉冲的影响,从而能够更加容易获取声道部分的参数来作进一步分析,其传递函数的表达式如下所示:

h(z)=1-μz-1

其中,h(z)表示所述传递函数,μ表示预加重系数,取值范围为0.9<μ<1.0,z表示自变量。

由于人们在说话过程中,声带和嘴唇都会影响其发音过程,其中的高频部分也会受到一定程度的限制,因此通过预加重首要达到的目标就是减弱口唇对于发声过程的影响,因此需要在传输之前对语音信号中高频部分进行加重,即提高语音信号的高频分辨率,使得高频的共振峰能够凸显出来,从而使得整个信息传输的信噪比得到改善,提高信息的传输质量。

(2)分帧,在处理的过程将语音分成一个个小段,通常每一小段的时长约为20-30ms,约有256个采样点,称这段语音为每帧语音。在分析一段连续数秒的语音信号特征参数的时候,应先将其做分帧处理,然后在对每一帧语音信号进行特征参数分析之后进而叠加在一起便构成了该段语音信号完整的特征参数。为了能使语音信号帧与帧之间保持其连续性,避免分帧后相邻语音信号之间的变化过大,因此会让两相邻帧之间有一段重叠部分,而该部分则被称为帧移。并且一般来说,帧移和帧长的比值范围在0到1/2之间。

(3)加窗,在处理一段长时间的语音中,语音信号之间会有不连续情况的出现,那样这段语音信号在分帧之后,就会与原始语音信号差异变大。所以为了能够使整体能够更加连续,就需要对每一帧语音信号进行加窗处理,即将每一帧语音代入窗函数,窗外的值设定为0,加窗之后可以将原始不连续,没有周期性的语音信号变得有周期的特征。经常使用的窗函数有很多,汉明窗就是其中之一。将每一帧语音与汉明窗函数做乘法运算,其结果能够使得每帧语音前后两端更加平滑。

(4)端点检测,在语音识别的系统中进行语音的端点检测是很必要的,因为在有些语音数据中可能会有些静音片段,这部分语音片段很可能会让模型当做特征去学习,干扰模型的学习过程,同时还进一步增加了数据处理的时间,最终会影响模型的准确率和效率。所以利用端点检测技术可以从带有噪声的语音片段中提出有效语音片段。而有效语音片段的精准把握,则必须测量出该片段的起始位置和结束位置。

接着,设计了一种基于残差卷积神经网络和双向长短时记忆神经网络相结合的模型结构。该网络结构前半部分利用了在图像识别领域中使用广泛的残差卷积网络结构,能够更有效地提取特征与时间相互的关联信息,同时利用其特殊的跳跃的连接方式避免了卷积神经网络层数不断加深之后出现的梯度消失和梯度爆炸问题。在模型训练的过程中,浅层的网络主要针对音素本身的特征学习,从空间上抽取短时的上下文信息,将传统的循环神经网络中的长短时记忆层(lstm)变成了双向长短时记忆层(bilstm)能够从时间上提取过去和未来的特征信息。由于循环神经网络中的每一层主要是用来提取句子中的语义信息,然而语义信息的理解也和音素信息紧密相关。因而该语音识别方法不仅可以更好地保留之前残差卷积神经网络所提取出的音素信息同时也能与每一个双向的长短时记忆层更好的结合来进一步提高了音识别的准确率。整个网络结构设计了7层残差卷积层和7层双向长短时记忆层,能更加精巧的模拟人类处理语音信号的过程,提高识别效果。

然后,模型参数的调整采用了ctc损失函数,ctc能够利用时序分类器将模型的输出装换成为基于标签序列的条件概率,能够为输入的序列选择最可能的标签。模型在语音识别的应用中,所面临的一个问题是神经网络输出的音素个数与标准答案的长度不一致,这使得损失函数的值就会很难计算,因而该网络结构使用ctc的损失函数来优化神经网络的参数,ctc计算的对象往往是softmax矩阵,因而会在双向长短时记忆网络后加一层softmax层。ctc的损失函数定义如下:

l(s)=-ln∏(x,z)∈sp(z|x)=-∑(x,z)∈slnp(z|x)

其中,l(s)表示ctc损失函数,p(z|x)代表给定输入x输出序列z的概率,s表示训练集。

最后,为了检测模型方法的有效性,通过利用测试数据对该方法进行测试,并利用wer值来判断该方法的好坏。词错误率的计算公式如下所示:

其中,wer表示所述词错误率,s表示输出数据中替换单词的个数,d表示输出数据中删除单词的个数,i表示输出数据中插入单词的个数,n表示测试数据中单词的总个数。

本专利提供了一种语音识别方法,从空间和时间上充分提取语音数据的特征信息,同时该模型结构也采用了端到端的模型结构,能够进一步简化语音识别的流程,通过上述方法不仅提高了语音识别的准确率,而且也提高了语音识别的效率。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

再多了解一些

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

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

相关文章

  • 日榜
  • 周榜
  • 月榜