我为音乐爱好者提供项目建议,他们不懂音频处理。我认为该项目很有意思,但我没有清楚了解如何实现它。
项目建议:有些人喜欢唱歌,但他们找不到合适的音乐伴奏(背景音乐)。可以弹吉他的人,他们可以弹吉他唱歌(吉他提供的节奏是背景音乐)。该项目旨在达到类似的效果,如为人们演唱吉他。
我认为要实现此项目,需要以下组件:
信号/音频处理
我有没有想到达到目的的其他组件?任何图书馆都可以帮助我?该项目应该在1.5个月内完成。可能吗? (我只是希望它像吉他初学者一样播放背景音乐)。对于开发语言,我不会使用c / c ++。目前我最喜欢的是python,但可能使用其他编程语言,只要它可以帮助简化实现过程。
我没有音乐背景,只研究非常基本的音频处理。提出任何建议或意见。
已编辑的信息: 我试图搜索自动伴奏,还有一些软件。我没有找到任何开源项目,我想知道它如何处理音频信息的细节。如果你知道任何关于它的开源项目,请分享你的知识,谢谢。
答案 0 :(得分:4)
你可以先考虑一下吉他手必须做些什么才能成功地伴随歌手唱歌,因为他们没有事先知道歌曲的关键,和弦进程或节奏(更不用说它的结构,风格等)
在伴奏者(人或计算机)之前没有听过这首歌的情况下实时做这件事会很困难,因为需要一些时间来分析正在演唱的内容,以便做出适当的音乐选择。伴奏。在现实世界中具有这种能力的吉他手或其他音乐家将被认为是高技能的。
如果您没有音乐背景,这听起来像是一个非常具有挑战性的项目,为期1.5个月。 “也许简单的模式会起作用” - 也许,但是有很多简单的模式可能!
不太雄心勃勃的项目可能是:
编辑回复您的第一条评论:
如果你想要产生一个完整的伴奏,你需要(正如你所说)处理键和和弦进程,以及时间(包括时间签名和检测到哪个节拍是'击败1')
获得这种级别的定时信息可能很困难,因为使用用于从一首歌曲获得节拍的标准技术(在某些频率范围内寻找振幅峰值),无法从语音中进行节拍检测。
你可能仍然可以通过完全计算时间来获得好的结果,并且只需在唱出音符(或其中一部分音符)的开始时及时弹奏你的和弦。
您需要做的只是
当然,如果你将自己局限于从第一个开始的简单曲调,你可能会更容易计算时间签名。总的来说,我认为你的成功之路将是先尝试处理简单的案例,然后再进行构建。