python對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割的方法實(shí)現(xiàn)
對(duì)批量WAV音頻進(jìn)行等長(zhǎng)分割
對(duì)WAV格式的音頻以相同長(zhǎng)度進(jìn)行分割。
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 #單位長(zhǎng)度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] #聲道數(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, 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 #音頻片段數(shù)
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')
# 配置聲道數(shù)、量化位數(shù)和取樣頻率
f.setnchannels(nchannels)
f.setsampwidth(sampwidth)
f.setframerate(framerate)
f.writeframes(temp_dataTemp.tostring()) # 將wav_data轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)寫入文件
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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用多進(jìn)程將大量數(shù)據(jù)放入有限內(nèi)存的教程
這篇文章主要介紹了Python利用多進(jìn)程將大量數(shù)據(jù)放入有限內(nèi)存的教程,使用了multiprocessing和pandas來加速內(nèi)存中的操作,需要的朋友可以參考下2015-04-04
使用Python來開發(fā)Markdown腳本擴(kuò)展的實(shí)例分享
這篇文章主要介紹了使用Python來開發(fā)Markdown腳本擴(kuò)展的實(shí)例分享,文中的示例是用來簡(jiǎn)單地轉(zhuǎn)換文檔結(jié)構(gòu),主要為了體現(xiàn)一個(gè)思路,需要的朋友可以參考下2016-03-03
python 中pyqt5 樹節(jié)點(diǎn)點(diǎn)擊實(shí)現(xiàn)多窗口切換問題
這篇文章主要介紹了python 中pyqt5 樹節(jié)點(diǎn)點(diǎn)擊實(shí)現(xiàn)多窗口切換問題,文中給大家介紹了python pyqt5 點(diǎn)擊按鈕來打開另一個(gè)窗口的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒借鑒價(jià)值,需要的朋友可以參考下2019-07-07
python3.6環(huán)境下安裝freetype庫和基本使用方法(推薦)
這篇文章主要介紹了python3.6環(huán)境下如何安裝freetype庫和基本使用方法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
Caffe卷積神經(jīng)網(wǎng)絡(luò)solver及其配置詳解
這篇文章主要為大家介紹了Caffe卷積神經(jīng)網(wǎng)絡(luò)solver及其配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Jupyter notebook 不自動(dòng)彈出網(wǎng)頁的解決方案
這篇文章主要介紹了Jupyter notebook 不自動(dòng)彈出網(wǎng)頁的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05

