python批量音频转格式_python对批量WAV音频进行等长分割的方法实现

对批量WAV音频进行等长分割

对WAV格式的音频以相同长度进行分割。

import os

import wave

import numpy as np

import pylab as plt

import librosa

path = r"D:\cutaudio\test"

files = os.listdir(path)

files = [path + "\\" + f for f in files if f.endswith('.wav')]

CutTime = 4 #单位长度4s

def CutAudios():

for i in range(len(files)):

FileName = files[i]

f = wave.open(r"" + FileName, 'rb')

params = f.getparams() #读取音频文件信息

nchannels, sampwidth, framerate, nframes = params[:4] #声道数, 量化位数, 采样频率, 采样点数

str_data = f.readframes(nframes)

f.close()

wave_data = np.frombuffer(str_data, dtype=np.short)

#根据声道数对音频进行转换

if nchannels > 1:

wave_data.shape = -1, 2

wave_data = wave_data.T

temp_data = wave_data.T

else:

wave_data = wave_data.T

temp_data = wave_data.T

CutFrameNum = framerate * CutTime

Cutnum =nframes/CutFrameNum #音频片段数

StepNum = int(CutFrameNum)

StepTotalNum = 0

for j in range(int(Cutnum)):

FileName = r"D:\cutaudio\11\\" + files[i][-17:-4] +"-"+ str(j) + ".wav"

temp_dataTemp = temp_data[StepNum * (j):StepNum * (j + 1)]

StepTotalNum = (j + 1) * StepNum

temp_dataTemp.shape = 1, -1

temp_dataTemp = temp_dataTemp.astype(np.short)# 打开WAV文档

f = wave.open(FileName, 'wb')

# 配置声道数、量化位数和取样频率

f.setnchannels(nchannels)

f.setsampwidth(sampwidth)

f.setframerate(framerate)

f.writeframes(temp_dataTemp.tostring()) # 将wav_data转换为二进制数据写入文件

f.close()

if __name__ == '__main__' :

CutAudios()

到此这篇关于python对批量WAV音频进行等长分割的方法实现的文章就介绍到这了,更多相关python WAV等长分割内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

本文标题: python对批量WAV音频进行等长分割的方法实现

本文地址: http://www.cppcns.com/jiaoben/python/349614.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值