python - 将 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 小时长的文件运行它是行不通的。它似乎永远持续下去。
我可以使用其他库来完成这项任务吗?
解决方案
如果有帮助,您可以使用名为 LightWorks 的工具上传您的音频,然后分成 60 分钟的间隔。
推荐阅读
- swagger - 用于预定义示例的 Swagger-PHP 注释
- c - 在 while(1) 中保留开关
- sparql - 在 RDF 图中为文字定义数据类型有什么好处?
- javascript - 如何修复通知框插入符号?
- postgresql - SELECT ... WHERE t1.tag = 'bob' AND t2.tag = 'foo' AND t1.idx = t2.idx 在同一张桌子上
- html - 如何将搜索图标浮动到右侧
- python - 双 for 循环中的 Keras 模型
- python - 带有重复项的 Pandas 枢轴
- c# - 返回 400 时无法再从 Web 请求中获得响应
- javascript - 在 textarea 中键入时,JavaScript 表单验证消息不断触发