Gemini API 和物联网

2025年3月31日
Paul Ruiz Senior Developer Relations Engineer

随着人工智能技术融入万物,物联网 (IoT) 领域正经历着飞速变革。得益于 AI 与云服务的不断进步,如今简单的微控制器搭配标准传感器和执行器,能够被集成到各类物品中,打造出具备交互功能的智能设备。在本文中,我们将探讨 IoT 开发者如何借助 Gemini REST API,开发出能够理解和响应自定义语音指令的设备,从而弥合数字世界与物理世界之间的差距,解决那些曾经棘手的实际问题。

为确保内容通俗易懂,本文将聚焦于宏观概念,而完整的代码示例以及基于 ESP32 微控制器的设备原理图则可在 GitHub 上查阅。


从语音到行动:语音识别与自定义函数的力量

传统而言,将语音识别技术集成至 IoT 设备中,尤其是那些内存有限的设备,一直是一项复杂的任务。虽然像 LiteRT for Microcontrollers 这样的解决方案支持运行基本模型来识别关键词,但人类语言是一种更广泛、更细致的输入,开发者可以利用这一特性来发挥其优势。Gemini API 通过提供功能强大、基于云的解决方案简化了这一过程。该解决方案能够理解各种口语,甚至涵盖不同语言,所有功能都集成在一个工具中。此外,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": "根据此音频输入触发函数。"
                },
                {
                    "inline_data": {
                        "mime_type": "audio/x-wav",
                        "data": "$DATA"
                    }
                }
            ]
        }
    ],
    "tools": [
        {
            "function_declarations": [
                {
                    "name": "changeColor",
                    "description": "以 RGB 格式更改灯光的默认颜色。例如:绿色为 0 255 0",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "red": {
                                "type": "integer",
                                "description": "RGB 颜色代码中红色的颜色值,范围为 0 到 255"
                            },
                            "green": {
                                "type": "integer",
                                "description": "RGB 颜色代码中绿色的颜色值,范围为 0 到 255"
                            },
                            "blue": {
                                "type": "integer",
                                "description": "RGB 颜色代码中蓝色的颜色值,范围为 0 到 255"
                            }
                        },
                        "required": [
                            "red",
                            "green",
                            "blue"
                        ]
                    }
                },
                {
                    "name": "toggleLights",
                    "description": "打开或关闭灯光",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "toggle": {
                                "type": "boolean",
                                "description": "确定是否应打开或关闭灯光。"
                            }
                        },
                        "required": [
                            "toggle"
                        ]
                    }
                }
            ]
        }
    ]
}

虽然这是一个非常简化的例子,但它确实突显了 IoT 开发的众多实际好处:

  • 提升用户体验:开发者能够轻松支持语音输入,即使在内存有限的设备上,也能提供更直观、更自然的互动体验。

  • 简化命令处理:这种设置无需复杂的解析逻辑,例如无需再尝试分解每条语音指令,或等待更复杂的手动输入即可选择要运行的下一个函数。

  • 动态函数执行:Gemini AI 能够根据用户意图智能选择合适的操作,使设备更具动态性,能够执行复杂的操作。

  • 语境理解:与传统的语音识别模式需要类似“打开灯”或“将亮度调至 70%”这样结构化的指令不同,Gemini API 可以理解更一般的表达,例如“这里太暗了!”、“我需要一些阅读灯”或“让这里变得黑暗且阴森”,从而为用户提供合适的解决方案,而无需明确指定。

通过将函数调用与音频输入相结合,再利用 Gemini API,开发者能够打造出智能响应语音指令的 IoT 设备。


将想法变为现实

虽然音频输入和函数调用是为 IoT 设备增强 AI 功能的重要工具,但还有许多其他技术可以用来创造令人惊艳且实用的智能设备。一些潜在的探索领域包括:

  • 智能家居自动化:通过语音指令控制灯光、电器和其他设备,提高生活的便捷性与无障碍性。

  • 机器人技术:向机器人发出语音指令,或将图像或视频流发送到 Gemini API 以进行导航、任务执行和互动,从而将重复性的任务自动化,并在各种场景中提供协助。

  • 工业 IoT:增强专用机械和设备,以提高生产效率并降低依赖这些设备的人们所面临的风险。


后续工作

我们非常期待看到您利用 Gemini API 所构建的精彩项目!借助 AI 的力量,您的应用能够改变我们与周围世界互动的方式,并解决现实世界中的问题。请在 LinkedIn 的 Google AI for DevelopersX 的 Google AI Developers 上与我们分享您的成果。