【发布时间】:2018-03-31 21:35:39
【问题描述】:
我和我的朋友 Prasad Raghavendra 正在尝试在音频上使用机器学习。
我们这样做是为了在任何即将举行的聚会中学习和探索有趣的可能性。 我决定看看深度学习或任何机器学习如何通过人类评定的某些音频进行输入(评估)。
令我们沮丧的是,我们发现必须拆分问题以适应输入的维度。 因此,我们决定放弃人声并通过伴奏进行评估,假设人声和乐器总是相关的。
我们试图寻找 mp3/wav 到 MIDI 转换器。不幸的是,它们仅适用于 SourceForge 和 Github 上的单一工具,其他选项是付费选项。 (Ableton Live、Fruity Loops 等)我们决定将此作为子问题。
我们想到了 FFT、带通滤波器和移动窗口来适应这些。
但是,如果演奏和弦并且文件中有 5-6 种乐器,我们不了解如何拆分乐器。
我可以寻找哪些算法?
我的朋友知道弹键盘。因此,我将能够获得 MIDI 数据。但是,是否有任何用于此目的的数据集?
这些算法可以检测多少仪器?
我们如何分割音频?我们没有多个音频或混合矩阵
我们也在考虑找出伴奏的模式,并在演唱时实时使用这些伴奏。我想一旦我们得到 1、2、3 和 4 的答案,我们就可以考虑它了。(我们正在考虑和弦进行和马尔可夫动力学)
感谢大家的帮助!
P.S.:我们也尝试了 FFT,我们能够看到一些谐波。在时域输入矩形波时,是否是由于fft中的Sinc()?可以用来判断音色吗?
我们能够粗略地表述问题。但是,我们仍然发现很难表述这个问题。如果我们对某个频率使用频域,那么这些仪器是无法区分的。以 440 Hz 演奏的长号或以 440 Hz 演奏的吉他将具有相同的频率,但音色除外。我们仍然不知道如何确定音色。我们决定通过考虑笔记来按时域进行。如果一个音符超过某个八度音阶,我们会将其用作单独的维度,+1 表示下一个八度音阶,0 表示当前八度音阶,-1 表示前一个八度音阶。
如果音符用“A”、“B”、“C”等字母表示,那么问题就归结为混合矩阵。
O = MI 在训练期间。
M 是混合矩阵,必须使用 MIDI 文件的已知 O 输出和 I 输入求出。
但在预测期间,M 必须替换为概率矩阵 P,该概率矩阵将使用先前的 M 个矩阵生成。
问题简化为 Ipredicted = P-1O。然后误差将减少到 I 的 LMSE。我们可以使用 DNN 使用反向传播来调整 P。
但是,在这种方法中,我们假设音符“A”、“B”、“C”等是已知的。我们如何在瞬间或像 0.1 秒这样的小持续时间内检测到它们?因为,模板匹配可能由于谐波而无法工作。任何建议将不胜感激。
【问题讨论】:
-
复音分解似乎仍然是研究课题。本次会议已有数百篇关于该主题的研究论文:music-ir.org/mirex/wiki/MIREX_HOME
-
@hotpaw2 谢谢!我该如何开始?我可以假设多种乐器的不同节奏吗?这在物理上可能无法区分(给定谐波)。但是,如果我把它轻描淡写,比如说,没有一个乐器与音符或其他乐器重叠,它就没有意义。我如何为此构建输入和输出?我已阅读有关手动分类的“乐器类别”的信息。但是,我想自动化整个过程 - 它可能会在评估功能中使用 LMS。任何见解将不胜感激!
-
第一个“小步骤”需要哪些假设本身可能是您的第一个研究问题。
-
这是一个当前开放的研究领域,非常复杂,甚至可能不可靠。重新考虑一下为什么你需要它来解决你原来的问题,或者准备好花费很多年的时间来解决这个问题。
-
@Linuxios 谢谢。这就是我明白的。每次我试图找到解决方案时,都会弹出更多问题。但是,我通过尝试学习了很多深度学习。再次感谢您
标签: machine-learning artificial-intelligence signal-processing midi