当音乐遇上Python:用Pydub自动分割音频

news/2024/11/17 0:01:23/

🎵 🎵 🎵 当音乐遇上Python:用Pydub自动分割音频


在这里插入图片描述

随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择一首长音乐,再通过剪辑软件将其剪成多段来使用,这种做法虽然可行,但效率较低。

在这种情况下,我们可以使用音频分割技术来快速剪辑出需要的音频段,以便于在短视频中使用。在 Python 中,我们可以使用 Pydub 库来进行音频分割。


🎵 🎵 🎵

I. 简介

pydub是Python的一个音频处理库,可以处理各种音频格式,如mp3、wav、flv等等。它是一个轻量级、快速且易于使用的库。silence库是pydub的一个扩展库,可以在音频文件中根据静默部分进行分割,非常方便。

🎵 🎵 🎵

II. 安装

使用pip安装pydub库:

pip install pydub

🎵 🎵 🎵

III. 使用

下面是一个使用pydub=分割音频文件的示例代码:

from pydub import AudioSegment
from pydub.silence import split_on_silence# 读取音频文件
audio = AudioSegment.from_file("audio.mp3", format="mp3")# 设置分割参数
min_silence_len = 700  # 最小静音长度
silence_thresh =-10  # 静音阈值,越小越严格
keep_silence = 600  # 保留静音长度# 识别计算分割歌曲数量
num_segments = int(audio.duration_seconds/60/3)  # 每首歌曲大概三分钟,计算歌曲数量# 分割音频文件
for i in range(-10, 0):segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=i, keep_silence=keep_silence)if len(segments) <= num_segments:print(f"分割成功,共分割出 {len(segments)} 段")breakelse:print(f"当前阈值为 {i},分割出 {len(segments)} 段,继续尝试")

上面的代码首先使用AudioSegment类从audio.mp3文件中读取音频数据,然后设置了分割参数min_silence_lensilence_threshkeep_silencemin_silence_len是最小静音长度,silence_thresh是静音阈值,keep_silence是保留静音长度。这些参数的具体含义可以根据实际情况进行调整。最后,根据分割参数使用split_on_silence函数对音频文件进行分割。

分割成功后,我们可以输出分割后的音频文件,验证是否达到了我们预期的效果。至此,我们就完成了音频文件的自动分割,可以将分割后的文件用于其他需要使用的场景了。

🚀💻 欢迎一起探索编程世界的更多精彩博客!🌟
🔗1️⃣ Python完整指南:掌握Python核心知识,解锁编程新世界!
🔗2️⃣ Python3.11,新特性亮点满满,让你的编程之路更加轻松!
🔗3️⃣ 8个Python编程技巧,让你的代码速度飞起,老板刮目相看!
🔗4️⃣ Pandas 日期处理:生成及去除工作日与节假日
🔗5️⃣ Python音频处理——pydub
🔗6️⃣Python使用XPath解析HTML:从入门到精通
🔗7️⃣Python天文数据处理——Astropy

一起来学习吧!😄🎉 #编程 #CSDN #Python #Pandas #Astropy #Pydub 🎓💡🎯

😊感谢您的阅读与支持!我们将继续为大家提供更多有关Python编程的优质内容。如果您有任何问题或建议,请随时与我们交流。再次感谢,祝您编程愉快!🎉


http://www.ppmy.cn/news/60646.html

相关文章

JAVA编程语言中的关键字有哪些?

JAVA编程语言中有关键字&#xff0c;它们在编程中有着特定的含义和用途。下面是这些关键字的详细介绍&#xff1a; abstract: 抽象类或抽象方法的修饰符&#xff0c;用于表示方法或类是抽象的&#xff0c;不能被直接实例化。 assert: 断言关键字&#xff0c;用于在代码中进行条…

node笔记_http服务搭建(渲染html、json)

文章目录 ⭐前言⭐初始化项目调整npm 的script运行入口搭建hello world的http服务npm run dev执行主函数的http服务 ⭐http返回类型html模板文件返回安装express渲染html的字符串 渲染html文件 sendFile渲染json返回数据类型 res.json ⭐结束 ⭐前言 大家好&#xff0c;我是ym…

Vue快速入门,常用指令,生命周期

Vue常用指令 案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

jQuery引入----练习

jQuery引入----练习 html <!DOCTYPE html> <html><head><title>jQuery引入</title><!-- css样式引入 --><link rel"stylesheet" href"../css/a.css"><!-- jquery函数库引入 --><script type"tex…

机器人抓取检测——Dex-Net

如今&#xff0c;在各种期刊顶会都能看到平面抓取检测的论文&#xff0c;他们声称能应对多物体堆叠场景&#xff0c;然而实际效果都不尽人意&#xff0c;我认为主要原因有如下几点&#xff1a; 缺乏多物体堆叠场景的抓取数据集。现在最常用的Cornell Grasp Dataset, Jacquard数…

【6D位姿估计】Point Pair Feature (PPF)

论文链接:Drost et al. Model Globally, Match Locally: Efficient and Robust 3D Object Recognition. CVPR, 2010. Model Globally, Match Locally 论文名字用 4 个词高度总结了 PPF 算法的精髓:“整体建模,局部匹配”。 下面这张图反应了论文的基本思想(算法概要): …

Java每日一练(20230507) 组合总和、缺失的正数、单词搜索II

目录 1. 组合总和 &#x1f31f;&#x1f31f; 2. 缺失的第一个正数 &#x1f31f;&#x1f31f;&#x1f31f; 3. 单词搜索 II &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/…

虚函数、静态绑定和动态绑定

静态绑定 class Base { public:Base(int data) :ma(data) {}void show() { cout << "Base::show()" << endl; }void show(int) { cout << "Base::show(int)" << endl; }protected:int ma; };class Derive : public Base { public…