提取音频的MFCC、频谱图代码
时间: 2023-08-06 10:03:53 浏览: 98
下面是使用Python中的`librosa`库提取音频的MFCC和频谱图特征的示例代码:
```python
import librosa
import librosa.display
import matplotlib.pyplot as plt
# 加载音频文件
y, sr = librosa.load('audio_file.wav')
# 提取MFCC特征
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40)
# 可视化MFCC特征
plt.figure(figsize=(10, 4))
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar()
plt.title('MFCC')
plt.tight_layout()
# 提取频谱图特征
stft = librosa.stft(y)
spectrogram = librosa.amplitude_to_db(abs(stft), ref=np.max)
# 可视化频谱图特征
plt.figure(figsize=(10, 4))
librosa.display.specshow(spectrogram, y_axis='log', x_axis='time')
plt.colorbar(format='%+2.0f dB')
plt.title('Log-frequency power spectrogram')
plt.tight_layout()
```
在这个示例代码中,`librosa.load`函数用于加载指定路径的音频文件,并返回一个音频样本`y`和采样率`sr`。`librosa.feature.mfcc`函数用于提取MFCC特征,其中`y`是音频样本,`sr`是采样率,`n_mfcc`是要提取的MFCC系数数量。`librosa.stft`函数用于计算频谱图,`abs`函数用于计算幅值,`librosa.amplitude_to_db`函数用于将幅值转换为分贝。最后,我们使用`librosa.display`库可视化提取的MFCC和频谱图特征。
阅读全文