0

我的朋友Prasad Raghavendra我试图在音频上进行机器学习实验。从单声道非MIDI音乐文件中分离乐器的音频

我们正在这样做,以学习和探索任何即将到来的聚会的有趣的可能性。 我决定了解人类评估的某些音频可以提供多深的学习或任何机器学习。

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

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

我们想到了FFT,带通滤波器和移动窗口以适应这些。

但是,我们不理解我们如何去分裂乐器,如果演奏和弦并且文件中有5-6个乐器。

  1. 我可以寻找哪些算法?

  2. 我的朋友知道玩键盘。所以,我将能够获得MIDI数据。但是,有没有这样的数据集?

  3. 这些算法可以检测多少种仪器?

  4. 我们如何分割音频?我们没有多个音频或混合矩阵

  5. 我们也在考虑如何找出伴奏模式,并在伴奏时实时使用这些伴奏。我想我们就可以考虑一下,一旦我们得到答案的1,2,3和4(我们正在考虑这两个和弦进行马尔可夫动态)

感谢所有帮助!

P.S .:我们也试过FFT,我们能够看到一些谐波。当时域输入矩形波时,是否由于fft中的Sinc()?可以用来确定音色吗? FFT of the signals considered

编辑:

我们可以大致制定问题。但是,我们仍然发现很难制定这个问题。如果我们在某个频率上使用频域,那么仪器是无法区分的。以440赫兹播放的长号或以440赫兹播放的吉他将具有除音色以外的相同频率。我们仍然不知道我们如何确定音色。我们决定通过时间考虑笔记。如果音符超过某个八度音阶,我们会将其用作下一个八度音程的单独维度+1,当前八度音程为0,以及前一个八度音程为-1。

如果笔记由'A','B','C'等字母表示,那么问题就会简化为混合矩阵。

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

在预测过程中,M必须被替换为概率矩阵P,该概率矩阵P将使用前面的M个矩阵生成。

该问题简化为预测 = P -1Ò。然后误差将被减少到I的LMSE。我们可以使用DNN使用反向传播来调整P.

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

+1

复音分解似乎仍然是研究课题。在这次会议上已有数百篇关于此主题的研究论文:http://www.music-ir.org/mirex/wiki/MIREX_HOME – hotpaw2

+0

@ hotpaw2谢谢!我该如何开始?我可以假设多种乐器有不同的速度吗?这可能在物理上不可能区分(给定谐波)。但是,如果我贬低它,比如说,没有一种乐器与音符或其他乐器重叠,它就没有意义。 如何为此构建输入和输出?我已经阅读过有关手动分类的“文书类别”。但是,我想自动化整个过程 - 它可能会在评估功能中使用LMS。任何见解将不胜感激! –

+0

第一个“宝宝步骤​​”需要做什么假设本身可能是您的第一个研究问题。 – hotpaw2

回答

0

拆分出不同的零件是一个机器学习问题。不幸的是,你不能只在音频领域看到这个问题。你必须考虑音乐。

您需要训练某些东西以了解音乐类型和音乐类型。它需要了解不同乐器听起来像什么,既混合又不混合。它需要了解这些乐器如何经常一起演奏,如果它有任何机会来分离正在发生的事情。

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

+0

谢谢。是的,我知道这是一个难题。但是,我怎样才能得到一个婴儿开始(可能是两个乐器?一个演奏旋律和其他吉他演奏和弦?)因为人类似乎认识许多乐器,并且可以近似E7和E这样的和弦。我们真的很感兴趣我们将学习很多关于机器学习的知识,并且也会找到合适的朋友。再次感谢 –

+0

@AkshayRathod你可能会惊讶于人类能做什么和不能做什么,以及音乐环境的重要性。我可以演奏CMaj和弦的上半部分,但如果我以前在低音中演奏A,则会听到Amin7的声音。从FFT中获得音乐环境的好运气。 :-)甚至有人类听到不存在的东西的情况。用长号向下演奏,一直到最低音。对于过去的5或6个笔记,将没有根本!尽管由于音乐环境,人类会感受到它。 – Brad

+0

@AkshayRathod根据你想要做的事情,你可能最好为你想分析的歌曲获取干文件。 – Brad