当前位置: 代码网 > it编程>前端脚本>Python > 使用python中Pydub进行音频格式转换

使用python中Pydub进行音频格式转换

2025年06月17日 Python 我要评论
pydub是一个基于ffmpeg的python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便。ffmpeg在linux平台下开发,但它同样也可以在其它操作系统

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 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_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\\")

到此这篇关于使用python中pydub进行音频格式转换的文章就介绍到这了,更多相关python 音频转换内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com