El espacio de la Internet de las cosas (IoT) está cambiando rápidamente con la introducción de la inteligencia artificial en todos los ámbitos. Gracias al avance de la IA y los servicios en la nube, los microcontroladores simples, además de los sensores y activadores estándar, se pueden integrar en una variedad de cosas para crear dispositivos inteligentes interactivos. En esta entrada, exploraremos cómo los desarrolladores de IoT pueden aprovechar la API de REST de Gemini para crear dispositivos que comprendan los comandos de voz personalizados y reaccionen a ellos, de modo de cerrar la brecha entre el mundo digital y el físico para resolver problemas prácticos que solían ser desafiantes.
Para simplificar, esta entrada se limitará a conceptos de alto nivel, pero puedes ver el ejemplo de código completo y el esquema del dispositivo que utiliza el microcontrolador ESP32 en GitHub.
Tradicionalmente, la integración del reconocimiento de voz en dispositivos IoT, especialmente aquellos con memoria limitada, fue una tarea compleja. Si bien soluciones como LiteRT para microcontroladores te permiten ejecutar modelos básicos para reconocer palabras clave, el lenguaje humano es una entrada mucho más amplia y matizada que los desarrolladores pueden usar en su beneficio. La API de Gemini simplifica este procedimiento brindando una solución potente basada en la nube que comprende una amplia gama de idiomas hablados, incluso entre diferentes idiomas, todo desde una sola herramienta, al tiempo que puede determinar qué acciones debe tomar un dispositivo integrado en función de la entrada del usuario.
Estas funciones se basan en la capacidad de la API de Gemini para procesar e interpretar datos de audio de un dispositivo IoT, así como para determinar el siguiente paso que debe dar el dispositivo, siguiendo este proceso:
1. Captura de audio: el dispositivo IoT, equipado con un micrófono, captura una oración hablada.
2. Codificación de audio: el habla se codifica en un formato para la transmisión por Internet. En el ejemplo oficial mencionado anteriormente, convertimos señales analógicas a audio en formato WAV, luego a una cadena codificada en base64 para la API de Gemini.
3. Solicitud de la API: el audio codificado se envía a la API de Gemini a través de una llamada a la API de REST. Esta llamada incluye instrucciones, como solicitar el texto del comando hablado o indicar a Gemini que seleccione una función personalizada predefinida (p. ej., encender las luces). Si utilizas la función de llamada de función de la API de Gemini, debes proporcionar definiciones de funciones, incluidos nombres, descripciones y parámetros, dentro de tu solicitud JSON.
4. Procesamiento: los modelos de IA de la API de Gemini analizan el audio codificado y determinan la respuesta adecuada.
5. Respuesta: la API devuelve información al dispositivo IoT, como una transcripción del audio, la siguiente función que se debe llamar o una respuesta de texto con más instrucciones.
Por ejemplo, veamos cómo podemos controlar una luz LED con comandos de voz para encenderla o apagarla y cambiar su color. Podemos definir dos funciones: una para alternar la luz LED y otra para cambiar su color. En lugar de limitar el color a un rango preestablecido, podemos permitir cualquier valor RGB de 0 a 255, ofreciendo más de 16 millones de combinaciones posibles.
La siguiente solicitud, incluida la cadena de audio codificada en base64 ($DATA
), lo demuestra:
{
"contents": [
{
"parts": [
{
"text": "Trigger a function based on this audio input."
},
{
"inline_data": {
"mime_type": "audio/x-wav",
"data": "$DATA"
}
}
]
}
],
"tools": [
{
"function_declarations": [
{
"name": "changeColor",
"description": "Change the default color for the lights in an RGB format. Example: Green would be 0 255 0",
"parameters": {
"type": "object",
"properties": {
"red": {
"type": "integer",
"description": "A value from 0 to 255 for the color RED in an RGB color code"
},
"green": {
"type": "integer",
"description": "A value from 0 to 255 for the color GREEN in an RGB color code"
},
"blue": {
"type": "integer",
"description": "A value from 0 to 255 for the color BLUE in an RGB color code"
}
},
"required": [
"red",
"green",
"blue"
]
}
},
{
"name": "toggleLights",
"description": "Turn on or off the lights",
"parameters": {
"type": "object",
"properties": {
"toggle": {
"type": "boolean",
"description": "Determine if the lights should be turned on or off."
}
},
"required": [
"toggle"
]
}
}
]
}
]
}
Si bien este es un ejemplo muy simplificado, destaca numerosos beneficios prácticos del desarrollo de IoT:
Al combinar las llamadas de función y la entrada de audio con la API de Gemini, los desarrolladores pueden crear dispositivos de IoT que respondan de manera inteligente a los comandos hablados.
Si bien las llamadas de audio y de función son herramientas esenciales para mejorar los dispositivos de IoT con IA, se puede usar mucho más para crear dispositivos inteligentes increíbles y útiles. Entre las áreas que puedes explorar, se incluyen las siguientes:
Tenemos muchas ganas de ver todas las cosas excelentes que creas con la API de Gemini. Tus aplicaciones pueden transformar la forma en que interactuamos con el mundo que nos rodea y resolver problemas del mundo real con el poder de la IA. Comparte tus proyectos con nosotros en Google AI para desarrolladores en LinkedIn y Google AI para desarrolladores en X.