1

プログラミングしようとしているビーグルボードを手に入れました。私はPyAlsaAudioオーディオをキャプチャしてプロットするために使用しています(そしてそれに対してsokme処理を行います)。

ただし、これは実際には Python とコンピューター オーディオへの最初の進出です。通常、私はdaqシステムとmatlabを使用しているので、バイナリ(私が想定している)数を扱う必要はありませんでした。

pyalsa を使用すると、さまざまな形式で出力を取得できますが、例はすべて使用PCM_FORMAT_S16_LEされているため、誰かが特に言わない限り、私はそれに固執しています。

PCM_FORMAT_S16_LE数値の配列に移動する方法を学ぶ必要があります。シンプルなはずですが、簡単な解決策が見つかりませんでした。

読んでくれてありがとう。ムスタファ

編集:1追加したかっただけで試してみました

In [113]: aaa = numpy.fromstring(data)
In [112]: numpy.size(aaa)
Out[112]: 250

しかし、期間サイズとして 1000 を割り当てたため、サイズが間違っています。助けてください。

4

1 に答える 1

0

これによると、チャネルごとに 16 ビット サンプルPCM_FORMAT_S16_LEが署名されています (リトル エンディアン バイト オーダー) 。引数なしで使用すると、デフォルトで にマップされ、 にマップされます。したがって、16 ビットの 1000 サンプルは 64 ビットの 250 サンプルにしか変換されません。numpy.fromstringdtypefloatfloat64

あなたがすべきだと思うことは次のとおりです。

aaa = numpy.fromstring(data, dtype='<i2')

データ型で<は、リトル エンディアン、i符号付き整数型、および216 ビットまたは 2 バイトの長さを示します。

于 2013-01-25T06:57:57.893 に答える