本指南旨在帮助您将高质量方案设备端 SDK移植到新的硬件或操作系统平台上,目标是在您的目标平台上构建出 volc_conv_ai_a 静态库并跑通连接测试。
注意
SDK 移植依赖的volc_rtc_engine 为闭源库。目前 SDK 已内置 macOS、ESP32-S3 和 ESP32-P4 平台的静态库。如果您计划移植到以上平台之外的其他硬件或操作系统,请先提交 工单 联系我们,获取适配您目标架构的静态库文件。
请通过 Git 克隆仓库并进入指定目录:
# 1. 克隆仓库 git clone https://github.com/volcengine/ConversationalAI-Embedded-Kit-2.0.git # 2. 进入 SDK 目录 cd ConversationalAI-Embedded-Kit-2.0/volc_conv_ai
进入 volc_conv_ai 目录后,您将看到如下文件结构:
. ├── cmake/ # 构建脚本目录 (common.cmake, linux.cmake 等) ├── inc/ # 头文件目录 ├── osal/ # 系统抽象层(OSAL) │ ├── inc/ # OSAL 接口定义 │ └── src/ # OSAL 参考实现(包含 Linux 等) ├── sample/ # 示例代码目录 (sample.c) ├── src/ # 源码目录(包含引擎、工具库) ├── third_party/ # 第三方依赖 ├── CMakeLists.txt # 主构建脚本 └── README.md
移植工作主要分为两部分:引用现有的基础库,以及实现特定平台的适配代码。
以下库代码已准备就绪,您只需在构建脚本中直接引用即可:
volc_rtc_engine(位于 src/transports/high_quality/third_party/volc_rtc_engine_lite),负责高质量方案音视频传输。说明
确保该目录下包含与您的平台适配的静态库文件,并在构建脚本中引用它。
cmake/common.cmake 中归类),直接使用即可。mbedtls:用于加密传输(通常需作为外部依赖引入)。cJSON:用于 JSON 解析(源码位于 src/util/cJSON)。您需要针对目标平台完成以下开发工作:
osal/inc 中的接口定义,实现线程、互斥锁、内存分配等系统调用。
osal/src目录下已提供了 Linux 等平台的参考实现。
请参考 cmake/linux.cmake 脚本,按照以下步骤构建静态库 volc_conv_ai_a:
脚本内包含详细注释,可作为实施参考。
volc_conv_ai_a 静态库。我们提供了 sample/sample.c 用于验证 Transport 层(传输层)是否工作正常。
修改 sample/sample.c 文件中的下列宏定义,填入您的设备鉴权信息:
参考获取开发凭证获取相关信息。
#define CONFIG_VOLC_BOT_ID "xxxx" #define CONFIG_VOLC_INSTANCE_ID "xxxx" #define CONFIG_VOLC_PRODUCT_KEY "xxxx" #define CONFIG_VOLC_PRODUCT_SECRET "xxxx" #define CONFIG_VOLC_DEVICE_NAME "xxxx"
以 Linux 环境为例:
# 1. 编译 mkdir build && cd build cmake .. make # 2. 运行 ./test_sample
对于其他平台,请参考
CMakeLists.txt中的test_sample部分修改构建配置。
如果终端输出如下日志,说明网络连接和鉴权成功,移植顺利完成:
Volc Engine connected [INF|volc_rtc.c:184] remote user joined xxxxx elapsed 0 ms Volc Engine event: 0 火山引擎测试。 ...