我目前正在使用librosa进行实验,以重现一种使用PRAT提取音频文件的MFCC的科学方法(深度学习(。我在语音/声学方面没有那么丰富的经验,我在理解PRAT时遇到了很多问题,所以我开始使用librosa,它的API对我来说更容易"访问">
该论文的作者在MFCC计算中使用了Hamming窗口,我试图在MFCC的函数调用中提供该函数作为附加参数,或作为字典的**kwargs的一部分:
import os
from scipy.signal import get_window
from librosa import load, get_duration
from librosa.feature import mfcc
import pandas
import tables
import matplotlib.pyplot as plt
# ...
kwargs = {"n_fft": 160, "hop_length": 80, "window": get_window("hamming", Nx=160)}
mfccs = mfcc(y=y, sr=sr, S=None, n_mfcc=12, **kwargs)
我还有很多关于声学的知识要学习,所以我不太确定这些值,但(考虑到API(这应该有效。在我的Windows计算机上,在我的Anaconda环境中运行此命令会导致以下错误:
processing 03a01Fa.wav ...
Traceback (most recent call last):
File "xxxlibrosaData.py", line 37, in <module>
mfccs = mfcc(y=y, sr=sr, S=None, n_mfcc=12, **kwargs)
File "C:UsersxxxAppDataLocalContinuumanaconda3envsxxxlibsite-packageslibrosafeaturespectral.py", line 1442, in mfcc
S = power_to_db(melspectrogram(y=y, sr=sr, **kwargs))
File "C:UsersxxxAppDataLocalContinuumanaconda3envsxxxlibsite-packageslibrosafeaturespectral.py", line 1534, in melspectrogram
mel_basis = filters.mel(sr, n_fft, **kwargs)
TypeError: mel() got an unexpected keyword argument 'window'
Process finished with exit code 1
我今天在MacOS上尝试了这个(也使用Anaconda环境(,它没有造成任何错误。大多数时候,我使用Windows计算机进行实验,因为我可以使用CUDA加速计算。我不确定这是否是一个与Librosa相关的问题,因为我在那里的环境已经出现了一些其他问题(例如,我无法使用HDF5持久化pandas.DataFrame,但我设法自己解决了这个问题。Windows上的PyCharm不显示我安装的包-尚未修复,但不太重要(。
我不知道是什么原因导致了这种行为,我真的很想解决这个问题。有人遇到过同样(或类似(的问题并找到了解决方法吗?
非常感谢。:-(
编辑:正如ZF007的回答中所建议的那样,我尝试在(另一台/我的私人(Windows计算机上运行以下脚本:
import librosa
from scipy.signal import get_window
y, sr = librosa.load('audio/01-01-01-01-01-01-01.mp4',)
meltspec_args = {"n_fft": 160, "hop_length": 80, "window": get_window("hamming", 160)}
mfccs = librosa.feature.mfcc(y=y, sr=sr, S=None, n_mfcc=12, **meltspec_args)
print(mfccs.shape)
但它仍然会遇到同样的错误。
第2版:我创建了一个git存储库来共享代码和配置(https://github.com/Keanri828/librosa_mfcc_WindowsError)。
所以。。。我终于知道为什么会发生这种情况,因为我在librosa存储库中打开了一个问题(https://github.com/librosa/librosa/issues/1060):
康达以某种方式安装了0.6.3,而不是大于0.7。这些参数自版本0.7起受支持。由于我今天安装了Anaconda,我很尴尬地没有比较这台电脑和我的Mac之间的版本(使用0.7.1没有任何安装问题(。
这似乎是一个尚未解决的一揽子问题。
我会随时更新这个"答案"。