Google Dialogflow: Embedding Voice into Devices with ESP32

Shanghai, China
Apr 4, 2019

ESP32 now supports Dialogflow, a conversational interface from Google, which enables IoT developers to embed natural-language processing in their devices.

Having been a fully functional Alexa client, ESP32 now goes one step further into the market of voice-controlled devices by supporting Dialogflow. This is a Google service that runs on the Google Cloud Platform, allowing users to build engaging voice and text-based conversational interfaces for their products, powered by artificial intelligence. Dialogflow offers a user-friendly and intuitive natural-language processing (NLP ) method that incorporates Google’s machine-learning expertise and products such as Google Cloud Speech-to-Text. Additionally, Dialogflow is the most widely-used tool for building Actions, Skills, bots and apps.

The main differences between Dialogflow and other voice assistants are:

  • reduced complexity
  • pay-as-you-go pricing
  • customized wake words
  • no certification hassles. Users are not integrating their products with Alexa or Google Assistant. They are using Dialogflow to build their own conversational platforms for their own products.

Espressif's Voice-Assistant SDK (ESP-VA-SDK) provides an implementation of Google’s Dialogflow for the ESP32 microcontroller. Additionally, the same SDK works with Google’s Voice Assistant and Amazon’s Alexa Voice Service. The full list of supported features for Alexa and GVA can be found here.

Espressif’s SDK contains prebuilt libraries for Alexa, GVA and Dialogflow along with resources for such utility components as the audio pipeline and connection manager. The features of the ESP-VA-SDK for Google’s Dialogflow include:

The underlying technologies used by the Dialogflow implementation for the ESP-VA-SDK include:

  • gRPC
  • Google Protobufs
  • HTTP 2.0

Furthermore, the ESP-VA-SDK supports the following hardware:

Unlike voice assistants, Dialogflow lets users configure every step of the conversation in any given project. For example, a Dialogflow agent for a laundry project will provide information only about the configurable parameters of the laundry (e.g. status, temperature, wash cycle etc.). You can see a demo video of Dialogflow on ESP32-LyraT here.

Share this article
Reuse this content