除了标准的 ASR+LLM+TTS 模块化方案,实时对话式 AI 还支持接入“豆包端到端实时语音大模型”。该模型将“听(ASR)、想(LLM)、说(TTS)”三大环节集成于一体,实现从语音输入到语音输出的全链路处理,能够显著降低模块间的处理与传输延迟,为用户带来更流畅、更接近真人的实时对话体验。
更多端到端实时语音大模型介绍,请参见 产品简介。
启用豆包端到端实时语音大模型后,会对以下配置产生影响:
ASRConfig 、TTSConfig 、LLMConfig 将不生效。ASRConfig 、TTSConfig 将不生效。SubtitleConfig.SubtitleMode 设置为 1(不对齐时间戳)。ExternalPromptsForLLM 和 ExternalTextToLLM 指令将不生效。前往豆包语音控制台,开通 豆包端到端实时语音大模型 服务。开通后,在该服务的详情页,获取 APP ID 和 Access Token,后续调用时需要用到。
在实时对话式 AI 场景下,端到端实时语音大模型支持两种工作模式,分别适用于不同场景,计费方式也不同:
| 模式 | 描述 | 适用场景 | ASR+TTS+LLM 计费 |
|---|---|---|---|
| 纯端到端 | 所有对话都由豆包端到端实时语音大模型直接处理并输出文本和音频,完全不经过 LLMConfig 中配置的大模型。 | 追求极致低延迟的纯闲聊场景,如 AI 陪伴、虚拟人互动。 | 统一按 token 计费,由豆包语音收取,具体请参见计费概述 |
| 端到端+LLM 混合编排 | 每一次语音对话都会同时发送给 LLMConfig 配置模型和端到端实时语音大模型。由LLMConfig 判断是否有工具调用需求。如果有就采用 LLMConfig 的输出,否则就用端到端模型的输出。仅支持使用火山方舟大模型。 | 需要兼顾闲聊的低延迟和复杂业务处理能力的场景,如智能客服、AI 游戏 NPC。 | 两部分费用:
|
Config.S2SConfig:必填。端到端实时语音大模型配置。Config.LLMConfig:按需。如果需要调用外部工具处理复杂任务时(如设备控制、实时信息查询),需配置。SubtitleConfig.SubtitleMode:按需。若配置了字幕接收,该字段必须设置为 1。详细参数说明,请参见 StartVoiceChat;也可参见以下配置示例完成配置。
此模式下,ASR、LLM、TTS 都由豆包端到端实时语音大模型直接处理,适用于无工具/函数调用需求的纯闲聊场景,可以提供低延迟和高流畅度的对话体验。
核心配置:
S2SConfig.OutputMode:设置为 0。S2SConfig.ProviderParams.app:填入你在准备工作中获取的 APP ID 和 Access Token。SubtitleConfig.SubtitleMode:若需接收字幕,该字段需设置为 1。请求示例:
{ "AppId": "your_rtc_appid", "RoomId": "your_room_id", "TaskId": "your_task_id", "Config": { "S2SConfig": { "Provider": "volcano", "OutputMode": 0, "ProviderParams": { "app": { "appid": "your_s2s_appid", // 豆包端到端服务的 AppId(必填) "token": "your_s2s_token" // 豆包端到端服务的 AccessToken(必填) } } }, "SubtitleConfig": { "SubtitleMode": 1 // 若开启字幕,必须设为1 } }, "AgentConfig": { "TargetUserId": ["user_A"], "WelcomeMessage": "你好,很高兴认识你,我们可以聊聊天!" } }
此模式适用于需要调用外部工具(如设备控制、实时信息查询)的场景,能兼顾闲聊的低延迟与复杂任务的处理能力。
核心配置:
S2SConfig.OutputMode: 设置为 1。S2SConfig.ProviderParams.app:填入在准备工作中获取的 APP ID 和 Access Token。LLMConfig:必须配置,用于处理端到端模型无法完成的复杂任务。仅支持使用火山方舟大模型。SubtitleConfig.SubtitleMode:若需接收字幕,该字段需设置为 1。请求示例:
{ "AppId": "your_rtc_appid", "RoomId": "your_room_id", "TaskId": "your_task_id", "Config": { "S2SConfig": { "Provider": "volcano", "OutputMode": 1, // 设置为混合模式(必填) "ProviderParams": { "app": { "appid": "your_s2s_appid", "token": "your_s2s_token" } } }, "LLMConfig": { // 复杂任务处理的大模型配置(必填) "Mode": "ArkV3", "EndPointId": "your_ark_endpoint_id", "Tools": [ { "type": "function", "function": { "name": "query_weather", "description": "查询指定城市的天气" // ... parameters } } ] }, "FunctionCallingConfig": { // 接收 Function Calling 指令的回调配置 "ServerMessageUrl": "https://your-backend.com/callback", "ServerMessageSignature": "your_signature" } }, "AgentConfig": { "TargetUserId": ["user_B"], "WelcomeMessage": "你好,我可以陪你聊天,也可以帮你查天气哦。" } }
在实现基础功能后,你可以通过配置 S2SConfig.ProviderParams 对象,来深度定制智能体的行为和声音。
详细参数说明,请参见 StartVoiceChat。
打造具有特定人设(如历史人物、动漫角色)的 AI,或需要 AI 采用特定口吻(如专业、幽默)进行交流的场景。
"ProviderParams": { // ... 其他参数 "dialog": { "bot_name": "大灰狼", "system_role": "你是一只又饿又有点笨的大灰狼,正在和迷路的小红帽对话。", "speaking_style": "你的口吻总是气冲冲的,但又有点可爱。" } }
在 tts.speaker 字段中,填入你想使用的音色名称。支持多种精品预设音色:
zh_female_vv_jupiter_bigtts(活泼灵动女声,默认)zh_female_xiaohe_jupiter_bigtts(甜美活泼女声)zh_male_yunzhou_jupiter_bigtts(清爽沉稳男声)通过 asr.extra.end_smooth_window_ms 调整用户说话停顿后,系统判定为一句话结束的时长(单位:毫秒)。
"asr": { "extra": { "end_smooth_window_ms": 2000 // 用户停顿 2000ms 视为一句话结束 } }
当用户需要查询实时信息(如天气、新闻、股价)时,可开启模型的内置联网能力。内置联网是基于火山引擎联网问答 Agent 的融合信息搜索能力。详细说明,请参见 融合信息搜索API。
前置操作
使用联网搜索前需先进行以下操作:
请求示例
"dialog": { "extra": { "enable_volc_websearch": true, // 启用联网搜索 "volc_websearch_api_key": "your_websearch_agent_api_key", // 填入获取的融合信息搜索 API Key "volc_websearch_type": "web_summary", // web_summary-web 信息搜索总结版;web-web搜索版本 "volc_websearch_no_result_message": "哎呀,网络上好像没有找到相关信息呢。" // 无结果时的安抚语 } }