rhasspy / wyoming-satellite

Remote voice satellite using Wyoming protocol
MIT License
584 stars 83 forks source link

Satellite stops working after some use - Error: speech-to-text failed #196

Open qJake opened 2 months ago

qJake commented 2 months ago

My satellite is working great with openWakeWord, but when I use it a few times, especially 2 or more times in rapid succession, I get the following on my satellite:

sudo journalctl -u wyoming-satellite.service -f

Jul 07 22:24:06 satellite run[5165]: arecord: main:831: audio open error: Device or resource busy
Jul 07 22:24:06 satellite run[5134]: WARNING:root:Mic service disconnected
Jul 07 22:24:08 satellite run[5134]: INFO:root:Connected to server
Jul 07 22:24:09 satellite run[5134]: INFO:root:Waiting for wake word
Jul 07 22:24:09 satellite run[5173]: ALSA lib pcm_dsnoop.c:566:(snd_pcm_dsnoop_open) unable to open slave
Jul 07 22:24:09 satellite run[5173]: arecord: main:831: audio open error: Device or resource busy
Jul 07 22:24:09 satellite run[5134]: WARNING:root:Mic service disconnected
Jul 07 22:24:12 satellite run[5175]: Recording raw data 'stdin' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Jul 07 22:24:40 satellite run[5134]: INFO:root:Waiting for wake word
Jul 07 22:24:44 satellite run[5189]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Jul 07 22:25:39 satellite run[5134]: WARNING:root:Event(type='error', data={'text': 'speech-to-text failed', 'code': 'stt-stream-failed'}, payload=None)
Jul 07 22:25:39 satellite run[5134]: INFO:root:Waiting for wake word
Jul 07 22:25:54 satellite run[5134]: WARNING:root:Event(type='error', data={'text': 'No text recognized', 'code': 'stt-no-text-recognized'}, payload=None)
Jul 07 22:25:54 satellite run[5134]: INFO:root:Waiting for wake word
Jul 07 22:26:10 satellite run[5134]: WARNING:root:Event(type='error', data={'text': 'No text recognized', 'code': 'stt-no-text-recognized'}, payload=None)
Jul 07 22:26:10 satellite run[5134]: INFO:root:Waiting for wake word

When this error occurs, the satellite is unresponsive, but it eventually self-recovers, usually after about 5 minutes or so.

Anything I can tweak to prevent this from happening, or is this a bug in the Satellite code that needs to be fixed?

qJake commented 1 month ago

Still having this issue. If I issue multiple commands (3-5) in rapid succession, at some point the device stops responding.

Logs show:

Aug 04 12:12:28 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:12:30 satellite run[2585]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Aug 04 12:13:25 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:13:27 satellite run[2609]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Aug 04 12:13:46 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:13:48 satellite run[2632]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
*** DEVICE STOPS RESPONDING TO WAKE WORD HERE ***
Aug 04 12:16:48 satellite run[763]: WARNING:root:Event(type='error', data={'text': 'speech-to-text failed', 'code': 'stt-stream-failed'}, payload=None)
Aug 04 12:16:48 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:16:52 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:16:54 satellite run[2865]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Aug 04 12:17:31 satellite run[763]: INFO:root:Waiting for wake word
Aug 04 12:17:35 satellite run[2894]: Playing raw data 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

Between 12:13 and 12:16, the device does not respond to the wake word.

Interestingly, the device will self-activate once it "recovers", and it will start listening - almost like it was "stuck" and then it "un-stuck" itself after a few minutes.

There are no errors/warnings in the openWakeWord service log.