"Stream not open"

You all getting tired of me yet?

I have noticed that some times the listening stops completely on my rhasspy setup. I enabled an external mqtt and saw this.

initially LOTS of audio frames.

then i used the hotword jarvis

it then played my wav sounds, listens for a command (i gave it none) and it times out.

Then it posts this error to the topic “hermes/error/audioServer/record”

{"error": "Stream not open", "siteId": "default", "context": "Device index: 2", "sessionId": null}

And now, no more audio frames, hotword isn’t working.

Any idea what happens to cause this?

What’s your current setup?

pi3 b+ / raspian “buster” lite / 2.5-pre docker

Mic is from playstation eye camera. Direct network connection (no wifi)

Hi CrankyCoder,

was your issue solved?

I have exactly the same issue with two separate similar setups on two raspi (3+ and 4).

rhasspy master:

  • raspi 4, mqtt broker
  • eye toy cam, direct connection

rhasspy client

  • raspi3
  • eye toy cam direct connection

both are running rhasspy docker 2.5.
eye toy mic was running fine at single setup with rhasspy 2.4.x

What I observed is a lot of audio packages via mqtt even before wake word detection.
I was wondering, if this is intended, since the mic is configured as directly connected…

Short answer yes. Long answer, no, I stopped using the external mqtt and that seemed to address it. So not sure if there was a latency problem or some part of it wasn’t fast enough to keep up with all the audio frames it was sending.

So i ended up just using the built in mqtt and exposing the ports so i could connect to it.

Hm, thats would not be possibel in my setup (if I don’t miss a point) as I want to have the master-satellite approach.

I have the feeling, that the issue only happens, if the command detection never gets any input.

I would like to define a timeout after wakeword detection, but did not achieve to find the option for this.
Below is my current webrtcvad section. Perhaps anybody has an idea how to add a correct timeout even in the “event” of endless silence…

“command”: {
“webrtcvad”: {
“min_sec”: “0.7”,
“skip_sec”: “0.1”,
“speech_sec”: “0.3”,
“timeout_sec”: “3”,
“vad_mode”: “1”

Gotcha. I hated having to have another mqtt broker when i have one on my network already.

Will be interested to see if you find a fix. Would love to be able to get back to using my primary broker.

let me ask one further question: you could connect to the internal mqtt? Which port is used, 1883?

Forward port 12183. i added 12183:12183 to the docker compose/docker run/portainer

I now noticed, that the error occurs every time after some minutes. Even befor wake word detection… :frowning:

you using an external mqtt broker or on the internal now?

I am still usign an external, but running on the “master” setup. The “satellite” pi is also configured to this external mqtt broker and my iobroker (home automation) connects as a client to it.

so you now get a bunch of the audio frames from the satellites now right?

Yes, I guess so.
Meanwhile I switched the master to use the internal MQTT. Satellite connects to it using port 12183.
This setup is now quite stable.
I assume (don’t know exatly how I could test it) that audio frames are sent to the master. This is something I would not like, since the the wake word detection is on the satellite itself… I will further investigate.

damn, same “stream not open” message. Now I have no clue at all anymore

Just curious, you switched over to the official 2.5 release right? i haven’t switched yet. But figured i would ask :slight_smile:

yes - and I did another test: connected a different webcam - everything fine the whole night. reconnnected eye toy cam -> stream not open after 20 min.

Do you use Pyaudio or arecord?
I was experiencing same issues with Jabra on PI0 and PI3B+ but the issue has gone when using arecord. See here

1 Like

woah! you think it could be the ps eye cam? That’s the same camera/mic i was using!

hi tuxedo, thanks for the hint - very interesting information / discussion about ps3 eye toy! :slight_smile: I will try arecord