Swift iOS - 如何分析给定的MP3文件以确定节拍的时间?

时间:2016-02-20 22:29:09

标签: ios swift audio avaudioplayer core-audio

我想创建一个可以找到节拍时间戳的应用程序,以及"长音符",通常我想知道关于音轨的所有内容并将其存储在一个数组中"属性"看起来像这样,让我们​​说(节拍):

beatsTimeStamps = [1, 4, 7, 10, 12](所有整数都在几秒钟内)。也就是说,这就是15秒钟音轨发生节拍的时间。

另一个例子是存储有关长和弦的信息的字典,例如:

longChordsTimeIntervals: [1: 4, 7:10, 15:20],其格式为[beginningTimeStampOfChord1: endingTimeStampOfChord1, beginningTimeStampOfChord2: endingTimeStampOfChord2, etc....].

最好知道和弦所包含的音符,但这可能更难。

如何分析音轨以获取此类信息?没有任何第三方iOS音频框架似乎很容易做到这一点。

1 个答案:

答案 0 :(得分:1)

在MIREX music-ir网站上,有大量关于音频速度估计和音频节拍跟踪领域最新技术的研究论文。

http://www.music-ir.org/mirex/wiki/MIREX_HOME

http://www.music-ir.org/mirex/wiki/2015:Audio_Tempo_Estimation

http://www.music-ir.org/mirex/wiki/2015:Audio_Beat_Tracking

这不是标准iOS音频框架中的简单内容。 iOS设备可能具有足够的计算能力,但创建算法和代码并非易事。

MIREX网站上还有关于复音音高估计的内容,但比击败跟踪要困难得多。