随着人工智能技术融入万物,物联网 (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 API,开发者能够打造出智能响应语音指令的 IoT 设备。
虽然音频输入和函数调用是为 IoT 设备增强 AI 功能的重要工具,但还有许多其他技术可以用来创造令人惊艳且实用的智能设备。一些潜在的探索领域包括:
我们非常期待看到您利用 Gemini API 所构建的精彩项目!借助 AI 的力量,您的应用能够改变我们与周围世界互动的方式,并解决现实世界中的问题。请在 LinkedIn 的 Google AI for Developers 和 X 的 Google AI Developers 上与我们分享您的成果。