场景十二:Timing 歌词与音频时间线
做什么:拿到某首歌的逐词时间轴与波形数据,用于做逐句歌词高亮、字幕同步等。
A. 先准备一首歌
用场景一 / 二 / 三生成音乐,取其中一首歌的 clip_id,例如:
text
54834687-5e79-4f08-8e14-cf188f15b598
B. 获取歌词时间线
text
GET https://api.allyang.cn/suno/act/timing/<clip_id>
支持跨账号调用。返回体包含三部分:
aligned_words:逐词对齐结果,每项含word、success、start_s、end_s、p_align(对齐置信度);waveform_data:波形采样数组;hoot_cer/is_streamed:整体识别误差与是否流式。
text
{
"aligned_words": [
{
"word": "[Verse]\nWinter ",
"success": true,
"start_s": 8.38,
"end_s": 8.78,
"p_align": 0.982
},
{
"word": "winds ",
"success": true,
"start_s": 8.78,
"end_s": 9.54,
"p_align": 0.961
},
{
"word": "they ",
"success": true,
"start_s": 9.54,
"end_s": 9.93,
"p_align": 0.99
}
],
"waveform_data": [0.001, 0.00109, 0.04219, 0.03597],
"hoot_cer": 0.03556771545827633,
"is_streamed": false
}
aligned_words与waveform_data在真实返回中是长数组,上例已截断,仅保留结构。
用法提示:用 start_s / end_s 驱动字幕逐词高亮;p_align 偏低(例如低于 0.6)的词建议做兜底处理。