如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章