首页 > 乐器声学 专利正文
一种语音端点检测模型的训练方法及语音降噪方法与流程

时间:2022-02-18 阅读: 作者:专利查询

一种语音端点检测模型的训练方法及语音降噪方法与流程

1.本发明涉及语音降噪技术领域,特别涉及一种语音端点检测模型的训练方法及语音降噪方法。


背景技术:

2.随着汽车智能化程度的快速发展,语音识别及操控系统逐渐成为汽车标配。行车场景中不同工况的噪声,包括路噪、胎噪、发动机噪声、风噪、空调噪声等,这些噪声能量高,频率范围与语音的频率范围重叠度高,对语音的掩蔽效应强烈,严重影响语音识别系统的识别能力。语音端点检测是语音识别过程中的一个必要环节,对信号中语音部分起始点的准确检测与判断,可以大幅度提升语音识别系统的识别率。传统检测方法中对人工声学特征的提取难以描述行车场景中的带噪语音,影响车载语音系统中语音信号的端点检测能力。
3.在dsp芯片上进行语音降噪时,采用的都是信号处理的方法,保证算法的复杂度和实时性,比如谱减算法,基于加性噪声场景,利用对噪声的频谱估计,在经验意义上对语音做降噪处理。这种降噪方式算法流程简单、原理易懂,但从数学推导角度却不够严格和完备。不具有理论上的最优性能。而对于维纳滤波算法,基于最优均方误差准则进行带噪语音信号的降噪处理,可证明性能更优且易于处理。
4.维纳滤波算法的思想是设计一个降噪系统,使得输出的降噪语音信号尽可能逼近期望的纯净语音信号,通过最小化系统输出信号与期望信号之间的误差,使降噪性能达到最优。但算法要对参数进行统计估计,目前对先验信噪比的估计方法不理想,实际的应用环境中的端点检测的精度难以提升,且基于信号帧的更新算法鲁棒性不足。基于信号处理的降噪算法中的参数估计问题影响算法的降噪性能,因无法获取实际场景中噪声的统计分布规律,现有技术中都是基于经验给出估计值,因此降噪效果也就完全依赖于对应参数估计值的准确性。


技术实现要素:

5.为了克服现有技术存在的不足,本发明提供了一种语音端点检测模型的训练方法及语音降噪方法,所述技术方案如下:
6.一方面,本发明提供了一种语音端点检测模型的训练方法,所述语音端点检测模型基于神经网络模型,其用于对带噪语音进行端点检测,所述语音端点检测模型包括输入层、多个隐层以及输出层,至少有一个隐层包括gru层和/或lstm层;
7.所述训练方法包括以下步骤:
8.s1、对纯净语音信号进行预处理和端点检测,以得到语音帧和静音帧的真实标签值;
9.s2、在带有标签值的纯净语音信号中加入噪声信号,得到带噪语音信号,其包含对应纯净语音信号端点检测后的真实标签值;
10.s3、提取所述带噪语音信号的fbank特征、mfcc特征、谱熵特征、倒谱距离特征、plp特征中的一种或多种,以得到所述语音端点检测模型输入的特征值;
11.s4、将所述特征值输入至所述输入层,所述隐层依据所述特征值对所述带噪语音信号进行分类,以得到语音帧和纯噪声帧的估计标签值,并通过所述输出层进行输出;
12.s5、对所述估计标签值与所述真实标签值进行损失函数计算,根据计算结果以优化所述语音端点检测模型的模型参数。
13.进一步地,所述隐层包括第一隐层、第二隐层和第三隐层,所述第一隐层包括全连接层和tanh激活函数层,所述第二隐层包括relu激活函数层,第三隐层包括全连接层和sigmoid激活函数层,
14.所述第二隐层还包括gru层,所述特征值依次经过全连接层、tanh激活函数层、gru层、relu激活函数层、全连接层、sigmoid激活函数层处理,以得到语音帧和纯噪声帧的估计标签值;
15.和/或,
16.所述第二隐层还包括lstm层,所述特征值依次经过全连接层、tanh激活函数层、lstm层、relu激活函数层、全连接层、sigmoid激活函数层处理,以得到语音帧和纯噪声帧的估计标签值。
17.进一步地,所述隐层还包括优化隐层,所述优化隐层位于所述第一隐层和第二隐层之间。
18.进一步地,所述优化隐层包括gru层和tanh激活函数层,所述第一隐层的输出依次经gru层和tanh激活函数层处理至所述第二隐层;
19.和/或,
20.所述优化隐层包括全连接层和relu激活函数层,所述第一隐层的输出依次经全连接层和relu激活函数层处理至所述第二隐层。
21.进一步地,所述优化隐层包括全连接层层和tanh激活函数层,所述第一隐层的输出依次经全连接层和tanh激活函数层处理至所述第二隐层。
22.进一步地,所述优化隐层的输出与第一隐层的输出合并后输出至所述第二隐层。
23.进一步地,步骤s1中对纯净语音进行预处理包括以下步骤:
24.s101、对输入的语音信号进行升采样或者降采样;
25.s102、消除采样得到的语音信号的直流分量,并进行幅值归一化处理;
26.s103、对步骤s102处理后语音信号进行分帧加窗处理;
27.s104、利用傅里叶变换,将分帧加窗后的语音信号从时域转换到频域进行输出。
28.进一步地,在步骤s4中还包括,根据所述估计标签值,得到语音帧数目和纯噪声帧数目。
29.另一方面,本发明还提供了一种语音降噪方法,包括以下步骤:
30.p1、将带噪语音进行信号预处理后输入所述的语音端点检测模型,得到语音帧和纯噪声帧的估计标签值,从而得到纯噪声帧数目,以计算噪声帧能量;
31.p2、根据得到语音帧和纯噪声帧的估计标签值,计算先验信噪比的初始值,以及各语音帧对应的后验信噪比和先验信噪比;
32.p3、计算维纳滤波的增益函数并利用其对语音帧信号进行降噪;
33.p4、利用逆傅里叶变换,将降噪后的语音帧信号从频域转换到时域;
34.p5、将转换后的语音帧信号合并,以得到降噪后的语音信号。
35.进一步地,在步骤p3后还包括以下步骤:
36.p400、根据步骤p3降噪后的语音帧信号更新当前语音帧先验信噪比的初始值,以重新计算当前语音帧的先验信噪比,并执行步骤p3;
37.执行一次或者循环执行多次步骤p400后,执行p4

p5。
38.进一步地,在步骤p5中,需要先对所述转换后的语音帧信号进行去除加窗操作之后,再进行合并操作。
39.本发明提供的技术方案带来的有益效果如下:
40.(1)利用神经网络模型进行深度学习,得到降噪计算中需要的估计参数值,使得估计参数值更加接近真实情况;
41.(2)使得信噪比估计更为准确,提高了降噪效果。
附图说明
42.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1是本发明实施例提供的语音端点检测模型结构示意图;
44.图2是本发明实施例提供的语音降噪方法流程示意图。
具体实施方式
45.为了使本技术领域的人员更好地理解本发明方案,更清楚地了解本发明的目的、技术方案及其优点,以下结合具体实施例并参照附图对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。除此,本发明的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
46.在本发明的一个实施例中,提供了一种语音端点检测模型的训练方法,所述语音端点检测模型基于神经网络模型,即nnwap网络模型,其用于对带噪语音进行端点检测,所述语音端点检测模型包括输入层、多个隐层以及输出层;
47.其中,所述隐层包括第一隐层、第二隐层和第三隐层,所述第一隐层包括全连接层和tanh激活函数层,所述第二隐层包括relu激活函数层,第三隐层包括全连接层和sigmoid激活函数层。
48.在此基础上语音端点检测模型至少有以下几种架构:
49.架构1
50.所述第二隐层还包括gru层,所述特征值依次经过全连接层、tanh激活函数层、gru层、relu激活函数层、全连接层、sigmoid激活函数层处理,以实现对带噪语音的分类标记。
51.架构2
52.所述第二隐层还包括lstm层,所述特征值依次经过全连接层、tanh激活函数层、lstm层、relu激活函数层、全连接层、sigmoid激活函数层处理,以实现对带噪语音的分类标记。
53.架构3
54.架构1和架构2的方案可同时存在进行,使得第二隐层形成两个分支,此时第一隐层的输出分别经过第二隐层的两个分支处理后,合并输出至第三隐层,使得模型的运算更加稳定。
55.架构4
56.在架构1的基础上,所述隐层还包括优化隐层,所述优化隐层位于所述第一隐层和第二隐层之间,所述优化隐层包括gru层和tanh激活函数层,所述第一隐层的输出依次经gru层和tanh激活函数层处理至所述第二隐层;
57.架构5
58.与架构4不同在于优化隐层的内容不同,所述优化隐层包括全连接层和relu激活函数层,所述第一隐层的输出依次经全连接层和relu激活函数层处理至所述第二隐层。
59.架构6
60.架构4和架构5的方案可同时存在进行,使得优化隐层形成两个分支,此时第一隐层的输出分别经过优化隐层的两个分支处理后,合并输出至第二隐层,使得模型的运算更加稳定。
61.架构7
62.在架构2的基础上,所述隐层还包括优化隐层,所述优化隐层位于所述第一隐层和第二隐层之间,所述优化隐层包括全连接层层和tanh激活函数层,所述第一隐层的输出依次经全连接层和tanh激活函数层处理至所述第二隐层。
63.在架构7中,所述优化隐层的输出与第一隐层的输出合并后输出至所述第二隐层。
64.架构8
65.架构6和架构7的方案可同时存在进行,参见图1,所述优化隐层形成三个分支,对应地,第一分支包括gru层和tanh激活函数层,第二分支包括全连接层和relu激活函数层,第三分支包括全连接层层和tanh激活函数层;所述第二隐层形成两个分支,对应地,第四分支包括gru层和relu激活函数层,第五分支包括lstm层和relu激活函数层;第一隐层的输出分别通过第一分支和第二分支处理并汇总至第四分支,同时,第一隐层的输出通过第三分支处理后输出至第五分支,第四分支的输出和第五分支的输出汇总至第三隐层处理后输出。其中需要注意的是,可以通过设置第一隐层的参数输出,使得第一隐层可以输出相同或不同的参数数量及数值至下一分支层。
66.针对语音端点检测模型,其训练方法包括以下步骤:
67.s1、对纯净语音信号进行预处理和端点检测,以得到语音帧和静音帧的真实标签
值;
68.s2、在带有标签值的纯净语音信号中加入噪声信号,得到带噪语音信号,其包含对应纯净语音信号端点检测后的真实标签值;
69.s3、提取所述带噪语音信号的fbank特征、mfcc特征、谱熵特征、倒谱距离特征、plp特征中的一种或多种,以得到所述语音端点检测模型输入的特征值;
70.s4、将所述特征值输入至所述输入层,所述隐层依据所述特征值对所述带噪语音信号进行分类,以得到语音帧和纯噪声帧的估计标签值,并通过所述输出层进行输出;
71.s5、对所述估计标签值与所述真实标签值进行损失函数计算,根据计算结果以优化所述语音端点检测模型的模型参数。
72.其中,在步骤s1中,对纯净语音进行预处理包括以下步骤:
73.s101、对输入的语音信号进行升采样或者降采样,以保证语音数据采样率的一致性;
74.s102、消除采样得到的语音信号的直流分量,
[0075][0076]
其中,x1(i)是指语音信号采样点对应的信号,消除直流分量即为语音信号的各个分量减去语音信号平均值的过程,x2(i)是指相应消除直流分量的语音信号,l表示语音数据长度;
[0077]
并x2(i)进行幅值归一化处理,
[0078][0079]
其中,max是指语音信号中的分量最大值,x3(i)表示相应归一化处理后的语音信号。
[0080]
s103、对步骤s102处理后语音信号进行分帧加窗处理;
[0081]
其中,处理过程中汉明窗的表达形式如下:
[0082][0083]
其中,α在0.4

0.6范围内取值,n表示语音帧的索引。
[0084]
s104、利用傅里叶变换,将分帧加窗后的语音信号从时域转换到频域进行输出,得到可应用的语音信号,可记作x(i),
[0085]
相应傅里叶变换公式如下:
[0086][0087]
其中,w是频率,t是时间,e

iwt
是复变函数。
[0088]
下面以具体实例进行说明:
[0089]
步骤1
[0090]
对输入的纯净语音实施上个实施例中的语音预处理操作。
[0091]
步骤2
[0092]
对步骤1中预处理后的语音信号进行基于对数频谱距离的端点检测,得到语音帧和静音帧的标签值,
[0093][0094]
其中,x
i
(m)是分帧处理后的第i帧语音信号,l是帧长,x
i
(k)是x
i
(m)进行dft后的离散频谱,k为离散频谱值的索引,j为虚数单位。
[0095][0096]
其中,是dft后的频谱x
i
(k)取模值再取对数值。
[0097][0098]
其中,和是x0(n)和x1(n)两个不同语音信号第i帧的对数频谱,上标0和1是不同的信号x0(n)和x1(n),d
spec
(i)是两个信号的对数频谱距离,l2是只取频率为正的部分,帧长是l时,l2=l/2+1。
[0099]
步骤3
[0100]
在纯净语音信号中加入噪声,得到带噪语音,其包含对应纯净语音端点检测后的标签值。
[0101]
步骤4
[0102]
提取带噪语音的fbank特征、mfcc特征、谱熵特征、倒谱距离特征、plp特征。
[0103]
(1)fbank特征提取过程
[0104]
h(z)=1

az
‑1[0105]
其中,a是常数,z是极点,h(z)是所设置的预加重的滤波器。
[0106]
x(i,k)=fft[x
i
(m)]
[0107]
其中,x(i,k)是语音信号x
i
(m)进行傅里叶变换后的频域表达。
[0108]
e(i,k)=[x(i,k)]2[0109]
其中,e(i,k)是第i帧语音信号的能量谱。
[0110][0111]
其中,h
m
(k)是mel滤波器的频率响应,m是第m个mel滤波器(共m个),s(i,m)是第i帧语音信号的mel滤波器能量值。
[0112]
(2)mfcc特征特征提取过程
[0113]
mffc特征的提取过程和fbank一样,区别在于比mfcc特征多了一个dct计算过程。
[0114][0115]
其中,s(i,m)是第i帧语音信号的mel滤波器能量值,m是第m个mel滤波器(共m个),i是第i帧,n是dct后的谱线。
[0116]
(3)谱熵特征
[0117][0118]
其中,p
i
(k)是第i帧第k个频率分量f
k
对应的概率密度,n是fft长度。
[0119][0120]
其中,h
i
是第i帧语音信号的短时谱熵。
[0121]
(4)倒谱距离特征
[0122][0123]
其中,w是频率,e

jnw
是复变函数,c
i
(n)是第i帧语音信号x
i
(m)的倒谱系数,并且
[0124][0125][0126]
其中,和是谱密度函数x
1,i
(w)和x
2,i
(w)的倒谱系数,是对数谱的均方距离。
[0127]
(5)lpc特征
[0128][0129]
其中,a
k
是预测器系数,p是预测器阶数,n是语音信号采样点,由于语音样点之间存在着相关性,那么当前点/未来点可以用过去的p个样本点进行预测通过使真实语音信号和预测值之间差值的平方和达到最小值,能够确定唯一一组的预测器系数。其中e(n)是预测误差。
[0130]
x
m
(n)=x(m+n)
[0131]
其中,x
m
(n)是m个语音信号的周期延拓。
[0132][0133]
其中,e
m
是短时预测误差。
[0134]
步骤5
[0135]
重复执行步骤1至步骤4若干次,得到大量所述语音端点检测模型的输入特征值。
[0136]
步骤6
[0137]
将得到的带噪语音的20个fbank特征、20个mfcc特征、1个谱熵特征、1个倒谱距离特征、8个lpc特征,共计50个特征输入全连接层,设置初始权重为0.4~0.5,偏置为1,选择tanh激活函数,设置输出50个参数。
[0138]
全连接层的计算公式:
[0139]
z
i
=w
t
x
i
+b
[0140]
其中,w
t
是权重,b是偏置。
[0141]
tanh激活函数:
[0142][0143]
步骤7
[0144]
将得到的带噪语音的20个fbank特征、20个mfcc特征、1个谱熵特征、1个倒谱距离特征、8个lpc特征,共计50个特征输入全连接层,设置初始权重为0.4~0.5,偏置为1,选择tanh激活函数,设置输出20个参数。
[0145]
步骤8
[0146]
将步骤6的输出参数输入gru层,设置初始权重为0.4~0.5,偏置为1,选择tanh激活函数,输出20个参数。
[0147]
步骤9
[0148]
将步骤6的输出参数输入全连接层,设置初始权重为0.4~0.5,偏置为1,选择relu激活函数,输出20个参数。
[0149]
relu激活函数:
[0150]
relu=max(0,x)
[0151]
步骤10
[0152]
将步骤8和步骤9的输出参数输入gru层,设置初始权重为0.4~0.5,偏置为1,选择relu激活函数,输出20个参数。
[0153]
gru层的计算过程:
[0154]
z
t
=σ(w
z
·
[h
t
‑1,x
t
])
[0155]
r
t
=σ(w
r
·
[h
t
‑1,x
t
])
[0156][0157][0158]
步骤11
[0159]
将步骤7的输出参数输入全连接层,设置初始权重为0.4~0.5,偏置为1,选择tanh激活函数,输出20个参数。
[0160]
步骤12
[0161]
将步骤7和步骤11的输出参数输入lstm层,设置初始权重为0.4~0.5,偏置为1,选择relu激活函数,输出20个参数。
[0162]
lstm层的计算过程:
[0163]
f
t
=σ(w
f
[h
t
‑1,x
t
]+b
f
)
[0164]
其中,x
t
是t时刻输入,h
t
‑1是t

1时刻神经元信息,σ是sigmoid激活函数。
[0165]
sigmoid激活函数:
[0166][0167]
其中,σ(z)输出0~1之间的数值。
[0168]
i
t
=σ(w
i
[h
t
‑1,x
t
]+b
i
)
[0169][0170]
其中,i
t
是即将更新的值,tanh激活函数层创建一个新的候选值向量加入到状态中。
[0171][0172]
其中,c
t
是更新后的向量值,是新的候选值。
[0173]
o
t
=σ(w
o
[h
t
‑1,x
t
]+b0)
[0174]
h
t
=o
t
*tanh(c
t
)
[0175]
其中,σ决定输出神经元的哪个部分,h
t
是最终输出。
[0176]
步骤13
[0177]
将步骤10和步骤12的输出参数输入全连接层,设置初始权重为0.4~0.5,偏置为1,选择sigmoid激活函数,该层的输出即为对应语音帧或纯噪声帧的标签值。
[0178]
步骤14
[0179]
统计语音帧和纯噪声帧数目。
[0180]
步骤15
[0181]
对步骤13得到的标签值和真实标签值进行平方损失函数的计算,根据计算结果不断对参数进行优化。
[0182]
平方损失函数:
[0183][0184]
其中,y

f(x)是残差,n是样本数,目标是最小化这个目标函数值。
[0185]
步骤16
[0186]
保存优化好参数的网络模型。
[0187]
在本发明的一个实施例中,提供了一种语音降噪方法,包括以下步骤:
[0188]
p1、将带噪语音进行信号预处理后输入所述的语音端点检测模型,得到语音帧和纯噪声帧的估计标签值,从而得到纯噪声帧数目,以计算噪声帧能量;
[0189]
p2、根据得到语音帧和纯噪声帧的估计标签值,计算先验信噪比的初始值,以及各语音帧对应的后验信噪比和先验信噪比;
[0190]
p3、计算维纳滤波的增益函数并利用其对语音帧信号进行降噪;
[0191]
p4、利用逆傅里叶变换,将降噪后的语音帧信号从频域转换到时域;
[0192]
p5、先对所述转换后的语音帧信号进行去除加窗操作之后,再进行合并操作,以得到降噪后的语音信号。
[0193]
上述实施例中对单个语音帧只进行了一次降噪处理,优选地,还可以对其单个语音帧进行多次降噪,以实现更优的降噪效果。
[0194]
对其单个语音帧进行多次降噪,需要在上述实施例的基础上,进行以下优化步骤:在步骤p3后还包括以下步骤:
[0195]
p400、根据步骤p3降噪后的语音帧信号更新当前语音帧先验信噪比的初始值,以重新计算当前语音帧的先验信噪比,并执行步骤p3;
[0196]
执行一次或者循环执行多次步骤p400后,执行p4

p5。
[0197]
参见图2,下面以具体实例进行说明该语音降噪方法:
[0198]
步骤a
[0199]
将带噪语音输入到所述语音端点检测模型中,根据所得到的纯噪声帧数目计算噪声帧能量noise,
[0200][0201]
其中,nis是噪声帧数。
[0202]
步骤b
[0203]
根据步骤a得到的语音帧和纯噪声帧标签值,计算先验信噪比的初始值,
[0204][0205]
其中,n是帧数,voice是带噪语音帧的能量。
[0206][0207]
其中,snr是先验信噪比的初始值。
[0208]
步骤c
[0209]
计算当前语音帧的后验信噪比
[0210][0211]
步骤d
[0212]
计算当前语音帧的先验信噪比
[0213]
snr
x


snr+(1
‑∝
)max(snr
h

1,0)
[0214]
其中,

是平滑参数,在范围0.3

0.5内取值。
[0215]
步骤e
[0216]
计算维纳滤波的增益函数
[0217][0218]
步骤f
[0219]
计算降噪后的语音信号
[0220]
x_finished(i)=x(i)
·
hw
[0221]
步骤g
[0222]
根据步骤f中得到的语音信号更新当前语音帧的先验信噪比的初始值
[0223][0224]
步骤h
[0225]
对带噪语音的各帧重复执行步骤d

f,利用更新后的先验信噪比,进行再次降噪。
[0226]
步骤i
[0227]
应用逆傅里叶变换,将降噪后的语音信号从频域转换到时域。
[0228]
逆傅里叶变换公式:
[0229][0230]
其中,e
iwt
是复变函数。
[0231]
步骤j
[0232]
先对各帧语音信号去除加窗,然后将处理后的语音信号合成输出。
[0233]
去除加窗计算函数:
[0234][0235]
其中,x(i)是第i帧语音信号,w(n)的窗函数。
[0236]
本发明提供的语音降噪方法,基于信号处理的降噪思想,保留算法在dsp芯片上的运算实时性优势,通过采用深度学习网络模型来提升算法中参数估计值的准确性,从而改善带噪语音的降噪效果。在数据准备阶段,对纯净语音信号运用基于对数频谱距离的端点检测计算方法,得到纯净语音帧和静音帧的标签值。加入噪声,得到对应带噪语音的语音帧和无话帧的标签值。在模型训练阶段,将准备好的带噪语音及其标签值输入到网络模型中。该网络模型运用全连接层、长短期记忆网络lstm、gru层对带噪语音进行特征提取和分类。经过训练,该网络结构能够对语音帧和噪声帧作出区分,进而统计出语音帧数和噪声帧数。在此基础上,计算得到先验信噪比和后验信噪比,进而在降噪计算阶段,实现语音降噪过程。
[0237]
本发明提供的语音端点检测模型的训练方法及语音降噪方法针对现有方法中前
导无话段长度、先验信噪比、后验信噪比、噪声能量值估计值的不准确性问题,本发明融合深度学习思想,构建循环神经网络模型,基于数据驱动,计算算法中需要的估计参数值,得到更准确的噪声统计分布规律,进而达到较为理想的降噪效果。
[0238]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。