我正在尝试将一些 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]
谁能指出我正确的方向?
谢谢