如何在 Python 中绘制 MFCC?

Posted

技术标签:

【中文标题】如何在 Python 中绘制 MFCC?【英文标题】:How to plot MFCC in Python? 【发布时间】:2017-09-16 07:13:38 【问题描述】:

我只是信号处理方面的初学者。到目前为止,这是我从音频文件 (.WAV) 中提取 MFCC 功能的代码:

from python_speech_features import mfcc
import scipy.io.wavfile as wav

(rate,sig) = wav.read("AudioFile.wav")
mfcc_feat = mfcc(sig,rate)

print(mfcc_feat)

我只是想绘制 mfcc 功能以了解它的外观。

【问题讨论】:

【参考方案1】:

这会将 MFCC 绘制为颜色,这是一种更流行的方式

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
fig, ax = plt.subplots()
mfcc_data= np.swapaxes(mfcc_data, 0 ,1)
cax = ax.imshow(mfcc_data, interpolation='nearest', cmap=cm.coolwarm, origin='lower')
ax.set_title('MFCC')

plt.show()

【讨论】:

【参考方案2】:
from python_speech_features import mfcc
import scipy.io.wavfile as wav
import matplotlib.pyplot as plt

(rate,sig) = wav.read("AudioFile.wav")
mfcc_feat = mfcc(sig,rate)

print(mfcc_feat)
plt.plot(mfcc_feat)
plt.show()

【讨论】:

请编辑更多信息。不鼓励使用纯代码和“试试这个”的答案,因为它们不包含可搜索的内容,也没有解释为什么有人应该“试试这个”。我们在这里努力成为知识的资源。 请编辑您的答案以包含一些解释。仅代码的答案对教育未来的 SO 读者几乎没有作用。您的答案因质量低劣而在审核队列中。 如果我想处理 mp3/.mp4 文件,上面的代码会有什么变化? 这甚至不是绘制 mfcc 特征的正确方法【参考方案3】:

上一个答案没有定义 mfcc_data。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm

(rate,sig) = wav.read("file.wav")
mfcc_feat = mfcc(sig,rate)

ig, ax = plt.subplots()
mfcc_data= np.swapaxes(mfcc_feat, 0 ,1)
cax = ax.imshow(mfcc_data, interpolation='nearest', cmap=cm.coolwarm, origin='lower', aspect='auto')
ax.set_title('MFCC')
#Showing mfcc_data
plt.show()
#Showing mfcc_feat
plt.plot(mfcc_feat)
plt.show()

MFCC_data MFCC_feat

【讨论】:

【参考方案4】:

最初我使用 librosa 读取 wav 文件并输入内置函数

import librosa
audio_path='../.../../../combo.wav' #location
(xf, sr) = librosa.load(audio_path)    
mfccs = librosa.feature.mfcc(y=xf, sr=sr, n_mfcc=4)
librosa.display.specshow(mfccs, x_axis='time')
plt.colorbar()
plt.tight_layout()
plt.title('mfcc')
plt.show

我用过 librosa

【讨论】:

以上是关于如何在 Python 中绘制 MFCC?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Weka 中使用 MFCC 进行音频分类?

如何在 Java 中提取 MFCC 特征

如何将提取的音高值保存在 csv 文件中?

使用 MFCC 进行特征提取

如何合并 MFCC

Python Librosa:用于计算 MFCC 特征的默认帧大小是多少?