首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从用librosa.feature.mfcc生成的MFCC中获取定时信息

从用librosa.feature.mfcc生成的MFCC中获取定时信息
EN

Stack Overflow用户
提问于 2020-12-11 10:36:02
回答 1查看 402关注 0票数 3

我正在使用Librosa的函数(librosa.feature.mfcc)从音频文件中提取MFCC,并且我正确地获得了一个具有我所期望的形状的numpy数组:13个MFCC值用于音频文件的整个长度,即1292个窗口(30秒内)。

缺少的是每个窗口的时间信息:例如,我想知道MFCC在时间上是什么样子,5000 is,然后5200 is等等。我需要手动计算时间吗?有办法自动获得每个窗口的确切时间吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-12 14:20:48

“时间信息”不是直接提供的,因为它取决于抽样率。为了提供这样的信息,librosa将创建自己的类。这会污染接口,使其更难互操作。在当前的实现中,feature.mfcc返回numpy.ndarray,这意味着您可以轻松地在Python中的任何地方集成这段代码。

将小额供资委员会与时间联系起来:

代码语言:javascript
复制
import librosa
import numpy as np

filename = librosa.util.example_audio_file()
y, sr = librosa.load(filename)

hop_length = 512 # number of samples between successive frames
mfcc = librosa.feature.mfcc(y=y, n_mfcc=13, sr=sr, hop_length=hop_length)

audio_length = len(y) / sr # in seconds
step = hop_length / sr # in seconds
intervals_s = np.arange(start=0, stop=audio_length, step=step)

print(f'MFCC shape: {mfcc.shape}')
print(f'intervals_s shape: {intervals_s.shape}')
print(f'First 5 intervals: {intervals_s[:5]} second')

请注意,mfccintervals_s的数组长度是相同的--这是一个正确的检查,我们在计算中没有出错。

代码语言:javascript
复制
MFCC shape: (13, 2647) 
intervals_s shape: (2647,)
First 5 intervals: [0.         0.02321995 0.04643991 0.06965986 0.09287982] second
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65249690

复制
相关文章

相似问题

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