python音频分析工具,Python的:声音文件的频率分析

I am generating some sound files that play tones at various frequencies with a certain number of harmonics.

Ultimately, these sounds will be played on a device with a small speaker.

I have the frequency response curve of the speaker and want to do the following in Python:

Plot the frequency spectrum of sound file. I need a take the FFT of the file and plot it with gnuplot

Apply a nonlinear transfer function based on the frequency response curve in the data sheet.

Plot the result after the function is applied.

Does anyone know :

What the simplest way to do this would be?

or of an Application (GNU/Linux based) that could do this for me?

解决方案

I know you didn't mention Pylab/Matplotlib, but it works. Here is an example (assumes single-channel signal):

x, fs, nbits = audiolab.wavread('schubert.wav')

audiolab.play(x, fs)

N = 4*fs # four seconds of audio

X = scipy.fft(x[:N])

Xdb = 20*scipy.log10(scipy.absolute(X))

f = scipy.linspace(0, fs, N, endpoint=False)

pylab.plot(f, Xdb)

pylab.xlim(0, 5000) # view up to 5 kHz

Y = X*H

y = scipy.real(scipy.ifft(Y))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值