생활의 모든 부분에 인공지능이 도입되면서 IoT(사물 인터넷) 환경이 빠르게 변하고 있습니다. AI와 클라우드 서비스의 발전 덕분에 표준 센서 및 액추에이터와 더불어 간단한 마이크로컨트롤러를 다양한 사물에 통합하여 상호 작용하는 지능형 기기를 만들 수 있습니다. 이 게시물에서는 IoT 개발자가 어떻게 Gemini REST API를 활용하여 맞춤 음성 명령을 이해하고 그에 반응하는 기기를 만들어 디지털 세계와 물리적 세계 사이의 격차를 메움으로써 실용적인 문제와 이전에는 까다롭게 여겨졌던 문제를 해결하는지 알아보겠습니다.
간단하게 설명할 수 있도록 이 글에서는 상위 수준의 개념 설명에 초점을 맞추지만 GitHub에서 ESP32 마이크로컨트롤러를 활용하는 기기 계통도와 전체 코드 예시를 볼 수 있습니다.
전통적으로 음성 인식을 IoT 기기, 특히 메모리가 제한적인 기기에 통합하는 일은 복잡한 작업이었습니다. 마이크로컨트롤러용 LiteRT와 같은 솔루션을 사용해 기본 모델을 실행하여 키워드를 인식하도록 할 수 있지만, 인간의 언어는 훨씬 더 광범위하고 미묘한 입력으로, 개발자는 이를 자신에게 유리하게 이용할 수 있습니다. Gemini API는 단일한 도구로 다양한 언어의 음성을 폭넓게 이해할 수 있는 강력한 클라우드 기반 솔루션을 제공하여 이런 복잡성을 단순하게 만듭니다. 또한 사용자 입력에 따라 임베디드 기기가 수행해야 할 동작을 결정할 수도 있습니다.
이러한 기능은 Gemini API가 IoT 기기의 오디오 데이터를 처리 및 해석하고 아래 프로세스에 따라 기기가 수행해야 할 다음 단계를 결정하는 능력을 활용합니다.
1. 오디오 캡처: 마이크가 장착된 IoT 기기는 구어 문장을 캡처합니다.
2. 오디오 인코딩: 음성은 인터넷 전송을 위한 형식으로 인코딩됩니다. 위에서 언급한 공식적인 예에서는 아날로그 신호를 WAV 형식 오디오로 변환한 다음 Gemini API용 base64 인코딩 문자열로 변환합니다.
3. API 요청: 인코딩된 오디오는 REST API 호출을 통해 Gemini API로 전송됩니다. 이 호출에는 음성 명령의 텍스트를 요청하거나 Gemini가 미리 정의된 맞춤 기능(예: 조명 켜기)을 선택하도록 지시하는 등의 지침이 포함됩니다. Gemini API의 함수 호출 기능을 사용하는 경우, 요청 JSON 내에 이름, 설명, 매개변수를 포함한 함수 정의를 제공해야 합니다.
4. 처리: Gemini API의 AI 모델은 인코딩된 오디오를 분석하고 적절한 응답을 결정합니다.
5. 응답: API는 오디오 스크립트, 다음으로 호출할 함수, 또는 추가 지침이 포함된 텍스트 응답 같은 정보를 IoT 기기에 반환합니다.
예를 들어, 음성 명령으로 LED를 켜거나 끄고 색을 바꾸도록 제어한다고 가정해 보겠습니다. LED를 켜거나 끄는 동작 전환과 색을 바꾸는 두 가지 기능을 정의할 수 있습니다. 색을 미리 설정된 범위로 제한하는 대신 0에서 255까지의 모든 RGB 값을 허용하여 1,600만 가지 이상의 가능한 조합을 제공할 수 있습니다.
Base64로 인코딩된 오디오 문자열($DATA
)을 포함한 다음 요청은 이를 보여줍니다.
{
"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"
]
}
}
]
}
]
}
이 예시는 매우 단순하지만, IoT 개발을 위한 수많은 실용적 이점을 잘 보여줍니다.
개발자는 함수 호출과 오디오 입력을 Gemini API와 결합하여 음성 명령에 지능적으로 응답하는 IoT 기기를 만들 수 있습니다.
오디오 및 함수 호출은 AI로 IoT 기기의 능력을 향상시키는 데 필수적인 도구이지만, 놀랍고도 유용한 지능형 기기를 만드는 데 사용할 수 있는 도구는 훨씬 더 많습니다. 탐색해 볼만한 몇 가지 영역은 다음과 같습니다.
여러분이 Gemini API로 개발하는 모든 훌륭한 결과물을 얼른 보고 싶습니다! 여러분이 개발하는 다양한 애플리케이션은 사람들이 주변 세계와 상호 작용하는 방식을 변화시키고 AI의 힘으로 현실 세계의 문제를 해결할 수 있습니다. LinkedIn의 Google AI for Developers와 X의 Google AI Developers에서 프로젝트를 공유해 주세요.