这是一个用Python编写的BPM(每分钟节拍数)识别程序,可以分析音频文件并以时间轴格式输出BPM变化。
- 自动检测音频文件的BPM变化
- 以时间轴格式输出结果
- 支持多种音频格式(MP3、WAV、FLAC等)
- 智能合并相似BPM的时间段
- 清晰易读的输出格式
pip install -r requirements.txtpython bpm_analyzer.py <音频文件路径>python bpm_analyzer.py <音频文件路径> --segment 15 --tolerance 3参数说明:
--segment或-s: 分段时长(秒),默认10秒--tolerance或-t: BPM容差,默认5.0
0分00秒 - 5分30秒 Bpm179
0分00秒到2分15秒 Bpm120
2分15秒到4分30秒 Bpm140
4分30秒到5分30秒 Bpm120
# 分析100bpm.mp3
python bpm_analyzer.py 100bpm.mp3
# 分析ACA.mp3,使用15秒分段
python bpm_analyzer.py ACA.mp3 --segment 15
# 分析ECP.mp3,使用3.0的BPM容差
python bpm_analyzer.py ECP.mp3 --tolerance 3.0# 使用简化版本快速分析
python quick_bpm.py 100bpm.mp3# 分析当前目录中的所有音频文件
python batch_bpm.py- 音频加载: 使用librosa库加载音频文件
- 分段分析: 将音频分成指定时长的段落进行BPM检测
- 节拍检测: 使用librosa的beat_track函数检测每段的BPM
- 智能合并: 将相邻且BPM相似的段落合并
- 格式化输出: 按照指定格式输出时间轴和BPM信息
bpm_analyzer.py: 完整版BPM分析器,支持详细参数调整quick_bpm.py: 简化版分析器,快速分析单个文件batch_bpm.py: 批量分析器,一次处理多个音频文件requirements.txt: 依赖库列表
- 程序需要安装librosa等音频处理库
- 分析精度取决于音频质量和节拍明显程度
- 对于复杂的音乐(如变拍子),可能需要调整参数
- 建议使用较短的分段时长来捕捉更细微的BPM变化
- 推荐使用
quick_bpm.py进行日常分析,速度更快