首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解mfcc的输出

了解mfcc的输出
EN

Stack Overflow用户
提问于 2018-09-08 06:59:58
回答 1查看 7.2K关注 0票数 10
代码语言:javascript
复制
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值。

任何帮助都是非常感谢的!谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-08 13:57:08

这是因为主频倒谱系数是通过窗口计算的,即样本数。声音是波,一个人不能通过一个样本(数字)得到任何特征,因此窗口。

为了计算MFCC,使用了快速傅里叶变换(FFT),而这恰恰要求提供窗口的长度。如果您检查mfcc的librosa文档,就不会发现它是一个显式参数。那是因为它是隐含的,特别是:

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

它们作为**kwargs传递,并定义为这里

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

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

这个数字不完全是2086,如:

  • 你的音频长度不是精确的48秒
  • 实际的窗口长度是2048,有512跳。这意味着你会“松”几个框在最后。
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52232839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档