【随手记】共振峰的特性、与音高pitch

人声的共振峰有一个有意思的特性,每一个元音都有对应的一个共振峰,而且这个共振峰不随音高(pitch)的改变而改变。

我们可以用不同的音高去发出相同一个元音。此时声带振动的频率改变,但是共鸣腔不变。也可以用相同的音高去发出不同的元音,此时声带振动的频率不变而共鸣腔的形状改变。

也就是说,无论你声音高低,只要发出的是那个元音,那么被增强的频率就是它对应的频率。因此会造成的一个现象就是,当声音越来越高,高到超过了频率比较低的共振峰的时候,这个共振峰就失去了作用。这时候听起来的声音就会有点奇怪,但是这种奇怪,有时候也造成了美声或者歌剧在飙高音的时候的那种感觉


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基频和共振是语音信号处理中的重要特征,可以用于语音合成、语音识别等应用。在MATLAB中,可以使用Signal Processing Toolbox中的函数来进行基频和共振提取。下面是一个示例代码,演示如何对example.aac文件进行基频和共振提取。 ```matlab % 读取音频文件 filename = 'example.aac'; [x,fs] = audioread(filename); % 基频提取 [pitch,~,~] = pitch(x,fs); % 共振提取 order = 12; % LPC阶数 [~,lpcResidual,a] = lpcauto(x,order); [~,f] = rceps(lpcResidual); % 反离散余弦变换 f = f(1:end-1); % 去掉第一个点,因为它是无限远处的值 % 绘制基频和共振图像 t = (0:length(x)-1)/fs; figure; subplot(2,1,1); plot(t,pitch); xlabel('Time (s)'); ylabel('Pitch (Hz)'); title('Pitch Contour'); subplot(2,1,2); plot(fs*(0:length(f)-1)/length(f),f); xlabel('Frequency (Hz)'); ylabel('Magnitude (dB)'); title('Resonant Frequencies'); ``` 这个代码中使用了`audioread`函数读取音频文件,然后使用`pitch`函数进行基频提取。`lpcauto`函数可以进行LPC分析,提取共振信息。`rceps`函数对LPC残差信号进行反离散余弦变换,得到共振频率信息。最后,将基频和共振图像绘制出来。 需要注意的一点是,这个代码仅仅是一个简单的示例,提取的基频和共振可能并不是非常准确。在实际应用中,需要根据具体的需求选择合适的算法和参数,并对提取结果进行进一步的处理和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值