-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ESP32 S3 BOX 3 - voice assistant - wake word detected and hangs forever #166
Comments
I'm having the same issue with an S3-3 box and an S3-lite box. I think this bug and also this bug are related. In my case the command executes once and then the S3 box locks up. There isn't any audio response -- just a noticeable "pop", and then nothing. |
btw, yes, I also can hear "pop". But command is not executed (likely because something else is missing down the way). |
I'm observing exactly the same comportment with ESP32-S3-BOX-3(B) ESPHome version: 2024.2.1 Here are my logs:
|
I have found the reason which was causing this comportment in my setup. When I have configured the Assist pipeline, I haven't added any text-to-speech engine (thinking that in that way I will just not get any voice feedback from the box). I have added a text-to-speech engine and now the wake word seems to be working as expected. |
I resolved the hang problem with my setup. I was using a self-signed SSL certificate, which apparently doesn't work. I went the Duck DNS/NGINX SSL proxy route (instead of HA Cloud) and now everything works as advertised. However, I still get an annoying "pop" every time the speaker plays audio. I'm a bit disappointed that an SSL certificate from a valid CA authority is required just for a speaker. I had to enable port forwarding on my router and expose port 443 to the Internet. My goal was allow only local access, but I guess that's not possible if you want to use a voice assistant. The Willow Project uses tokens to authenticate with the HA server and can run 100% local. I wonder if something like that would be possible to implement as alternative to SSL certificates? |
I believe I have resolved this in #173 this morning. Try saying the wake word a second time it should continue as normal, but this will only be the case if you have Open Wake Word fully set up and configured in the pipeline in HA, otherwise it will hang forever. The issue I found was that VA is started with wake_word: true so it doesn't start in listening mode, but in wake word streaming mode. To resolve, try my forked branch in #173. |
Based on a logs it is clear that it detects "ok nabu" and kind of trying to start some next steps, but the image on the screen is not changing, it is still black background, nothing happens, and it stuck right there, never have any other movement. If I reset, it can repeat same logs and I do see reaction in a logs after "ok nabu", but that's it.
Could you give some hints, where is the next problem? HA is configured with whisper+piper+openWakeWord, ESPHome can compile and install OTA, what should I do next?
[00:39:40][W][micro_wake_word:150]: Wake word is already running
[00:39:47][D][micro_wake_word:121]: Wake Word Detected
[00:39:47][D][micro_wake_word:170]: State changed from DETECTING_WAKE_WORD to STOP_MICROPHONE
[00:39:47][D][micro_wake_word:127]: Stopping Microphone
[00:39:47][D][esp_adf.microphone:234]: Stopping microphone
[00:39:47][D][micro_wake_word:170]: State changed from STOP_MICROPHONE to STOPPING_MICROPHONE
[00:39:47][D][esp-idf:000]: W (24293) AUDIO_ELEMENT: IN-[filter] AEL_IO_ABORT
[00:39:47][D][esp-idf:000]: E (24296) AUDIO_ELEMENT: [filter] Element already stopped
[00:39:47][D][esp-idf:000]: W (24324) AUDIO_PIPELINE: There are no listener registered
[00:39:47][D][esp-idf:000]: I (24327) AUDIO_PIPELINE: audio_pipeline_unlinked
[00:39:47][D][esp-idf:000]: W (24332) AUDIO_ELEMENT: [i2s] Element has not create when AUDIO_ELEMENT_TERMINATE
[00:39:47][D][esp-idf:000]: I (24337) I2S: DMA queue destroyed
[00:39:47][D][esp-idf:000]: W (24343) AUDIO_ELEMENT: [filter] Element has not create when AUDIO_ELEMENT_TERMINATE
[00:39:47][D][esp-idf:000]: W (24346) AUDIO_ELEMENT: [raw] Element has not create when AUDIO_ELEMENT_TERMINATE
[00:39:47][D][esp_adf.microphone:285]: Microphone stopped
[00:39:47][D][micro_wake_word:170]: State changed from STOPPING_MICROPHONE to IDLE
[00:39:47][D][voice_assistant:414]: State changed from IDLE to START_PIPELINE
[00:39:47][D][voice_assistant:420]: Desired state set to START_MICROPHONE
[00:39:47][D][voice_assistant:118]: microphone not running
[00:39:47][D][voice_assistant:202]: Requesting start...
[00:39:47][D][voice_assistant:414]: State changed from START_PIPELINE to STARTING_PIPELINE
[00:39:47][D][voice_assistant:435]: Client started, streaming microphone
[00:39:47][D][voice_assistant:414]: State changed from STARTING_PIPELINE to START_MICROPHONE
[00:39:47][D][voice_assistant:420]: Desired state set to STREAMING_MICROPHONE
[00:39:47][D][voice_assistant:155]: Starting Microphone
[00:39:47][D][voice_assistant:414]: State changed from START_MICROPHONE to STARTING_MICROPHONE
[00:39:47][D][esp-idf:000]: I (24409) I2S: DMA Malloc info, datalen=blocksize=512, dma_buf_count=8
[00:39:47][D][esp-idf:000]: I (24417) I2S: I2S0, MCLK output by GPIO2
[00:39:47][D][esp-idf:000]: I (24426) AUDIO_PIPELINE: link el->rb, el:0x3d05a7f8, tag:i2s, rb:0x3d05ac0c
[00:39:47][D][esp-idf:000]: I (24430) AUDIO_PIPELINE: link el->rb, el:0x3d05a96c, tag:filter, rb:0x3d05cc4c
[00:39:47][D][esp-idf:000]: I (24441) AUDIO_ELEMENT: [i2s-0x3d05a7f8] Element task created
The text was updated successfully, but these errors were encountered: