# rtc-aigc-embedded-demo
**Repository Path**: dfrobot/rtc-aigc-embedded-demo
## Basic Information
- **Project Name**: rtc-aigc-embedded-demo
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-29
- **Last Updated**: 2025-06-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

IoT RTC AIGC Demo
欢迎使用IoT RTC AIGC Demo,本文档为您介绍如何使用本Demo。
## 快速入门
### 前置准备
- Linux服务器,且开发环境满足Python 3.8及以上版本。
- 乐鑫 ESP32-S3-Korvo-2 或 AtomS3R 开发板。
- 参考如下流程开通硬件服务。
- 开通火山引擎实时音视频、语音识别、音频合成、火山方舟大模型服务。参看[开通服务](https://www.volcengine.com/docs/6348/1315561)开通相关产品、配置角色策略并获取以下参数值:
- 火山引擎 AK
- 火山引擎 SK
- 实时音视频应用 APPID
- 实时音视频应用 APPKEY
- 语音技术-语音识别-流式语音识别 APPID
- 语音技术-音频生成-语音合成 APPID
- 语音技术-音频生成-语音合成 Voice_type
- 火山方舟大模型 EndPointId
- 配置不同权限账号调用智能体, [创建角色](https://www.volcengine.com/docs/6348/1315561)
- [启用硬件场景配置](https://console.volcengine.com/rtc/aigc/cloudRTC),并使用相应的房间规则
### 运行服务端
> 服务端示例仅供开发者快速体验和演示,请勿在生产环境中使用。生产环境的服务端需要你自行开发。
#### 硬件要求
- PC服务器(Linux 建议使用 ubuntu18.04 及以上版本, 服务端示例程序在 Windows 11 python 3.12, MacOs python 3.9, Ubuntu 24.04 python 3.12实测可以正常运行)
#### 安装服务依赖
```shell
pip install requests
```
#### 下载并配置工程
1. 克隆实时对话式 AI 硬件 Demo 示例
```shell
git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git
```
2. 进入服务端 Demo 目录
```shell
cd rtc-aigc-embedded-demo/server/src
```
3. 设置配置文件
进入服务端配置文件 `rtc-aigc-embedded-demo/server/src/RtcAigcConfig.py`,设置如下参数
```python
# 鉴权 AK/SK。前往 https://console.volcengine.com/iam/keymanage 获取
SK = "WmpCbVl6Y3hOR1JrT************1tTTRZalF4WW1FeE56WQ=="
AK = "AKLTNWQyODQ1MDM5Y***********WRmM2Y2NTJlMTQyZjI"
# 实时音视频 App ID。前往 https://console.volcengine.com/rtc/listRTC 获取或创建
CONFIG_RTC_APPID = "67582ac8******0174410bd1"
# 实时音视频 APP KEY。前往 https://console.volcengine.com/rtc/listRTC 获取
RTC_APP_KEY = "1a6a03723c******222ada877ee13b"
# 大模型推理接入点 EndPointId 前往 https://console.volcengine.com/ark/region:ark+cn-beijing/endpoint?config=%7B%7D 创建
DEFAULT_END_POINT_ID = "ep-2025******160517-hlnzt"
# 音频生成-语音合成 Voice_type,前往 https://console.volcengine.com/speech/service/8 获取
DEFAULT_VOICE_TYPE = "BV007_******ming"
# 语音识别-流式语音识别 APPID 前往 https://console.volcengine.com/speech/service/16 获取
ASR_APP_ID = "884***621"
# 语音识别-流式语音识别 ACCESS TOKEN 前往 https://console.volcengine.com/speech/service/16 获取
ASR_ACCESS_TOKEN = "M_X6X***BeXa1"
# 音频生成-语音合成 APPID,前往 https://console.volcengine.com/speech/service/8 获取
TTS_APP_ID = "884***9621"
# 音频生成-语音合成 ACCESS TOKEN,前往 https://console.volcengine.com/speech/service/8 获取
TTS_ACCESS_TOKEN = "M_X6X***BeXa1"
# 服务端监听端口号,你可以根据实际业务需求设置端口号
PORT = 8080
```
#### 运行服务
在 `rtc-aigc-embedded-demo/server/src`目录下运行服务
```python
python3 RtcAigcService.py
```
### 运行设备端
本文以 Mac 操作系统为例。
#### 硬件要求
- 乐鑫 ESP32-S3-Korvo-2 开发板。
- USB数据线(两条 A 转Micro-B 数据线,一条作为电源线,一条作为串口线)。
- PC(Windows、Linux 或者 macOS)。
#### 乐鑫环境配置
详见[开发环境配置文档](https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/get-started/index.html)
1. 安装 CMake 和 Ninja 编译工具
```shell
brew install cmake ninja dfu-util
```
2. 将 乐鑫 ADF 框架克隆到本地,并同步各子仓(submodule)代码
> **注意:** demo 中使用的 ADF 版本为 [eca11f20e56f9b5321b714da4305e123672d92a9], 对应 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 eca11f20e56f9b5321b714da4305e123672d92a9
```
4. 同步各子仓代码
```shell
git submodule update --init --recursive
```
3. 安装乐鑫 esp32s3 开发环境相关依赖
```shell
./install.sh esp32s3
```
成功安装所有依赖后,命令行会出现如下提示
```shell
All done! You can now run:
. ./export.sh
```
> 对于 macOS 用户,如在上述任何步骤中遇到以下错误:
>
> `
> 可前往访达->应用程序->Python 文件夹,点击`Install Certificates.command` 安装证书。了解更多信息,请参考 安装 ESP-IDF 工具时出现的下载错误。
4. 设置环境变量
> **每次打开命令行窗口均需要运行该命令进行设置**
```shell
. ./export.sh
```
#### 下载并配置工程
1. 将实时对话式 AI 硬件示例工程 clone 到 乐鑫 ADF examples 目录下
1. 进入 esp-adf/examples 目录
```shell
cd $ADF_PATH/examples
```
1. clone 实时对话式 AI 硬件示例工程
```shell
git clone https://github.com/volcengine/rtc-aigc-embedded-demo.git
```
2. 禁用乐鑫工程中的火山组件
1. 进入 esp-adf 目录
```shell
cd $ADF_PATH
```
2. 禁用乐鑫工程中的火山组件
```shell
git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-feat-disable-volc-esp-libs.patch
```
#### 编译固件
1. 进入`esp-adf/examples/rtc-aigc-embedded-demo/client/espressif/esp32s3_demo` 目录下编译固件
1. 进入 esp32s3_demo 目录
```shell
cd $ADF_PATH/examples/rtc-aigc-embedded-demo/client/espressif/esp32s3_demo
```
2. 设置编译目标平台
```shell
idf.py set-target esp32s3
```
3. 设置WIFI账号密码、RTC APPID、服务端地址和端口号
```shell
idf.py menuconfig
```
进入 `Example Configuration` 菜单,在 `WiFi SSID` 及 `WiFi Password` 中填入你的 WIFI 账号和密码,在 `RTC APPID` 中填入你的 RTC APPID (前往 https://console.volcengine.com/rtc/listRTC 获取),在 `AIGENT Server Host` 中填入你的服务端地址和端口号,并保存。
4. 设置开发板型号
```shell
idf.py menuconfig
```
进入 `Audio HAL` 菜单,在 `Audio board` 中选择你的开发板型号。(例如: 方舟开发板选择 `M5STACK-ATOMS3R`),并保存。
5. 编译固件
```shell
idf.py build
```
#### 烧录并运行示例 Demo
1. 打开乐鑫开发板电源开关
2. 烧录固件
```shell
idf.py flash
```
3. 运行示例 Demo 并查看串口日志输出
```shell
idf.py monitor
```
## 进阶阅读
[服务端示例接口说明](server/src/README.md)
## 技术交流
欢迎加入我们的技术交流群或提出Issue,一起探讨技术,一起学习进步。