您可能会先考虑在没有事先知道琴键,和弦进行或节奏的情况下(更不用说其结构,风格等),吉他手在成功唱歌之后必须如何做才能陪伴歌手唱歌)

在伴奏者(人或计算机)之前从未听过歌曲的情况下,要实时进行此操作将很困难,因为要为伴奏做出适当的音乐选择,需要花费一些时间来分析正在演唱的歌曲.在现实世界中具有这种能力的吉他手或其他音乐家将被视为高技能.

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

雄心勃勃的项目可能是:

>录制整首歌曲并进行分析,然后提供背景音乐(仍然是

工作繁重!)

>在同一位置创建单个和声线或部分

人声和声效果的作用方式

>根据

用户输入的和弦进行

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

如果您想产生一个完整的伴奏,您将需要(如您所说)处理琴键和和弦的进行以及时机(包括拍号和检测小节的拍子为“拍子1”).

要获得此级别的定时信息可能很困难,因为使用用于从歌曲中获取拍子的标准技术(仅在某些频率范围内寻找振幅峰值)将无法仅从声音中检测拍子.

通过完全不计算时机,而只是在演唱的音符(或其中的一部分)的开头及时演奏和弦,您可能仍会获得良好的效果.

然后您需要做的就是

>检测笔记.这篇文章是关于在python中检测音调:Python frequency detection.幅度检测更简单.

>提出一种算法,用于计算出乐曲的根音(更雄心勃勃的是其变化的地方).在某些情况下,可能很难仅从旋律中分辨出来.您可以先假设第一个音符或最常见的音符为根.

>提出一种用于生成和弦进行的算法(在网络上搜索“和声旋律”).显然,没有客观或正确的方法可以做到这一点,并且您只能在有限的样式范围内令人信服地做到这一点.您可能想先假设一个有限的和弦子集,例如一,四,五.这些应该适用于大多数简单的“押韵”风格的音乐.

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