生命不止,折腾不息。有很多工程师,都尝试过将MCU与OpenAI的ChatGPT结合,做出聊天机器人、语音助手和自然语言界面。
前几天,在OpenAI正式发布o3模型时,同时也宣布了一个可以在Linux和32位MCU上使用的Realtime API SDK,引发一片工程师的热议。
近期,OpenAI在其官方GitHub仓库中发布了一个可在以ESP32为代表的微控制器上使用 Open Realtime API的SDK,该项目已在ESP32-S3和Linux上开发并测试,开发者可以直接按照指引使用。
这个SDK主要为嵌入式硬件设计,目前只验证了乐鑫ESP32S3。这个SDK基于OpenAI最新WebRTC技术开发,能提供极低延迟的语音对话体验。
OpenAI在发布会上展示了一个圣诞主题的AI玩具,里面MCU用到了ESP32。在demo中,工程师与AI玩具进行了四五轮对话,基本上是自然的聊天,没有明显的延迟或反应时间,与之前的网页demo表现一致。
根据Github页面显示(https://github.com/openai/openai-realtime-embedded-sdk),openai-realtime-embedded-sdk 是为微控制器量身定制的 SDK,使开发者能够在 ESP32 等微控制器上实现实时API功能。
该SDK主要在ESP32S3和Linux平台上开发和测试,因此开发者无需物理硬件即可直接在 Linux 上进行使用。
若要在硬件上使用此SDK,请购买以下任一款微控制器。其他MCU可能也能兼容,但该SDK基于以下设备开发:
Freenove ESP32-S3-WROOM;
Sonatino - ESP32-S3 Audio Development Board。
不过,我们发现,在examples文件夹,可以看到除了ESP32,也有一个通用和一个树莓派的例子,在树莓派文件夹中,硬件选用了Raspberry Pi 4B、Camera Module、ReSpeaker 2-Mics Pi HAT和Speaker。所以,也许嵌入式设备可能也会慢慢也会支持这个SDK。
通过配置 Wi-Fi SSID、密码和 OpenAI API 密钥,用户可以轻松设置设备并运行程序。该 SDK 的关键优势在于为微控制器提供与强大 API 交互的能力,拓展了微控制器在实时数据处理和决策等场景中的应用潜力。
需求人群:目标受众包括嵌入式系统开发者、物联网设备制造商以及需要在微控制器上实现智能决策的科研人员。该 SDK 因其易于集成和使用的特性,特别适合那些寻求在资源受限设备上实现高级数据处理能力的用户。
使用场景示例:
智能家居:在ESP32上使用SDK实现语音控制功能;
工业自动化:通过SDK使微控制器实时响应传感器数据;
科研领域:利用SDK进行机器学习模型的实时推理。
根据工程师的分析,demo基本是一个工程实现,最大优点在于WebRTC协议的API大大简化开发者调用API的流程。众所周知,嵌入式开发基本都用C/C++,这种老旧语言特别麻烦,尤其是涉及到实际业务场景时,要手动处理的case多得让人头大。用了WebRTC后,几百行C代码就能搞定这demo。
具体来看,repo结构只有一个commit,demo代码文件只有六个文件。项目引用了几个开源库,分别是:libopus(用于音频编码解码)、esp-protocols(操控ESP集成的硬件,连接Wi-Fi,录音等)、libpeer(用于WebRTC通信)。
主程序基本没有什么复杂的内容,就是调用一下包,开 Wi-Fi,开始录音,播放,连接 Wi-Fi,再连接WebRTC到OpenAI的API。每个函数实现不到100行,整个demo去掉和PC 兼容的部分,开发者实际编译到芯片上运行的代码也就300行。
工程师分析,根据产品需求,做语音对话 AI 玩具的控制芯片有两个基本要求:
联网功能,无论是Wi-Fi还是蓝牙;
语音处理,支持录音和播放。
这两个是硬性需求,其他功能就不那么重要了,尤其是在Arm领域擅长的视频处理,例如大屏显示等,AI玩具恰好不需要这些。
与传统单片机相比,ESP32在智能家居时代崭露头角的新玩家,恰好能完美满足这些需求。
第一,ESP32价格便宜,集成度高,单颗芯片成本仅几美元;
第二,ESP32 的设计本身就针对低功耗场景,搭配电池后可以实现数周甚至数月的续航;
第三,ESP32 已经集成了 Wi-Fi、蓝牙和语音处理功能,避免了外接模块的需求,进一步降低了电路板设计的复杂性和成本,同时提升了产品的续航表现。
相比其他常见的单片机解决方案,虽然实现方式多种多样,但最简便、最省力的方案就是使用 ESP32。试问哪个硬件工程师能拒绝只用一颗芯片的设计呢?
“2024 火山引擎冬季 Force 原动力大会”上,多个硬件厂商展示了基于RTC技术的产品 demo。而在此次大会上,字节的产品经理提到嵌入式SDK,虽然并未详细透露支持的硬件型号,但毋庸置疑的是,SDK正在路上。
Apex.AI也在做这个工作。根据Apex.AI介绍,Apex.Grace产品增强了ROS 2,Apex.Ida增强了Eclipse iceoryx。通过用于微处理器的Apex.AI SDK,我们在开源项目的基础上提供更多特性、改进的功能和附加的安全认证。随着新的微控制器Apex.AI SDK推出,将在开源项目的基础上继续这一成功之路。据了解,目前Apex.AI已将Xilinx Ultrascale+ MPSoC 和Infineon AURIX TC399作为内部项目添加到新平台中。根据经验,添加一个新平台只需几周时间。