You need to enable JavaScript to run this app.
文档中心
实时音视频

实时音视频

复制全文
下载 pdf
集成指引
集成到嵌入式硬件
复制全文
下载 pdf
集成到嵌入式硬件
本文主要介绍如何将 AI 对话能力集成到智能硬件中,例如陪伴机器人、智能家居、车载助手等。​
快速体验 Demo​
  • 观看演示视频(以 乐鑫 ESP32-S3-Korvo-2 为例):​
  • ​
    Replay
    Play
    00:00 / 00:00 Live
    00:00
    Fullscreen
    Cssfullscreen
    1x
    • 2x
    • 1.5x
    • 1x
    • 0.75x
    • 0.5x
    Click and hold to drag
    ​
    ​
集成指引​
前提条件​
  • 已联系技术支持,获取嵌入式 Linux 以及 RTOS 相关系统的设备端 SDK。​
集成流程​
集成涉及客户端、业务服务端以及 RTC SDK 之间的协作。下图展示了从通话开始到结束的完整流程:​
​Image​​
核心流程​
1. 启动智能体​
当硬件唤醒后,需要在你的业务服务端进行以下事项:​
  1. 在服务端生成鉴权 Token,以便后续嵌入式硬件进入房间。具体操作,请参见使用 Token 完成鉴权。​
  1. 实现 StartVoiceChat 接口调用逻辑,并传入相关启动参数。详细参数要求,请参见 StartVoiceChat。​
注意​
  • 对于参数 RoomId: 若音视频使用 G711A、G722、AACLC 或 ByteVC1 格式,RoomId 的值需为编码格式 + 房间 ID,如房间 ID 为 ChatRoom001,那么 RoomId 应填写为 G711AChatRoom001、AACLCChatRoom001 或 ByteVC1ChatRoom001。​
  • ​
    ...​
    int start_ret = start_voice_bot(room_info);​
    ...​
    ​
2. 采集并编码音视频信号​
使用设备适配的原生库采集音频信号,并将其编码为指定格式。支持的编码格式如下:​
说明​
  • 若直接输入 PCM 数据,SDK 内部将自动编码为 G711A 传输。​
  • 音频编码格式​
  • ​
  • ​
    编码格式​
    支持采样率​
    声道​
    位深​
    Opus(默认格式)​
    8kHz - 48kHz​
    单声道​
    16bit​
    G711A​
    8kHz​
    单声道​
    16bit​
    G722​
    16kHz​
    单声道​
    16bit​
    AACLC​
    44.1kHz、48kHz​
    单声道​
    16bit​
    ​
  • 视频编码格式:支持 H264(默认格式)、ByteVC1 或 MJPEG。​
3. 加入房间(设备端)​
调用设备端 SDK 的接口,创建并初始化 RTC 引擎,然后加入房间。核心流程如下:​
  1. byte_rtc_create:创建引擎。​
  1. byte_rtc_init():初始化引擎实例。​
  1. byte_rtc_set_audio_codec / byte_rtc_set_video_codec:设置音频/视频编码格式。​
  1. byte_rtc_join_room:加入房间。​
注意​
硬件客户端 RoomId 和 UserId 必须与步骤 1. 启动智能体时传入的值完全一致才能互通。​
4. 进行双向通话​
  • 发送音/视频:循环调用 byte_rtc_send_audio_data / byte_rtc_send_video_data 将采集到的音频/视频信息传给智能体进行对话。默认 20ms 发送一次编码后的音频数据,硬件设备自动订阅对话消息。​
  • 自定义消息:若需执行自定义消息(如打断智能体、Function Calling),可通过 byte_rtc_rts_send_message 发送实时信令。​
  • 接收实时字幕:你可以通过 on_message_received 回调接收实时字幕。​
5. 结束通话​
通话结束后,需要正确释放资源:​
  • 客户端:​
  1. 调用 byte_rtc_leave_room 离开房间。​
  1. 调用 byte_rtc_fini 反初始化引擎。​
  1. 调用 byte_rtc_destroy 销毁引擎实例。​
FAQ​
  • Q1:智能体未进房或未正常工作?​
  • Q2:启动报错 10004?​
  • 本地请求时间问题。请更换设备环境或者更换设备重试。​
  • Q3:如何实现"打开灯光"、"播放音乐"等自定义功能?​
  • 可使用 Function Calling 功能实现,调用你编写的自定义行为接口(如打开灯光),详情参看 Function Calling。​
  • Q4:硬件加入房间后,日志有字幕,但是听不到声音?​
注意​
开启配置后,若音视频使用 G711A、G722、AACLC 或 ByteVC1 格式,RoomId 的值需为:编码格式+房间 ID,如房间 ID 为 ChatRoom001,那么 RoomId 应填写为 G711AChatRoom001、AACLCChatRoom001 或 ByteVC1ChatRoom001。​
  • Q5:硬件音量太小,如何调整?​
  • 可前往 rtc-aigc-embedded-demo/client/espressif/esp32s3_demo/main/VolcRTCDemo.c 文件修改 audio_hal_set_volume 的值,取值范围为 0-100。​
  • Q6:硬件端启动后报错 ALGORITHM_STREAM: Failed to load models 提示模型加载失败?​
  • 乐鑫侧报错,不影响使用。​
  • Q7:硬件启动后报错 Not found right xTaskCreateRestrictedPinnedToCore?​
  • 请按以下步骤操作:​
  • ​
    cd $IDF_PATH​
    git apply $ADF_PATH/idf_patches/idf_v5.4_freertos.patch​
    ​
​
最近更新时间:2026.10.12 17:46:04
这个页面对您有帮助吗?
有用
有用
无用
无用