O espaço da Internet das Coisas (IoT na sigla em inglês) está mudando rapidamente com a introdução da inteligência artificial em tudo. Graças ao avanço da IA e dos serviços em nuvem, microcontroladores simples, juntamente com sensores e atuadores padrão, podem ser integrados a uma variedade de coisas para criar dispositivos inteligentes interativos. Nesta postagem, exploraremos como os desenvolvedores de IoT podem usar a API REST do Gemini para criar dispositivos que entendam e reajam a comandos de fala personalizados, preenchendo a lacuna entre os mundos digital e físico para solucionar problemas práticos e, anteriormente, desafiadores.
Para simplificar, esta postagem usará conceitos mais generalizados, mas você pode ver o exemplo de código completo e os esquemas de dispositivos com o uso do microcontrolador ESP32 no GitHub.
A integração do reconhecimento de fala a dispositivos IoT, especialmente aqueles com memória limitada, sempre foi uma tarefa complexa. Embora soluções como o LiteRT para Microcontroladores permitam que você execute modelos básicos para reconhecer palavras-chave, a linguagem humana é uma entrada muito mais ampla e com mais nuances que os desenvolvedores podem usar a seu favor. A API Gemini simplifica isso, oferecendo uma solução poderosa e baseada na nuvem que entende uma ampla gama de idiomas falados, mesmo entre diferentes idiomas, tudo a partir de uma única ferramenta, além de poder determinar quais ações um dispositivo incorporado deve executar com base na entrada do usuário.
Esses recursos dependem da capacidade da API Gemini de processar e interpretar dados de áudio de um dispositivo IoT, bem como determinar o próximo passo que o dispositivo deve dar, seguindo este processo:
1. Captura de áudio: o dispositivo IoT, equipado com um microfone, captura uma frase falada.
2. Codificação de áudio: a fala é codificada em um formato para transmissão pela Internet. No exemplo oficial mencionado acima, convertemos sinais analógicos em áudio no formato WAV e, em seguida, em uma string codificada em base64 para a API Gemini.
3. Solicitação de API: o áudio codificado é enviado para a API Gemini por meio de uma chamada de API REST. Essa chamada inclui instruções, como solicitar o texto do comando falado ou direcionar o Gemini para selecionar uma função personalizada predefinida (por exemplo, acender as luzes). Se estiver usando o recurso de chamada de função da API Gemini, você deverá fornecer definições de função, incluindo nomes, descrições e parâmetros, dentro do JSON da solicitação.
4. Processamento: os modelos de IA da API Gemini analisam o áudio codificado e determinam a resposta apropriada.
5. Resposta: a API retorna informações para o dispositivo IoT, como uma transcrição do áudio, a próxima função a ser chamada ou uma resposta de texto com instruções adicionais.
Por exemplo: vamos considerar o controle de um LED com comandos de voz para ativá-lo ou desativá-lo e alterar sua cor. Podemos definir duas funções: uma para alternar o LED e outra para alterar sua cor. Em vez de limitar a cor a um intervalo predefinido, podemos permitir qualquer valor RGB entre 0 e 255, o que oferece mais de 16 milhões de combinações possíveis.
A solicitação a seguir, incluindo a string de áudio codificada em base64 ($DATA
), demonstra isso:
{
"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"
]
}
}
]
}
]
}
Embora esse seja um exemplo muito simplificado, ele destaca inúmeros benefícios práticos para o desenvolvimento de IoT:
Ao combinar a chamada de função e a entrada de áudio com a API Gemini, os desenvolvedores podem criar dispositivos IoT que respondam de forma inteligente a comandos falados.
Embora o áudio e as chamadas de funções sejam ferramentas essenciais para aprimorar dispositivos IoT com a IA, há muito mais que pode ser usado para criar dispositivos inteligentes incríveis e úteis. Algumas das áreas potenciais a serem exploradas incluem:
Mal podemos esperar para ver todas as coisas incríveis que você vai criar com a API Gemini! Seus aplicativos podem transformar a maneira como interagimos com o mundo ao nosso redor e resolver problemas do mundo real com o poder da IA. Não deixe de compartilhar seus projetos conosco no Google AI for Developers no LinkedIn e no Google AI Developers no X.