La API de Gemini y la Internet de las cosas

MAR 31, 2025
Paul Ruiz Senior Developer Relations Engineer

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.


De la voz a la acción: el poder del reconocimiento de voz y las funciones personalizadas

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:

  • Experiencia del usuario mejorada: los desarrolladores pueden admitir fácilmente la entrada de voz, proporcionando una interacción más intuitiva y natural, incluso para dispositivos con poca memoria.

  • Manejo simplificado de comandos: esta configuración elimina la necesidad de una lógica de análisis compleja, como tratar de desglosar cada comando hablado o esperar entradas manuales más complejas para elegir la siguiente función que se va a ejecutar.

  • Ejecución de funciones dinámicas: la IA de Gemini selecciona de forma inteligente la acción adecuada en función de la intención del usuario, lo que hace que los dispositivos sean más dinámicos y capaces de realizar operaciones complejas.

  • Comprensión contextual: mientras que los patrones de reconocimiento de voz más antiguos necesitaban una estructura similar a “encender las luces” o “ajustar el brillo al 70%”, la API de Gemini puede comprender afirmaciones más generales, como “¡qué oscuro está aquí!”, “dame un poco de luz para leer” o “quiero un ambiente oscuro y espeluznante”, para proporcionar una solución adecuada a los usuarios sin que se la especifique.

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.


Convertir las ideas en realidad

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:

  • Automatización de casa inteligente: controla las luces, los electrodomésticos y otros dispositivos con comandos de voz, mejorando la comodidad y la accesibilidad.

  • Robótica: emite comandos hablados a los robots o envía flujos de imágenes o videos a la API de Gemini para la navegación, la ejecución de tareas y la interacción, automatizando tareas repetitivas y brindando asistencia en diversos entornos.

  • IoT industrial: mejora el funcionamiento de la maquinaria y los equipos especializados para aumentar la productividad y reducir los riesgos de las personas que los utilizan.


Próximos pasos

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.