支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


手搓完字节AI硬件,我做了个五一智能旅行小装置(附万字沉浸式教程)

发布日期:2025-04-30 12:18:52 浏览次数: 1529 作者:苍何
推荐语

苍何手搓字节AI硬件打造五一智能旅行小装置,万字沉浸式教程带你体验!

核心内容:
1. 火山开发者见面会后,苍何如何从零开始手搓AI硬件
2. 字节AI硬件介绍及搭建流程详解
3. 沉浸式教程:苍何的踩坑经历与心得分享

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

前段时间参加完火山开发者见面会,官方给送了个 AI 硬件,回家后,我就特别想玩。

并在介绍字节新出的MCP应用DeepSearch 这篇文章中放出狠话,说要针对 AI 硬件单独出一篇文章。

但却被工作一直耽搁着,这几天,终于有时间可以倒腾了。

一开始,我把 AI 硬件想的过于简单,配个大模型,通个电,就直接可以开始对话了。

事实证明,这是我单纯的狗屁想法?。

纯手搓(包含设备端烧录和服务端搭建)一个 AI 硬件,可没这么简单。

PS:这当然是针对于我这种没有任何硬件基础的秘制祖传小白来说。

过程是痛苦的,结果却是快乐的,放个视频,大家先感受下。

整个对话的自然和丝滑,就仿佛是在和真人聊天一样。这么一个小玩意,我直接拿着他充当我五一出行小助手,随着携带不要太方便。

而且,服务端代码直接运行在我本地,设备的配置我也可以随时调整并烧录,真正做到高度定制化。

这个 AI 硬件也足够的轻量小巧,随便放在什么玩具、家居等设备中,丝毫没有任何负担。(所以我直接做成了旅行小装置,随身携带,充当我的导游)

此时此刻,或许你脑子里蹦出了不少创业想法吧。我是感觉自己随身带了个药老?

废话不多说,下面我将带你沉浸式感受下我的手搓开发 AI 硬件之旅。

全文一共 10746 字,23 张图,不信你滑到底,看看要花多久?

这里放个小彩蛋,如果本文赞赞超过 100,下一篇,将安排 AI 硬件接入智能体,MCP 教程,体验硬件带来的更实际应用场景化落地。

在此之前,有必要感谢一下字节大佬们的帮助,以及袋鼠帝、云中江树两位大佬的经验传授,谢谢啦\(^ ^)/

我手画了一个搭建流程,大家可以先看看:

以下教程是在官方示例教程的基础上,结合自己踩过的坑做的沉浸式教程。不多 BB,开整。

AI 硬件介绍

先熟悉下这个新的 AI 硬件产品吧。

字节的这个 AI 硬件是火山引擎 RTC 与嵌入式芯片厂商合作内置一站式解决方案,通过在芯片侧集成先进的音频处理(包括自动唤醒功能、音频 3A 等)。

在云侧深度整合大模型、语音识别、语音合成、 Function calling、知识库等技术,快速实现用户与硬件之间流畅、自然、真人感觉的实时通话功能,在智能玩具、智能家居、智能穿戴设备、智能教育设备、AI 机器人等领域赋予硬件全新的使用体验。

这是一张来自官方的流程图:

要想完整跑通,我认为必不可少的几大条件:

1、开通对应的火山引擎服务,包括实时音视频、语音合成、语音识别等服务。

2、服务端启动,并可完全访问

3、设备端参数配置,并正常编译。

这是我理解的一个简单的转换过程。

一次对话,完成了端到云的全套流程,说实话,能做到如此响应速度,还是相当厉害的。

下面开始进入踩坑环节(哦不,是沉浸式体验环节)

大模型开通

为了保证以下的操作都能正常跑通,官方是提供了一个无代码跑通实时对话式 AI Demo 的,按照要求填入响应参数。

这个是在刚才获取 RTC_APP_ID 的那个页面首页能找到,角色权限开通:

只有确保在平台上都能正常对话了,才能继续下一步,不然会各种权限的问题。

运行服务端

服务端是真实和大模型交互的口子,可以本地部署,也可以远程服务器部署,这里苍何用的是阿里云服务器部署的方式。

记得开启服务端防火墙端口。

硬件要求

PC 服务器 (Linux 建议使用 ubuntu 18.04 及以上版本),我服务器版本如下:

服务器现在压力还是很大的,同时运行了太多的服务?

安装服务依赖

前期安装 Python 环境和 pip。

pip install requests

如果没有 pip 也可以运行命令:

python3 -m pip install requests

下载并配置工程

这里官方提供了服务端详细的示例 Demo,我们这次运行的也是基于官方的 Demo,做了一些改动。

1、克隆实时对话式 AI 硬件 Demo 示例

git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git

2、进入服务端 Demo 目录

cd rtc-aigc-embedded-demo/server/src

3、更改设备配置文件

进入服务端配置文件 rtc-aigc-embedded-demo/server/src/RtcAigcConfig. py,设置如下参数:


# 鉴权 AK/SK。前往 https://console.volcengine.com/iam/keymanage 获取
AK = "yzitS6Kx0x*****fo08eYmYMhuTu"
SK = "xZN65nz0CFZ******lWcAGsQPqmk"

# 实时音视频 App ID。前往 https://console.volcengine.com/rtc/listRTC 获取或创建
RTC_APP_ID = "678e1574*****b9389357"
# 实时音视频 APP KEY。前往 https://console.volcengine.com/rtc/listRTC 获取
RTC_APP_KEY = "dc7f8939d23*******bacf4a329"

# 大模型推理接入点 EndPointId 前往 https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D 创建
DEFAULT_BOT_ID = "ep-202******36-plsp5"
# 音频生成大模型-语音合成大模型 Voice_type,前往 https://console.volcengine.com/speech/service/8 获取
DEFAULT_VOICE_ID = "BV05******aming"

# 语音识别-流式语音识别 APPID 前往 https://console.volcengine.com/speech/service/16 获取
ASR_APP_ID = "274****256"
# 音频生成-语音合成 APPID,前往 https://console.volcengine.com/speech/service/8 获取
TTS_APP_ID = "274****256"

# 服务端监听端口号,你可以根据实际业务需求设置端口号
PORT = 8080

去对应的开通相关服务即可。

这里注意最新的硬件要使用大模型,而不是原先的语音合成服务。这里踩了很大的坑,分别把容易搞错的几个参数截图说明一下吧。

主要容易搞混的,第一个是 DEFAULT_VOICE_ID,这里要选择语音合成大模型的音色。

4、需要更改一下 RtcAigcService. py 文件,现在官方的 demo 还没更新,你可以用我的这个代码,只需要调整 161 行代码的值为自己的 token。

直接后台回复:硬件,获取代码。

token 的话就是在刚才的页面复制语音合成大模型下面的 token 即可。

运行服务

python3 RtcAigcService.py

运行设备端

这里以 Mac 系统为例。

硬件要求

  • 乐鑫 ESP 32-S 3-Korvo-2 或者 AtomS 3 R 开发板。

  • USB 数据线(两条 A 转 Micro-B 数据线,一条作为电源线,一条作为串口线)。(AtomS 3 R 开发板需要 Typc-C 数据线)

  • PC(Windows、Linux 或者 macOS)。

设别环境配置

1、安装 CMake 和 Ninja 编译工具

brew install cmake ninja dfu-util

如果没有 brew 的可以用中科大的镜像来安装:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2、将乐鑫 ADF 框架克隆到本地,并同步各子仓(submodule)代码

a、clone 乐鑫 ADF 框架

git clone https://github.com/espressif/esp-adf.git // cloneADF框架

  b、进入 esp-adf 目录

cd esp-adf

c、切换到乐鑫 ADF 指定版本

git reset --hard 0d76650198ca96546c40d10a7ce8963bacdf820b

d、同步各子仓代码

git submodule update --init --recursive

这一步会很耗时,也不知道是我电脑卡,还是咋啦,花了快 20 分钟了。

总之,很慢,很慢。(也可能是我网速慢)

3、安装乐鑫 esp 32 s 3 开发环境相关依赖

./install.sh esp32s3

这个的过程也相当的慢。

不知道是不是我的网速问题,总之会持续一段时间。

成功安装所有依赖后,命令行会出现如下提示:

All done! You can now run: . ./export.sh

经历了大概 20 分钟,才搞好吧。

对于 macOS 用户,如在上述任何步骤中遇到以下错误:
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl. c:xxx)
可前往访达->应用程序->Python 文件夹,点击 Install Certificates. command 安装证书。

4、设置环境变量。

每次打开命令行窗口均需要运行该命令进行设置

. ./export.sh

下载并配置工程

1、将实时对话式 AI 硬件示例工程 clone 到乐鑫 ADF examples 目录下

进入 esp-adf/examples 目录

cd $ADF_PATH/examples

clone 实时对话式 AI 硬件示例工程

git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git

2、打开设备端配置文件 rtc-aigc-embedded-demo/client/espressif/esp 32 s 3_demo/main/Config. h,设置如下参数

就是刚才下载的那个仓库

// 你的服务端地址:监听端口号#define DEFAULT_SERVER_HOST "127.0.0.1:8080"// 服务端设置的大模型 EndPointId#define DEFAULT_BOT_ID "ep-20240729********"// 服务端设置的音频生成-语音合成 Voice_type#define DEFAULT_VOICE_ID "zh_female_*******"// 服务端设置的实时音视频 APPID#define DEFAULT_RTC_APP_ID "5c833ef********"

3、禁用乐鑫工程中的火山组件

进入 esp-adf 目录

cd $ADF_PATH

禁用乐鑫工程中的火山组件

git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch

$ADF_PATH 替换成自己的实际安装路径,比如我这里是:/Users/canghe/responsibility/study/esp-adf

那么命令应该是:

git apply /Users/canghe/responsibility/study/esp-adf/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch

更新 AtomS 3 R 开发板补丁

git apply $ADF_PATH/c/0001-add-atoms3r-board.patch

编译固件

1、进入 esp-adf/c 目录下编译固件

进入 esp 32 s 3_demo 目录:

cd $ADF_PATH

设置编译目标平台:

idf.py set-target esp32s3

有点坑,没找到,这个文件.

原来是没运行设置环境变量:

. ./export.sh

设置 WIFI 账号密码

idf.py menuconfig

  进入 Example Connection Configuration 菜单,在 WiFi SSID 及 WiFi Password 中填入你的 WIFI 账号和密码,保存并退出配置菜单。

报错了:

运行目录不对,这是因为我切换到根目录去了,要切换回刚刚的目录,执行。

找到他:

输入 wifi 账号和密码:

按 S 保存,Q 退出。

设置开发版型号:

idf.py menuconfig

  进入 Audio HAL 菜单,在 Audio board 中选择你的开发板型号。(例如: 方舟开发板选择 M 5 STACK-ATOMS 3 R) 保存并退出配置菜单

这里如果报错 flash 的话,需要调整这个值的大小

编译固件

idf.py build

这样就好了。

烧录并运行示例 demo

这一步相当于要将客户端的代码直接传到设备里面去,包括设备需要链接到哪个服务啊,默认音色这些都配置好了。

  1. 打开乐鑫开发板电源开关

  2. 烧录固件

idf.py flash

等他烧录吧:

  1. 运行示例 Demo 并查看串口日志输出
idf.py monitor

重新烧录流程

在第一次烧录后,后面所有需要修改配置的地方,都要重新烧录,就可以走重新烧录流程了。(建议自己做成一个备忘,下次直接复制就好了)

配置环境变量

. ./export.sh

进入到 demo 目录:(换成自己的)

cd /Users/canghe/responsibility/study/esp-adf/examples/rtc-aigc-embedded-demo/client/espressif/esp32s3_demo

禁用乐新的火山组件:

git apply /Users/canghe/responsibility/study/esp-adf/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch

更新 AtomS 3 R 开发板补丁

git apply /Users/canghe/responsibility/study/esp-adf/examples/rtc-aigc-embedded-demo/0001-add-atoms3r-board.patch

设置编译目标平台

idf.py set-target esp32s3

设置 WIFI 账号密码:

idf.py menuconfig

  进入 Example Connection Configuration 菜单,在 WiFi SSID 及 WiFi Password 中填入你的 WIFI 账号和密码,保存并退出配置菜单。

设置默认 flash,改为 8 M

设置开发版型号

idf.py menuconfig

  进入 Audio HAL 菜单,在 Audio board 中选择你的开发板型号。(例如: 方舟开发板选择 M 5 STACK-ATOMS 3 R) 保存并退出配置菜单

编译固件:

idf.py clean
idf.py build

烧录固件

idf.py flash

运行示例 Demo 并查看串口日志输出

idf.py monitor

通过上面的所有操作,在 flash 烧录后,就能听到欢迎语了。

如果无法继续,只需要按住硬件的开关按钮即可。

烧录完成后,数据线可以不插到电脑上,也可以插到充电宝,只需要有个地方上电即可。

如果开了串口监控,需在电脑上,可以看到,每一次对话都要监控输出。

在服务端也会实时展示请求。

理论上,只要将设备连上手机 wifi,烧录好后,随身携带,没有任何问题。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询