记忆模糊的朋友可以去这里重温一下这篇(效果真的很流畅、丝滑)袋鼠帝,公众号:袋鼠帝AI客栈体验完字节送的迷你AI硬件,后劲太大了... PS:上篇文章评论区本来是置顶了AI硬件的购买链接,但是后面莫名其妙消失了,估计是被公众号官方隐藏了... 主要是上次我演示的时候使用的默认音色,确实莫得感情,然后大模型也没有经过prompt调整,就显得很话痨。但主要亮点还是在实时回复,实时打断,实时接话上面,以及客服端和服务端代码开源,支持高自由度的DIY 其实,这款AI硬件提供了火山里面100多种情感饱满的音色选择。可以理解为支持豆包和海螺AI的语音,还支持使用克隆的音色除了支持切换不同的音色,还可以自定义AI的性格、角色,接入fastgpt的智能体,接入Coze,以及接入各种MCP,用嘴玩转MCP等等。建议大家先看看教程,如果觉得搞不定,或者没有达到预期,就不要随便购买哦。 1.AI硬件(客户端)
2.服务端(可自己部署):可以自定义大模型的prompt,自定义配置大模型地址,比如可以切换成fastgpt智能体,OpenAI的大模型,硅基流动,n8n等等...
3.火山引擎:提供实时、丝滑的TTS(文本转语音)和STT(语音识别)服务,同时也可以提供智能体、大模型调用服务。 接下来我们就按照官方给出的3大步,共11小步来本地配置AI硬件。PS:虽然这个AI硬件很nice,但毕竟是新出的,所以安装啥的步骤忒多,比较原始,本次教程应该是目前我出的所有喂饭级教程里面,难度最高的,我愿称之为地狱级难度! 欢迎大家迎接这次挑战~ 教程的内容还包含之前遇到过的一些问题,可以帮大家避避坑~ 也可参考火山官方文档: https://www.volcengine.com/docs/6348/1315561
准备一台Mac电脑(Windows的朋友对不住了)本期是用一根双Type-c头的数据线连接硬件和Mac,主要作用是将Mac上配置好的客户端程序烧录进AI硬件。其实Windows应该也能烧录,但是可能需要一个转接线(一头是Type-c,一头是USB) 2.准备开发板:就是准备这个迷你AI硬件,购买方式在文末自取说实话,这一步太特么复杂了,要在多个页面开通权限、获取配置参数...咱们先根据官方的要求,在无代码跑通Demo处一键开通和创建角色地址:https://console.volcengine.com/rtc进入之后,点击「跑通Demo」,然后跟着指引流程走就行了https://console.volcengine.com/speech/app应用管理里面如果已经有应用了(可能是在跑通Demo步骤自动创建了),就不用管,如果没有就点击创建应用,新建一个。也需要开通语音合成大模型和流式语音识别大模型的权限。另外,需要复制一个大语言模型的id,备用(没有就先开通一下)https://console.volcengine.com/ark为了方便讲解,我把加入策略组放到「服务端」步骤里面了本次教程,服务端也是部署在Mac电脑本地的,当然也可以部署到云服务器(Linux 建议使用 ubuntu18.04 及以上版本)服务端启动依赖Python环境,所以需要先检查是否有Python环境了(Mac好像是自带了)打开终端,输入 python3 --version 查看是否已经有Python环境了pip3 install requests 或者 pip install requests安装依赖 2.下载并配置工程(服务端) 服务端代码是开源的,Github地址: https://github.com/volcengine/rtc-aigc-embedded-demogitclonehttps://github.com/volcengine/rtc-aigc-embedded-demo.git 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/10007 获取DEFAULT_VOICE_ID="zh_female******_bigtts"
# 语音识别大模型-流式语音识别大模型 APPID 前往 https://console.volcengine.com/speech/service/10011 获取ASR_APP_ID="274****256"# 音频生成大模型-语音合成大模型 APPID,前往 https://console.volcengine.com/speech/service/10007 获取TTS_APP_ID="274****256"
# 服务端监听端口号,你可以根据实际业务需求设置端口号PORT=8080
大模型推理接入点 获取DEFAULT_VIOCE_ID 获取ASR_APP_ID 获取TTS_APP_ID 由于某些原因,火山的这个开源服务端代码,还未更新到最新版。所以需要把源码中的服务端代码文件(RtcAigcService.py),替换一下 在公众号后台私信:“字节硬件” 获取服务端最新RtcAigcService.py文件 然后把原来的替换掉 位置:rtc-aigc-embedded-demo/server/src/ 并且需要打开RtcAigcService.py,在161行,改一个配置 将token更换成自己的token,然后保存 token在下图位置获取
这个也是我之前踩的坑,本来我啥的配置好了,大模型也能进行文字回复,也能看到我的声音被语音识别的文字,但就是死活没有声音...排查了半天,结果是因为没有把appid(RTC_APP_ID)加入策略组邮箱:Conversational_AI@bytedance.com在终端执行指令(其实就是启动一个Python程序):我们需要先使用双头Type-c的数据线来把AI硬件和Mac电脑连接起来注意:一定要数据线,有些线它只能充电,而没有数据传输功能,我之前就被我的线坑惨了...后面我特意在美团超市买了一根兼顾充电和数据传输的线才得以顺利进行。打开终端 安装 CMake 和 Ninja 编译工具 brewinstallcmakeninjadfu-util clone 乐鑫ADF 框架 gitclonehttps://github.com/espressif/esp-adf.git 进入esp-adf目录 切换到乐鑫ADF指定版本 gitreset--hard0d76650198ca96546c40d10a7ce8963bacdf820b 同步各子仓代码 gitsubmoduleupdate--init--recursive 安装乐鑫 esp32s3 开发环境相关依赖 成功安装所有依赖后,命令行会出现如下提示 All done! You can now run: . ./export.sh 有遇到上图问题的朋友去GitHub上面找,这是Github的截图 设置环境变量
2.下载并配置工程 我们需要先将实时对话式 AI 硬件示例工程 clone 到 乐鑫 ADF examples 目录下 进入 esp-adf/examples 目 clone 实时对话式 AI 硬件示例工程 gitclonehttps://github.com/volcengine/rtc-aigc-embedded-demo.git 打开设备端配置文件
rtc-aigc-embedded-demo/client/espressif/esp32s3_demo/main/Config.h
设置如下参数(从服务端配置里面拿过来即可) // 你的服务端地址:监听端口号#defineDEFAULT_SERVER_HOST"192.168.x.x:8080"
// 服务端设置的大模型 EndPointId#defineDEFAULT_BOT_ID"ep-20240729********"
// 服务端设置的音频生成大模型-语音合成大模型 Voice_type#defineDEFAULT_VOICE_ID"zh_female_*******_bigtts"
// 服务端设置的实时音视频 APPID#defineDEFAULT_RTC_APP_ID"5c833ef********"
注意:上面填的服务端地址,如果服务端是在本地,一定要填电脑的局域网IP地址(内网地址) 接下来禁用乐鑫工程中的火山组件 进入 esp-adf 目录 禁用乐鑫工程中的火山组件 gitapply$ADF_PATH/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch 更新 AtomS3R 开发板补丁 gitapply$ADF_PATH/examples/rtc-aigc-embedded-demo/0001-add-atoms3r-board.patch
3.编译固件 esp-adf/examples/rtc-aigc-embedded-demo/client/espressif/esp32s3_demo目录下编译固件
进入 esp32s3_demo 目录 cd$ADF_PATH/examples/rtc-aigc-embedded-demo/client/espressif/esp32s3_demo 设置编译目标平台 设置WIFI账号密码 进入Example Connection Configuration菜单,在WiFi SSID及WiFi Password中填入你的 WIFI 账号和密码,保存并退出配置菜单。 WIFI SSID,其实就是你的wifi名称 用键盘的上下键来控制选择,回车是打开,也是保存,保存最终的配置请按s,保存之后连续按键盘的esc退出。 进入Audio HAL菜单,在Audio board中选择你的开发板型号。(例如: 方舟开发板选择M5STACK-ATOMS3R)保存并退出配置菜单 编译固件
4.烧录并运行示例Demo 最后,我们需要将调整好的客户端配置和代码通过数据线传输进AI硬件中,这个过程有个专业术语叫做「烧录」 先打开乐鑫开发板电源开关 烧录固件 运行示例 Demo 并查看串口日志输出 启动之后,正常会先回复一个欢迎语(带声音的) 如果想要退出日志,请按 control + 】
如果启动后发现跑不起来,可以复制红色的报错内容丢给AI(Claude、Gemini2.5 pro、DeepSeek等) 或者把Flash Size 从16MB改成8MB 还是先执行 idf.py menuconfig 进入菜单配置 然后进入Serial flasher config菜单,把Flash Size 从16MB改成8MB 保存,退出。 注意:无论是修改menuconfig还是修改客户端的Config.h,修改之后都需要保存,并重新执行编译、烧录流程 idf.pybuildidf.pyflashidf.pymonitor ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;white-space-collapse: preserve;color: rgb(0, 0, 0);">![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()
|