python對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割的方法實(shí)現(xiàn)
對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割
對(duì)WAV格式的音頻以相同長(zhǎng)度進(jìn)行分割。
import osimport waveimport numpy as npimport pylab as pltimport librosapath = r'D:cutaudiotest'files = os.listdir(path)files = [path + '' + f for f in files if f.endswith(’.wav’)]CutTime = 4 #單位長(zhǎng)度4sdef 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] #聲道數(shù), 量化位數(shù), 采樣頻率, 采樣點(diǎn)數(shù) str_data = f.readframes(nframes) f.close() wave_data = np.frombuffer(str_data, dtype=np.short) #根據(jù)聲道數(shù)對(duì)音頻進(jìn)行轉(zhuǎn)換 if nchannels > 1:wave_data.shape = -1, 2wave_data = wave_data.Ttemp_data = wave_data.T else:wave_data = wave_data.Ttemp_data = wave_data.T CutFrameNum = framerate * CutTime Cutnum =nframes/CutFrameNum #音頻片段數(shù) StepNum = int(CutFrameNum) StepTotalNum = 0 for j in range(int(Cutnum)): FileName = r'D:cutaudio11' + 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)# 打開(kāi)WAV文檔 f = wave.open(FileName, ’wb’) # 配置聲道數(shù)、量化位數(shù)和取樣頻率 f.setnchannels(nchannels) f.setsampwidth(sampwidth) f.setframerate(framerate) f.writeframes(temp_dataTemp.tostring()) # 將wav_data轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)寫(xiě)入文件 f.close() if __name__ == ’__main__’ : CutAudios()
到此這篇關(guān)于python對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python WAV等長(zhǎng)分割內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP基礎(chǔ)知識(shí)Command對(duì)象講解2. ASP.NET MVC通過(guò)勾選checkbox更改select的內(nèi)容3. JavaScrip簡(jiǎn)單數(shù)據(jù)類(lèi)型隱式轉(zhuǎn)換的實(shí)現(xiàn)4. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題5. jsp+mysql實(shí)現(xiàn)網(wǎng)頁(yè)的分頁(yè)查詢(xún)6. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)7. ASP中實(shí)現(xiàn)字符部位類(lèi)似.NET里String對(duì)象的PadLeft和PadRight函數(shù)8. XHTML 1.0:標(biāo)記新的開(kāi)端9. JSP 中request與response的用法詳解10. asp知識(shí)整理筆記4(問(wèn)答模式)
