首页 > 编程知识 正文

声测管原理,语音信号处理实验

时间:2023-05-06 17:51:45 阅读:220194 作者:3641

语音端点检测原理VAD——Voice Activity Detection(个人整理)

语音端点检测:用于判断给定的音频数据是否存在语音,其常用语音编解码、降噪、增益控制、波束形成以及唤醒识别等算法中。

VAD检测给定音频数据含有语音的概率,VAD方法通常包括特征提取和语音/非语音判决两部分。

当前使用的语音特征主要有时域和频域两种,
时域特征:
①能量波动;
②过零率
③最大能量
④最小能量等。

频域特征:
①基频;
②频谱组成;
③频谱质心;
④谱差;
⑤谱密度;
⑥谱衰减;

用于VAD判决的特征通常可以分为六大类:
①能量;
②频域;
③倒谱;
④谱差;
⑤谐波;
⑥长时信息;

基于能量的特征计算简单,如能量过零率,基于谱(频谱,倒谱和谱差)在低SNR可以获得较好的效果,当SNR为0dB时,基于语音谐波和长时语音特征判决方法的鲁棒性更强。

当前的判决准则可以分为3类:
①基于门限;
②基于统计模型;
③基于深度学习;

很多开源的语音宣发都是基于统计模型的判决方法,如WebRTC和Speex中基于震动的彩虹混合模型的VAD检测方法,这类方法对信噪比较高的音源检测效果良好。

随着深度学习的兴起,基于深度学习的VAD方法也已经在一些特定的场景商用,最新的WebRTC集成了基于RNN模型的VAD检测方法,该方法作为WebRTC新一代AGG(Automatic Gain Control,自动增益控制)算法的一个子部分存在。

远场情境下,由于传播路径较远,反射、散射、吸收、衰减的影响变强,这导致语音的SNR和SDR比近场差很多,如果此时仅用基于统计模型的检测方法并不能得到很好的判决结果,则有两种解决思路,一种是先提高SNR,再进行VAD检测,另一种是直接对低SNR的带噪语音进行检测,如一些基于深度学习的方法在训练语料中加入噪声,这类方法在数据集充分的前提下,其准确性可以超过基于统计模型的方法。

————————————————————————————————————————————

1.特征选取
特征对VAD检测尤为重要,好的特征应有如下特性。
①区分能力:
含噪语音和仅含噪声音频的分离度应尽量大。理论上,好的特征能够让语音特征和噪声特征分布没有交集。

②噪声鲁棒性:
背景噪声会造成语音失真,这会影响提取的特征区分能力。

(1)基于能量的特征
信号的能量强度是基于能量的VAD检测方法的主要依据,在满足语音能量大于背景噪声能量的假设下,当能量大于某一门限时,则可以认为有语音存在,当噪声能量达到和语音能量一样大时,能量特征无法区分是语音还是纯噪声。

早先基于能量的方法将宽带语音分成各个子带,求各个子带能量,因为语音在2kHz以下频带含有大量的能量,而噪声在2~4kHz及4KHz以上的频带能量往往比在0到2KHz频带的能量高。这其实就是频谱平坦度的概率,WebRTC中基于统计模型方法用了频谱平坦度这一特征。基于能量方法在信噪比低于10dB时,语音和噪声的区分性能会加速下降。

(2)短时能量过零率
采集到的语音信号在数字域上有正负之分,从坐标轴上看,有些在正半轴,有些在负半轴,如图3-1所示。过零率等于一段时间内穿过横轴的次数与总采样点数的比值,它反映了信号变化的快慢,虽是时域特征,在变化快慢的程度上反映了频域信息。过零率对低频噪声敏感,实际使用中可以过滤掉低频部分。

(3)频域特征
通过STFT将时域信号变成频域信号,俗称声谱图,即使SNR为0dB,一些频带的长时包络还是可以用于区分语音和噪声。

(4)倒谱特征
能量倒谱峰值确定了语音信号的基频,也有使用MFCC特征作为VAD判决的输入特征。

(5)基于谐波的特征
语音的一个明显特征是包含了基频F0及其多个谐波频率,即使在强噪声场景,谐波这一特征也是存在的,可以使用自相关的方法找到基频所在频点。

(6)长时特征
语音是非稳态信号,正常语速下,大部分人通常每秒发出10~15个音素,音素间的谱分布是不同的,这就导致了随着时间变化,语音统计特性也是变化的。另外,日常绝大多数噪声是稳态的(变化比较慢),如白噪声,根据音频长时统计变化特征也可用于区分语音/噪声。

2.判决准则

2.1 门限
门限通常是根据目标场景的数据集预处理得到的,对于噪声变化的场景,需要使用自适应门限,将能量表示成
最小和最大能量值分别记为E0和E1,对应的门限为


则可以得到自适应门限:

绝大多数应用使用平滑策略来更新门限值,利用平滑因子α控制更新速率。

2.2 统计模型法
统计模型法最先源于似然比检验(LRT),这种方法假设语音和背景噪声是独立的震动的彩虹分布,这样它们的DFT系数可以用震动的彩虹随机变量来描述,设


分别表示非语音和语音。给定第k帧谱

其噪声和语音的概率密度函数分别用下式表示:

其中,i是频点索引,

上式,分别是噪声和语音的方差向量。这些参数可以通过噪声估计和谱减的方法从训练数据集获得。然后可以获得第i个频段的似然比


判决为



则认为是语音,否则认为是非语音。

WebRTC用定点化的方法实现了该似然比检验。取对数均值以提升判决的可靠性,但由于左侧log总是正数,因而这似然比偏向Hs,这种偏差可以通过减少只有噪声时似然比波动的判决引导(DD)方法来纠正,DD方法在与引导非语音变换区域容易发生错误,这又可以基于时域平滑减少错误的发生。

2.3 机器学习法
机器学习的思想是针对给定的问题,收集大量的语音和非语音样本,判决模型(基于深度神经网络)参数通过机器学习方法获得,这样可以使用含有大量参数的神经网络模型,已使最终训练得到的模型比震动的彩虹模型更加逼近真实的语音模型。

机器学习法通常收集和标注训练集(音频集),提取合适的神经网络输入参数(特征),然后使用深度神经网络开发工具搭建网络模型,网络结构会使用(DNN、CNN、RNN、DCUNet)及他们组合的网络模型,根据训练结果选择适合的模型和参数作为部署模型。

同时,深度学习方法有两大弊病:
①计算资源通常较传统方法消耗大
②另一个是模型泛化能力通常比传统方法差。

计算资源消耗大的问题可以通过更换网络模型结构、模型剪枝、压缩以及定点化等方式优化。

模型泛化能力弱的问题可以使用各种正则方法、扩充训练数据集合和更换网络输入特征等方式改进。

参考文献:
《实时语音处理——实践指南》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。