gpt4 book ai didi

python - 了解mfcc的输出

转载 作者:行者123 更新时间:2023-12-01 00:16:27 32 4
gpt4 key购买 nike

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。

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

最佳答案

这是因为mel-frequency cepstral coefficients是在一个窗口中计算的,即样本数。声音是波动的,无法通过获取单个样本(数字)来获得任何特征,因此无法获得窗口。

为了计算MFCC,使用了快速傅里叶变换(FFT),而这恰恰要求提供窗口的长度。如果您在librosa文档中查看mfcc,则不会找到它作为显式参数。那是因为它是隐式的,特别是:

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

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

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

    由于librosa的默认采样率为22050,音频长度为48s,窗口等于512,因此,如下所示:

    Formula

    该数字不完全是 2086,例如:
  • 您的音频长度不是惊人的48秒
  • 实际窗口长度为2048,跳数为512。这意味着您将在最后“松开”几帧。
  • 关于python - 了解mfcc的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52232839/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com