Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将声音作为神经网络的输入?_Python_Tensorflow_Machine Learning_Neural Network_Signal Processing - Fatal编程技术网

Python 如何将声音作为神经网络的输入?

Python 如何将声音作为神经网络的输入?,python,tensorflow,machine-learning,neural-network,signal-processing,Python,Tensorflow,Machine Learning,Neural Network,Signal Processing,我正计划建立一个软件,可以用人工神经网络将一段音乐分为好的或坏的。为此,我需要将音频转换为一些数值,以作为输入提供给NN。所以为了训练NN,我首先下载了billboard hot 100首歌曲(我认为应该归类为好音乐),还下载了一些坏噪音音频文件(将归类为坏音乐)。然后我将它们转换为.wav格式,然后将每个文件拆分为多个.wav文件,每个文件的长度为2秒。我曾计划使用快速傅立叶变换将这些音频剪辑转换为频率-振幅对,但问题是,即使我们使用2秒的剪辑,其FFT也会生成大约100000个这样的对的阵列

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

首先,您可以喜欢:

1) 紧凑性。
2) 幅度谱。
3) 梅尔频率倒谱系数。
4) 音高。
5) 功率谱。
6) RMS.
7) 节奏。
8) 光谱质心。
9) 光谱通量。
10) 光谱衰减点。
11) 光谱可变性。
12) 零交叉点

生成要素集后,您有两个选项:

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


B) 使用用于分类任务的

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