Pydub介绍
Pydub是一款基于ffmpeg的Python数字音频处理控制模块,封装了很多ffmpeg最底层接口,因此用它来进行歌曲格式转换十分方便。它的强大之处可以通过三行Python代码实现音乐剪辑来展示。

歌曲格式转换
今天我们要介绍的是使用Pydub进行歌曲格式转换的功能,这个功能基本上适用于所有歌曲音频文件格式,而且非常强大。
在使用Pydub之前,我们需要先安装ffmpeg。对于Mac用户,在终端设备(Terminal)中使用homebrew命令安装:brew install ffmpeg –with-libvorbis –with-sdl2 –with-theora。对于Linux用户,在命令行中输入apt-get install ffmpeg libavcodec-extra来安装。对于Windows用户,则需要进入http://ffmpeg.org/download.html#build-windows,并下载和安装对应版本的ffmpeg。
安装好ffmpeg之后,就可以使用pip install pydub命令来安装Pydub了。接下来,我们就可以使用以下代码将多种歌曲音频文件格式转化成wav音频文件格式:
from pydub import AudioSegment
def trans_mp3_to_wav(filepath):
"""
将mp3文件转化为wav格式
Args:
filepath(str): 目标文件夹
"""
song = AudioSegment.from_mp3(filepath)
filename = filepath.split(".")[0]
song.export(f"{filename}.wav",format="wav")
除了mp3文件格式,我们还可以使用以下代码将任何歌曲音频文件格式转化为任何歌曲音频文件格式:
from pydub import AudioSegment
def trans_any_audio_types(filepath, input_audio_type, output_audio_type):
"""
将随意音频文件格式转化为随意音频文件格式
Args:
filepath(str): 目标文件夹
input_audio_type(str): 输入音频文件格式
output_audio_type(str): 输出音频文件格式
"""
song = AudioSegment.from_file(filepath, input_audio_type)
filename = filepath.split(".")[0]
song.export(f"{filename}.{output_audio_type}", format=f"{output_audio_type}")
Pydub支持几乎所有的歌曲音频文件格式,我们只需要将目标音频文件格式作为参数传递给函数即可。
大批量转换
如果我们要批量转换一个文件夹中的所有歌曲音频文件格式,我们可以使用以下代码来实现:
def trans_all_file(files_path, target="mp3"):
"""
大批量转换声频音频格式
Args:
files_path(str): 文件夹路径
target(str, optional): 总体目标音频格式, 默认为"mp3"
"""
for filepath in os.listdir(files_path):
# 处理文件路径
modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
datapath = os.path.join(modpath, files_path + filepath)
# 切分为文件名和后缀名并加载文档
input_audio = os.path.splitext(datapath)
song = AudioSegment.from_file(datapath, input_audio[-1].split(".")[-1])
# 导出
song.export(f"{input_audio[0]}.{target}", format=target)
我们只需要将要转换的文件夹路径作为参数传递给函数即可。
综上所述,Pydub是一款非常强大的Python数字音频处理控制模块,使用它进行歌曲格式转换非常方便。不管你需要将哪种歌曲音频文件格式转换为哪种格式,只要使用Pydub即可轻松搞定。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6643.html
