HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

基于CRNN的语音识别方法、系统、存储介质及电子设备与流程

2021-01-28 17:01:30|512|起点商标网
基于CRNN的语音识别方法、系统、存储介质及电子设备与流程

本发明涉及语音识别领域,尤其涉及一种基于crnn(卷积循环神经网络)的语音识别方法、系统、存储介质及电子设备。



背景技术:

随着计算机技术发展,人们应用的电子产品日益趋向智能化,语音作为人类的最常使用的交互方式,在端设备上使用智能语音识别以及语音唤醒技术也成为智能方向上的一个热点。深度学习算法相对传统语音识别算法具有较高的准确率,较强的可塑性和普适性等优点,成为了应用在语音识别及语音唤醒系统中的语音识别技术主流。而具有优秀识别率的crnn就是常用的语音识别深度学习神经网络的一种。

crnn包括卷积层、rnn(一种循环神经网络)层、全连接层,crnn在进行语音识别时接收固定长度的预处理后的语音数据,依次经过卷积层、rnn层、全连接层输出识别结果,计算量很大。特别是在语音唤醒应用环境中,通常为了解决周围环境和传播媒介引入的来自四面八方的干扰(回声、混响、干扰声源),一般会采用麦克风阵列来捕捉、预处理语音数据,再传输到crnn中进行预处理语音数据的语音识别,但因其计算量大,受端设备的计算能力以及麦克风分布波束个数限制,crnn难以实时地进行语音识别计算,进而影响了语音唤醒的定位准确度和唤醒准确度。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中crnn在端设备进行语音信息处理时的计算量大,难以实时地进行语音识别的计算的缺陷,提供一种基于crnn的语音识别方法、系统、存储介质及电子设备。

本发明是通过下述技术方案来解决上述技术问题:

本发明实施例提供了一种基于crnn的语音识别方法,所述crnn包括卷积层、rnn层、全连接层,所述卷积层包括滤波器组,其特征在于,所述语音识别方法包括:

获取处理语音数据,所述处理语音数据为所述滤波器组指向预处理后的语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据;

将所述处理语音数据输入至所述卷积层,所述卷积层输出得到一帧卷积输出帧数据;

更新所述滤波器组的指向;

判断所述滤波器组的预设特征长度的语音数据是否获取完毕,若判断结果为否,则返回所述获取处理语音数据的步骤若所述判断结果为是,则将得到的所有帧数的卷积输出帧数据输入至所述rnn层,所述rnn层输出得到输出状态值;

将所述输出状态值输入至所述全连接层,所述全连接层输出得到所述预设特征长度的语音数据对应的语音识别的结果。

较佳地,所述将得到的所有帧数的卷积输出帧数据输入至所述rnn层,所述rnn层输出得到输出状态值的步骤包括:

将当前帧的所述卷积输出帧数据与前一次更新的所述rnn层的中间状态值输入至所述rnn层,所述rnn层输出得到更新后的中间状态值;

判断是否所有帧数的卷积输出帧数据输入完毕,若判断结果为否,则将下一帧的卷积输出帧数据作为当前帧的卷积输出帧数据,将所述更新后的中间状态值设置为前一次更新的所述rnn层的中间状态值,并返回所述将当前帧的所述卷积输出帧数据与前一次更新的所述rnn层的中间状态值输入至所述rnn层的步骤;若判断结果为是,则将所述rnn层最后一次的末层状态值作为输出状态值。

较佳地,所述将当前帧的所述卷积输出帧数据与前一次更新的所述rnn层的中间状态值输入至所述rnn层的步骤之前还包括:

初始化rnn层的状态为初始状态值。

本发明另一实施例提供了一种基于crnn的语音识别系统,所述crnn包括卷积层、rnn层、全连接层,所述卷积层包括滤波器组,所述语音识别系统包括获取模块、卷积模块、更新模块、识别模块和全连接模块;

所述获取模块用于获取处理语音数据,所述处理语音数据为所述滤波器组指向预处理后的语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据;

所述卷积模块用于将所述处理语音数据输入至所述卷积层,所述卷积层输出得到一帧卷积输出帧数据;

所述更新模块用于更新所述滤波器组的指向;

所述识别模块用于判断所述滤波器组的预设特征长度的语音数据是否获取完毕,若判断结果为否,则调用所述获取模块,若所述判断结果为是,则将得到的所有帧数的卷积输出帧数据输入至所述rnn层,所述rnn层输出得到输出状态值;

所述全连接模块用于将所述输出状态值输入至所述全连接层,所述全连接层输出得到所述预设特征长度的语音数据对应的语音识别的结果。

较佳地,所述识别模块还用于将当前帧的所述卷积输出帧数据与前一次更新的所述rnn层的中间状态值输入至所述rnn层,所述rnn层输出得到更新后的中间状态值;

还用于判断是否所有帧数的卷积输出帧数据输入完毕,若判断结果为否,则将下一帧的卷积输出帧数据作为当前帧的卷积输出帧数据,将所述更新后的中间状态值设置为前一次更新的所述rnn层的中间状态值,并返回所述将当前帧的所述卷积输出帧数据与前一次更新的所述rnn层的中间状态值输入至所述rnn层的步骤;若判断结果为是,则将所述rnn层最后一次的末层状态值作为输出状态值。

较佳地,所述识别模块包括初始化单元,所述初始化单元用于初始化rnn层的状态为初始状态值。

本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的基于crnn的语音识别方法。

本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于crnn的语音识别方法的步骤。

本发明的积极进步效果在于:

本发明通过每次获取滤波器组指向预处理语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据作为处理语音数据,并将处理语音数据输入至卷积层得到数量为一帧的卷积输出帧数,与传统的每次需要读取预处理语音数据的当前所有帧的数据至卷积层的数据量相比,处理的数据量大大减少,从而可以提高计算速度,以及减少内存占用空间,进而可实现在端设备进行实时地语音识别。

附图说明

图1为本发明的实施例1的基于crnn的语音识别方法的流程图。

图2为本发明的实施例1的传统crnn的循环的流程示意图。

图3为本发明的实施例1的增量crnn的循环流程示意图。

图4为本发明的实施例2的基于crnn的语音识别方法的步骤105的流程图。

图5为本发明的实施例3的基于crnn的语音识别系统的模块示意图。

图6为本发明的实施例4的基于crnn的语音识别系统的模块示意图。

图7为本发明实施例5提供的一种电子设备的结构示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

本实施例提供一种基于crnn的语音识别方法,其中crnn包括卷积层、rnn层、全连接层,卷积层包括滤波器组,如图1所示,语音识别方法的步骤包括:

步骤101、获取处理语音数据,处理语音数据为滤波器组指向预处理后的语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据。

步骤102、将处理语音数据输入至卷积层,卷积层输出得到一帧卷积输出帧数据。

步骤103、更新滤波器组的指向。

步骤104、判断滤波器组的预设特征长度的语音数据是否获取完毕,若判断结果为否,则返回步骤101,若判断结果为是,则执行步骤105。

步骤105、将得到的所有帧数的卷积输出帧数据输入至rnn层,rnn层输出得到输出状态值;

步骤106、将输出状态值输入至全连接层,全连接层输出得到预设特征长度的语音数据对应的语音识别的结果。

本实施例选用的场景是在端设备中,通常为了解决周围环境和传播媒介引入的来自四面八方的干扰(回声、混响、干扰声源),会采用麦克风阵列来捕捉语音数据并对语音数据进行预处理,得到预处理后的语音数据,再将预处理后的语音数据传输到语音识别模块即crnn神经识别网络中进行预选取波束的语音识别。本实施例的方法在不同的实际应用场景中,可以为动态实时更新的语音数据的识别,也适用于历史数据的语音识别,在此不作具体限定。

现对crnn神经识别网络进行说明。一般来说,crnn的输入数据是固定帧数的mfcc(梅尔频率倒谱系数)特征数据流即经过预处理后的语音数据,经过多次循环直至迭代结束,最终得到识别结果。在迭代过程中,实时识别前后两次循环中输入的语音特征数据流通常都会有一部分重叠的数据。输入语音特征数据经过卷积层卷积输出固定帧的帧数据,假如说固定的帧数为n帧,这里称为全量卷积,将n帧帧数据依次输入到rnn网络层做rnn状态值更新计算,这里称为全量rnn,将rnn网络层的末层状态值作为输出状态值并输入到全连接层计算得到全连接层输出结果。

这里假设crnn的输入数据是7帧特征数据,卷积层的滤波器组的宽度值是3帧,时间方向上的卷积步长是2帧,卷积层的层数是1。

通常传统的crnn的循环的处理流程如图2所示,假设为第一次循环,循环中的语音特征数据110输入至卷积层111,经过卷积帧数即滤波器组的宽度值为3帧的条件判定,处理语音特征数据110为i1-i7,如图中箭头112指示位置所示,卷积后滤波器组会停在i7帧位置,卷积输出3帧卷积输出帧数据o1-o3数据,将o1-o3数据逐帧输入至rnn层113对rnn层113的state(状态值)进行更新计算,待o3帧把rnn层113的state更新之后,将rnn层113的末层state的值作为输出状态值输出到全连接层114进行计算。

假设每次循环后,语音特征数据110都会被更新两帧数据,那第二次循环更新后的语音特征数据110更新为i3-i9,传统的crnn中的处理流程中,第二次循环是对语音特征数据110的i3-i9都进行处理,可以看出第二次循环与第一次循环相比较,语音特征数据110的i3-i7会被重叠处理,所以包括了大量重复的运算工作,而应用本实施例中的语音识别方法,是从滤波器组的目前位置i7开始接着往后取i7-i9三帧数据,不会对i3-i9这7帧数据重新进行计算,如图3所示,如图中箭头115方向所指的位置,经过卷积帧数条件判定及卷积后停在i9帧位置,i7-i9三帧数据输入至卷积层116,卷积层116将生成一帧数据o4,之后更新滤波器组的指向,继续从更新后的滤波器组的指向读取新的三帧数据,输入至卷积层116,卷积层116对应输出新的一帧卷积输出帧数据,直至滤波器组的预设特征长度的语音数据获取完毕,这部分我们称为增量卷积,对应此方法的crnn定义为增量crnn。

本语音识别方法通过每次获取滤波器组指向预处理语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据作为处理语音数据,与传统的每次需要读取预处理语音数据的当前所有帧的数据至卷积层的数据量相比,处理的数据量大大减少,从而可以提高计算速度,以及减少内存占用空间,进而可实现在端设备进行实时地语音识别。

实施例2

本实施例提供一种基于crnn的语音识别方法,本实施例与实施例1相比,其区别在于,如图4所示,步骤105包括:

步骤1051、初始化rnn层的状态为初始状态值。

步骤1052、将当前帧的卷积输出帧数据与前一次更新的rnn层的中间状态值输入至rnn层,rnn层输出得到更新后的中间状态值。

步骤1053、判断是否所有帧数的卷积输出帧数据输入完毕,若判断结果为否,则执行步骤1054;若判断结果为是,则执行步骤1055。

所有帧数的卷积输出帧数据为一组滤波器组的预设特征长度的语音数据对应输出的所有帧数的数据。

步骤1054、将下一帧的卷积输出帧数据作为当前帧的卷积输出帧数据,将更新后的中间状态值设置为前一次更新的rnn层的中间状态值,并返回步骤1052。

步骤1055、获取最后一层的中间状态值作为输出状态值。

在预处理的语音数据中预设特征长度的语音数据按照预设卷积步长以预设滤波宽度为帧数单位,依次输入至卷积层,得到对应的多帧卷积输出帧数据,将多帧卷积输出帧数据依次输入至rnn层最终得到分别得到输出状态值。

通常的预处理后的语音数据包括若干组预设特征长度的语音数据,判断是否所有的语音数据是否处理完毕,若没有处理完毕,则返回步骤101,继续循环执行后续的语音数据的识别,直至所有语音数据识别完成。

在第一次循环中,我们可以采用传统crnn的循环步骤,因为第一次循环全部为初始状态的数据,不会有大量的重复运算,可从第二次循环起应用增量crnn进行计算。

也可以进一步优化,在第一次循环中就采用增量crnn进行计算,第一次循环时的预处理的特征数据只有最后两帧(i6、i7)是真正的预处理特征数据,i1-i5是初始值0。如前面预设的卷积层的滤波器组的宽度值是3帧,此时i6、i7的两帧数据不满足卷积帧数即滤波器组的宽度值为3帧的条件,则本次不做卷积,待第二次循环时,根据假设每次循环后,语音特征数据都会被更新两帧数据的条件,则更新为数据(i4-i7),这4帧数据则满足了卷积帧数条件,可以做一次卷积计算,这样第二次循环才会有计算量,首次循环整个神经网络的计算量降为0,进一步降低了计算量。

卷积层的输出有两种方式:

1、继续沿用前面的例子,如果采用传统的方式,即增量crnn方式的第二次循环中,可将o2、o3、o4逐帧输出给rnn层,这样同传统的crnn的逻辑是一致的,同时说明了增量卷积和全量卷积结果是一致的,增量卷积的结果是正确的。

2、仅输出数据o4到rnn层。

因为rnn具有以下特性:

每一时刻state的值是通过前一时刻state值和当前时刻的卷积输出帧数据来进行更新的,且每个时刻的更新都是同样的操作,所以这里我们可以丢弃对o2、o3的重新计算,而直接利用上次循环最新的state值和本次的输入o4进行一次更新计算。这部分我们称为增量rnn,接着将rnn层的末层state输出到全连接层计算。

第二种方式中,本次及以后循环中卷积层的计算量是原来传统方式的1/3,rnn层的计算量也是原来的1/3。更进一步减少了计算量,优化了计算的性能。

针对不同的预处理后的语音数据的维度m,更新帧数u,滤波器宽w,卷积步长s,卷积层数p,计算量优化量有所不同。在s<u(保证每次循环都能至少做一次卷积),一层卷积的情况中,增量crnn中卷积、rnn部分计算量不超过crnn中卷积、rnn部分计算量的(u+s)/(m-w),当s>=u时,计算量还会更少。通常传统的crnn的输入特征数据帧数即预处理后的语音数据的维度是上百甚至更多,而每次循环的更新特征数据帧数相对其维度来说是非常小的,所以增量crnn的计算量优化是非常可观的。本领域技术人员均当卷积层数大于1层时,同理,每一层仅对本层的输入更新数据进行卷积,所以每层都会有计算量的优化。

本语音识别方法通过对crnn在实时识别中的计算逻辑进行改进,来减少每次循环的计算量。通过在卷积层和rnn层分别采用增量卷积、增量rnn来减少卷积、rnn的计算量,称作增量crnn。增量crnn的较少的计算量减少了对crnn模型参数大小的限制,从而使得具有较高识别率的较大模型在实时识别中也能够使用,也因为较小的计算量占用,对麦克风阵列的波束可分布个数、可挑选个数的限制降低,减少对定位精确度的影响;同理,增量crnn降低了端设备的负担,使得整个语音唤醒系统能够流畅的运行。

实施例3

本实施例提供一种基于crnn的语音识别系统,其中crnn包括卷积层、rnn层、全连接层,卷积层包括滤波器组,如图5所示,语音识别系统包括获取模块201、卷积模块202、更新模块203、识别模块204和全连接模块205。

获取模块201用于获取处理语音数据,处理语音数据为滤波器组指向预处理后的语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据。

卷积模块202用于将处理语音数据输入至卷积层,卷积层输出得到一帧卷积输出帧数据。

更新模块203用于更新滤波器组的指向;

识别模块204用于判断滤波器组的预设特征长度的语音数据是否获取完毕,若判断结果为否,则调用获取模块201,若判断结果为是,则将得到的所有帧数的卷积输出帧数据输入至rnn层,rnn层输出得到输出状态值。

全连接模块205用于将输出状态值输入至全连接层,全连接层输出得到预设特征长度的语音数据对应的语音识别的结果。

本实施例选用的场景是在端设备中,通常为了解决周围环境和传播媒介引入的来自四面八方的干扰(回声、混响、干扰声源),会采用麦克风阵列来捕捉语音数据并对语音数据进行预处理,得到预处理后的语音数据,再将预处理后的语音数据传输到语音识别模块即crnn神经识别网络中进行预选取波束的语音识别。本实施例的方法在不同的实际应用场景中,可以为动态实时更新的语音数据的识别,也适用于历史数据的语音识别,在此不作具体限定。

现对crnn神经识别网络进行说明。一般来说,crnn的输入数据是固定帧数的mfcc(梅尔频率倒谱系数)特征数据流即经过预处理后的语音数据,经过多次循环直至迭代结束,最终得到识别结果。在迭代过程中,实时识别前后两次循环中输入的语音特征数据流通常都会有一部分重叠的数据。输入语音特征数据经过卷积层卷积输出固定帧的帧数据,假如说固定的帧数为n帧,这里称为全量卷积,将n帧帧数据依次输入到rnn网络层做rnn状态值更新计算,这里称为全量rnn,将rnn网络层的末层状态值输入到全连接层计算得到全连接层输出结果。

这里假设crnn的输入数据是7帧特征数据,卷积层的滤波器组的宽度值是3帧,时间方向上的卷积步长是2帧,卷积层的层数是1。

通常传统的crnn的循环的处理流程如图2所示,假设为第一次循环,循环中的语音特征数据110输入至卷积层111,经过卷积帧数即滤波器组的宽度值为3帧的条件判定,处理语音特征数据110为i1-i7,如图中箭头112指示位置所示,卷积后滤波器组会停在i7帧位置,卷积输出3帧卷积输出帧数据o1-o3数据,将o1-o3数据逐帧输入至rnn层113对rnn层113的state(状态值)进行更新计算,待o3帧把rnn层113的state更新之后,将rnn层113的末层state的值输出到全连接层114进行计算。

假设每次循环后,语音特征数据110都会被更新两帧数据,那第二次循环更新后的语音特征数据110更新为i3-i9,传统的crnn中的处理流程中,第二次循环是对语音特征数据110的i3-i9都进行处理,可以看出第二次循环与第一次循环相比较,语音特征数据110的i3-i7会被重叠处理,所以包括了大量重复的运算工作,而应用本实施例中的语音识别方法,是从滤波器组的目前位置i7开始接着往后取i7-i9三帧数据,不会对i3-i9这7帧数据重新进行计算,如图3所示,如图中箭头115方向所指的位置,经过卷积帧数条件判定及卷积后停在i9帧位置,i7-i9三帧数据输入至卷积层116,卷积层116将生成一帧数据o4,之后更新滤波器组的指向,继续从更新后的滤波器组的指向读取新的三帧数据,输入至卷积层116,卷积层116对应输出新的一帧卷积输出帧数据,直至滤波器组的预设特征长度的语音数据获取完毕,这部分我们称为增量卷积,对应此方法的crnn定义为增量crnn。

本语音识别系统通过每次获取滤波器组指向预处理语音数据的当前帧位置起的预设滤波宽度值范围内的语音数据作为处理语音数据,与传统的每次需要读取预处理语音数据的当前所有帧的数据至卷积层的数据量相比,处理的数据量大大减少,从而可以提高计算速度,以及减少内存占用空间,进而可实现在端设备进行实时地语音识别。

实施例4

本实施例提供一种基于crnn的语音识别系统,本实施例与实施例3相比,其区别在于,如图6所示,语音识别系统还包括初始化单元2041。

更具体地,识别模块204还用于将当前帧的卷积输出帧数据与前一次更新的rnn层的中间状态值输入至rnn层,rnn层输出得到更新后的中间状态值;以及还用于判断是否所有帧数的卷积输出帧数据输入完毕,若判断结果为否,则将下一帧的卷积输出帧数据作为当前帧的卷积输出帧数据,将更新后的中间状态值设置为前一次更新的rnn层的中间状态值,并返回将当前帧的卷积输出帧数据与前一次更新的rnn层的中间状态值输入至rnn层的步骤;若判断结果为是,则将最后一层的中间状态值作为输出状态值。

初始化单元2041用于初始化rnn层的状态为初始状态值。通常的语音数据包括若干组预设特征长度的语音数据,判断是否所有的语音数据是否处理完毕,若没有处理完毕,返回调用获取模块,继续循环执行后续的语音数据的识别,直至所有语音数据识别完成。

在第一次循环中,我们可以采用传统crnn的循环步骤,因为第一次循环不会有大量的重复运算,可从第二次循环起应用增量crnn进行计算。

也可以进一步优化,在第一次循环中就采用增量crnn进行计算,第一次循环时的预处理的特征数据只有最后两帧(i6、i7)是真正的预处理特征数据,i1-i5是初始值0。如前面预设的,则此时i6、i7的两帧数据不满足卷积帧数即滤波器组的宽度值为3帧的条件,则本次不做卷积,待第二次循环时,根据前面的条件,假设每次循环后,语音特征数据都会被更新两帧数据(i4-i7),4帧数据则满足了卷积帧数条件,可以做一次卷积计算,这样第二次循环才会有计算量,首次循环整个神经网络的计算量降为0,进一步降低了计算量。

卷积层的输出有两种方式:

1、继续沿用前面的例子,如果采用传统的方式,即增量crnn方式的第二次循环中,可将o2、o3、o4逐帧输出给rnn层,这样同传统的crnn的逻辑是一致的,同时说明了增量卷积和全量卷积结果是一致的,增量卷积的结果是正确的。

2、仅输出数据o4到rnn层。

因为rnn具有以下特性:

每一时刻state的值是通过前一时刻state值和当前时刻的卷积输出帧数据来进行更新的,且每个时刻的更新都是同样的操作,所以这里我们可以丢弃对o2、o3的重新计算,而直接利用上次循环最新的state值和本次的输入o4进行一次更新计算。这部分我们称为增量rnn,接着将rnn层的末层state输出到全连接层计算。

第二种方式中,本次及以后循环中卷积层的计算量是原来的1/3,rnn层的计算量也是原来的1/3。更进一步减少了计算量,优化了计算的性能。

针对不同的预处理后的语音数据的维度m,更新帧数u,滤波器宽w,卷积步长s,卷积层数p,计算量优化量有所不同。在s<u(保证每次循环都能至少做一次卷积),一层卷积的情况中,增量crnn中卷积、rnn部分计算量不超过crnn中卷积、rnn部分计算量的(u+s)/(m-w),当s>=u时,计算量还会更少。通常传统的crnn的输入特征数据帧数即预处理后的语音数据的维度是上百甚至更多,而每次循环的更新特征数据帧数相对其维度来说是非常小的,所以增量crnn的计算量优化是非常可观的。本领域技术人员均当卷积层数大于1层时,同理,每一层仅对本层的输入更新数据进行卷积,所以每层都会有计算量的优化。

本语音识别系统通过对crnn在实时识别中的计算逻辑进行改进,来减少每次循环的计算量。通过在卷积层和rnn层分别采用增量卷积、增量rnn来减少卷积、rnn的计算量,称作增量crnn。增量crnn的较少的计算量减少了对crnn模型参数大小的限制,从而使得具有较高识别率的较大模型在实时识别中也能够使用,也因为较小的计算量占用,对麦克风阵列的波束可分布个数、可挑选个数的限制降低,减少对定位精确度的影响;同理,增量crnn降低了端设备的负担,使得整个语音唤醒系统能够流畅的运行。

实施例5

图7为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的基于crnn的语音识别方法。图7显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。

总线33包括数据总线、地址总线和控制总线。

存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。

存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的基于crnn的语音识别方法。

电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。

应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。

实施例6

本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1所提供的基于crnn的语音识别方法的步骤。

其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。

在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1的基于crnn的语音识别方法中的步骤。

其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips