本文将介绍如何基于火山引擎 RTC SDK 实现实时对话式 AI 解决方案。
火山引擎实时对话式 AI 场景方案,通过集成 RTC SDK 与服务端 OpenAPI 接口,实现超低延时 AI 实时对话。本方案为您提供了一站式集成方案,您可以通过 OpenAPI 快速接入火山引擎 ASR、LLM 和 TTS 服务,快速实现 RTC 房间内用户与智能体一对一通话。同时你也可以根据业务实际需求,接入 ASR、 MiniMax TTS 、Coze 大模型平台和第三方大模型服务。
AI 实时互动的实现流程如下图所示:
RTC 提供 Android、iOS、Windows、macOS、Linux、Web、Electron、Flutter、微信小程序、Unity、抖音小游戏、React Native 等多种客户端 SDK,您可以根据业务实际需求,选择合适的 SDK 进行集成。只需三步即可实现音视频通话:
你可使用包管理工具或手动下载 SDK 包获取 SDK 并集成到项目中。
首先你需要创建引擎,对于 Native 平台,调用 createRTCVideo
,对于 Web SDK,调用 createEngine
。然后调用 joinRoom
创建并加入房间。
在创建房间时,推荐使用默认配置,开启自动订阅音频流和自动发布音频流。若你想手动控制订阅、发布音频流,可以在调用 joinRoom
时将 isAutoPublish
和 isAutoSubscribeAudio
设置为 false
,使用subscribeStream
手动订阅音频流,使用publishStream
手动发布音频流。
在创建房间时,房间模式默认使用云端会议模式,该模式下 SDK 会专注提炼语音信号,过滤环境噪声,保证通话质量。若你搭建的 AI 对话场景对音频质量有更高要求,如需要播放音乐,可将手机音量类型切换为媒体音量,可参看通话音量和媒体音量有什么区别?了解两者的区别,详细配置策略可联系技术支持。
注意
创建房间时使用的 RoomId 和 UserId 需要与步骤二中启动智能体任务时传入的 RoomId 和TargetUserId 保持一致才能保证房间内用户与智能体正常通话。
你需要调用 startAudioCapture
开启音频采集,房间内用户说话时会 RTC 会进行音频采集并根据设置判断是否自动发布。
在开启音频采集后,若需要静音 SDK 用户,建议使用 muteAudioCapture
进行操作达到最低时延。不建议使用 stopAudioCapture
实现静音操作,可能会导致声音卡顿或变声。
至此你已成功构建音视频通话房间且客户端用户已进入房间。你也可参看各端集成文档,详细了解如何在不同端实现音视频通话:
你也可以参看示例项目获取开源项目代码,了解最佳实践快速构建音视频通话房间。
在构建音视频通话房间后,你可通过 RTC 提供的启动智能体 OpenAPI 接口快速接入 ASR、LLM 和 TTS 服务将智能体引入该房间,实现在 RTC 房间内用户与智能体一对一通话。
说明
推荐在第一次调用启动智能体接口前,先通过无代码跑通 Demo进行调试。调试成功后点击接入 API可复制智能体请求示例代码粘贴到项目中。
如果发起 OpenAPI 接口请求时返回 200
,但是智能体未进入房间或进入房间未正常工作,可参考集成问题排查。
至此你已实现房间内真人用户和智能体实时对话。
默认情况下,若房间内与智能体对话真人用户退房,180 s 后智能体任务会自动停止,但该 180s 内仍会计费。建议房间内用户退出房间后,及时调用 StopVoiceChat
接口关闭智能体任务。你也可以设置[onRemoteAudioPropertiesReport]回调实时监听真人用户的音量信息,调整智能体任务关闭逻辑。
在用户与智能体互动结束后,你可以:
leaveRoom
使用户离开房间。destroyRTCVideo
销毁房间,释放资源。在实现基本的 AI 对话功能后,你可能需要实时字幕、智能打断、接收智能体状态、实时视觉理解等进阶功能来增强用户体验、实时监控智能体状态等。目前支持功能可参看体验进阶。
如果调用智能体接口 HTTP 返回 200
,但是智能体未进入房间或进入房间未正常工作,可参考以下步骤排查:
进入实时对话式 AI Web 体验 Demo进行 AI 对话:
注意
若 ASR、TTS 或 LLM 使用火山引擎服务,请检查是否在使用免费版。如在使用免费版请前往控制台确认免费版额度是否用完。如已开通正式版,请确认是否购买资源包。
服务名称 | 需获取参数 | |
---|---|---|
ASR | 火山引擎流式语音识别 | |
火山引擎流式语音识别大模型 | ||
TTS | 火山引擎语音合成 | |
火山引擎语音合成大模型流式输入流式输出 | ||
火山引擎声音复刻大模型非流式输入流式输出 | ||
火山引擎声音复刻大模型流式输入流式输出 | ||
MiniMax |
| |
LLM | 火山方舟平台 | 自定推理点 EndPointID 或智能体应用 ID。前往火山方舟控制台获取。 |
Coze 平台 |
| |
第三方大模型 | URL:第三方大模型 URL。 |
VoiceChat
角色权限。若显示未开通可按照提示一键开通。若按照以上步骤排查后智能体依然无法正常工作,请联系技术支持提供 OpenAPI 接口请求的 RequestId 进行排查。