Python:运用pydub模块转换音频格式、对音频进行剪辑

article/2025/5/20 14:54:12

Python:运用pydub模块转换音频格式、对音频进行剪辑

近端时间看了一个短视频,觉得视频的背景音乐片段很不错,想把这个背景音乐得到,虽然小编运用Python爬虫肯定能得到这首音乐,但是这个音乐片段肯定是得不到的,于是网上看一下相关官方文档,没想到python真的有模块可以满足要求,这又让我想起自己CSDN界面的那段话了,“在Python面前,只有你想不到的,没有Python做不到的”

在这里插入图片描述

1.需要下载的Python模块和ffmpeg多媒体处理工具

需要的Python模块是标题上提到的那个,pydub,这个模块可以实现对音频文件的剪辑、转换音频格式等。
下载命令,在cmd上输入pip install pydub即可
除了下载pydub这个模块之外,还需要下载ffmpeg这个多媒体处理工具,否则,即使在代码中指定音频文件路径没有错误,运行结构也会报错。如下:

在这里插入图片描述
下载这个之后,就不会报这个错误了,下载网址为:ffmpeg
在这个网址下面找一个和自己电脑系统一样的版本下载即可,下载完成之后,解压,好像不配置环境变量,程序也可以正常执行,不过,最好还是配置环境变量。

在这里插入图片描述
对了,需要下载音乐的读者可以看看小编的专栏,专栏那里有python爬虫下载音乐的文章哈!专栏连接:爬虫

2.实现音频剪辑和转换音频格式代码

其实,实现音频剪辑和转换音频格式的代码总共就几行代码,只不过需要输入一些参数值,因此代码量相对而言多了起来。
关键代码为:

from pydub import AudioSegmentsound=AudioSegment.from_file(file='./music/刺客.mp3',format='mp3')sound=sound[start:end]  # start,end两个参数用于对音频进行剪辑sound.export(out_f='./music/刺客.wav', format='wav')  # 用于保存剪辑之后的音频文件

在这里插入图片描述

当然读者想了解更多有关这个模块的使用,可以来看看官方文档啊!
文档连接为:pydub
文档中讲了有关音频合并、音频重复等知识点喔!。
最终实现代码:

from pydub import AudioSegment
import sysclass Music(object):def __init__(self,file,file_type,start,end,save_file,save_file_type):self.sound = AudioSegment.from_file(file=file, format=file_type)self.start=start  # 剪辑音频文件开始时间self.end=end    # 剪辑音频文件的结束时间self.save_file=save_file  # 保存音频文件的路径self.save_file_type=save_file_type  # 保存音频文件的类型def editedMusic(self):   # 定义方法用于剪辑音频# 对于传入的start,end参数进行一些字符串处理## 对传入的开始时间进行字符串处理if self.start=='0' or self.start=='':  #  从头开始处理音频文件start_time=0elif ":" in self.start:# 从音频中间处理list_1=self.start.split(":")start_time=int(list_1[0])*60+int(list_1[1])else:  # 如果是其他情况,提示错误,并退出程序print("你输入的初始截取时间有问题")sys.exit()start_time*=1000   # 毫秒作为单位,需要在原来秒数的基础上再乘以1000if  start_time>=len(self.sound):   # 如果初始截取时间大于或等于音频文件总时间print('你输入的初始截取时间大于该音频文件总时间,故无法进行剪辑操作')sys.exit()## 对传入的结束时间进行字符串处理if self.end=='':end_time=len(self.sound)  # 如果输入结束时间为空,表示截取到音频文件最后elif ':' in self.end:list_2=self.end.split(':')end_time=int(list_2[0])*60+int(list_2[1])else:print("你输入的结束截取时间有问题")sys.exit()end_time*=1000self.sound=self.sound[start_time:end_time]  # 对音频文件进行剪辑self.saveFile()def saveFile(self):self.sound.export(out_f=self.save_file,format=self.save_file_type)# 保存已经进行剪辑的音频文件print('已成功转换!')if __name__ == '__main__':print('1.可以将音频文件转换其他格式的音频文件\n2.可用剪辑音频文件\n')print('='*50)file=input('建议:\n(1.音频文件和运行文件在同一个文件夹下面,最好使用相对路径)\n(2.音频文件和运行文件不在同一个文件夹下面,最好用绝对路径)\n请输入要剪辑的文件路径:')file_type=file[file.rfind('.')+1:]  # 音频文件类型 mp3、wavstart=input("(可用输入0,空格,(1:1,1分1秒):)\n输入开始截取时间:")end=input("(可用输入空格,(1:1,1分1秒):)\n输入结束截取时间:")save_file=input("请输入剪辑之后保存的文件路径:")save_file_type=save_file[save_file.rfind('.')+1:]music=Music(file,file_type,start,end,save_file,save_file_type)music.editedMusic()  # 1:12  1:36

运行结果:

运用Python实现音频剪辑、音频格式转换


当然,这个模块好像还可以满足一些用户改变音乐音质的需求,export()方法里面有一个参数bitrate比特率,百度了一下这个东西,好像对音频音质有一定影响。
在这里插入图片描述

3.总结

如果读者有什么疑问,欢迎下方留言,当然也可以看官方文档,文档链接小编在上面已经给出。小编最近在参与新星计划,如果读者觉得小编的这篇文章还可以的话,记得点赞。


http://chatgpt.dhexx.cn/article/h4mm9XXq.shtml

相关文章

python 音频格式转换

一、安装pydub库 WinR运行输入cmd进入控制台窗口,输入pip install pydub 回车进行安装 二、编写代码 1、在音频文件夹目录下新建文件Audio_Deal.py 2、用python自带的编辑器打开 3、输入下方代码(把“安静的午后_高至豪.flac”格式转换为“安静的午后_高…

华为云从入门到实战 | 云速建站服务与企业主机安全服务

在网站成功开通后,需要为网站增加内容,例如商品信息、支付方式等,开启企业主机安全服务时,需为指定的主机分配一个配额,并确保已在所选区域购买了充足可用的配额。本节主要介绍企业主机安全服务的开启与配置相关过程&a…

【云速建站】多语言站点集合

【摘要】 本章介绍多语言插件的使用,包括新建语言站点、删除语言站点、编辑语言站点、设置默认语言等。更新了一键复制多语言站点。 本节介绍多语言站点的编辑维护 首先登录控制台,进入后台管理 1 新增多语言 1.1 新增多语言 进入站点编辑…

【云速建站】SSL证书自助部署

第一步 SSL证书申请 第二步 下载证书 第三步 获取证书内容 第四步 建站后台添加证书内容 第五步 DNS中添加一条精确cname解析 完成 第一步 SSL证书申请,确保域名的正确性,后面在绑定的时候要验证 第二步 下载证书,审核通过后就可以下载…

【ICP备案后如何进行域名解析(云速建站)】

ICP备案后如何进行域名解析(云速建站) 前提一、 华为云操作二、 其它平台添加解析记录三、 云速建站后台绑定域名 前提 已经顺利完成工信部ICP备案,若还没有备案,点击查看个人备案 进行备案操作(华为云速建站&#xf…

【云速建站如何个人备案】

云速建站如何个人备案 一、 操作二、 注意事项 前提:已经进行了域名的注册: 如何进行域名的注册可以点击 域名注册 查看如何操作 一、 操作 登陆 华为云官网,点击右上角的备案,进入如下页面,点击登陆备案系统 进入…

【云速建站SSL证书的添加】

云速建站SSL证书的添加 前提一、下载证书二、 添加证书 前提 已经申请了SSL证书,若还没有申请,可以点击 SSL证书申请以及购买 进行操作 这里需要注意的是为什么需要申请SSL证书,如果没有SSL证书,则网站通过浏览器打开后&#xff…

【云速建站】如何实现多用户权限管理

【摘要】 通过本部分的操作,您可以设置不同权限的角色,并添加相应角色下的管理员。如日常运营过程中,有时会需要多个部门、多位管理人员协作操作,比如添加商品、处理订单等。使用角色与权限管理可以有效解决这个问题。 一、主用户…

【云速建站】后台数据批量导入导出

【摘要】 主要分享了云速建站后台管理的批量导入数据操作方法,如产品分类、产品、淘宝在售产品等的批量导入 1 产品分类的导入导出 1.1 进入后台管理 首先登录云速建站控制台,进入后台管理-产品-管理分类 当前分类无数据 1.2 导出分类模板 点击…

【云速建站】一键生成手机页

【摘要】在开始前,需要说明一点,PC站和手机站的编辑是分离的,即PC站的页面编辑后,不会自动同步到手机站,如果手机站也需要PC站相同的编辑效果,是需要给手机站进行同样的编辑设置才可以的。本文是以未购买PC…

【云速建站】会员注册弹窗添加及设置

【摘要】 会员注册插件包含的注册项设置、注册窗口样式设置以及会员控件添加,分别是在三个不同的地方维护,本文就是讲述这三部分分别是在哪里维护。 云速建站的会员设置包括前端页面添加会员登录控件、后端维护会员注册项及注册窗口样式。 我们先登录云…

【华为云速建站的购买流程】

华为云速建站的购买流程 建议一、 购买1.1 成本中心 二、 续费 建议 建议在进行云速建站前,先注册好心仪的域名,关于如何注册域名:域名注册 可跟着步骤进行操作 一、 购买 首先登录华为云官网,选择云速建站 进入网站建设专场后…

【云速建站】按照给定模板从0开始编辑网站页面

【摘要】 本文以一个示例网站为模板,用云速建站从0开始一步步编辑网站页面内容。 1 示例网站 这次已示例网站为模板,从零开始编辑建设网页 示例网站地址:http://security-456.view.websiteonline.cn/ 2 维护后台数据 登录云速…

【云速建站】让你轻轻松松建立属于自己的网店

【摘要】 通过使用华为云云速建站,轻松创建网店,大家快来一起体验吧。 1 控制台订购 1.1 购买站点/模板 首先我们需要购买一个站点,如果还未注册华为云,还要先注册成为华为云用户。链接https://console.huaweicloud.…

【云速建站】表单应用

【摘要】 云速建站的留言插件是网站唯一一个表单类插件,留言插件的字段类型有下拉框,单复选,文本框,图片上传,三级联动,日期等,通过这些不同类型字段的组合,可以实现多样化的表单功能…

【云速建站】文件专题(上传、下载、管理)

【摘要】 本章介绍后台文件的管理及使用,包括上传和下载文件,使用外部存储保存大型文件(视频、超大文档等)并通过外链形式链接到网站中使用。 1 站点配额 以入门版站点为例,说一下站点的配额 1.1 华为云空…

【云速建站】后台配置邮费

【摘要】 介绍后台配送费用的设置 本章主要是介绍一下云速建站后台配置运费的相关事项。 1 进入后台管理 登录云速建站控制台,点击后台登录 2 维护快递公司数据 3 设置运费 点击电子商务设置-配送设置 3.1 设置免邮 添加免邮配送方式 支持…

【云速建站】网站备份

【摘要】 在编辑网站的过程中,勤备份是有益无害的,备份操作也不复杂麻烦。通过备份我们可以恢复到创建该备份时的网站页面。 在编辑网站页面时,常做保存备份,对于因意外情况需要重新编辑,或者是觉得当前编辑不好&…

【云速建站】底版的创建和使用

【摘要】 建站底版可以节省相同的页面元素维护的工作量,设计一次多次使用。 更新了页面插件闪退或失效解决方法(主要针对从底版继承的插件失效问题) 1.1 进入站点编辑界面 1.2 切换到底版管理 1.3 创建新底版 1.4 编辑底版 1.5 使用底版…

云图说丨初识云速建站服务

摘要:云速建站服务是一款帮助您搭建网站的华为云服务。 本文分享自华为云社区《【云图说】第252期 初识云速建站服务》,作者:阅识风云。 云速建站服务(Cloud Site-building Service)是一款帮助您搭建网站的华为云服务…