Year of the Voice - Chapter 4: Wake words

Is it possible to use “microphone” and “speaker” from different devices for wakeword activated assistant?
Has anyone managed?

2 Likes

I would like to use the microphone and speaker and possibly the volume control/leds from old alexa devices with an esp32. Does anyone have circuit diagrams or have seen these done before?

Hello, is there a section here in the community just for Voice Assistant? That would help a lot now.

Another question, my Intel Core i5-4250U is struggling to work with the Whisper add-on, when I use the Raspberry satellite the CPU usage goes to 100% and returns nothing, does nothing. Is my CPU too weak to do this? Is anyone having this problem?

3 Likes

Hi, thanks for sharing this, have added it to my config.

Do you know if it’s possible to add some kind of service call to this? In others words, when Assist responds with the error ‘Sorry, I don’t understand pleb’, can I get HA to do something else, like TTS, or turn on a toggle etc?

I’m asking because I’m currently using satellite with just a mic, and am trying to use my Google nests via TTS to give a response, but so far it only works with custom sentences. So I’m trying to find an alternative way to trigger the TTS.

I’ve tried, but not got it to work so far.

I have not tried. I saw the error answer on the voice assistant discord for HA. It may be good to ask the question there.
I have done automation responses with custom intents but haven’t tried them with the error. If I get a chance I will try that.

1 Like

Thanks very much, would greatly appreciate it if you could figure out a way to make a service call with the error, or if you have another way that an automation can be triggered or similar when the no_intent error is called :slight_smile:

Likely it would be better for the community to create custom commands than wake words.
Because adding a head model is superlight you could have a ton of commands that just trigger mapped mqtt.
Simple brute force, but because its no so much hassle to record a custom verifer, you can and likely would be quite accurate on very modest hardware.
No ASR needed as each command just triggers a script or REST Api or whatever.

A KW must proceed a command in whatever timeout windows and you can only submit with accompanying benchmark results.
The head files are very small and over time the community could build up quite a library and if a command does not exist just create one.

I received my esp32-s3-box3 through Ali (can someone explain why they chose baby blue for the docking station :thinking:). The device works out of the box - including an option to teach ir codes to automate airco based on the built-in humidity and temperature sensors.

Goal is however to use this as a HA voice assistant. Did anyone get this to work in esphome? Willing to share yaml?

Tried to play around with the regular s3-box examples but that’s so far not working.

I disagree.

What if I don’t use mqtt?

What if I want my commands to do different things than yours?

Sharing commands is fine, but better?

No.

just trigger mapped mqtt was an example they could trigger any, whatever the user wants…

That was all that was said but for them to be accepted they have to have a benchmark.

Anyway a last thought whilst I was thinking about something else, but yeah likely somewhere you can paste a script for an API or whatever.

https://nl.aliexpress.com/item/1005005920207976.html?gatewayAdapt=glo2nld I bought the same esp32-s3-box-3 and it came with baby-blue components as in WYSIWYG :sunglasses:

Got it installed and enabled in ESPHome:

Screenshot 2023-11-05 at 16.08.13

I can’t manage to get Home Assistant to adopt the esp32-s3-box-3. A bit clueless why not.

Updating the esp-s3-box-3:

Warning:

The firmware released in the latest Tag branch (Version v0.5.0) is only applicable to ESP32-S3-BOX and ESP32-S3-BOX-Lite. For users who have purchased ESP32-S3-BOX-3, we will release firmware updates during the project’s progression. We suggest that users update the firmware via Espressif’s online firmware flashing tool ESP Launchpad.

The BOX series development boards support updating firmware through USB. To update firmware, you only need:

  1. A USB Type-C cable
  2. Latest firmware (bin file)

Important Note:

If the downloading through USB fails, please hold down the Boot button and then press the Reset button to initiate Firmware Download mode manually.

source: esp-box/docs/firmware_update.md at cfb4a005ae967723b7dec11e190b496384324fd2 · espressif/esp-box · GitHub

1 Like

Hi, I also got it set up in Esphome and can see it in HA - however it’s not doing much. Can you share your YAML and the source you used?

Quoted description is the espressif website right? Not esphome?

As for the blue, perhaps inspired by the HA color scheme? :slight_smile:

I’ve got an idea that I could use some help with. I want to try to add an Esp32 to one of my nest protect smoke alarms. Don’t bother warning me about safety. Lol. So here’s my thought: It’s in every room, it already has a led strip light for voice activation and it already has a really great little speaker for voice feedback. I bought the recommended mic array on Amazon and I’m 3D printing an outlet box adapter that I found and I’ll probably tweak it a little where it looks cleaner after the prototype. I think it would be a super cool mod for year of the voice if there’s a way to solder in to the aforementioned components without affecting the normal operation. I’ll link a teardown of the nest protect which has some good specs and images of the board. (I think this is the 1st gen and I mostly have the newer 2nd gen but it shouldn’t be that much different.)

https://learn.sparkfun.com/tutorials/nest-protect-teardown/all

Any advice is appreciated and if anyone would be interested in trying this with me, I’d be open to sending you an extra gen 1 protect that I’ve got!

I’m listening like a m5stack-atom-echo running the esphome voice-assistant firmware - constantly :wink:

1 Like

For me the esp32-s3-box-3 is visible and online in ESPHome, but I can’t seem to adopt it in HA. How did you got it in HA?

esphome:
name: esp32-s3-box-3
friendly_name: esp32-s3-box-3

esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino

Enable logging

logger:

Enable Home Assistant API

api:
encryption:
key: “key”

#ota:

password: “password”

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password

Static IP

manual_ip:
# Set this to the IP of the ESP
static_ip:
# Set this to the IP address of the router. Often ends with .1
gateway:
# The subnet of the network. 255.255.255.0 works for most home networks.
subnet: 255.255.255.0
dns1: 1.1.1.1
dns2: 9.9.9.9

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: “Esp32-S3-Box-3 Fallback Hotspot”
password: “password”

captive_portal:

Description and link are indeed for the Espressif firmware. The blue color is of course the one for Home Assistant. :wink:

Not sure what to do to further troubleshoot this issue…

1 Like

Still can’t figured out what’s wrong with my code for LED Light. Please help, when i do Validation, everything is ok , but when I try to install this code to board , it’s an error:

 INFO ESPHome 2023.10.6
INFO Reading configuration /config/esphome/voice-frame.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing voice-frame (board: esp32dev; framework: espidf; platform: platformio/[email protected])
--------------------------------------------------------------------------------

HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - framework-espidf @ 3.40405.230623 (4.4.5) 
 - tool-cmake @ 3.16.4 
 - tool-ninja @ 1.7.1 
 - toolchain-esp32ulp @ 2.35.0-20220830 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.4
Compiling .pioenvs/voice-frame/src/main.o
Linking .pioenvs/voice-frame/firmware.elf
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x8): undefined reference to `esphome::light::LightState::make_call()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0xc): undefined reference to `esphome::light::LightCall::set_state(bool)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x10): undefined reference to `esphome::light::LightCall::set_brightness(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x14): undefined reference to `esphome::light::LightCall::set_color_mode(esphome::light::ColorMode)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x18): undefined reference to `esphome::light::LightCall::set_color_brightness(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x1c): undefined reference to `esphome::light::LightCall::set_red(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x20): undefined reference to `esphome::light::LightCall::set_green(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x24): undefined reference to `esphome::light::LightCall::set_blue(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x28): undefined reference to `esphome::light::LightCall::set_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x2c): undefined reference to `esphome::light::LightCall::set_color_temperature(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x30): undefined reference to `esphome::light::LightCall::set_cold_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x34): undefined reference to `esphome::light::LightCall::set_warm_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x38): undefined reference to `esphome::light::LightCall::set_transition_length(unsigned int)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x3c): undefined reference to `esphome::light::LightCall::set_flash_length(unsigned int)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x40): undefined reference to `esphome::light::LightCall::set_effect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection13light_commandERKNS0_19LightCommandRequestE+0x44): undefined reference to `esphome::light::LightCall::perform()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_light_stateEPNS_5light10LightStateE+0x8): undefined reference to `esphome::light::LightState::get_traits()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_light_stateEPNS_5light10LightStateE+0x10): undefined reference to `esphome::light::LightState::supports_effects()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection16send_light_stateEPNS_5light10LightStateE+0x14): undefined reference to `esphome::light::LightState::get_effect_name[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o:(.literal._ZN7esphome3api13APIConnection15send_light_infoEPNS_5light10LightStateE+0x14): undefined reference to `esphome::light::LightState::get_effects() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::light_command(esphome::api::LightCommandRequest const&)':
/data/build/voice-frame/src/esphome/components/api/api_connection.cpp:400: undefined reference to `esphome::light::LightState::make_call()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:402: undefined reference to `esphome::light::LightCall::set_state(bool)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:404: undefined reference to `esphome::light::LightCall::set_brightness(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:406: undefined reference to `esphome::light::LightCall::set_color_mode(esphome::light::ColorMode)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:408: undefined reference to `esphome::light::LightCall::set_color_brightness(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:410: undefined reference to `esphome::light::LightCall::set_red(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:411: undefined reference to `esphome::light::LightCall::set_green(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:412: undefined reference to `esphome::light::LightCall::set_blue(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:415: undefined reference to `esphome::light::LightCall::set_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:417: undefined reference to `esphome::light::LightCall::set_color_temperature(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:419: undefined reference to `esphome::light::LightCall::set_cold_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:421: undefined reference to `esphome::light::LightCall::set_warm_white(float)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:423: undefined reference to `esphome::light::LightCall::set_transition_length(unsigned int)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:425: undefined reference to `esphome::light::LightCall::set_flash_length(unsigned int)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:427: undefined reference to `esphome::light::LightCall::set_effect(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:428: undefined reference to `esphome::light::LightCall::perform()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_light_state(esphome::light::LightState*)':
/data/build/voice-frame/src/esphome/components/api/api_connection.cpp:339: undefined reference to `esphome::light::LightState::get_traits()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:353: undefined reference to `esphome::light::LightState::supports_effects()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:356: undefined reference to `esphome::light::LightState::get_effect_name[abi:cxx11]()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/components/api/api_connection.o: in function `esphome::api::APIConnection::send_light_info(esphome::light::LightState*)':
/data/build/voice-frame/src/esphome/components/api/api_connection.cpp:361: undefined reference to `esphome::light::LightState::get_traits()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:381: undefined reference to `esphome::light::LightState::supports_effects()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/build/voice-frame/src/esphome/components/api/api_connection.cpp:386: undefined reference to `esphome::light::LightState::get_effects() const'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._ZN7esphome6binary17BinaryLightOutput11write_stateEPNS_5light10LightStateE[esphome::binary::BinaryLightOutput::write_state(esphome::light::LightState*)]+0x0): undefined reference to `esphome::light::LightState::current_values_as_binary(bool*)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._Z5setupv+0xb4): undefined reference to `vtable for esphome::gpio::GPIOBinaryOutput'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._Z5setupv+0xb8): undefined reference to `vtable for esphome::gpio::GPIOBinaryOutput'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._Z5setupv+0x1fc): undefined reference to `esphome::light::LightState::LightState(esphome::light::LightOutput*)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._Z5setupv+0x204): undefined reference to `esphome::light::LightState::set_restore_mode(esphome::light::LightRestoreMode)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.literal._Z5setupv+0x208): undefined reference to `esphome::light::LightState::add_effects(std::vector<esphome::light::LightEffect*, std::allocator<esphome::light::LightEffect*> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o: in function `esphome::binary::BinaryLightOutput::write_state(esphome::light::LightState*)':
/data/build/voice-frame/src/esphome/components/binary/light/binary_light_output.h:20: undefined reference to `esphome::light::LightState::current_values_as_binary(bool*)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o: in function `std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)> >, std::is_move_constructible<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>, std::is_move_assignable<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)> >::value, void>::type std::swap<bool (*)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation)>(bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation), bool (*&)(std::_Any_data&, std::_Any_data const&, std::_Manager_operation))':
/data/cache/platformio/packages/[email protected]+2021r2-patch5/xtensa-esp32-elf/include/c++/8.4.0/bits/move.h:193: undefined reference to `esphome::light::LightState::LightState(esphome::light::LightOutput*)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o: in function `esphome::Component::Component()':
/data/build/voice-frame/src/esphome/core/component.h:67: undefined reference to `esphome::light::LightState::set_restore_mode(esphome::light::LightRestoreMode)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o: in function `setup()':
/data/build/voice-frame/src/main.cpp:250: undefined reference to `esphome::light::LightState::add_effects(std::vector<esphome::light::LightEffect*, std::allocator<esphome::light::LightEffect*> > const&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/main.o:(.rodata._ZTVN7esphome6binary17BinaryLightOutputE[vtable for esphome::binary::BinaryLightOutput]+0xc): undefined reference to `esphome::light::LightOutput::create_default_transition()'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/core/controller.o:(.literal._ZN7esphome10Controller16setup_controllerEb+0x10): undefined reference to `esphome::light::LightState::add_new_remote_values_callback(std::function<void ()>&&)'
/data/cache/platformio/packages/[email protected]+2021r2-patch5/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pioenvs/voice-frame/src/esphome/core/controller.o: in function `esphome::Controller::setup_controller(bool)':
/data/build/voice-frame/src/esphome/core/controller.cpp:23: undefined reference to `esphome::light::LightState::add_new_remote_values_callback(std::function<void ()>&&)'
collect2: error: ld returned 1 exit status
*** [.pioenvs/voice-frame/firmware.elf] Error 1
========================= [FAILED] Took 16.71 seconds =========================

And my code :

esphome:
  name: voice-frame
  friendly_name: Voice Rum Bottle
  on_boot:
     - priority: -100
       then:
         - wait_until: api.connected
         - delay: 1s
         - if:
             condition:
               switch.is_on: use_wake_word
             then:
               - voice_assistant.start_continuous:
           

esp32:
  board: esp32dev
  framework:
    type: esp-idf
    version: recommended

  

logger:

# Enable Home Assistant API
api:
  encryption:
    key: "     "

ota:
  password: "   "

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Voice-Frame Fallback Hotspot"
    password: "  "

captive_portal:


output:
  - platform: gpio
    pin: GPIO23
    id: led_output

light:
  - platform: binary
    name: "Voice Assist On"
    output: led_output  

i2s_audio:
  i2s_lrclk_pin: GPIO22
  i2s_bclk_pin: GPIO21

microphone:
  - platform: i2s_audio
    id: mic
    adc_type: external
    i2s_din_pin: GPIO18
    pdm: false

speaker:
  - platform: i2s_audio
    id: big_speaker
    dac_type: external
    i2s_dout_pin: GPIO19
    mode: mono

voice_assistant:
  microphone: mic
  use_wake_word: false
  noise_suppression_level: 2
  auto_gain: 31dBFS
  volume_multiplier: 2.0
  speaker: big_speaker
  id: assist

switch:

  - platform: template
    name: Use wake word
    id: use_wake_word
    icon: ios:person-wave-2
    optimistic: true
    restore_mode: RESTORE_DEFAULT_ON
    entity_category: config
    on_turn_on:
      - lambda: id(assist).set_use_wake_word(true);
      - if:
          condition:
            not:
              - voice_assistant.is_running
          then:
            - voice_assistant.start_continuous
    on_turn_off:
      - voice_assistant.stop
      - lambda: id(assist).set_use_wake_word(false);   


interval:
  - interval: 1s
    then:
      - if:
          condition:
            api.connected:
          then:
            - if:
                condition:
                  and:
                    - switch.is_on: use_wake_word
                    - not:
                      - voice_assistant.is_running
                then:
                  - voice_assistant.start_continuous:

Thank you

Hi all,
where do the two wav files of the Assist Microphone sit?

I cannot find the folder that is home to these:

/usr/src/sounds/awake.wav
/usr/src/sounds/done.wav

but would like to change them.

Thanks,

Merc

I fix my problem, but it’s weird. I have to change esp-32 framework from esp-idf to arduino, after that I be able to flash my code.

I’m interested in this too. Did you ever get anywhere with this?