Algorithm 确定音频样本密钥的算法

Algorithm 确定音频样本密钥的算法,algorithm,audio,analysis,sampling,audio-processing,Algorithm,Audio,Analysis,Sampling,Audio Processing,我对确定音频样本的音乐键感兴趣。一个算法将(或可能)如何尝试近似音乐音频样本的关键点 心宿二自动调谐和旋律线是两个做这种事情的软件 有谁能给一点外行的解释,这将如何工作?通过分析和弦进行等的频谱,从数学上推断歌曲的关键点 这个话题让我很感兴趣 编辑-从每个对此问题做出贡献的人那里都可以找到精彩的来源和丰富的信息 特别是来自:the_mandrill和Daniel Brückner。据我所知,不同的键都有各自的共同频率,因此它可能会分析音频样本,以检测最常见的音符和和弦。毕竟,你可以有多个键,它们

我对确定音频样本的音乐键感兴趣。一个算法将(或可能)如何尝试近似音乐音频样本的关键点

心宿二自动调谐和旋律线是两个做这种事情的软件

有谁能给一点外行的解释,这将如何工作?通过分析和弦进行等的频谱,从数学上推断歌曲的关键点

这个话题让我很感兴趣

编辑-从每个对此问题做出贡献的人那里都可以找到精彩的来源和丰富的信息

特别是来自:the_mandrill和Daniel Brückner。

据我所知,不同的键都有各自的共同频率,因此它可能会分析音频样本,以检测最常见的音符和和弦。毕竟,你可以有多个键,它们具有相同的锐度和平度配置,不同之处在于键开始的音符,以及这些键出现的和弦,因此,重要的音符和和弦出现的频率似乎是你能够理解这类事情的唯一真实方式。我真的认为你不可能在不遗漏大量信息的情况下,得到一个门外汉对实际数学公式的解释


请注意,这是一位在这一领域毫无经验的人提出的,他的第一次接触是本答案中链接的文章。

这是一个复杂的主题,但确定单键(单键)的简单算法如下所示:

对包含注释的样本部分进行傅里叶变换,例如4096个样本(精确大小取决于分辨率要求)。确定频谱中的功率峰值-这是音符的频率

如果你有和弦、不同的“乐器/效果”或非谐音音乐模式,事情会变得越来越紧张。

你可以使用来计算音频样本的频谱。从该输出中,可以使用将其转换为示例期间听到的注释列表。在一系列样本中选择每个样本听到的最强音符,应该可以为您提供所使用的不同音符的良好地图,您可以将其与不同音符进行比较,以获得包含该音符组合的可能音阶列表

为了帮助决定使用哪种音阶,请记下最常听到的音符(不要使用双关语)。在西方音乐中,音阶的根通常是听到的最常见的音符,其次是第五音,然后是第四音。您还可以查找诸如common、or之类的模式

样本量在这里可能很重要。理想情况下,每个样本都是一个音符(这样你就不会在一个样本中得到两个和弦)。如果你把注意力集中在低频上,你可以使用通常与打击乐器相关的音量尖峰(“咔哒声”),以确定歌曲的节奏,并将你的算法“锁定”到音乐的节拍上。从长度为半拍的样本开始,然后进行调整。准备好扔掉一些没有很多有用数据的样本(比如在一个幻灯片中间的样本)。

首先你需要一个(例如)< /P>


然后,您可以使用基音检测算法在多个短时间窗口内提取基音。之后,您需要查看采样的音高最适合哪个音乐键。

值得注意的是,这是一个非常棘手的问题,如果您没有信号处理方面的背景(或对学习它不感兴趣),那么您将面临一段非常令人沮丧的时间。如果你希望在这个问题上抛出几个FFT,那么你不会走得很远。我希望你有兴趣,因为这是一个非常迷人的领域

最初存在基音识别的问题,对于简单的单声道乐器(如语音),使用自相关或谐波和谱等方法(如参见Paul R的链接)进行基音识别相当容易。然而,你经常会发现这样做的结果是错误的:你通常会得到你预期的一半或两倍的音高。这被称为基音周期倍增或倍频程误差,其发生主要是因为FFT或自相关假设数据随时间具有恒定的特征。如果你有一种由人演奏的乐器,总会有一些变化

有些人将关键点识别问题视为首先进行音高识别,然后从音高序列中找到关键点。如果你没有单音音高序列,这是非常困难的。如果你确实有一个单音音高序列,那么它仍然不是一个确定关键点的明确方法:例如,你如何处理彩色音符,或者确定它是大调还是小调。因此,您需要使用类似于Krumhansl的方法

因此,考虑到这种方法的复杂性,另一种方法是查看同时播放的所有音符。如果你有和弦,或者不止一种乐器,那么你将会有一个由许多正弦音组成的丰富的频谱汤同时演奏。每个音符都由基频的多个谐波组成,因此a(440Hz时)将由440、880、1320处的正弦波组成。。。此外,如果你玩E (音高见下表)这是659.25Hz,几乎是a的1.5倍(实际上是1.498)。这意味着A的每三次谐波与E的每二次谐波重合。这就是和弦听起来令人愉悦的原因,因为它们共享谐波。(顺便说一句,西方和声之所以能起作用,完全是因为命运的诡计,2的十二次方与7的幂之比接近1.5)

如果你看的距离超过了5到m