python使用librosa提取音频频率4000k以上的fft特征
时间: 2024-02-16 21:02:47 浏览: 105
可以使用Librosa库中的stft函数来计算音频的短时傅里叶变换(short-time Fourier transform,STFT),然后取得频率大于等于4000Hz的FFT系数。
以下是一个示例代码:
```python
import librosa
# 读取音频文件
y, sr = librosa.load('audio.wav')
# 计算短时傅里叶变换
stft = librosa.stft(y)
# 取得频率大于等于4000Hz的FFT系数
freqs = librosa.fft_frequencies(sr=sr, n_fft=stft.shape[0])
idx = freqs >= 4000
fft = stft[idx, :]
# 将FFT系数转化为能量谱
power = librosa.power_to_db(np.abs(fft)**2)
# 可视化能量谱
librosa.display.specshow(power, sr=sr, y_axis='linear', x_axis='time')
```
在上述代码中,`librosa.load`函数用于读取音频文件,返回音频的时域信号`y`和采样率`sr`。`librosa.stft`函数用于计算短时傅里叶变换,返回STFT系数`stft`。`librosa.fft_frequencies`函数用于计算FFT变换的频率,`idx`变量用于取得大于等于4000Hz的频率对应的FFT系数。最后,将FFT系数转化为能量谱,并用`librosa.display.specshow`函数进行可视化。
希望对你有所帮助!
阅读全文