2016-04-28 69 views
2

我想處理從JavaScript客戶端通過socketio接收到的python中的音頻blob。如何在python中處理JavaScript blob?

我想音頻數據爲numpy數組來處理它,但我似乎無法正確轉換blob。

音頻BLOB包含:

[Float32Array[32768], Float32Array[32768]] 

在蟒蛇,我想:

@socketio.on('gotaudio') 
def get_audio(blob): 
    //CONVERT THE BLOB 
    data = blob[0] 
    dat = np.array(json.loads(data)); 
    //DO SOME SIGNAL PROCESSING 
    fftData=abs(np.fft.rfft(dat))**2; 
    .... 

但這引發錯誤:

TypeError: expected string or buffer

我怎樣才能正確地轉換音頻BLOB這樣它可以用np.fft處理?

+1

對於$ DEITY的愛,請告訴我,您實際上並未傳輸封裝在JSON字符串中的audiodata。 – kay

+0

可怕的想法? O :-) – user2212461

+1

相當。 :-)我並不知道socket.io,但我可以告訴通用WebSockets可以傳輸二進制數據(Uint8Arrays [JS]/bytes [Python])。 – kay

回答

2

您是否試過首先使用base64.b64decode()? (base64在標準庫中)

這將有助於獲得一個示例blob。