AudioSegment拆分后拼接异常:生成超时长音频文件求助
问题分析与解决
核心问题
你的代码中song.dice(2)的参数理解错误——pydub的dice()方法默认以毫秒为单位,所以你实际是把音频拆成了2毫秒的极小片段,而非预期的2秒片段。这导致拆分出的片段数量极其庞大,拼接后总时长自然异常夸张。
解决方案
将拆分代码修改为:
songsegs = song.dice(2000) # 2000毫秒 = 2秒,按2秒拆分
验证步骤
可以在拆分后添加代码,确认每个片段的时长是否符合预期:
for seg in songsegs: print(f"片段时长:{seg.duration_seconds} 秒")
补充说明
你尝试的numpy数组拼接方案同样出问题,本质原因也是拆分时的单位错误——拆分出的海量2毫秒片段,无论用哪种方式拼接,总时长都会是原音频时长的1000倍(因为把2秒拆成2毫秒,片段数量是原来的1000倍),最终导致生成的音频文件时长异常。
内容的提问来源于stack exchange,提问作者F P
相关产品推荐
相关产品推荐

