【问题标题】:Python implementation of MFCC algorithmMFCC算法的Python实现
【发布时间】:2018-05-10 19:14:48
【问题描述】:

我有一个包含视频流的数据库。我想从图像和 MFCC 音频中计算 LBP 特征,并且对于视频中的每一帧我都有一些注释。注释内嵌视频帧和视频时间。因此,我想将我从注释中获得的时间映射到 mfcc 的结果。我知道 sample_rate = 44100

from python_speech_features import mfcc
from python_speech_features import logfbank
import scipy.io.wavfile as wav

audio_file = "sample.wav"
(rate,sig) = wav.read(audio_file)
mfcc_feat = mfcc(sig,rate)
print len(sig)        # 2130912
print len(mfcc_feat)  # 4831

首先,为什么 mfcc 长度的结果是 4831 以及如何在我以秒为单位的注释中映射它?视频总时长为 48 秒。并且除了 19-29 秒的窗口之外,视频的注释在任何地方都是 0。我如何从 mfcc 的结果中找到窗口 (19-29) 内的样本?

【问题讨论】:

标签: python python-2.7 signals mfcc


【解决方案1】:

运行

 mfcc_feat.shape

你应该得到 (4831,13) 。 13 是您的 MFCC 长度(默认 numcep 是 13)。 4831是窗户。默认winstep 为10 毫秒,这与您的声音 文件持续时间相匹配。要到达对应于 19-29 秒的窗口,只需切片

mfcc_feat[1900:2900,:]

请记住,您不能收听 MFCC。它只代表0.025秒的音频片段(winlen参数的默认值)。

如果你想获得音频本身,它是

sig[time_beg_in_sec*rate:time_end_in_sec*rate]

【讨论】:

  • 但也有一些重叠吗?这让我很困惑。
  • 我想获取信号的特征并将其用于进一步分析。听 MFCC 是什么意思(它的频域系数 - 我怎样才能听它们)?
  • 回复:重叠:当然。 MFCC 在winlen 和每个winstep 上计算。所以窗口的数量取决于winstep。功能的质量取决于“winlen”。对于不同的应用程序,您使用不同的窗口大小。
  • 回复:聆听。我很高兴你明白这一点。
  • 是否容易计算相同窗口的抖动和音高,以丰富我的 MFCC 功能?这样做是直截了当的吗?
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-27
相关资源
最近更新 更多