pushtotalk.py throws an error when no voice command is given #185
Description
Basically if you press enter while running pushtotalk.py and don't say anything for several seconds, this error gets thrown:
Traceback (most recent call last): File "pushtotalk.py", line 435, in <module> main() File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/click/core.py", line 722, in __call__ return self.main(*args, **kwargs) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/click/core.py", line 697, in main rv = self.invoke(ctx) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/click/core.py", line 895, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/click/core.py", line 535, in invoke return callback(*args, **kwargs) File "pushtotalk.py", line 424, in main continue_conversation = assistant.assist() File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/tenacity/__init__.py", line 214, in wrapped_f return self.call(f, *args, **kw) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/tenacity/__init__.py", line 295, in call start_time=start_time) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/tenacity/__init__.py", line 252, in iter return fut.result() File "/usr/local/lib/python3.6/concurrent/futures/_base.py", line 398, in result return self.__get_result() File "/usr/local/lib/python3.6/concurrent/futures/_base.py", line 357, in __get_result raise self._exception File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/tenacity/__init__.py", line 298, in call result = fn(*args, **kwargs) File "pushtotalk.py", line 169, in assist self.conversation_stream.stop_playback() File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/googlesamples/assistant/grpc/audio_helpers.py", line 288, in stop_playback self._source.stop() File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/googlesamples/assistant/grpc/audio_helpers.py", line 221, in stop self.flush() File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/googlesamples/assistant/grpc/audio_helpers.py", line 211, in flush self._audio_stream.write(b'\x00' * self._flush_size) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/sounddevice.py", line 1202, in write _check(err) File "/home/pi/Projects/virtual_envs/spence.codes_venv/lib/python3.6/site-packages/sounddevice.py", line 2563, in _check raise PortAudioError(errormsg, err) sounddevice.PortAudioError: Can't write to an input only stream [PaErrorCode -9974]
It seems like as soon as you start speaking, the stream becomes writable. How can I close this stream wihle it is input-only?