歌曲编辑分析 是做什么的?
概述
使用此技能将歌曲转化为实用的编辑情报:节拍、节拍网格、段落图谱、能量曲线、剪辑优先级、素材适配说明、时间线标记,以及面向智能体的素材选择简报。
内置脚本是默认路径,因为它保持分析的可复现性,同时生成人机可读的输出。
工作流程
- 确认音频文件路径,并为交付物创建输出文件夹。
- 确保 Python 依赖可用:
librosa、numpy、scipy、matplotlib、pandas、scikit-learn和soundfile。 - 运行
scripts/analyze_song_for_editing.py <音频文件> --out <输出文件夹>。 - 检查生成的能量时间线图像和段落 CSV。如果自动分段对忙碌段落过度分割,请在最终响应或单独的 markdown 文件中合成一个更简单的宏观段落图谱。
- 当另一个智能体将选择片段、组装编辑或给素材候选评分时,使用智能体素材简报。
- 对于下游制作,使用
$footage-review-pack进行素材筛选,使用$beat-synced-montage-builder组装编辑,以及使用$edit-delivery-qa验证最终渲染。
脚本输出
对于名为 my_song.mp3 的输入,脚本会写入:
my_song_beats.csv:每个检测到的节拍,包含时间、估计的节拍/拍子位置、能量、低音、亮度、瞬态强度和剪辑优先级。my_song_cut_markers_30fps.csv:主要和次要剪辑标记,附带30fps时间码和简洁的标记说明。my_song_sections.csv:检测到的结构区域,包含平均能量、声音特征、素材适配性和剪辑策略。my_song_phrases.csv:8拍乐句级别的编辑笔记。my_song_energy_timeline.png:波形、能量曲线、素材提示和检测到的段落。my_song_editing_guide.md:面向人类的编辑指导。my_song_agent_footage_brief.json:结构化的、供另一个智能体使用的素材选择指令。my_song_analysis.json:机器可读的总体摘要。
起始锁定切割网格(v2引擎,适用于密集切割)
当编辑需要在每个音乐允许的时刻进行剪切(包括快速爆发)时,跳过标记阈值并构建原始起始网格:
env = librosa.onset.onset_strength(y=y, sr=sr, hop_length=512)
onsets = librosa.onset.onset_detect(onset_envelope=env, sr=sr, hop_length=512,
backtrack=False, delta=0.02, units="time")
delta=0.02 捕捉所有内容(0.03-0.04 可实现更干净的网格)。合并距离小于0.13秒的起始点,保留较强的那个;使用 int(round((t-t0)*FPS)) 量化为帧;强制在0帧处进行剪切;丢弃距结尾2帧以内的剪切。稀疏时保持,忙碌时爆发——绝不插入偏离网格的填充剪切。起始强度在前四分位数中的获得重音(推镜缩放)。在60ms范围内将任何估计的节拍网格捕捉到最近的真实起始点(瞬态可能偏离稳定节拍网格约35ms);对于变换/风格切换时刻,使用向下取整而非四舍五入进行量化,使得变化恰好落在包含瞬态的帧上。
病毒式窗口选择(选择哪15-30秒进行剪辑)
根据五个信号对候选窗口进行评分:重复性/副歌程度(节拍同步色度自相似性,对角线+8条副对角线置零,行平均值)、能量上升(后均值(4s) - 前均值(4s)——捕捉建造→高潮)、循环接缝(窗口结束稍后和开始稍后的色度+MFCC的余弦相似度——实现无感循环)、歌词位置(在[开始-0.5, 开始+3.0]内开始的乐句,情感词汇加分),以及艺术家自己发布的起始时间先验。锚点 = 最高重复峰值 + 最高能量上升节拍 + 先验,每个都对齐到其所在或之前的强拍,使得钩子尽早出现。大致组合权重为 0.26*能量 + 0.20*重复性 + 0.18*上升*2 + 0.16*歌词 + 0.12*循环接缝 + 0.08*先验;保留重叠<50%的顶部窗口。
包络跟随器(驱动连续 FX)
对于音频响应式特效,将起始包络重采样到帧网格,按第95百分位数归一化,然后应用单极点峰值保持(瞬时触发,exp(-1/(fps*0.22..0.25)) 衰减)。节拍拍冲用于推镜缩放/光晕:每拍添加 amp * exp(-(t-t_beat)/0.16),能量加权的振幅。将低音/能量/高音/瞬态作为独立的归一化通道——绝不是一个响度标量——并让起始事件通道保持未平滑。在同一开始/持续时间窗口下渲染FX,使得拍冲和剪辑共享一个包络(通过构造同步)。
解释规则
在对照波形或通过耳朵检查之前,将节拍、拍子和小节视为估计值。节拍网格通常足够好用于粗略编辑,但强拍标记可能偏移一个节拍或乐句。
使用此能量阶梯进行素材选择:
- 能量 1 / 非常低:氛围、标题、细节镜头、慢速平移、安静的铺垫。
- 能量 2 / 低:准备、预期、背景、慢动作、行动前。
- 能量 3 / 中等:可见的运动、反应、有节奏的B-roll、2-4拍剪辑。
- 能量 4 / 高:活跃的运动、冲击邻近镜头、快速B-roll、1-2拍剪辑。
- 能量 5 / 峰值:最强素材、碰撞、揭示、快速甩镜头、VFX击中、快速交替、0.5-1拍剪辑。
使用主要剪辑点进行主要主题变化、冲击、硬切、揭示、速度斜坡着陆和标题击中。使用次要剪辑点进行角度变化、连续剪辑、较小的B-roll替换和速度斜坡开始。
智能体素材选择
当智能体将选择素材时,向其传递 *_agent_footage_brief.json 以及任何可用的素材清单。指示智能体:
- 使用简报分类法中的
content_type标记每个候选片段。 - 对每个候选片段按1-5评分
motion_intensity。 - 将片段强度与每个段落的
energy_level匹配,除非编辑需要故意对比,否则允许正负1的偏差。 - 将
peak_impact和运动强度5的片段保留给最高能量的段落。 - 将主题变化、冲击和揭示放在主要剪辑点上。
- 当可用素材强度低于音乐时,使用更短的时长、更紧的裁剪、速度斜坡或重复的冲击细节。
面向人类的指导
除了原始数据之外,始终提供简洁的宏观图谱。编辑需要音乐判断,而不仅仅是一系列节拍。指出:
- 何处保持镜头。
- 第一个有意义的节奏剪切从何处开始。
- 高潮或峰值从何处开始。
- 哪个段落应获得最佳素材。
- 最强的剪切点及其时间戳。
- 任何不确定性,特别是如果段落检测过度分割或强拍可能偏移时。
下游技能
该技能产生音乐情报。对工作流程的其余部分使用配套技能:
$footage-review-pack:构建短名单、审查画廊、清单和来源溯源。$beat-synced-montage-builder:将素材映射到剪切标记并渲染社交蒙太奇特辑。$edit-delivery-qa:检查最终渲染、联系表、时间线密度和交付就绪状态。