- Linux服务器,且开发环境满足Python 3.8及以上版本。
- 乐鑫 ESP32-S3-Korvo-2 或 AtomS3R 开发板。
- 由于现场体验时间有限,没有申请帐号完成的话,可以先使用下面临时体验账号进行体验,也可以参考如下流程开通硬件服务。
- 开通火山引擎实时音视频、语音识别、音频合成、火山方舟大模型服务。参看开通服务开通相关产品、配置角色策略并获取以下参数值:
- 火山引擎 AK
- 火山引擎 SK
- 实时音视频应用 APPID
- 实时音视频应用 APPKEY
- 语音技术-语音识别-流式语音识别 APPID
- 语音技术-音频生成-语音合成 APPID
- 语音技术-音频生成-语音合成 Voice_type
- 火山方舟大模型 EndPointId
- 配置不同权限账号调用智能体, 创建角色
- 演示示例需要申请加入策略组。Demo目前仅支持G711A编码,需要发送邮件到[[email protected]],主题:“申请加入LLM策略组”内容:您的RTC_APP_ID。可申请多个RTC_APP_ID。如果自行实现OPUS编码,可以直接使用,无需加白
- 开通火山引擎实时音视频、语音识别、音频合成、火山方舟大模型服务。参看开通服务开通相关产品、配置角色策略并获取以下参数值:
服务端示例仅供开发者快速体验和演示,请勿在生产环境中使用。生产环境的服务端需要你自行开发。
- PC服务器(Linux 建议使用 ubuntu18.04 及以上版本)
pip install requests
-
克隆实时对话式 AI 硬件 Demo 示例
git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git
-
进入服务端 Demo 目录
cd rtc-aigc-embedded-demo/server/src
-
设置配置文件
进入服务端配置文件
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
在 rtc-aigc-embedded-demo/server/src
目录下运行服务
python3 RtcAigcService.py
本文以 Mac 操作系统为例。
-
乐鑫 ESP32-S3-Korvo-2 开发板。
-
USB数据线(两条 A 转Micro-B 数据线,一条作为电源线,一条作为串口线)。
-
PC(Windows、Linux 或者 macOS)。
详见开发环境配置文档
-
安装 CMake 和 Ninja 编译工具
brew install cmake ninja dfu-util
-
将 乐ixin ADF 框架克隆到本地,并同步各子仓(submodule)代码
注意: demo 中使用的 ADF 版本为 [0d76650198ca96546c40d10a7ce8963bacdf820b], 对应 IDF 版本为 [v5.4], 请确保 ADF 版本与 IDF 版本匹配。 1. clone 乐鑫ADF 框架
```shell
git clone https://github.com/espressif/esp-adf.git // cloneADF框架
```
2. 进入esp-adf目录
```shell
cd esp-adf
```
3. 切换到乐鑫ADF指定版本
```shell
git reset --hard 0d76650198ca96546c40d10a7ce8963bacdf820b
```
4. 同步各子仓代码
```shell
git submodule update --init --recursive
```
-
安装乐鑫 esp32s3 开发环境相关依赖
./install.sh esp32s3
成功安装所有依赖后,命令行会出现如下提示
All done! You can now run: . ./export.sh
对于 macOS 用户,如在上述任何步骤中遇到以下错误:
<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:xxx)
可前往访达->应用程序->Python 文件夹,点击
Install Certificates.command
安装证书。了解更多信息,请参考 安装 ESP-IDF 工具时出现的下载错误。 -
设置环境变量
每次打开命令行窗口均需要运行该命令进行设置
. ./export.sh
-
将实时对话式 AI 硬件示例工程 clone 到 乐鑫 ADF examples 目录下
- 进入 esp-adf/examples 目录
cd $ADF_PATH/examples
- clone 实时对话式 AI 硬件示例工程
git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git
-
打开设备端配置文件
rtc-aigc-embedded-demo/client/espressif/esp32s3_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** **** **"
-
禁用乐鑫工程中的火山组件
- 进入 esp-adf 目录
cd $ADF_PATH
- 禁用乐鑫工程中的火山组件
git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch
- 更新AtomS3R开发板补丁
git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-add-atoms3r-board.patch
-
进入
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
- 设置编译目标平台
idf.py set-target esp32s3
- 设置WIFI账号密码
idf.py menuconfig
进入
Example Connection Configuration
菜单,在WiFi SSID
及WiFi Password
中填入你的 WIFI 账号和密码,并保存。- 设置开发板型号
idf.py menuconfig
进入
Audio HAL
菜单,在Audio board
中选择你的开发板型号。(例如: 方舟开发板选择M5STACK-ATOMS3R
),并保存。- 编译固件
idf.py build
-
打开乐鑫开发板电源开关
-
烧录固件
idf.py flash
-
运行示例 Demo 并查看串口日志输出
idf.py monitor