【问题标题】:Music transcription [closed]音乐转录[关闭]
【发布时间】:2010-10-10 12:14:57
【问题描述】:

我正在做一个复调音乐转录项目。我已经阅读了一些论文并阅读了解释类似任务的文章。我对问题域的许多方面感到非常困惑。希望有人能帮助我。

到目前为止,我已经从给定的 mp3 中获得了解码后的音频数据流。

我了解起始检测是转录的第一步。 .是否有任何可用的 java 库可用于检测发病。

接下来,正如我所读到的,还使用 ​​FFT 来检测基频。

我想知道 FFT 在这些任务中的用途。 (我对 FFT 不太熟悉)。是否绝对有必要对发病检测和 F0 检测执行 FFT。 如果不是还有什么其他方法。 我可以对我拥有的音频流执行 FFT,还是必须执行一些其他操作才能操作这些音频数据。

非常感谢。

【问题讨论】:

    标签: java fft onset-detection audio


    【解决方案1】:

    要检测和弦音乐中旋律的基频,您可以试用 MELODIA vamp 插件(仅限非商业用途):http://mtg.upf.edu/technologies/melodia

    如果您想自己实现旋律提取算法,您将不得不检查当前最先进的研究,一个不错的起点可能是 MIREX 旋律提取年度评估活动:@ 987654322@

    那个,或者只是谷歌“旋律提取”;)

    【讨论】:

      【解决方案2】:

      这个字段被称为机器监听。

      数字编码音乐的复音转录是机器聆听的圣杯之一。这是一个未解决的问题,也是一个积极研究的领域。子字段包括:

      • 发病检测
      • 节拍提取(检测度量结构、时间信号等)
      • 音高检测(可以对单音信号使用自相关和其他方法,但在应用于复杂的复音音乐时是一个未解决的问题)
      • 键检测(键签名检测)。

      根据您项目的性质,您可能会发现探索SuperCollider 编程环境很有用。 SC 是为此类项目设计的语言,已经拥有大量机器监听插件 (ugens),以及用于处理 FFT、音频信号等的综合框架。

      【讨论】:

      • 好答案。我见过的最好的商业例子是 Celemony Melodyne 的 DNA:celemony.com/cms/index.php?id=dna 他们所取得的成就令人印象深刻,尽管它并不直接用于转录。
      【解决方案3】:

      音乐转录是指从声音(或音频数据)创建音乐符号。虽然有成就的音乐家,尤其是作曲家能够做到这一点,但使用机器完成这项任务非常困难,据我所知,迄今为止几乎没有成功——主要是学术实验。

      基本上,要识别音符,您需要知道它们的开始位置、结束位置以及音高。傅里叶变换原则上是将时域(音频数据)转换为频域(音高)的最基本方法。在实践中,乐器会产生大量的泛音(泛音),如果我们添加了复音(很多 F0),那就一团糟了。

      您可以尝试将音频数据的 50 毫秒连续切片输入 FFT。这样,您将获得每个切片的频谱,然后检测每个切片中最强的峰值,并根据连续切片之间发生的情况推断节奏。

      抱歉,我帮不上什么忙……但我只是想指出,你正在尝试做的事情非常困难,说真的。也许你应该从更简单的开始,比如检测单音正弦波旋律。祝你好运!

      【讨论】:

        【解决方案4】:

        question about note onset detection 包含许多可能对您有用的信息。

        这听起来是一个巨大但非常有趣的项目,祝你好运。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-22
          • 1970-01-01
          • 2010-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-30
          • 2011-03-10
          相关资源
          最近更新 更多