【问题标题】:Questions about approach for background music generation for songs [closed]关于歌曲背景音乐生成方法的问题[关闭]
【发布时间】:2013-10-09 16:16:15
【问题描述】:

我有一个项目建议书,供没有音频处理知识的音乐爱好者使用。我认为这个项目很有趣,但我对如何实施它没有清晰的认识。

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

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

  1. 音乐知识(吉他如何作为背景音乐演奏(也许简单的模式也可以))
  2. 信号/音频处理

    • 按键检测
    • 节拍检测
    • 和弦匹配

为了达到我的目的,我是否遗漏了任何其他组件?任何图书馆可以帮助我吗?该项目预计在1.5个月内完成。可能吗? (我只是希望它像吉他初学者演奏背景音乐一样工作)。对于开发语言,我不会使用 c/c++。目前我最喜欢的是python,但可能会使用其他编程语言,只要它有助于简化实现过程。

我没有音乐背景,只学习非常基本的音频处理。任何建议或cmets都可以接受。


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

【问题讨论】:

  • 至少已经有一个应用程序可以做到这一点。适用于 iOS 的 Dreamwalk Interactive 的 Jam。
  • 是的,我刚刚在research.microsoft.com/en-us/um/people/dan/mysong 找到了一个。有没有关于这个主题的开源项目?我必须做一些与音乐处理有关的事情,目前我只对音乐伴奏感兴趣(处理键或生成)。
  • 我不知道,而且我非常了解这个领域。即使对于有音频软件开发经验的人来说,我认为 1.5 个月也是雄心勃勃的。

标签: python audio audio-player background-music


【解决方案1】:

您可能会首先考虑吉他手在不知道歌曲的调、和弦进行或节奏(更不用说其结构、风格等)

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

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

不那么雄心勃勃的项目可能是:

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

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

如果您想生成完整的伴奏,您将需要(如您所说)处理键和和弦进行以及时间(包括拍号和检测小节的哪个节拍是“节拍 1”)

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

完全不计算时间,而只需在唱出的音符(或其中的一部分)的开头及时弹奏和弦,您仍然可以获得良好的效果。

你需要做的就是

  • 检测笔记。这篇文章是关于在 python 中检测音高的:Python frequency detection。幅度检测更简单。
  • 想出一个算法来计算乐曲的根音(以及 - 更雄心勃勃的 - 改变的地方)。在某些情况下,仅凭旋律可能很难辨别。您可以先假设第一个音符或最常见的音符是根音。
  • 想出一个生成和弦进行的算法(在网络上搜索“和声旋律”)。显然,没有客观上正确或错误的方法来做到这一点,你可能只能在有限的风格范围内令人信服地做到这一点。您可能想从假设有限的和弦子集开始,例如I、IV、V。这些应该适用于最简单的“童谣”风格曲调。

当然,如果您将自己限制在从第一拍开始的简单曲调,您可能会更容易计算出拍号。总的来说,我认为您的成功之路是先尝试处理简单的案例,然后再以此为基础。

【讨论】:

  • 对于实时分析来说太难了,所以不是基于实时的。这意味着,我的歌曲没有任何音乐伴奏。我可以根据歌曲进行分析,并输出带有音乐伴奏的歌曲。
  • 在上面编辑以回应。
  • 非常感谢。您的回复很有帮助。
  • 祝你好运 - 有兴趣听到输出!
猜你喜欢
  • 2011-05-30
  • 2011-04-07
  • 2013-01-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多