def Listen(self, milliseconds=None, dialogid=None):
success, state_micpipeline, pending = self._mic_pipeline.get_state(Gst.CLOCK_TIME_NONE)
if state_micpipeline == Gst.State.PLAYING:
self._log.info("Was already listening")
aplay(TIMEOUT_BEEP, _bg=True)
return False
self._log.info("Starting listening, timeout milliseconds=%s, dialog=%s", milliseconds, dialogid)
self.audio_pipeline.set_state(Gst.State.READY)
self.audio_player.set_state(Gst.State.READY)
self._waitForNothingPlaying()
if milliseconds:
self._listening_timeout_timer = GObject.timeout_add(milliseconds, self.cancelListen)
aplay(LISTENING_BEEP, _bg=True)
self._mic_pipeline.dialogid = dialogid
self.speaking_started = False
self.silence_count = 0
self._mic_pipeline.set_state(Gst.State.PLAYING)
评论列表
文章目录