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

Written by

in

文章目录
  • 安装Pydub前需要先安装ffmpeg: 下载安装ffmpeg,并配置环境变量 下载,解压,安装之后,打开计算机环境变量,在Path路径中添加ffmpeg中的bin目录路径
  • 目录
    • 1.安装pydub库
      • Mac (打开终端(Terminal), 用 homebrew 安装):
      • Linux:
      • Windows:
        • 1.mp3->wav、ogg、flag等
        • 2.批量转化音频格式

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

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

    安装Pydub前需要先安装ffmpeg:

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

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

    brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora

    apt-get install ffmpeg libavcodec-extra

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

    2. 解压下载好的zip文件到指定目录
    3. 将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中

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

    pip install pydub

    将单个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支持的音乐音频格式,它都可以转换。

    现在,尝试将一个文件夹下的所有非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小工具实现3秒钟将视频转换为音频
    • Python使用pydub模块转换音频格式以及对音频进行剪辑
    • Python 如何实现批量转换视频音频的采样率
    • Python实现将mp3音频格式转换为wav格式
    • 如何使用Python实现数据透视表、音频文件格式转换
    • Python实现视频转换为音频的方法详解
    • Python脚本实现音频和视频格式转换
    • Python使用FFmpeg实现高效音频格式转换工具

    站内搜索