LRC时间戳未升序排列是字幕跳行、重复或后半段不显示的根本原因;需用pysubs2.sort_by_start()严格重排,注意utf-8-sig编码读取并清理非法行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

立刻MV生成的LRC歌词文件时间戳错乱,导致字幕跳行、重复显示或后半段完全不出现,根本原因是LRC中
先确认LRC是否真乱序
用记事本或VS Code打开LRC文件,肉眼观察前10行的
别信“看起来差不多”,LRC解析器对时间顺序零容忍:只要有一处≤前一行,后面全部丢弃。iOS系统尤其严格,哪怕只差1ms也会卡住。
用Python脚本一键重排(推荐)
方法一:三行命令快速校验+修复
安装依赖:pip install pysubs2
新建fix_lrc.py,粘贴以下代码:
import pysubs2
subs = pysubs2.load("input.lrc", encoding="utf-8-sig")
subs.sort_by_start()
subs.save("output_fixed.lrc")
运行:python fix_lrc.py。输出文件output_fixed.lrc已按起始时间严格升序排列,毫秒级误差自动归一化。
【必须用 utf-8-sig 编码读取,否则BOM头会导致第一行时间解析失败】
手动修正关键错位点
第一步:定位问题行
在LRC中搜索开头的行,这类行常因AI生成逻辑缺陷被错误插到最前面;再检查副歌重复段,同一句歌词若出现两次且时间戳相同,播放器只取第一个。
第二步:删除空行与非法标签
删掉所有不含
第三步:按时间戳数值重排块
把每段歌词(含时间标签+文字)当一个整体,用Excel或在线工具按时间戳转成毫秒数(公式:=MM*60000+SS*1000+XX),升序排序后复制回文本,确保每段之间仅保留一个空行。


















