一部の 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]
誰かが私を正しい方向に向けることができますか?
ありがとう