Python,pydub拆分音频文件

时间:2017-02-06 04:43:33

标签: python pydub

您好我正在使用pydub来分割音频文件,让范围从原始文件中获取片段。

我拥有的是:

from pydub import AudioSegment

sound_file = AudioSegment.from_mp3("C:\\audio file.mp3")

# milliseconds in the sound track
ranges = [(30000,40000),(50000,60000),(80000,90000),(100000,110000),(150000,180000)] 

for x, y in ranges:
    new_file = sound_file[x : y]
    new_file.export("C:\\" + str(x) + "-" + str(y) +".mp3", format="mp3")

适用于前3个新文件。然而不是其余的 - 它没有相应分裂。

问题在于我给出范围的方式吗?

谢谢。

添加组件:

当它变得简单时 - 例如

sound_file[150000:180000]

并将其导出为mp3文件。它工作但只削减50000:80000部分。似乎没有读出正确的范围。

1 个答案:

答案 0 :(得分:0)

试试这个,它可能会奏效

import pydub
import numpy as np
sound_file = pydub.AudioSegment.from_mp3("a.mp3")
sound_file_Value = np.array(sound_file.get_array_of_samples())
# milliseconds in the sound track
ranges = [(30000,40000),(50000,60000),(80000,90000),(100000,110000),(150000,180000)] 

for x, y in ranges:
    new_file=sound_file_Value[x : y]
    song = pydub.AudioSegment(new_file.tobytes(), frame_rate=sound_file.frame_rate,sample_width=sound_file.sample_width,channels=1)
    song.export(str(x) + "-" + str(y) +".mp3", format="mp3")