1
マイクからカウントノイズを生成するために、ALSAバッファからデータを取得しようとしています。しかし、私は配列にデータを変換しようとすると、私は間違った結果を取得します。 符号なし 16ビット整数としてALSAバッファからnumpy配列へのオーディオデータの読み込み
#!/usr/bin/env python
from __future__ import print_function
import alsaaudio
import numpy
card = 'default'
buf = [64]
numpy.set_printoptions(threshold=numpy.inf)
stream = alsaaudio.PCM(alsaaudio.PCM_CAPTURE, alsaaudio.PCM_NORMAL, card)
stream.setchannels(1)
stream.setrate(44100)
stream.setformat(alsaaudio.PCM_FORMAT_S16_LE)
stream.setperiodsize(64)
def listen():
print("Listening")
while True:
try:
l, data = stream.read()
f = open('test.raw', 'wb')
if l:
f.write(data)
f.close()
except IOError, e:
error_count += 1
print(" (%d) Error recording: %s" % (error_count, e))
else:
decoded_block = numpy.frombuffer(data, dtype='i2')
print('Array PCM: \n',decoded_block)
return 0
listen()
が
ali_mこれが問題になることはありません。私は問題を見つけようとするが、なぜalsaから間違ったデータを取得する。 – Bednar
「間違ったデータ」を取得していることをどのように知っていますか?あなたはどんな価値を期待していますか? –
範囲int16からのデータは-32,768から32,767になると予想しています。私は何が悪いのか分からない。マイクが正しく動作しない可能性があります。 – Bednar