# rtc-aigc-embedded-demo
**Repository Path**: github_syn/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-23
- **Last Updated**: 2025-04-23
## 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 开发板。
- 由于现场体验时间有限,没有申请帐号完成的话,可以先使用下面临时体验账号进行体验,也可以参考如下流程开通硬件服务。
- 开通火山引擎实时音视频、语音识别、音频合成、火山方舟大模型服务。参看开通服务开通相关产品、配置角色策略并获取以下参数值:
- 火山引擎 AK
- 火山引擎 SK
- 实时音视频应用 APPID
- 实时音视频应用 APPKEY
- 语音技术-语音识别-流式语音识别 APPID
- 语音技术-音频生成-语音合成 APPID
- 语音技术-音频生成-语音合成 Voice_type
- 火山方舟大模型 EndPointId
- 演示示例需要申请加入策略组。Demo目前仅支持G711A编码,需要发送邮件到[Conversational_AI@bytedance.com],主题:“申请加入LLM策略组”内容:您的RTC_APP_ID。可申请多个RTC_APP_ID。如果自行实现OPUS编码,可以直接使用,无需加白
### 运行服务端
> 服务端示例仅供开发者快速体验和演示,请勿在生产环境中使用。生产环境的服务端需要你自行开发。
#### 硬件要求
- PC服务器(Linux 建议使用 ubuntu18.04 及以上版本)
#### 安装服务依赖
```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 获取
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`目录下运行服务
```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. 将 乐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. 同步各子仓代码
```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. 打开设备端配置文件 `rtc-aigc-embedded-demo/client/espressif/esp32s3_demo/main/Config.h`,设置如下参数
```c
// 你的服务端地址:监听端口号
#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. 禁用乐鑫工程中的火山组件
1. 进入 esp-adf 目录
```shell
cd $ADF_PATH
```
2. 禁用乐鑫工程中的火山组件
```shell
git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-fix-disable-volc-engine-in-esp.patch
```
3. 更新AtomS3R开发板补丁
```shell
git apply $ADF_PATH/examples/rtc-aigc-embedded-demo/0001-add-atoms3r-board.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账号密码
```shell
idf.py menuconfig
```
进入 `Example Connection Configuration` 菜单,在 `WiFi SSID` 及 `WiFi Password` 中填入你的 WIFI 账号和密码,并保存。
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
```