python 声音基频f0_如何得到一个曲子的基频?

谢邀。第一次回答受邀的题目,有些激动,也有些仓促,可能有些小毛病,也可能是别的问题的答案,没有做引用,如有发现,请告诉我处理。

题主应该是4个大的问题。

第一个问题是标题,获取曲子的基频。但是觉得这个问题太泛了。

基本频率(或简称基频,fundamental frequency),当发声体由于振动而发出声音时,声音一般可以分解为许多单纯的正弦波,也就是说所有的自然声音基本都是由许多频率不同的正弦波组成的,其中频率最低的正弦波即为基音,而其他频率较高的正弦波则为泛音。

一个曲子就算是只有一种乐器,随着震动的方式不断变化,基频也就是不断变化的,因此基频是与时间对应的。如果是多种乐器再加上人声,它们的基频都是不一样的,表现的结果就是混在一起了。如果你只是想知道基频的数值,可以使用Adobe Audition软件,以前叫Cool Edit。导入音频文件后,观察波形下方的时频图,颜色越亮表示对应频率在这个时刻的成分越多。下图是,我从网上下载的立体声,44.1k采样率,320k比特率的《爱的祝贺》小提琴独奏的单声道节选。观察图的频率轴,其中从左图可以看到亮线呈有规律出现,就是共振峰了,右图是频率轴放大的结果,在1kHz以下有一大片亮的,其实不是很明显能找到基频,但基频就是200Hz到400Hz之间了。

如果想精确找到,可以用Matlab对音频做分帧处理,再加窗,然后做fft,fft点数应与帧长一样,通过Matlab内建的findpeaks函数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值