マイクで拾った音声をそのままスピーカーで再生するように作ったんですがうまく再生されません
OSエラーと出て止まってしまいます
Python
1 2import pyaudio 3 4CHUNK=1024 5RATE=44100 6p=pyaudio.PyAudio() 7 8stream=p.open( format = pyaudio.paInt16, 9 channels = 1, 10 rate = RATE, 11 frames_per_buffer = CHUNK, 12 input = True, 13 output = True) # inputとoutputを同時にTrueにする 14 15while stream.is_active(): 16 input = stream.read(CHUNK) 17 output = stream.write(input) 18 19stream.stop_stream() 20stream.close() 21p.terminate() 22 23print("Stop Streaming")
OSError Traceback (most recent call last) <ipython-input-2-0e435b824ec0> in <module>() 13 14 while stream.is_active(): ---> 15 input = stream.read(CHUNK) 16 output = stream.write(input) 17 /anaconda3/lib/python3.6/site-packages/pyaudio.py in read(self, num_frames, exception_on_overflow) 606 paCanNotReadFromAnOutputOnlyStream) 607 --> 608 return pa.read_stream(self._stream, num_frames, exception_on_overflow) 609 610 def get_read_available(self): OSError: [Errno -9981] Input overflowed
ご指摘通りchunkを大きくしたら正常に動きました!でもなぜ改善できたのかよく分かってないです(汗
あとMacOSで開発してます。
chunkを大きくしたり、rateを落としても同じですか?あとOSの情報ください。
ご指摘通りchunkを大きくしたら正常に動きました!でもなぜ改善できたのかよく分かってないです(汗 あとMacOSで開発してます。
ちょっと分からないですが、outputとinputのデバイスが異なる場合に、初期化にかかる時間がずれたせいで落ちた?というのはありそうです。inputは入ってくるけど、outputの準備ができてないなくてバッファがあふれてしまう。とか。
なるほど!理解しました。 ありがとうございます!!
ハードウェアに関連する部分なので正確なところは正直分からないです。macでやった時に、outputの最初にどうしてもノイズが乗ってしまう問題が発生したこともありました。
回答1件
あなたの回答
tips
プレビュー