首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于使用librosa进行音频分类的MFCC特征描述符

用于使用librosa进行音频分类的MFCC特征描述符
EN

Stack Overflow用户
提问于 2014-09-23 14:54:41
回答 4查看 13K关注 0票数 13

我正在尝试为音频文件获取单向量特征表示,以用于机器学习任务(具体地说,使用神经网络进行分类)。我在计算机视觉和自然语言处理方面有经验,但我需要一些帮助来加快音频文件的速度。

音频文件有各种各样的特征描述符,但MFCC似乎是用于音频分类任务最多的。我的问题是:如何获取音频文件的MFCC表示,它通常是一个矩阵(假设是系数矩阵),并将其转换为单个特征向量?我目前正在使用librosa来做这件事。

我有一堆音频文件,但它们的形状各不相同:

代码语言:javascript
复制
for filename in os.listdir('data'):
    y, sr = librosa.load('data/' + filename)
    print filename, librosa.feature.mfcc(y=y, sr=sr).shape

213493.ogg (20, 2375)
120093.ogg (20, 7506)
174576.ogg (20, 2482)
194439.ogg (20, 14)
107936.ogg (20, 2259)

作为一个简历人员,我会做的是通过k均值量化这些系数,然后使用类似scipy.cluster.vq的东西来获得相同形状的向量,我可以将其用作神经网络的输入。这是你在音频情况下也会做的吗,还是有不同的/更好的方法来解决这个问题?

EN

回答 4

Stack Overflow用户

发布于 2014-09-23 15:31:36

查看scikits.talkbox。它有各种功能,可以帮助你从音频文件中生成MFCC。具体地说,您可能希望这样做来生成MFCC。

代码语言:javascript
复制
import numpy as np
import scipy.io.wavfile
from scikits.talkbox.features import mfcc

sample_rate, X = scipy.io.wavfile.read("path/to/audio_file")
ceps, mspec, spec = mfcc(X)
np.save("cache_file_name", ceps) # cache results so that ML becomes fast

然后,在执行ML时,执行如下操作:

代码语言:javascript
复制
X = []
ceps = np.load("cache_file_name")
num_ceps = len(ceps)
X.append(np.mean(ceps[int(num_ceps / 10):int(num_ceps * 9 / 10)], axis=0))
Vx = np.array(X)
# use Vx as input values vector for neural net, k-means, etc

我在构建音频流派分类工具( genreXpose)时用到了这个东西。

PS:我使用的一个很方便的音频转换工具是PyDub

票数 17
EN

Stack Overflow用户

发布于 2014-11-14 11:49:11

这真的取决于任务。我会尝试kmeans,等等,但在很多情况下,这可能没有帮助。

有一些使用dynamic time warping with librosa的很好的例子。

也有一个想法,使用一个已知形状的滑动窗口,可能也是很好的。然后,您可以考虑先前的预测和转移概率矩阵。

票数 4
EN

Stack Overflow用户

发布于 2017-10-17 21:54:19

通常,在音频分类文献中,根据分类任务,所有音频文件都会被截断到相同的长度(即,我正在研究跌倒检测设备,因此我知道音频文件不应该持续超过1秒,因为这是跌倒事件的预期持续时间)。

然后,对于每个音频文件,您可以提取每个帧的MFCC系数并将其堆叠在一起,从而为给定的音频文件生成MFCC矩阵。由于每个音频文件都具有相同的长度,并且我们假设所有帧都包含相同数量的样本,因此所有矩阵都将具有相同的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25988749

复制
相关文章

相似问题

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