前提・実現したいこと
waveファイルをpython上で再生したいが、sounddeviceのInternal PortAudio error [PaErrorCode -9986]が発生し、再生できない。
発生している問題・エラーメッセージ
--------------------------------------------------------------------------- PortAudioError Traceback (most recent call last) <ipython-input-51-f863b2cc0fe5> in <module> 12 data=np.frombuffer(data,dtype=np.int16) 13 ---> 14 sd.play(data,wav.getframerate()) 15 print("再生開始") 16 status=sd.wait() ~/venv/ongen/lib/python3.6/site-packages/sounddevice.py in play(data, samplerate, mapping, blocking, loop, **kwargs) 175 ctx.output_dtype, callback, blocking, 176 prime_output_buffers_using_stream_callback=False, --> 177 **kwargs) 178 179 ~/venv/ongen/lib/python3.6/site-packages/sounddevice.py in start_stream(self, StreamClass, samplerate, channels, dtype, callback, blocking, **kwargs) 2576 callback=callback, 2577 finished_callback=self.finished_callback, -> 2578 **kwargs) 2579 self.stream.start() 2580 global _last_callback ~/venv/ongen/lib/python3.6/site-packages/sounddevice.py in __init__(self, samplerate, blocksize, device, channels, dtype, latency, extra_settings, callback, finished_callback, clip_off, dither_off, never_drop_input, prime_output_buffers_using_stream_callback) 1487 """ 1488 _StreamBase.__init__(self, kind='output', wrap_callback='array', -> 1489 **_remove_self(locals())) 1490 1491 def write(self, data): ~/venv/ongen/lib/python3.6/site-packages/sounddevice.py in __init__(self, kind, samplerate, blocksize, device, channels, dtype, latency, extra_settings, callback, finished_callback, clip_off, dither_off, never_drop_input, prime_output_buffers_using_stream_callback, userdata, wrap_callback) 893 samplerate, blocksize, stream_flags, 894 callback_ptr, userdata), --> 895 'Error opening {}'.format(self.__class__.__name__)) 896 897 # dereference PaStream** --> PaStream* ~/venv/ongen/lib/python3.6/site-packages/sounddevice.py in _check(err, msg) 2736 raise PortAudioError(errormsg, err, hosterror_info) 2737 -> 2738 raise PortAudioError(errormsg, err) 2739 2740 PortAudioError: Error opening OutputStream: Internal PortAudio error [PaErrorCode -9986]
該当のソースコード
Python
1import wave 2import pyroomacoustics as pa 3import numpy as np 4import sounddevice as sd 5 6pa.datasets.CMUArcticCorpus(basedir="./CMU_ARCTIC",download=True,speaker=["aew","axb"]) 7sample_wave_file="./CMU_ARCTIC/cmu_us_aew_arctic/wav/arctic_a0001.wav" 8wav=wave.open(sample_wave_file) 9 10data=wav.readframes(wav.getnframes()) 11data=np.frombuffer(data,dtype=np.int16) 12 13sd.play(data,wav.getframerate()) 14print("再生開始") 15status=sd.wait() 16 17wav.close()
試したこと
仮想環境が悪さをしているのかと考え、pyenvとvenvを使用せずに下記システム環境下でコマンドラインから該当ソースを実行しましたが、同様のエラーが発生しました。
Python==3.9.1(system)
sounddevice==0.4.1
pyroomacoustics==0.4.3
numpy==1.19.5
補足情報(FW/ツールのバージョンなど)
macOS BigSur 11.4
Python==3.6.4
pyenvを用いてpython3.6.4に切り替え、venvを用いて「ongen」という仮想環境を作っています。
「ongen」下にインストールしたモジュールは以下です。
sounddevice==0.4.1
pyroomacoustics==0.4.3
numpy==1.19.5
回答1件
あなたの回答
tips
プレビュー