语音区分方法、装置、计算机设备及存储介质与流程

文档序号:15938267发布日期:2018-11-14 02:44阅读:187来源:国知局

本发明涉及语音处理领域,尤其涉及一种语音区分方法、装置、计算机设备及存储介质。

背景技术

语音区分是指对输入的语音进行静音筛选,仅保留对识别更有意义的语音段(即目标语音)。目前的语音区分方法存在很大的不足,尤其在噪音存在的情况下,随着噪音的变大,进行语音区分的难度就越大,无法准确区分出目标语音和干扰语音,导致语音区分的效果不理想。



技术实现要素:

本发明实施例提供一种语音区分方法、装置、计算机设备及存储介质,以解决语音区分效果不理想的问题。

本发明实施例提供一种语音区分方法,包括:

基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据;

基于所述目标待区分语音数据,获取相对应的asr语音特征;

将所述asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果。

本发明实施例提供一种语音区分装置,包括:

目标待区分语音数据获取模块,用于基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据;

语音特征获取模块,用于基于所述目标待区分语音数据,获取相对应的asr语音特征;

目标区分结果获取模块,用于将所述asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果。

本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述语音区分方法的步骤。

本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述语音区分方法的步骤。

本发明实施例所提供的语音区分方法、装置、计算机设备及存储介质中,首先基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据,把原始待区分语音数据通过语音活动检测算法先区分一次,得到范围更小的目标待区分语音数据,能够初步有效去除非语音。然后基于目标待区分语音数据,获取相应的asr语音特征,为后续采用asr-dbn模型对该asr语音特征进行识别提供技术基础。最后将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果,该asr-dbn模型是根据asr语音特征专门训练的用于精确区分语音的识别模型,能够从目标待区分语音数据中正确区分目标语音和干扰语音,提高语音区分的准确性。

附图说明

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

图1是本发明一实施例中语音区分方法的一应用环境图;

图2是本发明一实施例中语音区分方法的一流程图;

图3是图2中步骤s10的一具体流程图;

图4是图2中步骤s20的一具体流程图;

图5是图4中步骤s21的一具体流程图;

图6是图4中步骤s24的一具体流程图;

图7是图2中步骤s30之前的一具体流程图;

图8是本发明一实施例中语音区分装置的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1示出本发明实施例提供的语音区分方法的应用环境。该语音识别方法的应用环境包括服务端和客户端,其中,服务端和客户端之间通过网络进行连接。客户端是可与用户进行人机交互的设备,包括但不限于电脑、智能手机和平板等设备。服务端具体可以用独立的服务器或者多个服务器组成的服务器集群实现。本发明实施例提供的语音区分方法应用于服务端。

如图2所示,图2示出本实施例中语音区分方法的一流程图,该语音区分方法包括如下步骤:

s10:基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据。

其中,语音活动检测(voiceactivitydetection,以下简称vad),目的是从声音信号流里识别和消除长时间的静音期,以达到在不降低业务质量的情况下节省话路资源的作用,可以节省宝贵的带宽资源,降低端到端的时延,提升用户体验。语音活动检测算法(vad算法)即语音活动检测时具体采用的算法,该算法可以有多种。可以理解地,vad可以应用在语音区分,能够区分目标语音和干扰语音。目标语音是指语音数据中声纹连续变化明显的语音部分,干扰语音可以是语音数据中由于静默而没有发音的语音部分,也可以是环境噪音。原始待区分语音数据是最原始获取到的待区分语音数据,该原始待区分语音数据是指待采用vad算法进行初步区分处理的语音数据。目标待区分语音数据是指通过语音活动检测算法对原始待区分语音数据进行处理后,获取的用于进行语音区分的语音数据。

本实施例中,采用vad算法对原始待区分语音数据进行处理,从原始待区分语音数据中初步筛选出目标语音和干扰语音,并将初步筛选出的目标语音部分作为目标待区分语音数据。可以理解地,对于初步筛选出的干扰语音不必再进行区分,以提高语音区分的效率。而从原始待区分语音数据中初步筛选出的目标语音仍然存在干扰语音的内容,尤其当原始待区分语音数据的噪音比较大时,初步筛选出的目标语音混杂的干扰语音(如噪音)就越多,显然此时采用vad算法是无法有效区分语音的,因此应将初步筛选出的混杂着干扰语音的目标语音作为目标待区分语音数据,以对初步筛选出的目标语音进行更精确的区分。服务器通过采用vad算法对原始待区分语音数据进行初步语音区分,可以根据初步筛选的原始待区分语音数据进行再区分,同时去除大量的干扰语音,有利于后续进一步的语音区分。

在一具体实施方式中,如图3所示,步骤s10中,基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据,包括如下步骤:

s11:根据短时能量特征值计算公式对原始待区分语音数据进行处理,获取对应的短时能量特征值,将短时能量特征值大于第一阈值的原始待区分数据保留,确定为第一原始区分语音数据,其中,短时能量特征值计算公式为n为语音帧长,s(n)为时域上的信号幅度,n为时间。

其中,短时能量特征值描述的是一帧语音(一帧一般取10-30ms)在其时域上对应的能量,该短时能量的“短时”应理解为一帧的时间(即语音帧长)。由于目标语音的短时能量特征值,相比于干扰语音(静音)的短时能量特征值会高出很多,因此可以根据该短时能量特征值来区分目标语音和干扰语音。

本实施例中,根据短时能量特征值计算公式处理原始待区分语音数据(需要预先对原始待区分语音数据作分帧的处理),计算并获取原始待区分语音数据各帧的短时能量特征值,将各帧的短时能量特征值与预先设置的第一阈值进行比较,将大于第一阈值的原始待区分语音数据保留,并确定为第一原始区分语音数据。该第一阈值是用于衡量短时能量特征值是属于目标语音还是干扰语音的分界值。本实施例中,根据短时能量特征值和第一阈值的比较结果,可以从短时能量特征值的角度初步区分得到原始待区分语音数据中的目标语音,并有效去除原始待区分语音数据中大量的干扰语音。

s12:根据过零率特征值计算公式对原始待区分语音数据进行处理,获取对应的过零率特征值,将过零率特征值小于第二阈值的原始待区分语音数据保留,确定为第二原始区分语音数据,其中,过零率特征值计算公式为n为语音帧长,s(n)为时域上的信号幅度n为时间。

其中,过零率特征值是描述一帧语音中语音信号波形穿过横轴(零电平)的次数。由于目标语音的过零率特征值,相比于干扰语音的过零率特征值会低很多,因此可以根据该短时能量特征值来区分目标语音和干扰语音。

本实施例中,根据过零率特征值计算公式处理原始待区分语音数据,计算并获取原始待区分语音数据各帧的过零率特征值,将各帧的过零率特征值与预先设置的第二阈值进行比较,将小于第二阈值的原始待区分语音数据保留,并确定为第二原始区分语音数据。该第二阈值是用于衡量短时能量特征值是属于目标语音还是干扰语音的分界值。本实施例中,根据过零率特征值和第二阈值的比较结果,可以从过零率特征值的角度初步区分得到原始待区分语音数据中的目标语音,并有效去除原始待区分语音数据中大量的干扰语音。

s13:将第一原始区分语音数据和第二原始区分语音数据作为目标待区分语音数据。

本实施例中,第一原始区分语音数据是根据短时能量特征值的角度从原始待区分语音数据中区分并获取的,第二原始区分语音数据是根据过零率特征值的角度从原始待区分语音数据中区分并获取的。第一原始区分语音数据和第二原始区分语音数据分别从区分语音的不同角度出发,这两个角度都能够很好地区分语音,因此将第一原始区分语音数据和第二原始区分语音数据合并(以取交集的方式合并)在一起,作为目标待区分语音数据。

步骤s11-s13可以初步有效地去除原始待区分语音数据中大部分的干扰语音数据,保留混杂着目标语音和少部分干扰语音(如噪音)的原始待区分语音数据,并将该原始待区分语音数据作为目标待区分语音数据,能够对原始待区分语音数据作有效的初步语音区分。

s20:基于目标待区分语音数据,获取相对应的asr语音特征。

其中,asr(automaticspeechrecognition,自动语音识别技术)是将语音数据转换为计算机可读输入的技术,例如将语音数据转化为按键、二进制编码或者字符序列等形式。通过asr可以提取目标待区分语音数据中的语音特征,提取到的语音即为与其相对应的asr语音特征。可以理解地,asr能够将原本计算机无法直接读取的语音数据转换为计算机能够读取的asr语音特征,该asr语音特征可以采用向量的方式表示。

本实施例中,采用asr对目标待区分语音数据进行处理,获取相对应的asr语音特征,该asr语音特征可以很好地反映目标待区分语音数据的潜在特征,可以根据asr语音特征对目标待区分语音数据进行区分,为后续根据该asr语音特征进行相应的asr-dbn模型识别提供技术前提。

在一具体实施方式中,如图4所示,步骤s20中,基于目标待区分语音数据,获取相对应的asr语音特征,包括如下步骤:

s21:对目标待区分语音数据进行预处理,获取预处理语音数据。

本实施例中,对目标待区分语音数据进行预处理,并获取相对应的预处理语音数据。对目标待区分语音数据进行预处理能够更好地提取目标待区分语音数据的asr语音特征,使得提取出的asr语音特征更能代表该目标待区分语音数据,以采用该asr语音特征进行语音区分。

在一具体实施方式中,如图5所示,步骤s21中,对目标待区分语音数据进行预处理,获取预处理语音数据,包括如下步骤:

s211:对目标待区分语音数据作预加重处理,预加重处理的计算公式为s'n=sn-a*sn-1,其中,sn为时域上的信号幅度,sn-1为与sn相对应的上一时刻的信号幅度,s'n为预加重后时域上的信号幅度,a为预加重系数,a的取值范围为0.9<a<1.0。

其中,预加重是一种在发送端对输入信号高频分量进行补偿的信号处理方式。随着信号速率的增加,信号在传输过程中受损很大,为了使接收端能得到比较好的信号波形,就需要对受损的信号进行补偿。预加重技术的思想就是在传输线的发送端增强信号的高频成分,以补偿高频分量在传输过程中的过大衰减,使得接收端能够得到较好的信号波形。预加重对噪声并没有影响,因此能够有效提高输出信噪比。

本实施例中,对目标待区分语音数据作预加重处理,该预加重处理的公式为s'n=sn-a*sn-1,其中,sn为时域上的信号幅度,即语音数据在时域上表达的语音的幅值(幅度),sn-1为与sn相对的上一时刻的信号幅度,s'n为预加重后时域上的信号幅度,a为预加重系数,a的取值范围为0.9<a<1.0,这里取0.97预加重的效果比较好。采用该预加重处理能够消除发声过程中声带和嘴唇等造成的干扰,可以有效补偿目标待区分语音数据被压抑的高频部分,并且能够突显目标待区分语音数据高频的共振峰,加强目标待区分语音数据的信号幅度,有助于提取asr语音特征。

s212:将预加重后的目标待区分语音数据进行分帧处理。

本实施例中,在预加重目标待区分语音数据后,还应进行分帧处理。分帧是指将整段的语音信号切分成若干段的语音处理技术,每帧的大小在10-30ms的范围内,以大概1/2帧长作为帧移。帧移是指相邻两帧间的重叠区域,能够避免相邻两帧变化过大的问题。对目标待区分语音数据进行分帧处理,能够将目标待区分语音数据分成若干段的语音数据,可以细分目标待区分语音数据,便于asr语音特征的提取。

s213:将分帧后的目标待区分语音数据进行加窗处理,获取预处理语音数据,加窗的计算公式为其中,n为窗长,n为时间,sn为时域上的信号幅度,s'n为加窗后时域上的信号幅度。

本实施例中,在对目标待区分语音数据进行分帧处理后,每一帧的起始段和末尾端都会出现不连续的地方,所以分帧越多与目标待区分语音数据的误差也就越大。采用加窗能够解决这个问题,可以使分帧后的目标待区分语音数据变得连续,并且使得每一帧能够表现出周期函数的特征。加窗处理具体是指采用窗函数对目标待区分语音数据进行处理,窗函数可以选择汉明窗,则该加窗的公式为n为汉明窗窗长,n为时间,sn为时域上的信号幅度,s'n为加窗后时域上的信号幅度。对目标待区分语音数据进行加窗处理,获取预处理语音数据,能够使得分帧后的目标待区分语音数据在时域上的信号变得连续,有助于提取目标待区分语音数据的asr语音特征。

上述步骤s211-s213对目标待区分语音数据的预处理操作,为提取目标待区分语音数据的asr语音特征提供了基础,能够使得提取的asr语音特征更能代表该目标待区分语音数据,并根据该asr语音特征进行语音区分。

s22:对预处理语音数据作快速傅里叶变换,获取目标待区分语音数据的频谱,并根据频谱获取目标待区分语音数据的功率谱。

其中,快速傅里叶变换(fastfouriertransformation,简称fft),指利用计算机计算离散傅里叶变换的高效、快速计算方法的统称,简称fft。采用这种算法能使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数越多,fft算法计算量的节省就越显著。

本实施例中,对预处理语音数据进行快速傅里叶变换,以将预处理语音数据从时域上的信号幅度转换为在频域上的信号幅度(频谱)。该计算频谱的公式为1≤k≤n,n为帧的大小,s(k)为频域上的信号幅度,s(n)为时域上的信号幅度,n为时间,i为复数单位。在获取预处理语音数据的频谱后,可以根据该频谱直接求得预处理语音数据的功率谱,以下将预处理语音数据的功率谱称为目标待区分语音数据的功率谱。该计算目标待区分语音数据的功率谱的公式为1≤k≤n,n为帧的大小,s(k)为频域上的信号幅度。通过将预处理语音数据从时域上的信号幅度转换为频域上的信号幅度,再根据该频域上的信号幅度获取目标待区分语音数据的功率谱,为从目标待区分语音数据的功率谱中提取asr语音特征提供重要的技术基础。

s23:采用梅尔刻度滤波器组处理目标待区分语音数据的功率谱,获取目标待区分语音数据的梅尔功率谱。

其中,采用梅尔刻度滤波器组处理目标待区分语音数据的功率谱是对功率谱进行的梅尔频率分析,梅尔频率分析是基于人类听觉感知的分析。观测发现,人耳就像一个滤波器组一样,只关注某些特定的频率分量(人的听觉对频率是有选择性的),也就是说人耳只让某些频率的信号通过,而直接无视不想感知的某些频率信号。然而这些滤波器在频率坐标轴上却不是统一分布的,在低频区域有很多的滤波器,他们分布比较密集,但在高频区域,滤波器的数目就变得比较少,分布很稀疏。可以理解地,梅尔刻度滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。

本实施例中,采用梅尔刻度滤波器组处理目标待区分语音数据的功率谱,获取目标待区分语音数据的梅尔功率谱,通过采用梅尔刻度滤波器组对频域信号进行切分,使得最后每个频率段对应一个数值,若滤波器的个数为22,则可以得到目标待区分语音数据的梅尔功率谱对应的22个能量值。通过对目标待区分语音数据的功率谱进行梅尔频率分析,使得其分析后获取的梅尔功率谱保留着与人耳特性密切相关的频率部分,该频率部分能够很好地反映出目标待区分语音数据的特征。

s24:在梅尔功率谱上进行倒谱分析,获取目标待区分语音数据的梅尔频率倒谱系数。

其中,倒谱(cepstrum)是指一种信号的傅里叶变换谱经对数运算后再进行的傅里叶反变换,由于一般傅里叶谱是复数谱,因而倒谱又称复倒谱。

本实施例中,对梅尔功率谱进行倒谱分析,根据倒谱的结果,分析并获取目标待区分语音数据的梅尔频率倒谱系数。通过该倒谱分析,可以将原本特征维数过高,难以直接使用的目标待区分语音数据的梅尔功率谱中包含的特征,通过在梅尔功率谱上进行倒谱分析,转换成易于使用的特征(用来进行训练或识别的梅尔频率倒谱系数特征向量)。该梅尔频率倒谱系数能够作为asr语音特征对不同语音进行区分的系数,该asr语音特征可以反映语音之间的区别,可以用来识别和区分目标待区分语音数据。

在一具体实施方式中,如图6所示,步骤s24中,在梅尔功率谱上进行倒谱分析,获取目标待区分语音数据的梅尔频率倒谱系数,包括如下步骤:

s241:取梅尔功率谱的对数值,获取待变换梅尔功率谱。

本实施例中,根据倒谱的定义,对梅尔功率谱取对数值log,获取待变换梅尔功率谱m。

s242:对待变换梅尔功率谱作离散余弦变换,获取目标待区分语音数据的梅尔频率倒谱系数。

本实施例中,对待变换梅尔功率谱m作离散余弦变换(discretecosinetransform,dct),获取相对应的目标待区分语音数据的梅尔频率倒谱系数,一般取第2个到第13个系数作为asr语音特征,该asr语音特征能够反映语音数据间的区别。对待变换梅尔功率谱m作离散余弦变换的公式为n为帧长,m为待变换梅尔功率谱,j为待变换梅尔功率谱的自变量。由于梅尔滤波器之间是有重叠的,所以采用梅尔刻度滤波器获取的能量值之间是具有相关性的,离散余弦变换可以对待变换梅尔功率谱m进行降维压缩和抽象,并获得相应的asr语音特征,相比于傅里叶变换,离散余弦变换的结果没有虚部,在计算方面有明显的优势。

步骤s21-s24基于asr技术对目标待区分语音数据进行特征提取的处理,最终获取的asr语音特征能够很好地体现目标待区分语音数据,采用该asr语音特征进行训练能够获取相对应的asr-dbn模型,使训练获取的asr-dbn模型在进行语音区分时的结果更为精确,即使在噪音很大的条件下,也可以精确地将噪音和语音区分开来。

需要说明的是,以上提取的特征为梅尔频率倒谱系数,在这里不应将asr语音特征限定为只有梅尔频率倒谱系数一种,而应当认为采用asr技术获取的语音特征,只要能够有效反映语音数据特征,都是可以作为asr语音特征进行识别和模型训练的。

s30:将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果。

其中,asr-dbn模型是指采用asr语音特征训练得到的神经网络模型,dbn指深度信念网络(deepbeliefnetwork)。该asr-dbn模型是采用待训练语音数据提取的asr语音特征进行训练得到的,因此该模型能够识别asr语音特征,从而能够根据asr语音特征区分语音。特别地,与传统的神经网络不同,asr-dbn模型是由若干个asr-rbm模型堆叠成的,其中,asr-rbm是asr-dbn的组成单元,rbm指受限玻尔兹曼机(restrictedboltzmannmachine)。待训练语音数据包括目标语音和噪音,在采用待训练语音数据训练asr-dbn模型时提取了目标语音的asr语音特征和噪音的asr语音特征,使得asr-dbn模型能够根据asr语音特征识别目标语音和干扰语音中的噪音(在采用vad区分原始待区分语音数据时已经去除了大部分的干扰语音,如语音数据中由于静默而没有发音的语音部分和一部分噪音,所以这里asr-dbn模型区分的干扰语音具体是指噪音部分),实现对目标语音和干扰语音进行有效区分的目的。

本实施例中,将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,由于asr语音特征能够反映语音数据的特征,因此可以根据asr-dbn模型对目标待区分语音数据提取的asr语音特征进行识别,从而根据asr语音特征对目标待区分语音数据作出精确的语音区分。该预先训练好的asr-dbn模型结合了asr语音特征和深度信念网络对特征进行深层提取的特点,从语音数据的特征上对语音进行区分,在噪音条件非常恶劣的情况下仍然有很高的精确率。具体地,由于asr提取的特征也包含噪音的asr语音特征,因此,在该asr-dbn模型中,噪音也是可以精确地进行区分,有效解决了当前语音区分方法(包括但不限于vad)在噪音影响较大的条件下无法有效进行语音区分的问题。

在一具体实施方式中,步骤s30,在将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果的步骤之前,语音区分方法还包括如下步骤:获取asr-dbn模型。

如图7所示,获取asr-dbn模型的步骤具体包括:

s31:获取待训练语音数据,并提取待训练语音数据的待训练asr语音特征。

其中,待训练语音数据是指训练asr-dbn模型所需的语音数据训练样本集,包括目标语音和噪音。该待训练语音数据可以采用开源的语音训练集,或者是通过收集大量样本语音数据的语音训练集。该待训练语音数据分为带标签待训练语音数据和无标签待训练语音数据。带标签待训练语音数据是指预先把语音和噪音通过标记的形式区分开来的语音数据,如把目标语音标记为“1”,把噪音标记为“0”。无标签待训练语音数据与带标签待训练语音数据的含义是相对的,无标签待训练语音数据没有通过标记的形式把语音和噪音区分开来。无标签待训练语音数据用在训练asr-rbm模型阶段,带标签待训练语音数据用在调优asr-dbn阶段,在各个阶段之前都应提取相应的待训练asr语音特征。

本实施例中,获取待训练语音数据,并提取该待训练语音数据的特征,该特征即待训练asr语音特征,提取待训练asr语音特征的步骤与步骤s21-s24相同,在此不再赘述。待训练语音数据中包括目标语音部分和噪音部分,这两部分语音数据都有各自的asr语音特征,因此,可以通过提取的待训练asr语音特征,训练并得到asr-dbn模型,使得根据该待训练asr语音特征训练获取的asr-dbn模型可以精确地区分目标语音和噪音(噪音属于干扰语音)。

s32:采用待训练asr语音特征依次训练asr-rbm模型,根据训练产生的误差进行参数更新,获取各个asr-rbm模型,其中,参数包括权值和偏置,偏置包含显层神经元的偏置和隐层神经元的偏置,更新权值w的公式为:w'=w+λ(p(h1|v1)v1-p(h2|v2)v2),w为更新前的权值,w'为更新后的权值,λ为学习率,v1为原始显层,v2为重构显层,h1为原始隐层,h2为重构隐层;更新偏置a的公式为:a'=a+λ(v1-v2),a为显层神经元更新前的偏置,a'为显层神经元更新后的偏置;更新偏置b的公式为b'=b+λ(h1-h2),b为隐层神经元更新前的偏置,b'为隐层神经元更新后的偏置。

asr-rbm是asr-dbn的组成单元,获取asr-dbn模型需要先充分训练第一个asr-rbm模型,并固定该asr-rbm模型的权值和偏置,使用该asr-rbm模型隐层输出的asr语音特征,作为第二个asr-rbm模型输入的asr语音特征,然后充分训练第二个asr-rbm模型。充分训练第二个asr-rbm模型后,将第二个asr-rbm模型堆叠在第一个asr-rbm模型的上方,即第一个asr-rbm模型的隐层作为第二个asr-rbm模型的显层,以此类推依次充分训练得到预设个数的asr-rbm模型。

在一实施例中,采用待训练asr语音特征依次训练并得到预设个数的各个asr-rbm模型。训练asr-rbm模型的过程是无监督学习的训练方式,相比与有监督学习的训练方式(带标签训练语音数据),能够尽可能地保留asr语音特征的特点,同时降低特征的维度;在样本数据量较大的情况下,能够减少在数据获取阶段花费的大量用于设置标签的时间,明显提高训练效率。

在一实施例中,asr-dbn模型是由若干个asr-rbm模型堆叠得到的,因此需要训练获取每一个asr-rbm模型,其中,堆叠是指上一个asr-rbm模型的隐层作为下一个asr-rbm模型的显层,上一个asr-rbm模型的输出值即为下一个asr-rbm模型的输入值。训练过程中,需要充分训练上一个asr-rbm模型后才能训练下一个asr-rbm模型,直至最后一个。每一个asr-rbm模型有两层神经元,包括显层(visiblelayer)和隐层(hiddenlayer)。显层(visiblelayer)由显元(visibleunits)组成,用于输入待训练asr语音特征。相应地,隐层(hiddenlayer)由隐元(hiddenunits)组成,用作特征检测器(featuredetectors),能够根据显层的输入值(待训练asr语音特征)得到对应的输出值。asr-rbm模型的两层(显层和隐层)之间是双向全连接的连接关系,但是显层和隐层内部的神经元间都没有互连,只有层间的神经元有对称的连接线,则在给定所有显元的输出值的情况下,每一个隐元取什么值是互不相关的。也就是说,同样在给定隐层时,所有显元的取值也互不相关。因此,在计算每个神经元的取值情况时就不必每次计算一个,而是同时并行地计算整层显层的神经元或整层隐层的神经元。在asr-rbm模型中,任意两个相连的神经元之间有一个权值w表示其连接强度(权值),每个显层神经元自身有一个偏置a,每个隐层神经元自身有一个偏置b。

训练asr-rbm模型的过程即对模型中的参数w、a和b进行更新,具体地,在一个asr-rbm模型中,隐层神经元hj被激活的概率为:

p(hj=1|v)=σ(bj+∑iwi,jvi)--公式(1)

由于双向全连接的连接关系,显层神经元vi同样能被隐层神经元激活:

p(vi=1|h)=σ(ai+∑jwi,jhj)--公式(2)

以上公式中,h表示隐层神经元,v表示显层神经元,i表示显层神经元中的第i个,j表示隐层神经元中的第j个,σ表示激活函数,具体可以sigmoid函数,a表示显层神经元的偏置,b表示隐层神经元的偏置,w表示显层神经元和隐层神经元连接的权值,wi,j即第i个显层神经元和第j个隐层神经元连接的权值。当待训练asr语音特征x输入到显层后,asr-rbm模型根据公式(1)计算出每个隐层神经元被激活的概率p(hj|x),j=1,2...,nh,取一个0-1的随机数μ作为阈值(如0.5),若隐层神经元被激活的概率大于该阈值的神经元则被激活,否则不被激活,用公式表示为:

由此能够得到隐层的每个神经元是否被激活。另外,在给定隐层时,显层的计算方法是相似的,表示为:

由于训练过程会产生误差,因此需要根据输出值更新asr-rbm的权值和偏置。具体地,首先根据输出值构建误差函数,该误差函数具体可以是对数误差函数。然后基于误差函数最优地更新权值和偏置。对于一条样本数据,即一个待训练asr语音特征x,可以采用以下步骤更新权值和偏置:

(1)把待训练asr语音特征x输入到原始显层v1,利用公式(1)计算出原始隐层h1中每个神经元被激活的概率p(h1=1|v1);

(2)从计算的概率分布中采取吉布斯抽样抽取一个样本:h1~p(h1|v1);

(3)用h1重构得到重构显层v2,具体即通过隐层反推显层,利用公式(2)计算显层中每个神经元被激活的概率p(v2|h1);

(4)同样地,从计算得到的概率分布中采取吉布斯抽样抽取一个样本:v2~p(v2|h1);

(5)用v2重构得到重构隐层h2,具体即通过显层反推隐层,利用公式(1)计算隐层中每个神经元被激活的概率,得到概率分布:p(h2|v2);

则根据该方法,则更新权值w的公式为:w'=w+λ(p(h1|v1)v1-p(h2|v2)v2),其中,w为更新前的权值,w'为更新后的权值,λ为学习率。更新偏置a的公式为:a'=a+λ(v1-v2),a为显层神经元更新前的偏置,a'为显层神经元更新后的偏置,更新偏置b的公式为b'=b+λ(h1-h2),b为隐层神经元更新前的偏置,b'为隐层神经元更新后的偏置。经过若干次训练后,隐层不仅能较为精准地显示显层的特征,同时还能够还原显层,在达到最大训练次数或者梯度变化率小于预设阈值时停止更新训练。根据以上权值和偏置的更新的公式可以充分训练asr-rbm模型,获取各个asr-rbm模型,训练获取的各个asr-rbm模型尽可能保留了待训练asr语音特征,同时有效降低特征的维度,在较低维度下即可体现待训练asr语音特征,能够根据asr-rbm模型提取的特征实现有效的语音区分。

s33:获取最后一个asr-rbm模型的输出值,基于输出值进行参数调优,更新各个asr-rbm模型的权值和偏置,获取asr-dbn模型。

在一实施例中,在训练好各个asr-rbm模型后,还可以在最后一个asr-rbm模型再建立一层反向传播层,该反向传播层能够进行有监督学习的训练方式,采用最后一个asr-rbm模型的输出值进行参数(权值和偏置)调优。其中,采用有监督学习的训练方式可以减少训练过程产生的误差,提高训练获取的asr-dbn模型的识别准确率。具体地,可以在最后一个asr-rbm模型中的显层输入带标签的待训练asr语音特征,由公式(3)可以计算其对应的隐层的输出值,该输出值即最后一个asr-rbm模型的输出值。通过该输出值可以构建适宜的误差函数,并根据误差函数,采用bp(backpropagation,后向传播)算法实现参数调优的效果。其中,bp算法是神经网络参数更新的常用算法,在此不再赘述。可以理解地,每一个asr-rbm模型只能确保自身层内的权值和偏置对该层特征向量映射达到最优,而并不是对整个asr-dbn模型的特征向量映射达到最优,通过反向传播层将有监督学习训练过程产生的误差自上向下传播至每一个asr-rbm模型,微调整个asr-dbn模型。在最后一个asr-rbm模型再建立一层反向传播层,可以对参数(权值和偏置)进行有效的调优,进一步优化参数,使得训练获取的asr-dbn模型拥有更高的识别准确率。

步骤s31-s33通过提取待训练asr语音特征,根据该特征训练并得到asr-dbn模型,在训练过程中对各个asr-rbm模型采用了无监督学习的训练方式,能够较好地保留待训练asr语音特征,同时有效降低特征的维度,在样本数据量较大的情况下,能够减少在数据获取阶段花费的大量用于设置标签的时间,明显提高训练效率。并在最后一个asr-rbm模型建立反向传播层,在该反向传播层采用有监督学习的训练方式对参数进行调优,能够减少训练过程产生的误差,提高asr-dbn模型的识别准确率,实现对语音的精确区分。

本实施例所提供的语音区分方法中,首先基于语音活动检测算法(vad)处理原始待区分语音数据,获取目标待区分语音数据,把原始待区分语音数据通过语音活动检测算法先区分一次,得到范围更小的目标待区分语音数据,能够初步有效地去除原始待区分语音数据中的干扰语音,保留混杂着目标语音和干扰语音的原始待区分语音数据,并将该原始待区分语音数据作为目标待区分语音数据,能够对原始待区分语音数据作有效的初步语音区分,去除大量的干扰语音。然后基于目标待区分语音数据,获取相对应的asr语音特征,该asr语音特征能够使语音区分的结果更为精确,即使在噪音很大的条件下,也可以精确地将干扰语音(如噪音)和目标语音区分开来,为后续根据该asr语音特征进行相应的asr-dbn模型识别提供重要的技术前提。最后将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果,该asr-dbn模型是根据asr语音特征专门训练的用于有效区分语音的识别模型,能够从混杂着目标语音和干扰语音(由于已经采用vad区分过一次,所以这里的干扰语音具体是指噪音)的目标待区分语音数据中正确区分目标语音和干扰语音,提高语音区分的准确性。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

图8示出与实施例中语音区分方法一一对应的语音区分装置的原理框图。如图8所示,该语音区分装置包括目标待区分语音数据获取模块10、语音特征获取模块20和目标区分结果获取模块30。其中,目标待区分语音数据获取模块10、语音特征获取模块20和目标区分结果获取模块30的实现功能与实施例中语音区分方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

目标待区分语音数据获取模块10,用于基于语音活动检测算法处理原始待区分语音数据,获取目标待区分语音数据。

语音特征获取模块20,用于基于目标待区分语音数据,获取相对应的asr语音特征。

目标区分结果获取模块30,用于将asr语音特征输入到预先训练好的asr-dbn模型中进行区分,获取目标区分结果。

优选地,目标待区分语音数据获取模块10包括第一原始区分语音数据获取单元11、第二原始区分语音数据获取单元12和目标待区分语音数据获取单元13。

第一原始区分语音数据获取单元11,用于根据短时能量特征值计算公式对原始待区分语音数据进行处理,获取对应的短时能量特征值,将短时能量特征值大于第一阈值的原始待区分数据保留,确定为第一原始区分语音数据,其中短时能量特征值计算公式为n为语音帧长,s(n)为时域上的信号幅度,n为时间。

第二原始区分语音数据获取单元12,用于根据过零率特征值计算公式对原始待区分语音数据进行处理,获取对应的过零率特征值,将过零率特征值小于第二阈值的原始待区分语音数据保留,确定为第二原始区分语音数据,其中过零率特征值计算公式为n为语音帧长,s(n)为时域上的信号幅度,n为时间。

目标待区分语音数据获取单元13,用于将第一原始区分语音数据和第二原始区分语音数据作为目标待区分语音数据。

优选地,语音特征获取模块20包括预处理语音数据获取单元21、功率谱获取单元22、梅尔功率谱获取单元23和梅尔频率倒谱系数单元24。

预处理单元21,用于对目标待区分语音数据进行预处理,获取预处理语音数据。

功率谱获取单元22,用于对预处理语音数据作快速傅里叶变换,获取目标待区分语音数据的频谱,并根据频谱获取目标待区分语音数据的功率谱。

梅尔功率谱获取单元23,用于采用梅尔刻度滤波器组处理目标待区分语音数据的功率谱,获取目标待区分语音数据的梅尔功率谱。

梅尔频率倒谱系数单元24,用于在梅尔功率谱上进行倒谱分析,获取目标待区分语音数据的梅尔频率倒谱系数。

优选地,预处理单元21包括预加重子单元211、分帧子单元212和加窗子单元213。

预加重子单元211,用于对目标待区分语音数据作预加重处理,预加重处理的计算公式为s'n=sn-a*sn-1,其中,sn为时域上的信号幅度,sn-1为与sn相对应的上一时刻的信号幅度,s'n为预加重后时域上的信号幅度,a为预加重系数,a的取值范围为0.9<a<1.0。

分帧子单元212,用于将预加重后的目标待区分语音数据进行分帧处理。

加窗子单元213,用于将分帧后的目标待区分语音数据进行加窗处理,获取预处理语音数据,加窗的计算公式为其中,n为窗长,n为时间,sn为时域上的信号幅度,s'n为加窗后时域上的信号幅度。

优选地,梅尔频率倒谱系数单元24包括待变换梅尔功率谱获取子单元241和梅尔频率倒谱系数子单元242。

待变换梅尔功率谱获取子单元241,用于取梅尔功率谱的对数值,获取待变换梅尔功率谱。

梅尔频率倒谱系数子单元242,用于对待变换梅尔功率谱作离散余弦变换,获取目标待区分语音数据的梅尔频率倒谱系数。

优选地,该语音区分装置还包括asr-dbn模型获取模块40,asr-dbn模型获取模块40用于获取asr-dbn模型。

asr-dbn模型获取模块40包括待训练asr语音特征获取单元41、asr-rbm模型获取单元42和调优单元43。

待训练asr语音特征获取单元41,用于获取待训练语音数据,并提取待训练语音数据的待训练asr语音特征。

asr-rbm模型获取单元42,用于采用待训练asr语音特征依次训练asr-rbm模型,根据训练产生的误差进行参数更新,获取各个asr-rbm模型,其中,参数包括权值和偏置,偏置包含显层神经元的偏置和隐层神经元的偏置,更新权值w的公式为:w'=w+λ(p(h1|v1)v1-p(h2|v2)v2),w为更新前的权值,w'为更新后的权值,λ为学习率,v1为原始显层,v2为重构显层,h1为原始隐层,h2为重构隐层;更新偏置a的公式为:a'=a+λ(v1-v2),a为显层神经元更新前的偏置,a'为显层神经元更新后的偏置;更新偏置b的公式为b'=b+λ(h1-h2),b为隐层神经元更新前的偏置,b'为隐层神经元更新后的偏置。

调优单元43,用于获取最后一个asr-rbm模型的输出值,基于输出值进行参数调优,更新各个asr-rbm模型的权值和偏置,获取asr-dbn模型。

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例中语音区分方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例中语音区分装置中各模块/单元的功能,为避免重复,这里不再赘述。

可以理解地,所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号和电信信号等。

图9是本实施例中计算机设备的示意图。如图9所示,计算机设备50包括处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53。处理器51执行计算机程序53时实现实施例中语音区分方法的各个步骤,例如图2所示的步骤s10、s20和s30。或者,处理器51执行计算机程序53时实现实施例中语音区分装置各模块/单元的功能,如图8所示目标待区分语音数据获取模块10、语音特征获取模块20和目标区分结果获取模块30的功能。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1