介绍
这篇文章运用简单易懂的例子给大家介绍python实现对批量WAV音频进行等长分割,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
对批量WAV音频进行等长分割
对WAV格式的音频以相同长度进行分割。
导入操作系统 进口波 进口numpy np 进口pylab plt 进口librosa 路径=r" D: \ cutaudio \ test" 文件=os.listdir(路径) 文件=[路径+“\ \”;+ f f文件如果f.endswith (& # 39; wav # 39;)) CutTime=4 #单位长度4 s def CutAudios (): 因为我在范围(len(文件)): 文件名=文件[我] f=wave.open (r"“+文件名,& # 39;rb # 39;) params=f.getparams() #读取音频文件信息 nchannels sampwidth,帧速率,nframes=params[: 4] #声道数、量化位数,采样频率、采样点数 str_data=https://www.yisu.com/zixun/f.readframes (nframes) f.close () wave_data=np.frombuffer (str_data dtype=np.short) #根据声道数对音频进行转换 如果nchannels> 1: wave_data。形状=1,2 wave_data=wave_data.T temp_data=wave_data.T 其他: wave_data=wave_data.T temp_data=wave_data.T CutFrameNum=帧速率* CutTime Cutnum=nframes/CutFrameNum #音频片段数 StepNum=int (CutFrameNum) StepTotalNum=0 j的范围(int (Cutnum)): 文件名=r " D:/cutaudio/11//?文件[我][-17:4]+”——“+ str (j) +“wav” temp_dataTemp=temp_data [StepNum * (j): StepNum * (j + 1)] StepTotalNum=(j + 1) * StepNum temp_dataTemp。形状=1,1 temp_dataTemp=temp_dataTemp.astype (np.short) #打开WAV文档 f=波。open (FileName,“世界银行”) #配置声道数、量化位数和取样频率 f.setnchannels (nchannels) f.setsampwidth (sampwidth) f.setframerate(帧速率) f.writeframes (temp_dataTemp.tostring()) #将wav_data转换为二进制数据写入文件 f.close () if __name__==癬_main__”: CutAudios ()
关于python实现对批量WAV音频进行等长分割就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。