亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實現對批量WAV音頻進行等長分割

發布時間:2020-10-30 16:01:37 來源:億速云 閱讀:718 作者:Leah 欄目:開發技術

這篇文章運用簡單易懂的例子給大家介紹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音頻進行等長分割就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南华县| 平阴县| 大洼县| 林周县| 石泉县| 蓬安县| 郴州市| 宿州市| 邢台县| 庆阳市| 安龙县| 固镇县| 西吉县| 平昌县| 文水县| 台江县| 苗栗县| 江西省| 柳江县| 西城区| 淮阳县| 民乐县| 静海县| 平阳县| 南雄市| 腾冲县| 尼玛县| 永宁县| 玉溪市| 安塞县| 遂宁市| 保康县| 屏南县| 句容市| 孟村| 天全县| 沙洋县| 东明县| 嵊州市| 新宾| 岱山县|