使用ffmpeg确定歌曲的节奏

3
我发现ffmpeg库在将mp3转换为wav方面非常出色。 我正在使用此库进行转换:

https://github.com/WritingMinds/ffmpeg-android-java

然后我想按照以下步骤进行:

  • 确定歌曲的节奏
  • 将其转换为wav格式
  • 根据bpm将歌曲切成片段:例如每个小节或每半音符。

我还没有找到任何可以确定bpm的命令。 也许你们知道ffmpeg是否能够实现这一点,或者建议另一个可以解决这个问题的库。


你需要获取不止一个bpm值才能描述歌曲中的所有节拍;你需要知道每个节拍的时间。人类创造的节奏往往会在歌曲演奏过程中略微“游走”。...我不是ffmpeg专家,但不能做到这一点。 - greeble31
1
也许我可以使用FFT进行一些频率分析,然后根据高能量水平切割节拍。我认为这就是检测节奏的方法。 - nutella_eater
1
一些谷歌搜索引导我找到了这个。浏览了一下,看起来不错。 - greeble31
使用这个JS... https://killercrush.github.io/music-tempo/example/example-advanced.html - ashutosh
1个回答

1

我一直在使用Aubio来实现这个功能。以下是该网站提供的信息:

特点

aubio目前提供以下功能:

  • 数字滤波器
  • 相位伸缩
  • 起始点检测(多种方法)
  • 音高跟踪(多种方法)
  • 节拍和速度跟踪
  • 梅尔频率倒谱系数(MFCC)
  • 瞬态/稳态分离

GitHub项目


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接