【发布时间】:2020-11-02 14:08:35
【问题描述】:
我正在尝试将 15 小时长的有声读物拆分为更短的 1 小时长 .mp3 文件。这是我为此制作的功能:
from pydub import AudioSegment
import re, os, math
def process(fname, title):
head_dir = title + ' (split)'
if head_dir not in os.listdir():
os.mkdir(head_dir)
book = AudioSegment.from_file(fname)
seconds = book.duration_seconds
iters = math.ceil(seconds / 3600)
one_hour = 3600_000
thirty_sec = 30_000
left_off = 0
for i in range(1,iters+1):
last_iter = i == iters
if not last_iter:
segment = book[left_off:one_hour+thirty_sec].fade_in(1_500).fade_out(3_000)
left_off += one_hour
else:
segment = book[left_off:].fade_in(1_500)
segment.export(f'{head_dir}/{i:02d}.mp3')
我已经用一个大约一个半小时长的文件进行了尝试,它成功了,将它分成一个小时长的文件和一个三十分钟长的文件,大约需要 5-6 分钟。但是用 15 小时长的文件运行它是行不通的。它似乎永远持续下去。
我可以使用其他库来完成这项任务吗?
【问题讨论】: