当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]在之前的教程中,我介绍了如何通过REST将ESP32连接到谷歌Gemini API以发送音频文件并对其进行转录。在本教程中,我将扩展到实际使用录制的音频而不是转录它-在这种情况下,打开和关闭LED环,加上根据语音命令改变LED的颜色。虽然我只是在操纵一个LED环,但你可以用这里使用的技术(称为函数调用)做任何事情,从控制电机到对在线服务提出额外请求。

我们在建造什么?

在之前的教程中,我介绍了如何通过REST将ESP32连接到谷歌Gemini API以发送音频文件并对其进行转录。在本教程中,我将扩展到实际使用录制的音频而不是转录它-在这种情况下,打开和关闭LED环,加上根据语音命令改变LED的颜色。虽然我只是在操纵一个LED环,但你可以用这里使用的技术(称为函数调用)做任何事情,从控制电机到对在线服务提出额外请求。

在之前的教程中,我使用这些连接设置了一个设备:

现在唯一的区别是,我从Adafruit添加了一个24新像素的环,电源线在相同的3.3v轨道上,GND到GND,数据线在ESP32引脚D15上。

为了简单起见,这也是上一篇教程结束时使用的代码,您可以将其作为本演练的起点。

什么是函数调用?

很好,在我们深入了解新内容之前,让我们先谈谈函数调用。本质上,这是一种告诉Gemini API你在程序中有一些自定义函数定义的方法然后Gemini可以根据用户的输入/请求决定调用其中的任何一个。您可以通过向POST到API的JSON中添加新属性来实现这一点。这是这个灯的例子中JSON的样子。

您可以在这里看到,您需要发送将要调用的函数的名称、函数的描述,以便Gemini API知道何时适合调用它,还可以选择发送一个属性列表,这些属性可以传递给函数,以便自定义它的工作方式。您还可以要求在调用函数时发送这些属性。

新代码

好了,现在我们已经有了基本的概念,让我们更新音频录制代码来处理函数调用!让我们首先将Adafruit NeoPixel库添加到类的顶部,以及定义LED环使用的引脚,该环上有多少NeoPixels,以及LED使用的红/绿/蓝颜色的一些默认值。我们还需要定义neoppixel控制器对象。

进入setup()函数,我们只需要初始化pixels对象并将led设置为默认的关闭状态。

我们还将添加一个名为toggleLights(bool on)的新函数,用于在Gemini API触发时切换灯的打开或关闭。

现在我们可以进入函数调用的核心代码。进入createAudioJsonRequest()函数并将其替换为以下代码:

虽然看起来这里有很多事情要做,但它主要只是从SD卡读取音频数据,然后构建您可以在教程前面看到的JSON结构。

最后,我将transcribeAudio()函数重命名为sendAudio()。现在我们可以检查functionCall参数是否存在于响应中,而不是打印返回的音频文本,找出正在调用的函数,然后提取该函数的参数以对它们进行处理。在本例中,我正在检查toggleLights,它将包含一个布尔值,用于指示灯是否应该打开,并且我将该值传递给toggleLights()函数。除此之外,我正在监听Gemini API将“changeColor”作为一个functionCall值发回。如果成功了,我就从参数中提取红色、绿色和蓝色值并保存它们,然后用这些保存的值打开灯。你可以在这里看到整个函数:

此外,Gemini API可以理解多种语言的音频记录,而无需事先定义这些语言。例如,我用这段代码用西班牙语打开LED环,把颜色变成绿色(注意,我实际上不会说西班牙语,所以我用谷歌Translate和文本到语音的功能,但它工作得很好!)。

结论

这就是添加到音频记录示例中的内容,能够使用完整的句子来控制你的设备,对语音进行复杂的操作。我很想看到你们使用这些信息制作的非常酷的项目,所以请留下评论和它们的链接,我们将在以后的教程中再见!

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国 上海,2025年8月28日——全球领先的智能传感和发射器解决方案供应商艾迈斯欧司朗(SIX:AMS)今日宣布,其全新UV-C LED在辐射灭菌领域取得重大技术突破,并获得评估认可。

关键字: LED 发射器 光电半导体

在物联网设备数量突破千亿级的今天,开发者对核心芯片的诉求已从单一功能转向“全栈集成+生态协同”。乐鑫科技推出的ESP32凭借其独特的“双核架构+无线双模+开源生态”组合,成为智能家居、工业监控、可穿戴设备等领域的首选方案...

关键字: ESP32 物联网

在LED照明技术向高能效、低电磁干扰(EMI)方向演进的过程中,电流模式控制与动态负载调整算法的协同优化成为突破技术瓶颈的核心路径。本文将从控制架构创新、动态负载补偿机制及EMI抑制策略三个维度,揭示新一代LED驱动器的...

关键字: LED 动态负载调整算法 EMI

在全球倡导节能减排的大背景下,家电产品的能耗问题日益受到关注。电视机作为家庭中使用频率较高的电器之一,其能耗的降低对于节约能源和减少碳排放具有重要意义。LED 驱动技术作为影响电视机能耗的关键因素,正不断发展和创新,为实...

关键字: 驱动技术 能耗 LED

LED是一种能发光的半导体电子元件,这种电子元件早期只能发出低光度的红光,随着技术的不断进步,现在已发展到能发出可见光、红外线及紫外线的程度,光度也有了很大的提高。

关键字: LED

PCB设计在EMI抑制中起着关键作用。合理的布局布线能够有效减少信号的电磁辐射和相互干扰。首先,应将功率电路和控制电路进行物理隔离,避免功率电路中的大电流、高电压信号对控制电路造成干扰。功率器件和电感等高频器件应尽量靠近...

关键字: LED 开关电源

为确保太阳能路灯的稳定工作,建议使用硅酮密封将太阳能路灯组件的接线固定在支架上。在连接路灯部件的线路时,必须遵循正确的顺序,以防止正负连接颠倒导致的短路问题。此外,太阳能路灯灯杆底部的接线应采用适当的密封装置或硅胶进行密...

关键字: LED 路灯

在我们家,WTW已经运行了14年了。它是一种非连接(不在线)的通风机,从房子外面吸收新鲜空气,经过过滤后空运到房子里。新鲜的环境空气是用从房子里大多数房间取出的空气预热的。再加热的能量是通过热交换器从流出的“脏”空气中获...

关键字: Zigbee LED 传感器
关闭