使用Python自动化任务



我正在寻找一种使用Python中外部程序自动化任务的方法。

我有AAC格式的大音频文件。我需要将它们转换为mp3,然后扩大它们(避免失真)。

我编写了一个与PYDUB库一起使用的程序,该程序与小文件一起工作很棒,但是我的文件太大(超过2hs或200mb),我的记忆用完了(因为Lib将完整的文件存储在RAM中,我认为)。我不能在块中拆分文件,因为我无法再次将它们合并出来,并且我需要一个文件。

所以,我想编写一个程序,该程序打开另一个程序以将文件转换为mp3(Mediauman Audio Converter),然后使用另一个程序(WavePad Audio Editor)放大转换的文件,但我不知道是否是这可能。

在现在,我正在手动执行此操作,但是这需要很长的等待时间,需要少于10个点击(在整个过程中分布),这很乏味。

我离开了我写的程序。我将其转录为删除一些与此过程无关的功能,此外,我将评论,变量和其他内容翻译成英语,因此它可能会有一些错误,但是原始程序效果很好:

import glob
import os
from pydub import AudioSegment
#convert to mp3 128 bits
sound = AudioSegment.from_file("input-file.aac")
sound.export("output-file.mp3", format="mp3", bitrate="128k")
#sound.max_dBFS shows how far below the limit the highest sample is (in dB)
sound = AudioSegment.from_file("output.mp3", format="mp3")
max_gain_without_distortion = -1 * sound.max_dBFS
#increase volume by "max_gain_without_distortion" dB
from pydub.playback import play
song = AudioSegment.from_mp3("output-file.mp3")
louder_song = song + max_gain_without_distortion
#save louder song
louder_song.export("output.mp3", format='mp3')

PC规格:///
OS:Windows 10 Pro 64位///
RAM:4GB///
CPU:DualCore 3GHz///
Python版本:3.7.1///
PYDUB版本:V0.23.1-0-G46782A9///
ffmpeg/avlib版本:"构建:ffmpeg-20190219-ff03418-win32 static"///

如评论中所约定的,作为一种解决方案,我将使用命令行工具提出建议:ffmpeg。这是您需要的命令:

ffmpeg -i input-file.aac -b:v 128k -filter:a loudnorm output.mp3

使用Loudnorm。您也可以按照文档中的解释直接应用增益,但是人们应该期望结果较低。可以以多种方式进行归一化,我建议阅读此帖子。

将其与例如find . -name '*.wav' -type f您可以轻松找到并在目录树中转换所有文件。

如果您倾向于使用Python,则可以检查Python绑定。基础:

import ffmpeg
ffmpeg.input('stereo.aac').output('mono.mp3').run()

最初,我要建议使用Sox: Sound Exchange,瑞士军刀的音频操纵。这不是Python,尽管具有Python绑定: pysox 。但是,事实证明,它不支持AAC格式(仍然具有数十个格式)。我认为无论如何都可以提及它,因为人们可以首先使用 ffmpeg 和管道结果转换为 sox 。后者还有更多修改音频流的选项。

将WAV转换为mp3并重新采样至128Kbit:

sox -r 128k input-file.wav output-file.mp3

OP要求"通过max_gain_without_distortit DB增加音量",为此,我们可以使用文档中解释的gainnorm

sox -r 128k input-file.wav output-file.mp3 gain −n -3

文档之后, -n选项将音频归一化为0db fsd;它通常与负增益-DB结合使用,以使音频标准化为给定水平低于0db

sox −−norm -r 128k input-file.wav output-file.mp3

最新更新