0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Pydub音乐文件格式转换功能介绍

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-31 14:51 次阅读

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

如果你阅读过我们之前的文章:《剪辑音乐要很久?3行语句Python瞬间搞定》,你就知道 Pydub 有多么强大了。

今天给大家介绍它的音乐文件格式转换功能,几乎支持所有音乐音频格式,非常牛逼。

1.安装

安装Pydub前需要先安装 ffmpeg :

**(可选一) 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#build-windows,点击 windows 对应的图标,进入下载界面点击 download 下载按钮。
  2. 解压下载好的zip文件到指定目录。
  3. 将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中。

**(必须) **按照上述ffmpeg安装步骤成功后就可以打开命令提示符(cmd)或终端(Terminal),安装pydub:

pip install pydub

2.mp3转wav或其他格式

将单个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支持的音乐音频格式,它都可以转换,支持的格式长达几十个,下面我简单列一些:

wavavimp4flv
oggflacapemp2
aiffvocau

3.更加通用的转换函数

刚刚是mp3转任意音频格式,我希望把它写成任意音频格式转任意音频格式:

from pydub import AudioSegment
def trans_any_audio_types(filepath, input_audio_type, output_audio_type):
    """
    将任意音频文件格式转化为任意音频文件格式
    Args:
        filepath (str): 文件路径
        input_audio_type(str): 输入音频文件格式
        output_audio_type(str): 输出音频文件格式
    """
    song = AudioSegment.from_file(filepath, input_audio_type)
    filename = filepath.split(".")[0]
    song.export(f"{filename}.{output_audio_type}", format=f"{output_audio_type}")

比如将ogg音乐音频格式转化为flv音乐音频格式:

trans_any_audio_types("Alone.ogg", "ogg", "flv")

或者MP4格式,总之,一般你需要的格式它都能满足。

trans_any_audio_types("Alone.ogg", "ogg", "mp4")

4.批量转化音频格式

现在,尝试将一个文件夹下的所有非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:push20200607music")

看了我们今天的教程,学会这招后,你再也不用担心格式之间的转化问题,通过使用** pydub**模块你能轻易地解决这些问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8436

    浏览量

    150691
  • 音频
    +关注

    关注

    29

    文章

    2828

    浏览量

    81157
  • 终端
    +关注

    关注

    1

    文章

    1105

    浏览量

    29797
  • 格式转换
    +关注

    关注

    0

    文章

    8

    浏览量

    8221
收藏 人收藏

    评论

    相关推荐

    MP3 文件格式资料

    MP3 文件格式资料
    发表于 04-08 03:37 22次下载

    如何光绘输出AutoCAD文件格式

    教你光绘输出AutoCAD文件格式
    发表于 06-07 15:16 36次下载

    .mpp文件格式打开软件下载

    .mpp文件格式打开
    发表于 07-07 13:14 2517次下载

    LabVIEW数据文件格式的视频教程

    LabVIEW数据文件格式的视频教程 LabVIEW数据文件格式之华山论
    发表于 03-26 12:16 113次下载

    数码相机伴侣的文件格式

    数码相机伴侣的文件格式              文件格式指的是数码相机伴侣独特的文件系统结构在
    发表于 12-23 10:05 855次阅读

    电子书的文件格式详细介绍

    电子书的文件格式详细介绍
    发表于 12-23 10:50 6433次阅读

    GIF图形文件格式文档

    GIF图形文件格式文档 GIF图形文件格式文档 GIF图形文件格式文档
    发表于 05-24 10:53 2次下载

    GIF文件格式详解

    GIF文件格式详解 GIF文件格式详解 GIF文件格式详解
    发表于 05-24 10:53 2次下载

    LabVIEW 网络讲坛第四季:LabVIEW数据文件格式及需求与挑战

    本讲主要首先描绘了数据存储和管理以及文件格式方面的需求和挑战,其次介绍了LabVIEW中的各种数据文件格式,在最后推出NI主推的TDMS文件格式
    的头像 发表于 06-25 06:45 3379次阅读
    LabVIEW 网络讲坛第四季:LabVIEW数据<b class='flag-5'>文件格式</b>及需求与挑战

    HEX与BIN文件格式转换工具应用程序免费下载

    本文档的主要内容详细介绍的是HEX与BIN文件格式转换工具应用程序免费下载。
    发表于 01-11 17:08 57次下载
    HEX与BIN<b class='flag-5'>文件格式</b><b class='flag-5'>转换</b>工具应用程序免费下载

    MIDI文件格式的协议说明

    标准的MIDI文件格式就像奇异的兽。总体看来,它是那样的让你无法抗拒。当然,你怎样看它无关紧要,可是用足够多的描述符描述一段音乐并使它能够重现,可不是很少的工作就可以完成的。然而,它虽然复杂,但是真正理解之后,MIDI文件格式
    发表于 05-14 08:00 3次下载
    MIDI<b class='flag-5'>文件格式</b>的协议说明

    解开PCB文件格式的神秘面纱:Gerber与CAD

    PCB 文件格式可能不是 PCB 设计中最令人兴奋的部分,但它们在传达如何在制造厂实现您的设计的生命中起着关键作用。在本文中,我们将介绍您会遇到的两种最流行的文件格式背后的基础知识: Gerber
    的头像 发表于 09-17 19:32 8112次阅读

    将MacOLM文件转换为OutlookPST文件格式的工具

      将MacOLM文件转换为OutlookPST文件格式的工具 SysTools OLM to PSTConverter软件允许用户一次性将项目从OLM文件迁移到OutlookPST,
    的头像 发表于 06-16 10:56 2818次阅读
    将MacOLM<b class='flag-5'>文件</b><b class='flag-5'>转换</b>为OutlookPST<b class='flag-5'>文件格式</b>的工具

    Pydub:一个基于ffmpeg的Python音频处理模块

    Python瞬间搞定》 ,你就知道 Pydub 有多么强大了。 今天给大家介绍它的音乐文件格式转换功能,几乎支持所有
    的头像 发表于 10-21 10:40 1354次阅读

    常用对象文件格式

    电子发烧友网站提供《常用对象文件格式.pdf》资料免费下载
    发表于 10-15 09:25 0次下载
    常用对象<b class='flag-5'>文件格式</b>