【发布时间】: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