从音乐中自动检测卡点位置,在波形上可视化、手动微调,并导出 Adobe Premiere Pro 可导入的标记文件,方便导进去预览验证卡点。
- 自动检测:综合三类音频事件并按强度排序
- 节拍 (beat) —— 规律节奏脉冲
- 起音点 (onset) —— 每个音符/打击的起跳,适合快剪
- 低频冲击 (kick / bass drop) —— 最"炸"的重点强卡点
- 疏密可调:一个滑块控制卡点密度,实时重算
- 吸附到节拍:把卡点对齐到最近拍点,更整齐
- 手动编辑:波形上双击增/删、单击定位、空格播放试听
- 导出:Premiere 自动识别的两种标记格式 + CSV / TXT / JSON
pip install -r requirements.txt依赖:librosa、soundfile、sounddevice、numpy、matplotlib(tkinter 随 Python 自带)。
python main.py- 「打开音频…」选择 mp3/wav/flac 等
- 自动检测并在波形上以红线标出卡点;拖动「疏密」滑块调整数量
- 试听微调:
- 单击波形 = 移动播放头,空格 = 播放/停止
- 双击波形 = 在该处增/删卡点
a= 在播放头加卡点,d/Delete= 删除最近卡点
- 选好序列帧率 fps(要和 Premiere 序列一致),按需点导出按钮
# 默认导出带 cue 标记的 WAV(Premiere 自动识别)
python main.py song.mp3 --density 0.6
# 指定格式:wav / fcpxml / csv / txt / json
python main.py song.mp3 -f fcpxml --fps 30 -o song_卡点.xml部分 Premiere 版本没有「从 CSV 导入标记」入口,所以提供两种自动识别的方式:
「导出带标记 WAV…」会把卡点作为 cue 标记嵌进音频文件本身。
- 把导出的
*_卡点.wav像普通素材一样导入 / 拖进 Premiere - 标记会自动出现在该音频片段上(片段标记),无需任何手动导入步骤
- 想把它们变成时间线标记:选中片段右键 → 复制标记,或直接对齐参考
该方式与帧率无关,标记按采样精确位置嵌入,跟着音频走,最不容易出错。
「导出 FCPXML…」生成一个 .xml:
- Premiere → 文件 → 导入 → 选择该
.xml - 会生成一条带时间线标记的序列
- 序列帧率请与导出时的 fps 一致(29.97 / 59.94 已按 NTSC 处理),否则卡点整体偏移
仍保留 CSV(支持「从 CSV 导入标记」的版本)、时间码 TXT、JSON,在「其他…」按钮里。
audio_tool/
├── main.py 入口:GUI 或 CLI
├── beatmarker/
│ ├── analysis.py 卡点检测算法
│ ├── export.py Premiere CSV / TXT / JSON 导出
│ └── gui.py Tkinter 界面
├── requirements.txt
└── README.md