我的朋友Prasad Raghavendra和我正在尝试对音频进行机器学习实验。

我们这样做是为了在即将举行的任何聚会上学习和探索有趣的可能性。
我决定看看如何通过人类评估的某些音频来提供深度学习或任何机器学习(评估)。

令我们沮丧的是,我们发现必须对问题进行分解以适应输入的维数。
因此,我们决定放弃人声并通过伴奏进行评估,并假设人声和乐器始终是相关的。

我们试图寻找mp3 / wav到MIDI转换器。不幸的是,它们仅适用于SourceForge和Github上的单个工具,其他选项均为付费选项。 (Ableton Live,水果循环等)我们决定将其作为子问题。

我们考虑了FFT,带通滤波器和移动窗口以适应这些情况。

但是,我们不了解如何弹奏和弦且文件中有5-6个乐器时如何拆分乐器。


我可以寻找什么算法?
我的朋友知道玩键盘。因此,我将能够获取MIDI数据。但是,是否有为此目的的任何数据集?
这些算法可以检测多少种仪器?
我们如何分割音频?我们没有多个音频或混合矩阵
我们也在考虑找出伴奏的模式,并在唱歌时实时使用这些伴奏。我想一旦我们得到1,2,3和4的答案,我们就可以考虑它。(我们正在考虑弦的进程和马尔可夫动力学)


感谢所有帮助!

附注:我们还尝试了FFT,我们能够看到一些谐波。当在时域中输入矩形波时,是由于fft中的Sinc()吗?可以用来确定音色吗?

machine-learning - 将乐器的音频与单 channel 非MIDI音乐文件分离-LMLPHP

我们能够大致解决这个问题。但是,我们仍然发现很难提出这个问题。如果我们对某个频率使用频域,则仪器是无法区分的。除音色外,以440 Hz演奏的长号或以440 Hz演奏的吉他将具有相同的频率。我们仍然不知道如何确定音色。我们决定通过考虑注释来按时域划分。如果音符超过某个八度,我们会将其用作下一个八度的单独维+1,将当前的八度作为0,将上一个八度作为-1。

如果音符由字母“ A”,“ B”,“ C”等表示,则问题将减少到混合矩阵。

O =训练期间的MI。
M是必须使用已知的O输出和MIDI文件的I输入找出的混合矩阵。

但是,在预测期间,必须用将使用先前的M个矩阵生成的概率矩阵P替换M。

问题减少到Ipredicted = P-1O。然后将误差减少到I的LMSE。我们可以使用DNN通过反向传播来调整P。

但是,在这种方法中,我们假设音符“ A”,“ B”,“ C”等是已知的。我们如何立即或在短时间内(如0.1秒)检测到它们?因为,模板匹配可能由于谐波而无法正常工作。任何建议将不胜感激。

最佳答案

分开不同的部分是一个机器学习的问题。不幸的是,您不能仅在音频领域中看到此问题。您必须考虑音乐。

您需要训练一些东西,以根据您所提供的音乐类型来理解音乐的形式和发展。它需要了解不同乐器混音和不混音的声音。它需要了解这些乐器通常是如何一起演奏的,如果它完全有机会分离正在发生的事情。

这是一个非常非常困难的问题。

关于machine-learning - 将乐器的音频与单 channel 非MIDI音乐文件分离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46836810/

10-11 06:27