You need to enable JavaScript to run this app.
实时音视频

实时音视频

复制全文
集成到应用
集成音视频互动智能体
复制全文
集成音视频互动智能体

本文将引导您搭建一个最基础的音视频互动智能体应用,实现真人用户与 AI 智能体实时对话。

准备工作

  1. 登录实时音视频控制台
    1. 开通实时音视频服务。
    2. 再切换至音视频互动智能体,开通该服务。开通后,系统会自动为您创建一个默认应用(如 defaultAIAgentAppName),并赠送您一定额度的免费 Tokens 资源包。
      Image
  2. 使用音视频互动智能体的应用 AppId 生成 RTC 鉴权 Token。

    注意

    建议先使用默认应用的 AppId。赠送的 Tokens 仅对音视频互动智能体的系统默认创建应用生效,您后续自行创建的其他应用无法使用此免费额度。

集成步骤

第一步:​实现音视频通话

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

快速实现

请根据您的客户端平台(iOS、Android、Web 等),集成 RTC SDK 实现音视频通话能力。

注意事项
  • 订阅或发布流:推荐使用默认的自动发布/订阅音频流设置。
  • 音质要求:若场景中包含音乐等非纯人声内容,建议调用 setAudioScenario 切换到媒体音量模式,以获得更高保真度的音质。
  • 静音用户:如需让用户静音,请使用 muteAudioCapture 静音麦克风以保证最低的切换延迟。不建议使用 stopAudioCapture,该操作可能会导致声音卡顿或变声。

第二步:​发起 AI 实时对话

构建音视频通话后,在服务端调用 StartVoiceChat,接入音视频互动智能体,实现用户与智能体通话。

  • OpenAPI 调用方法(必须鉴权):如何调用 OpenAPI

  • 完整请求体示例:

    说明

    以下示例以 LLM、TTS、ASR 均使用火山服务为例,如需替换为其他 AI 服务,可参见附录:快速生成 StartVoiceChat 请求示例

    必须替换以下参数:

    • AppIdRoomIdTargetUserId:替换为在准备工作中生成 Token 时使用的 AppIdRoomId、和 SDK 真人用户 UserId
    • AgentConfig.UserId:为音视频互动智能体 ID,由您自定义,用户标识该智能体。
    {
      "AppId": "68e*****477",
      "RoomId": "ChatRoom01",
      "TaskId": "ChatTask01", 
      "Config": {
        "ASRConfig": {
          "Provider": "volcano",
          "ProviderParams": {
            "Mode": "bigmodel",
            "StreamMode": 0
          },
          "VADConfig": {
            "SilenceTime": 600,
            "AIVAD": true
          },
          "InterruptConfig": {}
        },
        "LLMConfig": {
          "Mode": "ArkV3",
          "ModelName": "doubao-seed-1-8-251215",
          "SystemMessages": [
            "##人设
    你是一个全能的超级助手,具备强大的知识库、情感理解能力和解决问题的能力。你的目标是高效、专业、友好地帮助用户完成各类任务,包括但不限于日常生活、工作安排、信息检索、学习辅导、创意写作、语言翻译和技术支持等;
    
    ##约束
    始终主动、礼貌、有条理;
    回答准确但不冗长,必要时可提供简洁总结+详细解释;
    不清楚的任务会主动澄清,不假设、不误导。"
          ],
          "HistoryLength": 10,
          "ThinkingType": "disabled",
          "VisionConfig": {
            "SnapshotConfig": {},
            "StorageConfig": {
              "TosConfig": {}
            }
          }
        },
        "TTSConfig": {
          "Provider": "volcano_bidirection",
          "ProviderParams": {
            "Credential": {
              "ResourceId": "seed-tts-1.0"
            },
            "VolcanoTTSParameters": "{"req_params":{"speaker":"ICL_zh_female_wuxi_tob","audio_params":{"speech_rate":0}}}"
          }
        },
        "SubtitleConfig": {},
        "InterruptMode": 0,
        "FunctionCallingConfig": {},
        "WebSearchAgentConfig": {},
        "MemoryConfig": {},
        "MusicAgentConfig": {}
      },
      "AgentConfig": {
        "TargetUserId": ["Huoshan01"],
        "UserId": "ChatBot01",
        "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?",
        "Burst": {
          "Enable": false,
          "BufferSize": 0,
          "Interval": 0
        },
        "VoicePrint": {
          "MetaList": null,
          "VoicePrintList": null
        }
      }
    }
    
  • 快速构建请求参数:参考附录:快速生成 StartVoiceChat 请求示例

至完成此步骤后,真人用户就能在房间内听到智能体的欢迎语,并开始实时对话了。

第三步:结束对话,释放资源

默认情况下,若真人用户退房,180 s 后智能体任务会自动停止,但该 180s 内仍会计费。对话结束后,为避免不必要的资源消耗和计费,请务必执行以下操作:

  1. (服务端)调用 StopVoiceChat 接口结束智能体任务。
  2. (客户端)调用 leaveRoom 使真人用户离开房间。
  3. (客户端)调用 destroyRTCEngine 销毁 RTC 引擎实例,释放相关资源。

进阶功能

在实现了基础对话能力后,您可以探索更多高级功能来丰富用户体验,例如:

  • 实时字幕:将对话内容实时转为文字显示。
  • 打断智能体:允许用户在智能体说话时随时插话。
  • 视觉理解:让智能体能够“看到”并理解视频画面内容。

更多功能及实现方法,请参见进阶功能

附录:快速生成 StartVoiceChat 请求示例

为了简化开发流程,您可以在控制台快速生成 StartVoiceChat 接口的核心配置代码。

  1. 在控制台生成核心配置代码**。**

    1. 前往音视频互动智能体-我的智能体,单击创建智能体
    2. 按照界面提示,并按需完成各项配置后,单击右上角的保存
    3. 回到智能体管理页面,找到您创建的智能体,单击代码示例并复制。
      // --- 这是从控制台复制的【配置模板】 ---
      {
        "Config": {
          // ... ASRConfig, LLMConfig, TTSConfig等详细配置 ...
        },
        "AgentConfig": {
          "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?",
          // ... 其他生成的配置 ...
        }
      }
      
  2. 构建完整的请求体。

    控制台生成的代码是一个配置模板,它只包含了 ConfigAgentConfig 对象的部分内容,并非一个完整的、可直接发送的 API 请求体。您必须在此基础上,手动补充顶层的必选参数 AppIdRoomIdTaskId;以及AgentConfig 内的身份标识参数UserIdTargetUserId,才能构成一个有效的请求。

    {
      // --- 1. 补充的顶层参数 ---
      "AppId": "68ef27*****477",   //需要与生成 RTC 鉴权 Token 时使用的 AppId 一致
      "RoomId": "ChatRoom01",      // 需要与生成 RTC 鉴权 Token 时使用的 RoomId 一致
      "TaskId": "ChatTask01",     // 自定义,用来标识该任务
    
      // --- 从控制台粘贴的核心配置 ---
      "Config": {
        "ASRConfig": {
          // ...
        },
        "LLMConfig": {
          // ...
        },
        "TTSConfig": {
          // ...
        }
        // ...
      },
      "AgentConfig": {
        // --- 2. 补充的Agent身份与目标参数 ---
        "UserId": "ChatBot01",           // 智能体 ID,有您自定义
        "TargetUserId": ["Huoshan01"],   // 真人用户 ID。需与生成 RTC 鉴权 Token 时使用的 UserId 一致,目前仅支持传入一个
    
        // --- 以下是控制台生成的部分 ---
        "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?",
        "Burst": {
          "Enable": false,
          "BufferSize": 0,
          "Interval": 0
        },
        "VoicePrint": {
          "MetaList": null,
          "VoicePrintList": null
        }
      }
    }
    
最近更新时间:2025.12.26 00:14:44
这个页面对您有帮助吗?
有用
有用
无用
无用