干货|使用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\\")
相关推荐
用户8356290780512 小时前
使用 Python 将 DOCX 转换为 Markdown
后端·python
小玮看世界2 小时前
[Python]ADAS工程实战(三):多传感器扇区统计疑难点全解——归一化、跨边界、去重与置信度
python
传奇开心果编程2 小时前
【Rust入门练中学】 第3课:数据类型
开发语言·学习·rust
TomEval3 小时前
【测AI】第02篇:Python 环境搭建与基础语法速通
人工智能·python·功能测试·aigc
归去来 兮3 小时前
LangChain从入门到精通
python·langchain·langgraph
泡泡鱼(敲代码中)3 小时前
MySQL 学习笔记:DCL、函数与约束 —— 安全、效率、完整性的三板斧
开发语言·笔记·sql·学习·mysql·gitee
淘气的小猴子3 小时前
Python 魔术方法入门
python
我要见SA姐14 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
ide·vscode·python·自动化·编辑器
Tairitsu_H4 小时前
[C++] 拷贝构造还是赋值重载?类默认成员函数细节详解
开发语言·c++·类和对象
沉下心来学鲁班4 小时前
初识DeepAgents搭建第一个智能体
人工智能·python·langchain