python自相关函数提取基音周期_Python语音基础操作--4.2基音周期检测

本文介绍了基音周期检测在语音信号中的重要性,主要探讨了基音检测的方法,包括非基于时间检测的自相关函数法、平均幅值差函数法和倒谱法,以及基于事件检测的小波变换和Hilbert-Huang变换。同时,详细讲解了基音检测的预处理步骤,如端点检测和滤波器选择。最后,通过实例展示了自相关法、倒谱法、线性预测法等基音周期检测算法的实现过程。
摘要由CSDN通过智能技术生成

人在发声时候,根据声带是否振动可以将语音信号分为清音和浊音。

浊音:有声语音,携带语言中大部分能量,在时域上有明显的周期性

清音:类似于白噪声,没明显周期性

在发浊音时候,声门使声带产生张弛震荡式振动,产生准周期激励冲激串。这种声带振动的频率被称为基音频率,相应的周期就是基音周期。基音频率在很大程度上反应了个人的特征。比如,男性的基音频率范围在70-200Hz范围内,女性和小孩的基音频率在200-450Hz之间。

基音周期的估计就是基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或者尽可能相同的轨迹曲线。目前基音检测可大致分为:非基于时间检测和基于事件检测(事件是指声门闭合)。

非基于事件检测方法有:自相关函数法,平均幅值差函数法,倒谱法。计算量小,但是准确率不一定高。基于事件检测方法是指通过声门闭合的时刻开对基音周期进行估计,而不需要对语音信号进行短时平稳假设,主要有小波变换,Hilbert-Huang变换。由于这是时频域的处理方式,所以在时频域上都有较好的局部特性,检测精度高,但是计算量巨大。

基音检测预处理

由于语音信号的头部与尾部不具有声带震荡的周期性。为了提高检测准确率,基音检测通常要进行端点检测,但是基音检测的端点检测更加严格,这里采用能熵比的方式:

E E F n = 1 + ∣ L E n / H n ∣ EEF_n=\sqrt{1+|LE_n/H_n|}EEFn​=1+∣LEn​/Hn​∣​

但是只用一个T 1 T_1T1​门限做判断,判断能熵比是不是大于T 1 T_1T1​,认为大于T 1 T_1T1​的部分是有效段的候选值。再判断长度是不是大于最小长度L m i n L_{min}Lmin​,一般认为L m i n = 10 L_{min}=10Lmin​=10。

为了减少共振峰的干扰,选择60-500Hz的预处理滤波器。由于语音信号对相位不敏感,可以考虑选择计算量小的椭圆IIR滤波器。

倒谱法

由于语音信号x ( i ) x(i)x(i)是由声门脉冲激励u ( i ) u(i)u(i)经声道响应v ( i ) v(i)v(i)滤波得到:

x ( i ) = u ( i ) ∗ v ( i ) x(i)=u(i)*v(i)x(i)=u(i)∗v(i)

并计算倒谱x ^ ( i ) , u ^ ( i ) , v ^ ( i ) \hat x(i),\hat u(i),\hat v(i)x^(i),u^(i),v^(i)有:

x ^ ( i ) = u ^ ( i ) + v ^ ( i ) \hat x(i)=\hat u(i)+\hat v(i)x^(i)=u^(i)+v^(i)

由于倒谱的u ^ ( i ) , v ^ ( i ) \hat u(i),\hat v(i)u^(i),v^(i)是相对分离的,包含基音信息的脉冲倒谱可与声道响应倒谱分离,所以可以从倒谱域分离u ^ ( i ) \hat u(i)u^(i)后恢复出u ( i ) u(i)u(i),从而求出基音周期。计算出倒谱后,在倒谱域中找到P m i n , P m a x P_{min},P_{max}Pmin​,Pmax​中的倒谱函数的最大值,对于的样本点数就是当前帧语音信号的基音周期T 0 ( n ) T_0(n)T0​(n),基音频率为F 0 ( n ) = f s / T 0 ( n ) F_0(n)=f_s/T_0(n)F0​(n)=fs​/T0​(n).

短时自相关法

先求出自相关函数,如果延迟量等于基音周期,那么两个信号具有最大类似性,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值