使用Python剪辑 拼接音频文件 您所在的位置:网站首页 两段mp3合成一段 使用Python剪辑 拼接音频文件

使用Python剪辑 拼接音频文件

2023-10-13 04:23| 来源: 网络整理| 查看: 265

使用Python剪辑 拼接音频文件

近日有同学让我帮他剪辑某一段音频,笔者就搜罗了下网上一些常用的剪辑音视频软件。各类杂七杂八的软件挺多的,在纠结于选择哪一个时,忽然想起”为嘛不用Python神器试试呢?“

有了想法,那就实践呗!这一搜索,还真有相应的库是可以切割音频的。

方法1 from scipy.io import wavfile import numpy as np

使用scipy库中的方法wavfile。

方法2 from pydub import AudioSegment

主要使用pydub库中的方法AudioSegment。

经过比较,发现方法1操作简单,但是只对.wav格式有效。方法2 略微复杂,但是功能强大,支持多种文件格式,如,我们常见的mp3, wav,MP4等。学习成本也不算高, 因此,本文主要针对方法2 进行说明。方法1 在文末给出相应参考文档。

安装相关库及工具

安装pudub pydub,用来处理音频,比如说MP3啊、wav之类的东西是很方便的。这个库的安装和其他常见的库类似: pip install pydub

安装ffmeg

这个是一个命令行工具,可以用于一些音频格式的转换,比如mp3转wav啊之类的,然后就可以处理其他类型的多媒体文件了。 可以去ffmeg官网下载,解压配置环境变量即可。 windows用户下载压缩包 ffmeg. 操作步骤很简单,这里给出一个参考教程 安装完之后,打开命令行测试; 在这里插入图片描述

音频剪辑

直接从源码入手:

''' @Time : 2020/2/12 13:55 @FileName: cutVoice.py @Author : Solarzhou @Email : [email protected] ''' from pydub import AudioSegment file_name = r"../data/source.mp3" sound = AudioSegment.from_mp3(file_name) start_time = "0:00" stop_time = "1:29" print("time:", start_time, "~", stop_time) start_time = (int(start_time.split(':')[0]) * 60 + int(start_time.split(':')[1])) * 1000 stop_time = (int(stop_time.split(':')[0]) * 60 + int(stop_time.split(':')[1])) * 1000 print("ms:", start_time, "~", stop_time) word = sound[start_time:stop_time] # 保存路径 save_name = r"../data/" + "sound1" + file_name[-4:] print(save_name) word.export(save_name, format="mp3", tags={'artist': 'AppLeU0', 'album': save_name[:-4]})

这里是先读取了mp3文件,使用AudioSegment.from_mp3函数,如果是其他的一些特殊格式,可以使用AudioSegment.from_file("sound.mp4", format="mp4")

剪切时间是按ms 毫秒来的,所以时间格式的转换就要到毫秒级的。sound[start_time:stop_time]使用了python里的list分割来选择时间的长短。最后export函数输出,指定保存为mp3格式的。

音频拼接 ''' @Time : 2020/2/12 14:48 @FileName: joinVoice.py @Author : Solarzhou @Email : [email protected] ''' from pydub import AudioSegment def joinVoice(): file1_name = r"../data/sound1.mp3" file2_name = r"../data/sound2.mp3" # 加载需要拼接的两个文件 sound1 = AudioSegment.from_mp3(file1_name) sound2 = AudioSegment.from_mp3(file2_name) # 取得两个文件的声音分贝 db1 = sound1.dBFS db2 = sound2.dBFS dbplus = db1 - db2 # 声音大小 if dbplus


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有