问题标签 [librosa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
397 浏览

scipy - librosa 声音 wav 文件形状将原始形状更改为随机形状

我目前正在从事语音识别深度学习项目。
我需要用移位声音文件或拉伸它来增加我当前的数据,
但问题是在增加过程中形状正在改变

尽管我没有改变任何东西,但它改变了形状。
假设我最初的形状是 (99,81,1) 但在我改变它之后它变成了 (77,81,1) 或其他东西

但问题是当我使用 keras 进行分类时

不同的 input_shape 不适用于 keras。我什至不确定修改wav文件后是否可以保持原始形状

  1. 可以保持原来的形状吗?
  2. 如果不可能,是否可以将其更改为原始文件形状?
  3. 你还建议什么其他解决方案?

============================================我做完之后的形状改变了log_spectrogram

这个 np.log(spec.T.astype(np.float32) + eps) 的形状不同

==================================================== =========== 原始文件

==================================================== ==============

使用后

==================================================== ====================

0 投票
2 回答
692 浏览

signal-processing - 信号处理:有人可以为我解释不同类型的频谱图吗?

我是信号处理的新手,我在谷歌上搜索了许多频谱图术语,但我找不到任何关于频谱图类型差异的东西。谁能帮我解释下图中不同频谱图的定义和含义?谢谢!

频谱图

P/s:那么频谱图和色度的区别呢?色度的用途和用途是什么?

色度

0 投票
2 回答
381 浏览

matplotlib - librosa.display.specshow 中的小边框

我想绘制一首歌曲的频谱图,用作卷积神经网络图像分类的特征。因此,输出图像必须尽可能干净,没有任何标签/轴/刻度等。

从各种来源,我设法通过设置方法来禁用matplotlib默认绘制的box_inches=tight边框plt.savefig。尽管如此,我尝试绘制的任何图像上都会保留一个小边框。

此示例代码不使用实际的音频文件,但仍然可以看到小边框:

带有我不喜欢的白色小边框的情节

我在该方法的官方文档中找不到任何内容,也不知道如何调试此问题。有什么提示吗?

0 投票
1 回答
726 浏览

python - 根据带注释的文件为音频片段生成 mfcc

我的主要目标是将 mfcc 功能提供给 ANN。

但是我被困在数据预处理步骤中,我的问题有两个部分。
背景:
我有一个音频。我有一个 txt 文件,其中包含如下注释和时间戳:

我知道对于单个音频文件,我可以使用 librosa 计算 mfcc,如下所示:

第 1 部分:我无法解决两件事:
如何根据注释中的段计算 mfcc。

第 2 部分:如何最好地存储这些 mfcc 以将它们传递给 keras DNN。即是否应将每个音频段计算的所有 mfcc 保存到单个列表/字典中。或者最好将它们保存到不同的字典中,以便属于一个标签的所有 mfcc 都在一个位置。

我是音频处理和 python 的新手,所以我愿意接受有关最佳实践的建议。

非常乐意提供更多详细信息。谢谢。

0 投票
1 回答
1374 浏览

python - 如何将 mfcc 向量与注释中的标签结合起来传递给神经网络

使用 librosa,我为我的音频文件创建了 mfcc,如下所示:

我还有一个文本文件,其中包含与音频相对应的手动注释[开始、停止、标记],如下所示:

0.0 2.0 声音 1
2.0 4.0 声音 2
4.0 6.0 静音
6.0 8.0 声音 1

问题:如何将 librosa 生成的 mfcc 与文本文件中的注释结合起来。

最终目标是,我想结合标签对应的mfcc,并将其传递
给神经网络。
因此,神经网络将 mfcc 和相应的标签作为训练数据。

如果它是一维的,我可以有 N 列有 N 个值,最后的 Y 列有一个 Class 标签。但我很困惑如何进行,因为 mfcc 的形状类似于 (16, X) 或 (20, Y)。所以我不知道如何将两者结合起来。

我的示例 mfcc 在这里:https ://gist.github.com/manbharae/0a53f8dfef6055feef1d8912044e1418

请帮忙谢谢。

更新:目标是训练一个神经网络,以便它能够在将来遇到新声音时识别它。

我用谷歌搜索,发现 mfcc 非常适合语音。但是我的音频有语音,但我想识别非语音。对于通用音频分类/识别任务,是否还有其他推荐的音频功能?

0 投票
1 回答
2492 浏览

python - 根据时间戳计算不同时间间隔的 mfcc

我遇到了这个不错的教程https://github.com/manashmndl/DeadSimpleSpeechRecognizer,其中数据是基于由文件夹分隔的样本进行训练的,并且所有 mfcc 都是一次计算的。

我正在尝试以不同的方式实现类似的目标。

基于此:https ://librosa.github.io/librosa/generated/librosa.feature.mfcc.html

librosa 可以为任何音频计算 mfcc。如下 :

但我想根据文件中的时间戳逐部分计算音频的 mfcc。

该文件具有如下标签和时间戳:

我想计算每个范围的 mfcc,我希望得到一个带标签的火车数据,看起来像 mfcc 及其相应的标签。mfcc_1,sound1 mfcc_2,sound2
等等。

我如何实现这一目标?

我查看了generate mfcc's for audio segments based on annotated file ,问题很相似,但我发现问题和答案都很难理解(因为我对这个领域很陌生)。

TIA

更新:我的代码:

0 投票
2 回答
1021 浏览

python - 使用 melodia vamp 插件会引发错误

代码:

当我尝试运行上述代码时出现以下错误:

我尝试使用 Sonic Visualizer 32 位加载旋律,它在 Sonic Visualizer 中工作。

0 投票
1 回答
2015 浏览

python - 如何将梅尔频谱图转换为对数刻度的梅尔频谱图

我正在阅读这篇关于使用卷积神经网络进行环境噪声识别的论文,并希望重现他们的结果。他们将 WAV 文件转换为对数刻度的 mel 频谱图。你怎么做到这一点?我能够将 WAV 文件转换为 mel 频谱图

梅尔谱图

我还可以将其显示为对数比例的频谱图:

对数缩放图像

显然,它们看起来不同,但实际的频谱图ps是相同的。使用 librosa,如何将此 melspectrogram 转换为 log 比例的 melspectrogram?此外,对数比例的频谱图比原始频谱图有什么用?是只是为了降低频域的方差,使其与时间轴具有可比性,还是别的什么?

0 投票
2 回答
3084 浏览

python - python librosa 包 - 如何从频谱中提取音频

在使用Librosa进行人声分离的情况下,可以单独绘制人声和背景音乐,但我想从人声部分提取音频,人声部分的频谱位于名为“S_foreground”的变量中(请访问上面的链接进行演示)。如何获得前景(人声)音频?

0 投票
0 回答
683 浏览

python - 计算固定块上音频文件的 mfcc 并分别保存

我能做什么:
目前我能够为给定文件夹中的所有文件生成 mfcc 并将它们保存如下:

难度:
我的输入录音很长,每个至少 3-4 小时。这个程序效率非常低,因为之后的文件大小np.savetxt变得相当大~ 1.5MB txt 文件用于 1 分钟的音频。我计划在未来将 mfcc 与更多功能结合起来。所以保存的文件文本大小会爆炸。我想让它保持更小的 5 分钟块以便于处理。

我想做什么:
向 gen_features 添加一个参数len,这必须指定一次要处理的音频的长度。

因此,如果输入音频abc.mp3的长度为 13 分钟,并且我指定len = 5含义为 5 分钟,

然后应该为 [0.0,5.0) [5.0,10.0) 和 [10.0,13.0] 计算 mfcc,它们应该保存为
mfcc_filename_chunk_1.csv
mfcc_filename_chunk_2.csv
mfcc_filename_chunk_3.csv

像这样,我想为该目录中的所有文件执行此操作。
我想使用 librosa 来实现这一点。

我无法获得有关如何进行的任何想法。

更棒的事情是,在重叠的间隔上计算这个,例如如果len =5通过,那么
chunk one should be over [0.0,5.1]
chunk two should be over [5.0,10.1]
chunk three should be over [10.0,13.0]