0

一部の 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');

予想どおり、サンプルあたり 3 バイトで、「d」は「out」の長さの 3 分の 1 です。しかし、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] 

誰かが私を正しい方向に向けることができますか?

ありがとう

4

1 に答える 1