【问题标题】:How to feed sound as input to neural networks? [closed]如何将声音作为神经网络的输入? [关闭]
【发布时间】:2018-08-07 01:54:00
【问题描述】:

我正计划构建一个软件,该软件可以使用人工神经网络对一段音乐进行好坏分类。为此,我需要将音频转换为一些数值以作为输入提供给 NN。所以为了训练神经网络,我首先下载了 billboard hot 100 歌曲(我认为应该归类为好音乐),还下载了一些不良噪音音频文件(将归类为坏音乐)。然后我将它们转换为 .wav 格式,然后将每个文件拆分为多个 .wav 文件,每个文件长度为 2 秒。我计划使用快速傅立叶变换将这些音频剪辑转换为频率 - 幅度对,但问题是,即使我们使用 2 秒剪辑,它的 FFT 也会生成大约 100,000 个这样的对的数组。对数千个音频文件执行此操作会生成具有太多特征的太大数据集。
我想知道有什么方法可以缩短这个数据集,同时保留“音乐的本质”,以便做出更好的预测?还是应该使用其他算法/流程?

【问题讨论】:

  • "计划构建一个软件" 好的,这样做然后返回我们可能会帮助您修复的代码。即“这是我做 x 的代码,我怎样才能使它更高效/更小或更好地定义 y”等。
  • 这不是真正适合的地方。 - 另外,你会在 2 秒的“好”音乐的 sn-ps 上训练你的 CNN,而不是整首歌。这意味着您将拥有一台非常擅长识别 2 秒长的“好”音乐片段的机器,但不是一台擅长识别“好”音轨的机器
  • 请注意,在这种情况下,“好”不是“好”,而是“类似于当前的广告牌热门 100”(随时间而变化)我的“好”与我的朋友查理有很大不同。
  • python 中的大多数音频处理库都不够健壮,无法生成这么长的剪辑的 FFT。如果 2 秒长的剪辑可以生成 100,000 个 fft 对,那么想象一首 3 分钟的歌曲会产生多大的数据?
  • 我使用了“所有时间的热门 100 名单”。不是当前月份的“gucci gang”类型歌曲列表...

标签: python tensorflow machine-learning neural-network signal-processing


【解决方案1】:

一开始可以extract the various audio features点赞:

1) 紧凑性。
2) 幅度谱。
3) 梅尔频率倒谱系数。
4) 间距。
5) 功率谱。
6) 有效值。
7) 节奏。
8) 光谱质心。
9) 光谱通量。
10) 光谱滚降点。
11) 光谱变异性。
12) 过零。

生成特征集后,您有两个选择:

A) 通过均值 [和/或方差] 聚合歌曲的特定特征,连接歌曲的全部特征,然后输入人工神经网络并执行分类任务。

B) 使用Recurrent Neural Network 进行分类任务。

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 2021-04-18
    • 2018-11-09
    • 2018-03-03
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2012-11-14
    • 2012-10-05
    相关资源
    最近更新 更多