本发明涉及语音识别技术领域,尤其涉及一种语音识别方法及装置。
背景技术:
语音识别是一种广义的自然语言处理技术,是用于人与机器进行更顺畅交流的技术,语音识别目前已使用在生活的各个方面。
随着深度学习的发展,目前语音识别任务是由端到端的深度学习的模式完成的,传统的方式是通过快速傅里叶变换从原始的音频文件得到频谱图,经过深层神经网络(dnn)网络获取其中的语义信息,最后通过隐马尔科夫模型(hmm)获得文字信息,解码方式是通过viterbi算法。
但是,在提取的语音特征中语音音素是带有一定的关联性,采用现有技术中的dnn-hmm的语音识别方案,在训练中存在梯度消失问题,容易陷入局部最优,会给整个模型的训练加大难度,导致模型无法收敛,最终导致viterbi解码方式消耗时间过长,词典数据量过大时会加剧消耗时间,在较长的句子识别中效果差。
技术实现要素:
本发明实施例提供一种语音识别方法及装置,用于解决现有技术中的上述技术问题。
为了解决上述技术问题,一方面,本发明实施例提供一种语音识别方法,包括:
获取待识别语音数据的频谱图;
将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
进一步地,将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果,具体包括:
将所述待识别语音数据的频谱图输入至所述语音识别模型中的卷积神经网络,输出语音特征;
将所述语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出语义信息;
将所述语义信息输入至所述语音识别模型中的解码器,输出所述文字识别结果。
进一步地,对所述语音识别模型进行训练的具体步骤如下:
将所述语音样本的频谱图输入至所述语音识别模型中的卷积神经网络,输出样本语音特征;
将所述样本语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出样本语义信息;
将所述样本语义信息输入至全连接神经网络,输出样本预测文字;
将所述样本预测文字输入至softmax回归模型,输出归一化后的样本预测文字;
将归一化后的样本预测文字输入至集束搜索算法模型,输出负样本;
根据所述负样本对所述语音识别模型进行二次训练,确定所述语音识别模型的参数。
进一步地,将所述样本语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出样本语义信息,具体包括:
将所述样本语音特征输入至双向长短时记忆网络,输出前后向的隐藏语义信息,同时,对所述样本语音特征进行正则化,得到归一化样本语音特征;
将所述隐藏语义信息和所述归一化样本语音特征进行合并,得到所述样本语义信息。
进一步地,根据所述负样本对所述语音识别模型进行二次训练,确定所述语音识别模型的参数,具体包括:
将所述负样本输入至二次训练的卷积神经网络,输出负样本语音特征;
将所述负样本语音特征输入至二次训练的双向残差长短时记忆网络,输出负样本语义信息;
将所述负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失;
根据所述连接者时间分类损失,利用反向传播算法确定所述语音识别模型的参数。
进一步地,将所述负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失,具体包括:
将所述负样本语义信息输入至全连接神经网络,输出负样本预测文字;
将所述负样本预测文字输入至softmax回归模型,输出归一化后的负样本预测文字;
将归一化后的负样本预测文字输入至连接者时间分类损失函数模型,输出所述连接者时间分类损失。
进一步地,所述语音识别模型中的卷积神经网络为两层卷积神经网络,所述语音识别模型中的双向残差长短时记忆网络为两层双向残差长短时记忆网络;
二次训练的卷积神经网络为两层卷积神经网络,二次训练的双向残差长短时记忆网络为七层双向残差长短时记忆网络。
另一方面,本发明实施例提供一种语音识别的装置,包括:
获取模块,用于获取待识别语音数据的频谱图;
识别模块,用于将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
再一方面,本发明实施例提供一种电子设备,包括:存储器、处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述方法的步骤。
又一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述方法的步骤。
本发明实施例提供的语音识别方法及装置,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
附图说明
图1为本发明实施例提供的语音识别方法的示意图;
图2为本发明实施例提供的语音识别模型的训练原理示意图;
图3为本发明实施例提供的双向残差长短时记忆网络的结构示意图;
图4为本发明实施例提供的语音识别装置的示意图;
图5为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
语音识别是一种广义的自然语言处理技术,是用于人与机器进行更顺畅交流的技术,语音识别目前已使用在生活的各个方面。
随着深度学习的发展,目前语音识别任务是由端到端的深度学习的模式完成的,传统的方式是通过快速傅里叶变换从原始的音频文件得到频谱图,经过深层神经网络(dnn)网络获取其中的语义信息,最后通过隐马尔科夫模型(hmm)获得文字信息,解码方式是通过viterbi算法。
一种常用的采用dnn-hmm模型进行语音识别的步骤如下:
1、读入音频文件,获取频谱图。
2、采用3层dnn提取语音特征。
3、采用7层dnn建立声学模型。
4、通过hmm解码构建识别结果的分布概率。
通过这种端到端的方式,能够快速部署,鲁棒性比机器学习的方式高。
但是,传统的dnn-hmm语音识别模型在提取语音特征中没有考虑到语音音素是带有一定的关联性的特点,在较长的句子识别中效果差;在训练中存在梯度消失问题,容易陷入局部最优,会给整个模型的训练加大难度,导致模型无法收敛;viterbi解码方式消耗时间过长,词典数据量过大时会加剧消耗时间。
为了解决上述技术问题,本发明实施例提供一种语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
图1为本发明实施例提供的语音识别方法的示意图,如图1所示,本发明实施例提供一种语音识别方法,其执行主体为语音识别装置。该方法包括:
步骤s101、获取待识别语音数据的频谱图。
具体来说,当需要进行语音识别时,首先读取音频文件,通过快速傅里叶变换得到待识别语音数据的频谱图。
例如,通过快速傅里叶变换得到39维的梅尔倒谱系数(mel-scalefrequencycepstralcoefficients,mfcc)特征的频谱图(spectrummap)。
步骤s102、将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
具体来说,获取待识别语音数据的频谱图之后,将该频谱图输入至语音识别模型,输出待识别语音数据对应的文字识别结果。
其中,该语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
在试验中发现,通过第一次训练中的第一层网络结构被分错的样本占到了全部样本的22%以上,随着句子的加长,强语法和语义相关的词语距离会更远,那么对于较浅的循环神经网络来说就更难捕捉到这一个信息。因此,本发明实施例采用二次训练,通过集束搜索算法(beamsearch)模型解码,获得错误率较高的句子,进而确定负样本,再基于负样本,利用第二层网络结构进行再次训练,但是同时缩小了每一层的隐藏节点,主要是为了预防出现过拟合的情况,并且也可以加快训练速度,从而提高对长句的识别效果。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果,具体包括:
将所述待识别语音数据的频谱图输入至所述语音识别模型中的卷积神经网络,输出语音特征;
将所述语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出语义信息;
将所述语义信息输入至所述语音识别模型中的解码器,输出所述文字识别结果。
具体来说,在本发明实施例中,语音识别模型由卷积神经网络、双向残差长短时记忆网络resbilstm和解码器构成。
将待识别语音数据的频谱图输入至语音识别模型,输出待识别语音数据对应的文字识别结果的具体步骤如下:
特征提取阶段:首先,将待识别语音数据的频谱图输入至语音识别模型中的卷积神经网络,输出语音特征。
编码阶段:然后,将语音特征输入至语音识别模型中的resbilstm,输出语义信息。
解码阶段:最后,将语义信息输入至语音识别模型中的解码器,输出文字识别结果。
例如,在特征提取阶段,可以采用两层的卷积神经网络cnn,根据mfcc特征设计提取的卷积核,第一层为39*11,第二层为20*11,由于频谱图的相连音素具有较强的关系,因此采用较大的卷积核能够较好的保留语音信息,通过加入采样的步幅,能够去除冗余。
在编码阶段,利用两层的resbilstm获取语音特征中的语义信息。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,对所述语音识别模型进行训练的具体步骤如下:
将所述语音样本的频谱图输入至所述语音识别模型中的卷积神经网络,输出样本语音特征;
将所述样本语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出样本语义信息;
将所述样本语义信息输入至全连接神经网络,输出样本预测文字;
将所述样本预测文字输入至softmax回归模型,输出归一化后的样本预测文字;
将归一化后的样本预测文字输入至集束搜索算法模型,输出负样本;
根据所述负样本对所述语音识别模型进行二次训练,确定所述语音识别模型的参数。
具体来说,在本发明实施例中,采用二次训练的方式对语音识别模型进行训练,图2为本发明实施例提供的语音识别模型的训练原理示意图,如图2所示,对语音识别模型进行训练的过程如下:
输入阶段:读取样本音频文件,通过快速傅里叶变换得到语音样本数据的频谱图。
例如,通过快速傅里叶变换得到39维的mfcc特征的频谱图。
特征提取阶段:将语音样本的频谱图输入至语音识别模型中的卷积神经网络,输出样本语音特征。
例如,可以采用两层的cnn,根据mfcc特征设计提取的卷积核,第一层为39*11,第二层为20*11,由于频谱图的相连音素具有较强的关系,因此采用较大的卷积核能够较好的保留语音信息,通过加入采样的步幅,能够去除冗余。
编码阶段:将样本语音特征输入至语音识别模型中的双向残差长短时记忆网络,输出样本语义信息。
例如,利用两层的双向残差长短时记忆网络获取语音特征中的样本语义信息。
解码阶段:将样本语义信息输入至全连接神经网络,输出样本预测文字。
然后,将样本预测文字输入至softmax回归模型,输出归一化后的样本预测文字。
反馈阶段:将归一化后的样本预测文字输入至beamsearch模型,输出负样本(negsamples)。
然后,根据该负样本对语音识别模型进行二次训练,确定该语音识别模型的参数。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,将所述样本语音特征输入至所述语音识别模型中的双向残差长短时记忆网络,输出样本语义信息,具体包括:
将所述样本语音特征输入至双向长短时记忆网络,输出前后向的隐藏语义信息,同时,对所述样本语音特征进行正则化,得到归一化样本语音特征;
将所述隐藏语义信息和所述归一化样本语音特征进行合并,得到所述样本语义信息。
具体来说,在本发明实施例中,resbilstm由双向长短时记忆网络bilstm和正则化模型batchnorm构成。将样本语音特征输入至语音识别模型中的双向残差长短时记忆网络,输出样本语义信息的具体步骤如下:
首先,将样本语音特征输入至双向长短时记忆网络,输出前后向的隐藏语义信息,同时,对样本语音特征进行正则化,得到归一化样本语音特征。
然后,将隐藏语义信息和归一化样本语音特征进行合并,得到语义信息。
图3为本发明实施例提供的双向残差长短时记忆网络的结构示意图,如图3所示,将残差网络的思想引入长短时记忆网络lstm,循环神经网络中的lstm在处理序列的输入可以获取音素之间的关系,当前步骤step的信息受到前一step的影响,在语音识别中能够获取语义信息,但对于复杂的长句子中音素和语义信息的结合较差,所以,本发明实施例将残差网络引入lstm能够很好的修正这一个问题。
整个resbilstm的工作流程是:输入语音特征,通过bilstm得到前后向的隐藏语义信息,通过全连接网络将前后向的信息结合,获取更丰富的语义信息,语音特征通过batchnorm得到归一化语音特征,最终,将归一化语音特征和语义信息结合在一起。
语音中的音素信息和语义信息是息息相关的,通过残差结合的方式能够很好的输出文本信息,对其中语音特征进行batchnorm能够加速整个训练速度。实验中,从一轮训练集训练需要45分钟降低到30分钟。
简单的增加层数会导致梯度弥散或梯度爆炸,通过残差网路能够解决这一类问题,并且不会产生额外的参数,也不会增加计算复杂度,而且整个网络依旧可以通过端到端的反向传播训练。从实验中发现,引入残差网络能够提高语音识别的准确率,能够说明确实补充了语音信息。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,根据所述负样本对所述语音识别模型进行二次训练,确定所述语音识别模型的参数,具体包括:
将所述负样本输入至二次训练的卷积神经网络,输出负样本语音特征;
将所述负样本语音特征输入至二次训练的双向残差长短时记忆网络,输出负样本语义信息;
将所述负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失;
根据所述连接者时间分类损失,利用反向传播算法确定所述语音识别模型的参数。
具体来说,在本发明实施例中,根据负样本对语音识别模型进行二次训练,确定语音识别模型的参数的具体步骤如下:
特征提取阶段:将负样本的频谱图输入至二次训练的卷积神经网络,输出负样本语音特征。
例如,可以采用两层的cnn,根据mfcc特征设计提取的卷积核,第一层为39*11,第二层为20*11,由于频谱图的相连音素具有较强的关系,因此采用较大的卷积核能够较好的保留语音信息,通过加入采样的步幅,能够去除冗余。
编码阶段:将负样本语音特征输入至二次训练的双向残差长短时记忆网络,输出负样本语义信息。
例如,利用7层的双向残差长短时记忆网络获取语音特征中的样本语义信息。
解码阶段:将负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失。
反馈阶段:根据连接者时间分类损失,利用反向传播算法确定语音识别模型的参数。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,将所述负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失,具体包括:
将所述负样本语义信息输入至全连接神经网络,输出负样本预测文字;
将所述负样本预测文字输入至softmax回归模型,输出归一化后的负样本预测文字;
将归一化后的负样本预测文字输入至连接者时间分类损失函数模型,输出所述连接者时间分类损失。
具体来说,在本发明实施例中,连接者时间分类模型由全连接神经网络fc、softmax回归模型和连接者时间分类损失函数ctcloss模型构成。
如图2所示,将负样本语义信息输入至连接者时间分类模型,输出连接者时间分类损失的具体步骤如下:
首先,将负样本语义信息输入至全连接神经网络,输出负样本预测文字。
然后,将负样本预测文字输入至softmax回归模型,输出归一化后的负样本预测文字。
最后,将归一化后的负样本预测文字输入至连接者时间分类损失函数模型,输出连接者时间分类损失。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,进一步地,所述语音识别模型中的卷积神经网络为两层卷积神经网络,所述语音识别模型中的双向残差长短时记忆网络为两层双向残差长短时记忆网络;
二次训练的卷积神经网络为两层卷积神经网络,二次训练的双向残差长短时记忆网络为七层双向残差长短时记忆网络。
具体来说,在本发明实施例中,语音识别模型中的cnn为两层cnn,语音识别模型中的resbilstm为两层resbilstm。
二次训练的cnn为两层cnn,二次训练的resbilstm为七层resbilstm。
首次训练完成后,通过beamsearch模型将预测结果进行文字输出,通过负采样获得分错的负样本,再利用负样本对语音识别模型进行二次训练,二次训练的各个阶段与首次训练的相同,其中,将二次训练过程中的resbilstm改为7层的resbilstm,能够有效提高语音识别的准确率。
在训练模型中,学习率采取基于验证集的自适应下降,选取最好的模型。
本发明实施例,通过基于lstm的网络结构进行语音识别,克服了传统深层神经网络的梯度弥散或梯度爆炸的问题,并且在结果上也优于深层神经网络,使用二次训练能够较好的兼容模型的时间开销和准确度。
本发明实施例提供的语音识别方法,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
基于上述任一实施例,图4为本发明实施例提供的语音识别装置的示意图,如图4所示,本发明实施例提供一种语音识别装置,包括获取模块401和识别模块402,其中:
获取模块401用于获取待识别语音数据的频谱图;识别模块402用于将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
本发明实施例提供一种语音识别装置,用于执行上述任一实施例中所述的方法,通过本实施例提供的装置执行上述某一实施例中所述的方法的具体步骤与上述相应实施例相同,此处不再赘述。
本发明实施例提供的语音识别装置,采用二次训练的方式对语音识别模型进行训练,使用二次训练能够较好的兼容语音识别模型的时间开销和准确度,从而提高了对长句的识别效果。
图5为本发明实施例提供的电子设备的结构示意图,如图5所示,该电子设备包括:处理器(processor)501、通信接口(communicationsinterface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501和存储器502通过总线503完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行如下方法:
获取待识别语音数据的频谱图;
将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明实施例提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例中的步骤,例如包括:
获取待识别语音数据的频谱图;
将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时,实现上述各方法实施例中的步骤,例如包括:
获取待识别语音数据的频谱图;
将所述待识别语音数据的频谱图输入至语音识别模型,输出所述待识别语音数据对应的文字识别结果;
其中,所述语音识别模型是基于语音样本以及预先确定的语音样本对应的文字,采用二次训练的方式进行训练后得到。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
本文用于企业家、创业者技术爱好者查询,结果仅供参考。