Voice Assistant Contest - Let's build and win some prizes!

TL;DR: We are organizing a voice assistant contest between the 17th of January and the 10th of March. You can win some Home Assistant Green, Home Assistant SkyConnect, and a chance to be on a livestream with us to talk about your work.

2023 was the Year of the Voice. It was a yearly goal to let users control Home Assistant in their own language. We built some amazing things throughout the year, from a very powerful intent recognizer specifically optimized to run on a small computer like a Raspberry Pi 4, all the way to custom wake words created by our community.

In fact, we believe that what we built during the Year of the Voice allows almost anyone to build a voice assistant that embodies our Open Home values perfectly: Personalized, Private, and Sustainable. Every component of our voice assistants can be heavily customized to fit your language, your style and your needs, fully local options exist for each of them, and finally you can retrofit voice assistant into anything, even a 1970s Walkie Talkie found in a flea market

This is why, after spending a year building great things, we want to celebrate what our voice assistants can enable with the community: We’re launching a voice assistant contest, with great prizes to win!

Contest specifics

The contest will be held between Today (the 17th of January) and the 10th of March.

We tried to be as inclusive as possible. The contest is not only about building voice assistant hardware, it is also about building voice experiences that can be used with any voice assistant (For example, a blueprint that you can use to generate images from voice and cast them on your TV: “Show me a picture of an astronaut riding a unicorn!”)

An entry in the contest can take any form: A video, a blog post, a website, an event, etc.

The only requirement is for you to post on this forum category, this is how you officially participate in the contest.

Winners will be announced on the 15th of March.

A closing ceremony will take place on the 10th of April in the form of a livestream. Winners will be invited!

Contest categories

You can participate in the contest in four different categories.

Most creative satellite ideas

We have all the ingredients to unleash creativity: Custom sentences, custom wake words, custom voices. This category is here to showcase your smartest ideas. We will be judging the creativity, uniqueness, and coherency of the whole package.

Example: Piitaya’s moving and talking droid.

Best starting guides

Because our voice assistant can be heavily customized, starting can be daunting. This category showcases the easiest ways to create a voice assistant for a novice. From ordering parts, flashing the firmware, integrating it into Home Assistant, and using it. We will judge how easy the guide is to follow and how usable the final product is.

Example: The amazingly complete guide to build a Wyoming Voice Assistant Satellite by YouTuber FutureProofHome.

Best events organized, best group effort

Building privacy-focused technology only makes sense if we can get people to use it. Go to a hackerspace, invite some people, and build some voice assistants together! We will be judging the impact of the event (Size, outcome, topics discussed, etc)

Best voice experiences

This category is here for people who want to participate in the contest but not necessarily build a hardware product. This is all about creating the best experience using a voice assistant on Home Assistant. We support custom sentences, custom responses, and custom actions. Go crazy, be creative, and show us how to unlock the potential of our voice assistants. We will be judging how useful the experience is, how easy it is to integrate it, and of course, of fun it is.

Example: Play any music on any speaker in your home from a blueprint.

Contest prizes

For each category, the winner will receive:

Runners-up will receive a Home Assistant SkyConnect.

The community will also get a chance to vote for a favorite entry. The choice of the community will also receive the same prizes as a category winner (A Home Assistant Green, A Home Assistant SkyConnect, a spot on the livestream on the 10th of April).

How to get started

  • Watch the Voice Assistant Contest launch live stream, we did a recap of Year of the Voice and created a few voice assistants live with you.
  • Learn more about the different chapters of Year of the Voice here.
  • Learn more about Wyoming Satellite in the launch live stream and here.
  • Learn how to create a basic voice assistant within minutes for $13 here.
  • Learn more about ESPHome-based voice assistant in the launch live stream.
  • Learn how to create custom wake words here.
  • Learn how to create custom sentences here.

Thank you

Thank you to the Home Assistant community for subscribing to Home Assistant Cloud to support Year of the Voice and the development of Home Assistant, ESPHome, and other projects in general.

We are looking forward to seeing what you will build and we are looking forward to having you on the livestream with us on the 10th of April.

Head over to the forum category to see the progress of the contest.

Have fun building, learning, and sharing.


This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2024/01/17/voice-assistant-contest
3 Likes

I’m trying to create a Voice Assistant using the code from here (from the contest video) but get the below error when trying to compile.

INFO ESPHome 2023.12.9
INFO Reading configuration /config/esphome/mi_flora_server_1.yaml...
WARNING 'miflora_server_1': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
Failed config

voice_assistant: [source <unicode string>:113]
  id: va
  microphone: mic_i2s
  use_wake_word: True
  noise_suppression_level: 4
  auto_gain: 31dBFS
  volume_multiplier: 8.0
  
  This option requires component esp_adf.
  vad_threshold: 3
  on_client_connected: 
    - lambda: id(init_in_progress) = false;
    - if: 
        condition: 
          switch.is_on: use_wake_word
        then: 
          - voice_assistant.start_continuous: {}
          - lambda: id(voice_assistant_phase) = 1;
        else: 
          - lambda: id(voice_assistant_phase) = 12;
  on_client_disconnected: 
    - lambda: id(voice_assistant_phase) = 10;
    - voice_assistant.stop
  on_error: 
    - if: 
        condition: 
          lambda: return !id(init_in_progress);
        then: 
          - lambda: id(voice_assistant_phase) = 11;
          - delay: 1s
          - if: 
              condition: 
                switch.is_on: use_wake_word
              then: 
                - lambda: id(voice_assistant_phase) = 1;
              else: 
                - lambda: id(voice_assistant_phase) = 12;

I don’t understand why it won’t work given that my code is straight from the example. The error asks for ‘esp-adf’ but that’s not a valid option for the framework.

Anyone else have this issue? or can point me in the right direction…?

First, apologies in advance if you’ve already solved the issue. Second, I only started looking at ESPHome/VoiceAssistant yesterday, so I’m not yet deeply familiar. Third, if you already have this code in your YAML, I apologize. My final hardware components arrive late today, so I’ll get deeper into this effort in the next few days.

What I do know: this GitHub voice assistant code includes the needed link/URL for the esp_adf component (shown below).

Unfortunately, that does not appear to be a full/complete/valid link. :frowning: I searched the Espressif libraries at github, and found the following:

# This is how to include the Espressif Audio Development Framework. 
# This is needed to be able to use VAD (Voice audio detection) and prevent the voice assistant from being constantly streaming audio to Home Assistant
# For now, this component is not documented, nor on the code base of ESPHome, hence the reference to the external component.
esp_adf:    
external_components:
  - source: github://pr#5230
    components:
      - esp_adf
    refresh: 0s 

Thanks, I did eventually realise that I had that bit of code missing and then got it to compile. For some reason my microphone is not picking up anything though, the ESP never goes to ‘voice active’ or whatever, always idle.