在音訊識別中,會透過以一個音框作為最小單位進行辨識與後續處理.

 

自動將音訊資料轉為音框的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)
文章標籤
全站熱搜
創作者介紹
創作者 Lung-Yu,Tsai 的頭像
Lung-Yu,Tsai

Lung-Yu,Tsai 的部落格

Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣(314)