Python实战之多种音乐格式批量转换

目录
  • 1.安装
  • 2.mp3转wav或其他格式
  • 3.更加通用的转换函数
  • 4.批量转化音频格式

Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便,如果你阅读过我们之前的文章:3行Python代码实现剪辑音乐 你就知道它有多么强大了。

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

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

wav avi mp4 flv
ogg flac ape mp2
aiff voc au  

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:\\push\\20200607\\music\\")

到此这篇关于Python实战之多种音乐格式批量转换的文章就介绍到这了,更多相关Python音乐格式转换内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python批量化音乐文件格式转换的实例

    最近在做声音文件数据处理,写了一个自动将m4a文件转化为wav的脚本. import os m4a_path = "/Users/Downloads/start1/" m4a_file = os.listdir(m4a_path) for i, m4a in enumerate(m4a_file): os.system("ffmpeg -i "+ m4a_path + m4a + " " + m4a_path + str(i) + ".

  • 基于Python实现本地音乐播放器的制作

    制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放.选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐. 在开始之前介绍一个免费下载mp3音乐的网站,有需要的可以下载自己喜欢的音乐.当然有各大音乐平台会员的大佬就不需要了. 缺少音乐素材的可以去免费下载即可,准备好音乐素材后将其放到一个文件夹下面即可. 在应用实现过程中,总共使用了下面这些库,特别需要注意的是这个库playsound使用的版本是1.3.0,听说其他版本在播放音乐时可能存在问题.也可以将播放音

  • Python实现提取音乐频谱的方法详解

    目录 前言 1.准备 2.频谱展示 前言 你有没有经常好奇一些音乐软件的频谱特效是怎么做的,为什么做的这么好看?有没有想试试自己提取音乐频谱并可视化展现出来?今天,咱就结合上次的音乐剪辑操作: 3行Python代码实现剪辑音乐 来简单粗暴地可视化下面这首歌曲的频谱! 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装. Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(c

  • Python 3行代码提取音乐高潮部分

    目录 1.原理简介 2.代码编写 2.1 安装所需要的项目 2.2 编写代码 3.效果检验 4.批量提取 前言: 有些时候,为了设定手机铃声或者发抖音视频,我们会耗费大量时间在剪辑音乐高潮部分上.那么这个音乐高潮的提取能不能自动化呢?当然可以. 先来看看,怎么样来提取孤芳自赏提取高潮后的部分: 1.原理简介 不知道大家有没有这样的体会,大部分时候,歌曲的高潮部分通常是重复次数最多的部分.因此我们可以根据这一个特征,提出我们的算法: 1.遍历整首歌曲. 2.将选定长度的部分与其他部分比较并计算相似

  • Python实现将多张图片合成视频并加入背景音乐

    实现的思路:将准备好的图片通过opencv读取出来,并将其设置好帧数等参数后合成为无声视频. 最后通过moviepy编辑视频将背景音乐加入到视频中. 开始之前还是需要说明一下非标准库的来源,因为有些库的名称和需要导入模块的名称不一定就是一样的. import os # python标准库,不需要安装,用于系统文件操作相关 import cv2 # python非标准库,pip install opencv-python 多媒体处理 from PIL import Image # python非标

  • 3行Python代码实现剪辑音乐

    目录 前言 1.音量变化 2.重复片段 3.渐进渐出 4.反转音乐 前言 你没看错,Python剪辑音乐,只需要3行语句就能瞬间完成,比如我要剪辑33秒到1分10秒的音乐片段: from pydub import AudioSegment song = AudioSegment.from_mp3("end_of_time.mp3") song[33,[object Object],1000].export('end_of_time_slice.mp3') 运行这个脚本,我们能瞬间完成剪

  • Python实战之多种音乐格式批量转换

    目录 1.安装 2.mp3转wav或其他格式 3.更加通用的转换函数 4.批量转化音频格式 Pydub是一个基于ffmpeg的Python音频处理模块,封装了许多ffmpeg底层接口,因此用它来做音乐歌曲文件格式转换会非常方便,如果你阅读过我们之前的文章:3行Python代码实现剪辑音乐 你就知道它有多么强大了. 今天给大家介绍它的音乐文件格式转换功能,几乎支持所有音乐音频格式,非常强大. 1.安装 安装Pydub前需要先安装ffmpeg: Mac (打开终端(Terminal), 用 home

  • python读取json数据还原表格批量转换成html

    目录 一.实操 1.首先创建一个新的文档 2.添加文本 二.word转成html 1.使用pydocx转换 2.使用win32模块 背景: 由于需要对ocr识别系统的表格识别结果做验证,通过返回的json文件结果对比比较麻烦,故需要将json文件里面的识别结果还原为表格做验证. 文件部分内容如下: {"row":"6","col","5""start_row": 0, "start_column&

  • python 数据分析实现长宽格式的转换

    我就废话不多说了,大家还是直接看代码吧! # encoding=utf-8 import numpy as np import pandas as pd # 长宽格式的转换 # 1 data = pd.read_csv('d:data/macrodata.csv') print 'data:=\n', data print 'data.to_records():=\n', data.to_records() print 'data.year:=\n', data.year print 'data

  • Python实现yaml与json文件批量互转

    目录 1. 安装yaml库 2. yaml转json 3. json转yaml 4. 批量将yaml与json文件互相转换 1. 安装yaml库 想要使用python实现yaml与json格式互相转换,需要先下载pip,再通过pip安装yaml库. 如何下载以及使用pip,可参考:pip的安装与使用,解决pip下载速度慢的问题 安装yaml库: pip install pyyaml 2. yaml转json 新建一个test.yaml文件,添加以下内容: A: hello: name: Mich

  • Python办公自动化解决world文件批量转换

    目录 python-docx 库简介 读取 Word 写入 Word Word 转 pdf 最后的话 只要是简单重复的工作,就想办法用 Python 来帮你解决吧,人生苦短,你需要 Python. Word 是办公软件中使用频率非常高的软件之一了,假如你需要调整 100 个 Word 文档的格式保持统一,或者要把 100 个 Word 全部转换为 pdf,那么你就需要 Python 来帮忙了. python-docx 库简介 python-docx 是一个可以对 Word 进行读写操作的第三方库

  • 利用Python实现快速批量转换HEIC文件

    目录 1. 前言 2. 准备 3. 实战 4.最后 1. 前言 最近打算做一批日历给亲朋好友,但是从 iPhone 上导出的照片格式是 HEIC 格式,而商家的在线制作网站不支持这种图片格式 PS:HEIC 是苹果采用的新的默认图片格式,它能在不损失图片画质的情况下,减少图片大小 有很多在线网站支持图片批量转换,但是安全隐私又没法得到保证:如果使用 PS 等软件去一张张转换,浪费时间的同时效率太低 本篇文章将使用 Python 批量实现 HEIC 图片文件的格式转换 2. 准备 首先,我们安装

  • python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str = '2006-01-03' date_ = datetime.datetime.strptime(date_str,'%Y-&m-%d') 这是单个字符串的转化,其中"%Y-%m-%d"表示日期字符串的格式,若date_str='2006/1/3',则可写为"%Y/%

  • python利用tkinter实现图片格式转换的示例

    代码 import os from PIL import Image import tkinter import tkinter.filedialog import tkinter.messagebox class Window(): def __init__(self): self.root = root = tkinter.Tk() self.menu = tkinter.Menu(root) self.submenu = tkinter.Menu(self.menu, tearoff=0)

  • python实现快速文件格式批量转换的方法

    用python实现文件夹下的成批文件格式转换 我们对于文件转换的需求很大,甚至于对于图片的格式,JPG和PNG格式在肉眼看来都没什么差别,但是对于计算机而言,它有时候就只接受这些肉眼看起来差不多的格式的其中一种. 环境 windows10 python3.7+pycharm 创建目录 1.在编程前,创建一个文件夹,并放入你想用的文件(非目录),这些文件的格式不合适. 例如,我在桌面创建了名为"in_path"的文件夹,在里面放进了.pgm和.png格式的文件,想让他们都转化成.jpg格

  • Python办公自动化PPT批量转换操作

    目录 python-pptx 模块的安装 读取 PPT 写入 PPT 添加一张幻灯片 为幻灯片添加内容 获取幻灯片中的形状: 添加自动形状 占位符 访问占位符 将内容插入占位符 如果要插入表格: 如果要插入图表: PPT 转 Pdf 最后的话 如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担. PPT 分为内容和格式,用 Python 操作 PPT,就是利用 Python 对 PPT 的内容进行获取和填充,修改 PPT 的格式并不

随机推荐