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

 更新时间:2025年06月17日 10:35:51   作者:疯狂的超级玛丽  
Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便,本文主要介绍了使用python中Pydub进行音频格式转换,感兴趣的可以了解一下

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 音频转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • python yolo混合文件xml和img整理/回显yolo标注文件方式

    python yolo混合文件xml和img整理/回显yolo标注文件方式

    本文介绍了如何根据XML文件中的标签顺序进行索引转换,并提供了一种自定义标签转格式的方法,以回显YOLO标注文件
    2026-01-01
  • Python循环结构详解

    Python循环结构详解

    这篇文章主要介绍了Python循环结构详解,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • 简单谈谈python中的Queue与多进程

    简单谈谈python中的Queue与多进程

    本文给大家简单总结了下再Python中的队列对象(queue)以及多进程(multiprocessing),非常的简单实用,有需要的小伙伴可以参考下
    2016-08-08
  • Python复合赋值运算符由浅入深实例探究

    Python复合赋值运算符由浅入深实例探究

    这篇文章主要为大家介绍了Python复合赋值运算符由浅入深实例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python版DDOS攻击脚本

    python版DDOS攻击脚本

    这篇文章主要为大家详细介绍了python版DDOS攻击脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • OpenCV3.3+Python3.6实现图片高斯模糊

    OpenCV3.3+Python3.6实现图片高斯模糊

    这篇文章主要为大家详细介绍了OpenCV3.3+Python3.6实现图片高斯模糊,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Python从入门到精通之Redis操作详解

    Python从入门到精通之Redis操作详解

    Redis(Remote Dictionary Server)是一种高性能的开源内存数据库,它支持多种数据结构,本文主要为大家介绍了Python中操作Redis数据库的方法,需要的可以参考下
    2023-08-08
  • github配置使用指南

    github配置使用指南

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git,作为一个程序猿,不会github那确实有点坑了
    2014-11-11
  • python保留格式汇总各部门excel内容的实现思路

    python保留格式汇总各部门excel内容的实现思路

    这篇文章主要介绍了python保留格式汇总各部门excel内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python如何获取模块中类以及类的属性方法信息

    Python如何获取模块中类以及类的属性方法信息

    python对属性权限的控制是通过属性名来实现的,下面这篇文章主要给大家介绍了关于Python如何获取模块中类以及类的属性方法信息的相关资料,需要的朋友可以参考下
    2021-12-12

最新评论