了解mfcc的输出

问题描述 投票:3回答:1
from librosa.feature import mfcc
from librosa.core import load

def extract_mfcc(sound):
    data, frame = load(sound)
    return mfcc(data, frame)


mfcc = extract_mfcc("sound.wav")

我想获得以下sound.wav文件的MFCC,该文件长48秒。

我明白了data * frame = length of audio.

但是当我如上所示计算MFCC并得到它的形状时,结果是:(20, 2086)

这些数字代表什么?如何通过MFCC计算音频的时间?

我正在尝试计算每毫秒音频的平均MFCC。

任何帮助表示赞赏!谢谢 :)

python audio artificial-intelligence feature-extraction mfcc
1个回答
3
投票

那是因为mel-frequency cepstral coefficients是在窗口上计算的,即样本数。声音是波浪,人们不能通过采用单个样本(数字)来获得任何特征,因此窗口。

为了计算MFCC,使用快速傅立叶变换(FFT)并且确切地要求提供窗口的长度。如果检查mfcc的librosa文档,则不会将其作为显式参数。那是因为它隐含着,特别是:

  • FFT窗口的长度:2048
  • 连续帧之间的样本数:512

它们作为**kwargs传递并定义here

如果您现在考虑音频的采样频率和这些数字。您将获得您提供的最终结果。

由于librosa的默认采样率是22050,音频长度是48s,窗口等于512,下面是:

Formula

这个数字并不完全是2086,因为:

  • 您的音频长度不会超过48秒
  • 实际窗口长度为2048,具有512跳。这意味着你将在最后“松散”几帧。
© www.soinside.com 2019 - 2024. All rights reserved.