Praat之基频分析
测量基频F0的方法
- 自相关 Autocorrelation(易出现pitch-halving\pitch-double)
- 窄带谱图 Narrowband spectrogram(第一谐波就是基频)
- 倒谱分析 Cepstral analysis
- 测量声门波 glottal pluse(通过波形,f=1/T)
具体方法就不展开讲了,看我的其他博客。
波形直观理解:
下图我选了0.03s的浊音音频,可以看到是短时周期的,那么基频就是1s内有多少个这样的周期。
比如这个正弦信号,1秒有2个相同波形,所以基频是2Hz。
注:自相关的错误,还得后面三种方法再检查一下。
基频提取
加载一条语音,直接 view&edit
右边就是基频值范围。左边是频谱值范围。
选 pitch——pitch settings
1.基频范围,默认是75到500Hz,我这是段男声,为了看看的清楚,就设置到了30-300Hz。
如果有病人的声音,可以把范围调低。
有时候praat算出来的有假值,如下图红色圈出的那段。设置合理的范围有助于去掉假值。
2.Unit:基频单位。除了Hz还有对数,mel等
3.计算方法:如果只是研究语调,就用autocorrelation,如果是要看发声是沙哑还是怎么的,就用cross-correlation.
4.Drawing method:计算出来的基频是画成一条平滑线curve,还是点speckles,还是计算机自动选择automatic。
选 pitch——Advanced pitch settings
1.View range:你想要看到的范围
2.very accurate可以点或不点
3. 其他的值如果只是做声调分析,就不要改了。Vocing threshold就是超过这个阈值就是有基频浊音,没超过就是清音,他就不会计算基频值。要是研究某些病理语音就需要改。一般值为0.45,0.25
假如这里我设0.25试试:
如红色部分本来没基频,变成有了。所以设回0.45
人的声音的基频值一般是连续的,声带振动不会大起大降,比如上图右部分,就是错的基频值。
选 pitch——get pitch
选中一段,再get pitch,就是这一段的平均基频值。要只选某个时间点,那就是这一点的基频值。
选某个时间点时,因为基频是某段时间算一个值,如0.01s,所以这一个时间点praat会用interpolated算法等算一个值。
选 pitch——extract visible pitch curve
然后在主页面,就会出现一个pitch untiled。选中后点view&edit
可以看到,praat在计算基频时,在一个时间段会得出很多个候选值,会选择相关系数最大的,就是桃红色的选定值。
要是有错误的地方,如下图:
选中区域,selection–>Unvoice。就没了