You need to enable JavaScript to run this app.
导航
方案集成(软件应用)
最近更新时间:2025.07.02 17:44:27首次发布时间:2024.07.17 15:35:25
我的收藏
有用
有用
无用
无用

本文档将介绍如何结合火山引擎火山引擎 RTC SDK 和服务端 OpenAPI,快速构建具备超低延时、实时交互能力的对话式 AI 应用。

方案介绍

本方案为你提供了一站式集成方案,你可以通过 OpenAPI 快速接入火山引擎的 ASR、LLM 和 TTS 服务,快速实现 RTC 房间内用户与智能体一对一通话。同时也支持接入 MiniMax TTS 、Coze 大模型平台和第三方大模型服务。

适用平台

此集成方案适用于 Android、iOS、Windows、macOS、Linux、Web、Electron、Flutter、微信小程序、Unity、抖音小游戏、React Native 平台。

业务流程

AI 实时互动的实现流程如下图所示:

集成指引

前提条件

  • 已开通 RTC、ASR、TTS 和 LLM 服务并配置权限账号。具体操作,参看前置准备
  • 已生成 RTC SDK 进房鉴权 Token。具体操作,参看使用 Token 完成鉴权

一、实现音视频通话

首先,需要在你的应用中集成 RTC SDK,实现基础的音视频通话能力,为 AI 智能体的加入创建环境。主要分为以下三个核心环节:

alt

快速实现

你可以参考各平台的详细集成文档,快速实现音视频通话:

你也可以参看示例项目获取开源项目代码,了解如何快速构建音视频通话房间。

关键配置与注意事项

  • 设置流的订阅与发布方式:推荐使用默认配置,即自动订阅音频流和自动发布音频流。若需手动控制订阅和发布音频流,可以在调用 joinRoom 时将 isAutoPublishisAutoSubscribeAudio 设置为 false,并使用 subscribeStreampublishStream 手动订阅或发布音频流。

  • 若对音质有高要求:在创建房间时,房间模式默认使用云端会议模式,该模式下 SDK 会专注提炼语音信号,过滤环境噪声,保证通话质量。若你搭建的 AI 对话场景对音频质量有更高要求,如需要播放音乐,可调用 setAudioScenario 将手机音量类型切换为媒体音量。

  • 若需静音 SDK 用户:建议使用 muteAudioCapture 静音麦克风以保证最低的切换延迟。不建议使用 stopAudioCapture,该操作可能会导致声音卡顿或变声。

二、发起 AI 实时对话

构建音视频通话房间后,你可调用启动智能体 StartVoiceChat 快速接入 ASR、LLM 和 TTS 服务将智能体加入该房间,实现用户与智能体一对一通话。

说明

推荐在编码前,先通过无代码跑通 Demo 进行调试。调试成功后点击页面右上角的接入 API 复制智能体请求示例代码,粘贴到项目中。

如果发起 OpenAPI 接口请求时返回 200,但是智能体未进入房间或进入房间未正常工作,可参考智能体未进房或未正常工作?

至此,你已实现房间内真人用户和智能体的实时对话。

三、结束对话、退出房间

默认情况下,若房间内与智能体对话真人用户退房,180 s 后智能体任务会自动停止,但该 180s 内仍会计费。建议房间内用户退出房间后,及时调用 StopVoiceChat 接口关闭智能体任务。你也可以设置 onRemoteAudioPropertiesReport 回调实时监听真人用户的音量信息,调整智能体任务关闭逻辑。

对话结束后,为避免不必要的资源消耗和计费,你可以:

  • 调用 StopVoiceChat 接口结束当前服务端智能体任务。
  • 在客户端调用 leaveRoom 使真人用户离开房间。
  • 在客户端调用 destroyRTCVideo 销毁房间,释放资源。

四、进阶功能

在实现基本的 AI 对话能力后,你还可以集成更多高级功能来提升用户体验,例如实时字幕、打断智能体、接收智能体状态、实时视觉理解等。支持的功能及具体实现可参看体验进阶

FAQ

智能体未进房或未正常工作?

声音采集会把智能体说话内容采集到,智能体开始自问自答。

可通过降低音量增益值,减少少噪音引起的 ASR 错误识别。具体参看如何提升语音识别准确性?

发起新一轮对话时,智能体能否携带上一轮对话的上下文?

可以。在发起新一轮对话时,你可以将上一轮对话的上下文信息作为 UserPrompts 参数的值传入。