首页 > 解决方案 > 将 15 小时长的音频文件拆分为 1 小时长的文件

问题描述

我正在尝试将 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 小时长的文件运行它是行不通的。它似乎永远持续下去。

我可以使用其他库来完成这项任务吗?

标签: pythonaudiopydub

解决方案


如果有帮助,您可以使用名为 LightWorks 的工具上传您的音频,然后分成 60 分钟的间隔。


推荐阅读