本文档将介绍如何结合火山引擎火山引擎 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 SDK,实现基础的音视频通话能力,为 AI 智能体的加入创建环境。主要分为以下三个核心环节:
你可以参考各平台的详细集成文档,快速实现音视频通话:
你也可以参看示例项目获取开源项目代码,了解如何快速构建音视频通话房间。
设置流的订阅与发布方式:推荐使用默认配置,即自动订阅音频流和自动发布音频流。若需手动控制订阅和发布音频流,可以在调用 joinRoom
时将 isAutoPublish
和 isAutoSubscribeAudio
设置为 false
,并使用 subscribeStream
和 publishStream
手动订阅或发布音频流。
若对音质有高要求:在创建房间时,房间模式默认使用云端会议模式,该模式下 SDK 会专注提炼语音信号,过滤环境噪声,保证通话质量。若你搭建的 AI 对话场景对音频质量有更高要求,如需要播放音乐,可调用 setAudioScenario
将手机音量类型切换为媒体音量。
- 如需详细了解两种模式的区别,请参看 通话音量和媒体音量有什么区别?
- 如需了解两种模式的详细配置,请联系技术支持。
若需静音 SDK 用户:建议使用 muteAudioCapture
静音麦克风以保证最低的切换延迟。不建议使用 stopAudioCapture
,该操作可能会导致声音卡顿或变声。
构建音视频通话房间后,你可调用启动智能体 StartVoiceChat 快速接入 ASR、LLM 和 TTS 服务将智能体加入该房间,实现用户与智能体一对一通话。
说明
推荐在编码前,先通过无代码跑通 Demo 进行调试。调试成功后点击页面右上角的接入 API 复制智能体请求示例代码,粘贴到项目中。
如果发起 OpenAPI 接口请求时返回 200
,但是智能体未进入房间或进入房间未正常工作,可参考智能体未进房或未正常工作?。
至此,你已实现房间内真人用户和智能体的实时对话。
默认情况下,若房间内与智能体对话真人用户退房,180 s 后智能体任务会自动停止,但该 180s 内仍会计费。建议房间内用户退出房间后,及时调用
StopVoiceChat
接口关闭智能体任务。你也可以设置onRemoteAudioPropertiesReport
回调实时监听真人用户的音量信息,调整智能体任务关闭逻辑。
对话结束后,为避免不必要的资源消耗和计费,你可以:
StopVoiceChat
接口结束当前服务端智能体任务。leaveRoom
使真人用户离开房间。destroyRTCVideo
销毁房间,释放资源。在实现基本的 AI 对话能力后,你还可以集成更多高级功能来提升用户体验,例如实时字幕、打断智能体、接收智能体状态、实时视觉理解等。支持的功能及具体实现可参看体验进阶。
可通过降低音量增益值,减少少噪音引起的 ASR 错误识别。具体参看如何提升语音识别准确性?。
可以。在发起新一轮对话时,你可以将上一轮对话的上下文信息作为 UserPrompts
参数的值传入。