Don't listen for wake when speaking

Hi,

Very often, when I send text to /api/text-to-speech, the wakeword is detected.

Would it be possible to not listen for wakeword when speaking ?

I’ve stumble a few times when speaking activated wakeword, which make an intent recognized and speak an answer, and made a loop wakeword/speak/wakeword/speak and could only shutdown rhasspy to stop this !

I really wakeword detection should be pause while speaking.

example:

AssertionError: No intent recognized
[DEBUG:17825614] DialogueManager: decoding -> recognizing
[DEBUG:17825613] DialogueManager: dis (confidence=0.1471618740054281)
[DEBUG:17825611] PocketsphinxDecoder: dis
[DEBUG:17825611] PocketsphinxDecoder: Transcription confidence: 0.1471618740054281
[DEBUG:17825608] PocketsphinxDecoder: Decoded WAV in 0.18862605094909668 second(s)
[DEBUG:17825396] APlayAudioPlayer: [‘aplay’, ‘-q’, ‘-D’, ‘plughw:CARD=seeed2micvoicec,DEV=0’, ‘/profiles/fr/sounds/end_of_input.wav’]
[DEBUG:17825396] PocketsphinxDecoder: rate=16000, width=2, channels=1.
[DEBUG:17825393] DialogueManager: awake -> decoding
[DEBUG:17825391] WebrtcvadCommandListener: listening -> loaded
[DEBUG:17825390] WebrtcvadCommandListener: Voice command finished
[DEBUG:17824040] WebrtcvadCommandListener: Voice command started
[INFO:17823879] quart.serving: 192.168.0.110:33070 POST /api/text-to-speech 1.1 200 31 2355556
[DEBUG:17823846] PicoTTSSentenceSpeaker: speaking -> ready
[DEBUG:17823826] APlayAudioPlayer: [‘aplay’, ‘-q’, ‘-D’, ‘plughw:CARD=seeed2micvoicec,DEV=0’, ‘/profiles/fr/sounds/start_of_input.wav’]
[DEBUG:17823091] SnowboyWakeListener: listening -> loaded
[DEBUG:17823089] WebrtcvadCommandListener: loaded -> listening
[DEBUG:17823088] WebrtcvadCommandListener: Will timeout in 30 second(s)
[DEBUG:17823085] DialogueManager: asleep -> awake
[DEBUG:17823085] DialogueManager: Awake!
[DEBUG:17823083] SnowboyWakeListener: Hotword(s) detected: [‘snowboy/hey_brigitte.pmdl’]
[DEBUG:17821674] APlayAudioPlayer: [‘aplay’, ‘-q’, ‘-D’, ‘plughw:CARD=seeed2micvoicec,DEV=0’]
[DEBUG:17821672] PicoTTSSentenceSpeaker: ready -> speaking
[DEBUG:17821528] PicoTTSSentenceSpeaker: [‘pico2wave’, ‘-w’, ‘/tmp/tmp77x2da8f/output.wav’, ‘-l’, ‘fr-FR’, ‘Le volet de la salle est ouvert’]
[DEBUG:17807404] SnowboyWakeListener: loaded -> listening
[DEBUG:17807401] DialogueManager: ready -> asleep
[INFO:17807401] DialogueManager: Automatically listening for wake word

I hadn’t actually considered this. I’ve pushed a fix into master for all TTS systems that stops the wake word system and then re-enables it after the TTS system has finished speaking.

Are you still using a virtual environment, or are you on Docker now?

Hi, thanks, will help a lot.

I’m now using the docker container. Lot more reliable and stays running.

1 Like

Now available with text_to_speech.disable_wake setting.

2 Likes