toverainc / willow

Open source, local, and self-hosted Amazon Echo/Google Home competitive Voice Assistant alternative
https://heywillow.io/
Apache License 2.0
2.63k stars 97 forks source link

Strange words when Willow is not undestanding the command. #340

Open bert269 opened 12 months ago

bert269 commented 12 months ago

Hi

On the lastest v0.2.2, flashing through WAS. Wakeword is Alexa. All five (one ESP-lite) devices behave like this, so it must be software based. The last one-two iterations (0.2.1 and 0.2.2) of software updates have added weird few words to the end of the response when the command is not understood/wrong. "Sorry I couldn't undersatnd that" - sounds garbled at the end, but a lot like ".....couldn't understand that then the" If anyone needs more details, I can try to record a sound clip and attach/send it somewhere.

bert269 commented 12 months ago

Unless we are just hearing it wrong. I will experiment by flashing older firmware and keep going back to where it does not happen anymore and then provide feedback.

bert269 commented 12 months ago

I cannot downgrade the ESP32-S3-BOX-lite, but I could the ESP-Box. 0.2.1 - same end of response.. 0.2.0 - same end of response. 0.1.1 - same end of response.

Is the problem with WIS? That when the command is not understood, it respond with this message?

nikito commented 12 months ago

Sounds like corrupt tts cache. You may need to stop wis, the navigate to the nginx directory and do sudo rm -rf cache

bert269 commented 12 months ago

How do I locate the location of the nginx cache directory under docker? According to Google it should either be in /var/cache or /opt - but both of these does not contain cache entries for Nginx. The ~/willow-inference-server/nginx directory is empty too. Neither is it set in the variable fastcgi_cache_path.

nikito commented 12 months ago

It's actually not in the docker container, it would be in the directory you built WIS from. If it's empty it may be because your user doesn't have permission to read the directory. What user owns the directory? You can also do ls -alh to see hidden items as well.

bert269 commented 12 months ago

My userid owns the willow-inference-server directory: drwxrwxr-x 13 bert bert 4.0K Dec 2 16:20 willow-inference-server

It was build from ~/willow-inference-server directory. There is a directory: ache/huggingface/hub which contains only one file, 1 byte long - version.txt. So there is nothing in cache. Also, I rebuild the WIS enviroment yesterday from scratch (by deleteing the whole ~/willow-inference-server dirctory), so this behavior is from a fresh WIS (& nginx) installation.

stintel commented 12 months ago

The nginx cache directory is nginx/cache.

nikito commented 12 months ago

If cache is gone, only other things i have seen cause this are network issues, boxes needing a reboot, or the GPU running out of VRAM. Are you running latest main branch of WIS? Also for it to be fresh, you would need to stop and remove the old containers, do utils build, then utils start -d. This would replace the containers with new ones using the new images. You could then purge the old images. 🙂

bert269 commented 12 months ago

WIS build show as willow-inference-server:latest

I reinstalled WIS yesterday with this scipt after stopping and removing the containers: image

nikito commented 12 months ago

If you send a tts request directly to wis in the browser, is it doing the same thing? For instance you could send something like https://wis:19000/api/tts?text=Sorry+I+couldn't+understand+that

bert269 commented 11 months ago

no it does not - it seems perfecty fine and it ends with only the '......couldn't understand that'. Over the ESP-boxes it sounds like an additional word: "then" is added

nikito commented 11 months ago

So that points to issue being either network the boxes are on, or the boxes themselves. Have you tried rebooting the boxes? I also checked home assistant, and the literal text is "Sorry, I don't understand that" so may want to try that against tts in case that string is cached somewhere.

kovrom commented 11 months ago

Had the same thing happening with both s3-box and s3-box-3. Same behavior using local wis or public wis. Tried just now and it seems 0.3.0-rc.1 fixes that.

nikito commented 11 months ago

I've also noticed that sometimes the box needs a physical power cycle (unplug, wait a few seconds, plug back in) to fix this behavior. I haven't personally run into this often (maybe once or twice after I do a bunch of reflashes), but when I do see it that usually fixes it. :)

bert269 commented 10 months ago

dioes not make a difference. They get powered cycle a lot.