我正在尝试将一些MATLAB代码转换为Python。
代码从串行读取音频数据:
out = fread(s,s.bytesavailable,'uint8'); % [255 205 217 255 212 60 255 207 132 255 ...]
'out'然后保存到二进制文件中,并使用fread读回:
fwrite(fid1,out,'uint8');
[d ~]= fread(fid2,[1 inf],'bit24','b');
如预期的那样,每个样本有三个字节,“ d”是“ out”长度的三分之一。但是,我无法确定fread读取二进制数据的方式。
我将“ out”作为字节数组或可以在Python中作为二进制文件打开,并且希望在Python中进行从“ out”到“ d”的转换。我已经尝试过使用numpy,struct,wave,wavio,soundfile的方法,但是由于我是编程新手,所以没有取得太大的成功。理想情况下,我不想写入临时文件并从中读取,但这不是必需的。
如果有帮助,以下是3个示例的示例:
out = [255 205 217 255 212 60 255 207 132]
d = [-12839 -11204 -12412]
有人能指出我正确的方向吗?
谢谢