在音訊識別中,會透過以一個音框作為最小單位進行辨識與後續處理.
自動將音訊資料轉為音框的LIST方法如下:
def split_frame(rate,data,split_len=512,overlap=0.25): frames = [] for i in range(0,len(data)): start_idx = i * int((split_len * overlap)) end_idx = start_idx + split_len if end_idx >= len(data): break frame = data[start_idx:end_idx] frames.append(np.array(frame)) return frames
其中rate表示採樣率,data則為音訊資料,split_len表示音框大小,overlap表示重疊率
整個函數的使用方法如下,先透過wavefile.read讀取WAV檔案,並回傳該檔案的採樣率(rate)以及音訊資料(data)
再呼叫音框化的函數split_frame進行音框化處理,處理完畢後會回傳一個音框的list
rate,data = wavfile.read(file_path) frames = split_frame(rate,data)
文章標籤
全站熱搜
