2016-04-28 70 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。