当前位置: 首页 > article >正文

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

🎵 🎵 🎵 当音乐遇上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)} 段")
        break
    else:
        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.kler.cn/a/16098.html

相关文章:

  • 缓存cache
  • ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
  • mysql每日一题(上升的温度,date数据的计算)
  • openwebui二改界面环境搭建
  • Qt主线程把数据发给子线程,主线程会阻塞吗
  • 为什么海外服务器IP会被封
  • leetcode 198.打家劫舍
  • 国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
  • 【云原生|Docker】13-Docker-compose详解
  • 【flask】理解flask的几个难点,难啃的骨头,线程隔离啥的
  • 完成A轮融资,倍思如何发力场景化为品牌创造广阔未来?
  • cookie、localStorage和sessionStorage三者的区别
  • 小记Java调用C++开发的动态链接库(DLL)
  • 【JAVAEE】JAVA数据库连接(JDBC)
  • SAP重复制造入门到放弃系列之基本配置
  • vbscript+asp编写接口
  • 网络安全基础入门学习路线
  • Excel表格成绩排名全攻略,让你事半功倍!
  • Java 基础入门篇(二)—— Java 基础语法
  • 作为一名8年测试工程师,因为偷偷接私活被····
  • HR website
  • SOFA Weekly|SOFAArk 社区会议预告、Layotto 社区会议回顾、社区本周贡献
  • 操作系统——死锁
  • go破冰之旅·8·go函数基本实践及各种玩法
  • Jenkins 修改 root 权限问题
  • 2023年易派客工业品展圆满落幕 期待与您再次相遇