-
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
Continued-conversation for esp32-s3-box-3 #173
base: main
Are you sure you want to change the base?
Conversation
Add switch `continuous_conversation` and logic to use `voice_assistant.start_continuous` in `micro_wake_word`
Added ability to timeout back to idle (listening for wake word) when in continuous mode.
…sors) and ability to display date/time.
I have done a fair amount of testing but will be looking for more people to try this draft before marking as ready for review. |
Does it possible to do something like this on atom echo? |
Could be possible, but needs to be done by someone that has the hardware. Give it a go. |
…e listening started.
Added variable (based on text width) width text outlines to the other prompts added in this pull to match the conversation boxes added by @jlpouffier |
Removed 42 lines of debug logging. It was all commented out but removed for clarity of the PR changes. Tweaked vertical spacing of the date.
Comment on wake_word: !lambda return wake_word; for continuous not yet supported
Limited the display and publishing of "..." while listening to only non-continued conversation mode as it does not make sense while in continued conversation mode.
Changed defaults of displaying text prompts and time (not date) to ON so as to match the current new default with displaying conversation. Updated the "Display text" switch to "Display text prompts" for clarity to the user.
@jaymunro, its working great .. just one small issue am facing
|
Thanks @DrShivang. In what way is it not working as intended? Is it freezing, not responding to wake word, not taking query, not giving a response, other? If you are talking about the "..." in the response/query, that is something @jlpouffier put in. I think he may have intended it as a filler while listening but I found it wasn't working nicely with the HA sensor history so I disabled it when the |
Wake word detection isn't working when it's changed to "In Home Assistant"
from "On Device". If anyone can confirm this issue.
Tried changing the models and even to the default ones but to no avail..
for me it was working with on device wake word detection only.
With the default framework it is working with both on device and in home
assistant detection.
Let me know if you need any further details.
…On Thu, Apr 4, 2024, 3:56 AM John ***@***.***> wrote:
Home Assistant Wake Word Detection isn't working as intended
Thanks @DrShivang <https://github.com/DrShivang>. In what way is it not
working as intended? Is it freezing, not responding to wake word, not
taking query, not giving a response, other?
If you are talking about the "..." in the response/query, that is
something @jlpouffier <https://github.com/jlpouffier> put in. I think he
may have intended it as a filler while listening but I found it wasn't
working nicely with the HA sensor history so I disabled it when the Continued
conversation is turned on. But this is not related to the In device / In
HA switch so maybe you're talking about something else?
—
Reply to this email directly, view it on GitHub
<#173 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AWOTAJKCBKTSBLLQDTU3KNDY3SFZ5AVCNFSM6AAAAABED4YVO6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZVG4YTENRYG4>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Hey @jaymunro , this looks great, thanks for your work. I've got a |
At the moment it is set up for the Box3 but functionality should be easily transferable to the Box once the merge is complete. If the merge is not going to happen I'm not sure if it's worth spending the time on it. Personally I think it's fantastic and I frankly should've entered it into that competition but didn't think about it. I've no idea why there is no activity on the merging except busy maintainers and a lack of time to visit this thread. @jesserockz ? |
I have been able to reproduce this by moving from 'On device' to 'In Home Assistant'. If the device wakes up with 'In HA' selected it works (e.g. turning 'Mute' on and off again). I'll try and track down why and add a fix. |
added a wait after microwakeword stop to prevent HA wakeword from starting too soon
I think that update fixes the "Home Assistant Wake Word Detection isn't working as intended". Thanks so much @DrShivang for finding that. |
@jaymunro , Thanks for the update I'll test and revert. Also see this great achievement by @X-Ryl669 at esphome/issues#5296 I'll try if we can integrate both of these together. |
Didn't know about this PR. I'm French (but I speak English well, I think) and for me, the default "Ok Nabu" almost never trigger on HA. Maybe 1 out of 10 tries, which makes the system kind of useless for its purpose. The wakeword "Hi ESP" from the default firmware from Espressif works 95% of the time in comparison. What's strange is that the Assist on HA's webpage is working almost correct for STT recognition and TTS generation. So, when the Wake word is actually detected the upcoming command is actually working most of the time. I've started collecting samples for training my own wake word, and using microwakeword, and for this, I need to modify the ADF component (I've worked on this part to use the latest version, see main esphome's pull request and related issue #5296 I was wondering about few improvement to the current code, please comment if you agree (or not) with me: Short tasks should be replaced by permanent tasksCurrently, the esp-adf component create 2 sub components (speaker & microphone). I think the tasks should be started once and kept alive for the entire runtime of the system. State tracking should be implemented (so that the microphone isn't streaming while the speaker is outputting sound). I think it's possible to do so without too much changes. Voice assistant should have a feature to record audioIn order to train for wakeword, it's absolutely required to use the same environment that'll be used for actual inference (same audio pipeline, same device). Using a TTS to generate samples for the wakeword doesn't work well since the TTS quality will likely be higher than the actual sound. The current screen isn't very usefulI think the LVGL PR in #6363 should be merged in. This would allow to have a real interface, that's displaying a kind of chat window (conversation history) and also would allow to have some output to the "what can I say" intent. Having to store huge PNG in the firmware for the interface is clunky. In LVGL you can store SVG or simply a TTF font for the current icons. |
you may be interested in this https://github.com/gnumpi/esphome_audio |
Agree, these would be great enhancements. Especially training samples generated by record voice feature. |
Can I use this on other esp32 boards? I currently have 3 esp32wroom boards that I use. But I would like to implement continuous conversation too. |
It should work without too many changes but it should be on an ESP32 S3 to use this code. |
Great addition! I'm really looking forward to it appearing in the main branch. |
Is there any update on this? |
Adds the following features to the s3-box-3 firmware:
A slightly old video (prior to the recent update adding conversation display) of the system showing the continued conversation ability is at: https://drive.google.com/file/d/1DjV5XPmsqwHq7iph_kFEb6XFILpzw4Pt/view?usp=sharing