干货|使用python进行音频格式转换

Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。

1.安装pydub库

安装Pydub前需要先安装ffmpeg:

下载安装ffmpeg,并配置环境变量

下载,解压,安装之后,打开计算机环境变量,在Path路径中添加ffmpeg中的bin目录路径

Mac (打开终端(Terminal), 用 homebrew 安装):

复制代码
brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora

Linux:

复制代码
apt-get install ffmpeg libavcodec-extra

Windows:

  1. 进入 http://ffmpeg.org/download.html

  2. 解压下载好的zip文件到指定目录

  3. 将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中

上述ffmpeg安装成功后就可以打开命令提示符(cmd),安装pydub:

复制代码
pip install pydub

1.mp3->wav、ogg、flag等

将单个mp3音频文件转化为wav音频格式:

复制代码
from pydub import AudioSegmentdef 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 AudioSegmentdef trans_mp3_to_any_audio(filepath, audio_type):    """    将mp3文件转化为任意音频文件格式    Args:        filepath (str): 文件路径        audio_type(str): 文件格式    """    song = AudioSegment.from_mp3(filepath)    filename = filepath.split(".")[0]    song.export(f"{filename}.{audio_type}", format=f"{audio_type}")
如ogg格式:
复制代码
trans_mp3_to_any_audio("Alone.mp3", "ogg")

只要是ffmpeg支持的音乐音频格式,它都可以转换。

2.批量转化音频格式

现在,尝试将一个文件夹下的所有非mp3音频格式的文件转化为mp3音频格式:​​​​​​​

复制代码
def trans_all_file(files_path, target="mp3"):    """    批量转化音频音乐格式    Args:        files_path (str): 文件夹路径        target (str, optional): 目标音乐格式. Defaults to "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)

只要输入文件夹名称,即可全部转化该文件夹下的音乐文件格式为mp3格式:

复制代码
trans_all_file("F:\\push\\20200607\\music\\")
相关推荐
databook8 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar10 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805110 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_10 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机17 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机18 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机18 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机18 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i18 小时前
drf初步梳理
python·django
每日AI新事件18 小时前
python的异步函数
python