Openwakeword/assist stack on HA core (using M5 echo)

On and off I have now tried for months to get a voice stack running on HA core and just can’t seem to get there (on HAOS it’s no problem).

I have an M5 echo, and that is properly installed using the ESPHome integration. (For instance, when I push the button on the M5, the integration immediately recognizes the button push.) Then, I am running the wyoming-openwakeword docker container. Using the Wyoming integration, I can successfully connect to this container using port 10400. (At least the Wyoming integration does not complain; when I use another, incorrect port, it does.) I also set up a voice assistant where I selected openwakeword in the “Wake Word” field. (That’s the entity created by the Wyoming integration.) However, the system just does not react to the wake word. (“OK, nabu”)

The command line log of the wyoming-oww container first looks ok, but then it says this:

DEBUG:wyoming_openwakeword.handler:Client connected: 87059888107312
DEBUG:wyoming_openwakeword.handler:Sent info to client: 87059888107312
DEBUG:wyoming_openwakeword.handler:Client disconnected: 87059888107312

So it looks like somehow, it’s not connecting, and the integration never seems to receive any audio from the M5. I completely disabled my firewall for testing purposes, and I even tried running the container in privileged and host modes, but no change. What’s missing?

I have yet to set up stt stack (probably whisper). I figured that would be the next step, and I first have to get the wakeword trigger figured out. Or does the wake word not even trigger when no stt system is in place?

Over time, the wyoming-oww container will have multiple of these connect/sent into/disconnect cycles in the output. So it looks like it’s trying to establish the connection over and over again but does not succeed. I did not find anything meaningful in the HA logs. I also tried the “Debug” function of the assist pipeline, but it shows “no runs”. When I click “Run Audio pipeline”, I get “Error starting pipeline — Unknown Error”. Looking in the HA log after that, it states

homeassistant.components.assist_pipeline.pipeline.PipelineRunValidationError: the pipeline does not support speech-to-text

But that is for the audio stack after the wake word has been triggered, right? So how do I debug the M5/wyoming connection? Where is it stuck? I already turned on debug logging for both the EPSHome and the Wyoming integrations, but I don’t know where those logs would be. Nothing much in the HA system logs.

I have periodically scanned the forums ever since the “year of the voice” concluded. I was hoping that someone would eventually run into the same problem and report about it online… But so far, I haven’t found anything that looked like a direct hit.

OK, so I figured it out myself. It was indeed that I hadn’t set up the stt pipeline. Now that I got faster-whisper going (via docker), it is all working. Finally!