- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码从具有 13 个 MFCC 的音频文件中提取 MFCC 特征:
import librosa as l
x, sr = l.load('/home/user/Data/Audio/Tracks/Dev/FS_P01_dev_001.wav', sr = 8000)
n_fft = int(sr * 0.02)
hop_length = n_fft // 2
mfccs = l.feature.mfcc(x, sr=sr, n_mfcc=13, hop_length=hop_length, n_fft=n_fft)
但是它显示了这个警告。这是什么意思,我该如何摆脱它?
UserWarning: Empty filters detected in mel frequency basis. Some channels will produce empty responses. Try increasing your sampling rate (and fmax) or reducing n_mels.
warnings.warn('Empty filters detected in mel frequency basis. '
最佳答案
MFCC 基于梅尔频谱图,而梅尔频谱图又通常基于 discrete Fourier transform (DFT) .傅立叶变换从时域获取信号并将其转换为频域。这意味着 N 个时域样本被转换为 N 个频域值(注意对称性——您实际上只有 N/2 个频率值)。就像时域样本在线性时间尺度上一样,频域样本在线性频率尺度上。相比之下,mel-scale不是线性的,而是(近似)对数的。
您需要了解以下有关傅里叶变换的知识。当您有 F_s = 8000Hz 且窗口长度为 N 的信号时:
- Take the Fourier transform of (a windowed excerpt of) a signal.
- Map the powers of the spectrum obtained above onto the mel scale, using triangular overlapping windows.
- Take the logs of the powers at each of the mel frequencies.
- Take the discrete cosine transform of the list of mel log powers, as if it were a signal.
- The MFCCs are the amplitudes of the resulting spectrum.
在第 2 步中,您必须将 DFT 生成的任何内容映射到不同的尺度,即梅尔尺度。如果 DFT 分辨率 Δf 太低而无法将功率值映射到(可能)更精细的梅尔尺度,则这不起作用。把它想象成一幅图像:当你有一个粗糙的图像时,你不能通过将它映射到更高分辨率来提高质量。这意味着,您必须确保您的 DFT 分辨率 Δf 对于您要使用的梅尔波段来说足够好。
为确保这一点,您必须使用更长的窗口 N 或更少的梅尔波段 n_mfcc
。其核心问题是,您不能同时拥有高频分辨率和高时间分辨率。
关于python - 警告 'Empty filters detected in mel frequency basis. ' 是关于什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56929874/
我正在编写一个 MEL 脚本,它将关节层次结构中的所有关节重命名为已知格式。这个想法是,您将选择 Hip 关节,脚本将重命名 Hips,然后遍历所有其他关节并根据其在层次结构中的位置重命名。 如何遍历
我有一个变量 my_variable,其值为动态 URL,例如—— http://stackoverflow.com/questions/ask 我想在这个动态 URL 上做一个子字符串来找到最后一个
我正在与 MFCC 合作进行一个关于语音识别的项目。根据本站文档http://practicalcryptography.com/miscellaneous/machine-learning/guid
在 Maya 中,使用 Python,我可以写入命令响应窗口(我认为它被称为 - 屏幕右下角的单行窗口): import sys def console_it(s): sys.stdout.wri
我有点难以理解 MFCC。 从我读到的 mel 滤波器组应该是一系列三角形,它们变得更宽并且它们的峰值在同一个地方。像这样... 但是,当我使用 librosa 计算 mel 滤波器组时,我得到...
我正在使用 Python 中的 Librosa 从 GTZAN 数据集中提取对数梅尔频谱图。我的代码 - data, sampling_rate = librosa.load(os.path.join
谁能解释为什么会发生以下行为?为什么在使用逻辑 AND 时操作数的顺序很重要?在 mule-ce 3.3.1 上运行。 输出如下: true true false true
按照我昨天提出的问题,这里是 passing contents from multiple lists generated in different functions to a file我已经写了代
我希望每 x 秒执行一次 Maya MEL 程序。有什么办法可以做到这一点吗? 最佳答案 梅尔设置是 scriptJob -e "idle" "yourScriptHere()"; 然而,很难从 Me
我希望每 x 秒执行一次我的 Maya MEL 程序。有什么办法吗? 最佳答案 mel 设置为 scriptJob -e "idle" "yourScriptHere()"; 然而,很难从 Mel 那
我正在使用 context:property-placeholder 通过属性文件加载各种值。我可以将属性用于 Spring 注入(inject)和日志记录而不会出错,但是当我尝试在 MEL 表达式中
我想在 Maya(mel 语言)中创建一个空节点,我可以在其中存储我的属性(对最终用户可见)。我需要一个空节点的原因是因为我不需要任何定位器信息或其他标准 Maya 信息,只是我的几个自定义属性。在节
我一直在关注数字导师的脚本编写教程,在一些视频中,导师制作了一个工具,可以使用 MEL 将 Gamma 校正节点添加到任何选定的着色器,为了我的学习,我想我会尝试用 Python 重写代码但我正在努力
动态图形领域的人很难编写 MEL 脚本(因为他们都不是程序员)。所以我试了一下,但我遇到了很大的困难,因为我不知道很多变量和语法等是什么。 基本上是想选择scale值在0.001或更小的dagObje
我想知道是否可以使用 Mel 或 python 保存值。例如,我正在使用: int $a = 5; int $b = 4; string $declare = ( "matrix $m[" + $a
我有一个关于骡子表达式语言(MEL)的查询。 MEL 和 MVEL 一样吗?或者只是一个 MVEL 的包装器,并添加了一些 mule 功能等?或者完全是别的什么? 我可以看到有一个较旧的 MVEL 评
正在研究从鼠标光标位置到光线转换命中的第一个对象的世界点。也许 api func getClosestPoint 或 rayIntersect 可以完成这项工作?如果可以的话怎么做? (谢谢) 最佳答
我想从消息的 XML 负载中提取一些文本值,以便我可以在 jdbc 查询中使用它们。 鉴于下面的测试 XML 文件,我想获取第一本书的作者文本节点的字符串值。 类似于: INSERT INTO boo
在 Mulesoft 中,我有一个 ArrayList,它存储为带有一个元素的出站属性。它看起来像这样: 但是如果我尝试访问该数组的大小,我会收到错误并且无法弄清楚原因: 错误是 [Error: ob
我想从消息的 XML 负载中提取一些文本值,以便我可以在 jdbc 查询中使用它们。 鉴于下面的测试 XML 文件,我想获取第一本书的作者文本节点的字符串值。 类似于: INSERT INTO boo
我是一名优秀的程序员,十分优秀!