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

  介绍

这篇文章运用简单易懂的例子给大家介绍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音频进行等长分割就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

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