python录制视频和声音_python使用pydub进行音频视频处理

这篇博客介绍了如何使用Python的`pydub`库来合并和切割语音文件。首先展示了如何将两个不同格式的音频文件(MP3和WAV)进行音量调整后合并成一个新的WAV文件。接着,提供了另一种方法批量合并多个WAV文件。最后,演示了如何利用`pydub`切割MP3文件,保留特定时间段的内容。
摘要由CSDN通过智能技术生成

1.合并两个语音文件

# coding:utf-8

from pydub import AudioSegment

enPath1 = r'D:\PythonFiles\2018second\speechMerge\testData\nishi.mp3' # 文件的路径

enPath2 = r'D:\PythonFiles\2018second\speechMerge\testData\linvshi.wav' # 文件的路径

targetPath = r'D:\PythonFiles\2018second\speechMerge\resultData\output12.wav' # 合并文件的路径

# 加载MP3文件

song1 = AudioSegment.from_mp3(enPath1)

song2 = AudioSegment.from_wav(enPath2)

# 取得两个MP3文件的声音分贝

db1 = song1.dBFS

db2 = song2.dBFS

# song1 = song1[300:] # 从300ms开始截取英文MP3

# 调整两个MP3的声音大小,防止出现一个声音大一个声音小的情况

dbplus = db1 - db2

if dbplus < 0: # song1的声音更小

song1 += abs(dbplus)

elif dbplus > 0: # song2的声音更小

song2 += abs(dbplus)

# 拼接两个音频文件

song = song1 + song2

print(song)

# 导出音频文件

print(song.export(targetPath, format="wav") )

song.export(targetPath, format="wav") # 导出为MP3格式

第二种方式:

# coding:utf-8

from pydub import AudioSegment

import os, re

slash = '\\'

def test():

d_merger_path = {'OG37TR-3': ['D:\PythonFiles\\2018second\speechMerge\\addPinyinPackage\\test\HS3-1.wav',

'D:\PythonFiles\\2018second\speechMerge\\addPinyinPackage\\test\yu_xian_sheng_ma.wav']}

targetPath_Folder = r'D:\PythonFiles\\2018second\speechMerge\\addPinyinPackage\\test'

for key ,value in d_merger_path.items():

name = key

print(name)

firstlist = AudioSegment.empty()

pathList = value

for path0 in pathList:

print(path0)

song = AudioSegment.from_wav(path0)

firstlist += song

targetPath = os.path.join(targetPath_Folder + slash, name + '.wav')

firstlist.export(targetPath, format="wav") # 导出为WAV格式

test()

2.切割语音

# 循环目录下所有文件

for each in os.listdir('.'):

filename = re.findall(r"(.*?)\.mp3", each) # 取出.mp3后缀的文件名

if filename:

filename[0] += '.mp3'

mp3 = AudioSegment.from_mp3(filename[0]) # 打开mp3文件

mp3[17*1000+500:].export(filename[0], format="mp3") # 切割前17.5秒并覆盖保存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值