Librosa melspectrogram 时间与音频文件中的实际时间不匹配
Librosa melspectrogram times don't match actual times in audio file
我正在尝试使用 librosa.feature 计算 MFCC 系数,但是当我使用 specshow 绘制它时,specshow 图表上的时间与我的音频文件中的实际时间不匹配
我尝试了 librosa 文档中的代码 https://librosa.github.io/librosa/generated/librosa.feature.mfcc.html
我们在其中创建具有预先计算的对数功率 Mel 频谱图的 MFCC
WINDOW_HOP = 0.01 # [sec]
WINDOW_SIZE = 0.025 # [sec]
y, fs = librosa.load('audio_dataset/0f39OWEqJ24.wav', sr=None) # fs is 22000
# according to WINDOW_SIZE and fs, win_length is 550, and hop_length is 220
mel_specgram = librosa.feature.melspectrogram(y[:550], sr=fs, n_mels=20, hop_length=int(WINDOW_HOP * fs), win_length=int(WINDOW_SIZE * fs))
mfcc_s = librosa.feature.mfcc(S=librosa.power_to_db(mel_specgram), n_mfcc=12)
librosa.display.specshow(mfcc_s, x_axis='s')
现在看看 specshow 图像中的比例,第二帧 (window) 应该从 220 样本开始,也就是 10ms,但它不是
使用specshow
或librosa.feature.mfcc
时应指定采样率。否则假定 22050 Hz
。另外,告诉 librosa,你使用的跳数长度:
[...]
hop_length = int(WINDOW_HOP * fs)
mel_specgram = librosa.feature.melspectrogram(y[:550], sr=fs,
n_mels=20, hop_length=hop_length,
win_length=int(WINDOW_SIZE * fs))
mfcc_s = librosa.feature.mfcc(S=librosa.power_to_db(mel_specgram), n_mfcc=12, sr=fs)
librosa.display.specshow(mfcc_s, x_axis='s', sr=fs, hop_length=hop_length)
这些细节对于正确可视化是必不可少的,不包含在mfcc_s
。
我正在尝试使用 librosa.feature 计算 MFCC 系数,但是当我使用 specshow 绘制它时,specshow 图表上的时间与我的音频文件中的实际时间不匹配
我尝试了 librosa 文档中的代码 https://librosa.github.io/librosa/generated/librosa.feature.mfcc.html 我们在其中创建具有预先计算的对数功率 Mel 频谱图的 MFCC
WINDOW_HOP = 0.01 # [sec]
WINDOW_SIZE = 0.025 # [sec]
y, fs = librosa.load('audio_dataset/0f39OWEqJ24.wav', sr=None) # fs is 22000
# according to WINDOW_SIZE and fs, win_length is 550, and hop_length is 220
mel_specgram = librosa.feature.melspectrogram(y[:550], sr=fs, n_mels=20, hop_length=int(WINDOW_HOP * fs), win_length=int(WINDOW_SIZE * fs))
mfcc_s = librosa.feature.mfcc(S=librosa.power_to_db(mel_specgram), n_mfcc=12)
librosa.display.specshow(mfcc_s, x_axis='s')
现在看看 specshow 图像中的比例,第二帧 (window) 应该从 220 样本开始,也就是 10ms,但它不是
使用specshow
或librosa.feature.mfcc
时应指定采样率。否则假定 22050 Hz
。另外,告诉 librosa,你使用的跳数长度:
[...]
hop_length = int(WINDOW_HOP * fs)
mel_specgram = librosa.feature.melspectrogram(y[:550], sr=fs,
n_mels=20, hop_length=hop_length,
win_length=int(WINDOW_SIZE * fs))
mfcc_s = librosa.feature.mfcc(S=librosa.power_to_db(mel_specgram), n_mfcc=12, sr=fs)
librosa.display.specshow(mfcc_s, x_axis='s', sr=fs, hop_length=hop_length)
这些细节对于正确可视化是必不可少的,不包含在mfcc_s
。