测量基频F0的方法
具体方法就不展开讲了,看我的其他博客。
波形直观理解:
下图我选了0.03s的浊音音频,可以看到是短时周期的,那么基频就是1s内有多少个这样的周期。
比如这个正弦信号,1秒有2个相同波形,所以基频是2Hz。
注:自相关的错误,还得后面三种方法再检查一下。
加载一条语音,直接 view&edit
右边就是基频值范围。左边是频谱值范围。
看某一时刻的基频值:
选move cursor to
然后 pitch–>get pitch
选 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。就没了
主页面的pitch untiled。选择sound,
就可以以次基频生成不同的声音,有脉冲的pluse,有正弦的sin,有hum
主页的query:
如上图点击get time step,得到:
说明每隔0.0083秒,计算一个基频值。
还有能计算基频的最大最小值,均值,方差等等。
主页的Analyses periodicity–>To pitch
time step就是每隔多少秒计算一个基频,比如刚才的0.0083s,可以自己设置,想要基频的点少点,就设置大点。
主页的Analyse:
选 PonitProcess untitled
然后和声音一起选中,view&edit
就是计算出来的pulses。
主页的convert:
选Down to PitchTier
得到 PitchTier untitled。
做语音合成的时候,可以用到这个修改基频,选Point里的add point at cursor,就可以加点。
1.什么时候基频开始?
只考虑声调的话,有些人建议从第二个竖直条的基频算起,如果考虑辅音对声调的影响,第一个基频值也很重要哦。
2.什么时候基频结束?
看第二共振峰开始变的不清晰,说明韵母结束了,就算基频结束
看波形图的能量显著下降了
声调后面突然的拐弯上升等,这都是要去掉的。掐头去尾。
声调的载荷单位就是韵腹+韵尾
3.计算声调的斜率slope:
如降调,得到这段基频的起点和终点值,除以这段的时间。
选中一段后,选pitch–> pitch listing。
保存为excel里。记得吧时长记下来。
上一篇:Ribbon 负载均衡实现
下一篇:0101 MySQL04