关于歌曲背景音乐生成方法的问题

时间:2013-10-03 05:06:00

标签: python audio audio-player background-music

我为音乐爱好者提供项目建议,他们不懂音频处理。我认为该项目很有意思,但我没有清楚了解如何实现它。

项目建议:有些人喜欢唱歌,但他们找不到合适的音乐伴奏(背景音乐)。可以弹吉他的人,他们可以弹吉他唱歌(吉他提供的节奏是背景音乐)。该项目旨在达到类似的效果,如为人们演唱吉他。

我认为要实现此项目,需要以下组件:

  1. 音乐知识(吉他如何作为背景音乐播放(可能简单的模式将起作用))
  2. 信号/音频处理

    • 密钥检测
    • 节拍检测
    • 和弦匹配
  3. 我有没有想到达到目的的其他组件?任何图书馆都可以帮助我?该项目应该在1.5个月内完成。可能吗? (我只是希望它像吉他初学者一样播放背景音乐)。对于开发语言,我不会使用c / c ++。目前我最喜欢的是python,但可能使用其他编程语言,只要它可以帮助简化实现过程。

    我没有音乐背景,只研究非常基本的音频处理。提出任何建议或意见。


    已编辑的信息: 我试图搜索自动伴奏,还有一些软件。我没有找到任何开源项目,我想知道它如何处理音频信息的细节。如果你知道任何关于它的开源项目,请分享你的知识,谢谢。

1 个答案:

答案 0 :(得分:4)

你可以先考虑一下吉他手必须做些什么才能成功地伴随歌手唱歌,因为他们没有事先知道歌曲的关键,和弦进程或节奏(更不用说它的结构,风格等)

在伴奏者(人或计算机)之前没有听过这首歌的情况下实时做这件事会很困难,因为需要一些时间来分析正在演唱的内容,以便做出适当的音乐选择。伴奏。在现实世界中具有这种能力的吉他手或其他音乐家将被认为是高技能的。

如果您没有音乐背景,这听起来像是一个非常具有挑战性的项目,为期1.5个月。 “也许简单的模式会起作用” - 也许,但是有很多简单的模式可能!

不太雄心勃勃的项目可能是:

  • 录制整首歌并进行分析,然后提供支持(仍然是 很多工作!)
  • 创建单个和声线或部分,在同一个 声乐和声效果的方式
  • 基于a生成支持 用户输入的和弦进程

编辑回复您的第一条评论:

如果你想要产生一个完整的伴奏,你需要(正如你所说)处理键和和弦进程,以及时间(包括时间签名和检测到哪个节拍是'击败1')

获得这种级别的定时信息可能很困难,因为使用用于从一首歌曲获得节拍的标准技术(在某些频率范围内寻找振幅峰值),无法从语音中进行节拍检测。

你可能仍然可以通过完全计算时间来获得好的结果,并且只需在唱出音符(或其中一部分音符)的开始时及时弹奏你的和弦。

您需要做的只是

  • 检测笔记。这篇文章是关于在python中检测音高:Python frequency detection。振幅检测更直接。
  • 提出了一种算法来计算出该作品的根音(并且 - 更加雄心勃勃 - 它改变的地方)。在某些情况下,单独使用旋律可能很难辨别。您可以从假设第一个音符或最常见的音符是根开始。
  • 提出了一种用于生成和弦进行的算法(对“协调旋律”进行网络搜索)。显然,没有客观的正确或错误的方法来做到这一点,你可能只能在有限的风格范围内令人信服地做到这一点。您可能希望从假定有限的和弦子集开始,例如: I,IV,V。这些应该适用于大多数简单的“童谣”风格曲调。

当然,如果你将自己局限于从第一个开始的简单曲调,你可能会更容易计算时间签名。总的来说,我认为你的成功之路将是先尝试处理简单的案例,然后再进行构建。