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

实时音视频

复制全文
进阶功能
配置与动态更新会话参数
复制全文
配置与动态更新会话参数

本文分别介绍在低负载(WebSocket)和高质量(RTC)集成方案中,如何通过客户端 API 在会话维度配置和更新硬件对话智能体的配置。会话配置决定了智能体在当前会话中的行为,包括语音识别(ASR)、大模型(LLM)、语音合成(TTS)以及打断策略等。

概述

硬件对话智能体支持在会话的不同阶段对参数进行配置和更新,以满足不同业务场景的需求。

  • 会话初始化配置
    在建立会话连接并开始第一轮对话之前,客户端可以通过 API 设置本次会话的初始参数。初始化配置通常包括:
    • 音频参数:如音频编码格式(Codec)等。
    • 基础配置(Config):如 ASR、LLM、TTS 服务及其参数。
    • 智能体配置(Agent Config):如欢迎语、打断模式、回答模式等。
  • 会话配置动态更新
    在会话进行过程中,客户端可以根据用户的实时指令或业务逻辑的变化,动态修改部分会话参数,而无需重新建立连接。变更后的配置不会中断当前的回复过程,而是从下一次回复开始应用。

    说明

    目前仅低负载方案(WebSocket)支持会话配置动态更新

低负载方案(WebSocket)

会话初始化配置

在建立会话连接并开始第一轮对话时,通过 volc_start 接口设置初始会话参数(包含音频 codec、config、agentconfig)。
配置示例
volc_opt_t 结构体中,通过 params 字段传入 JSON 格式的配置参数。详细参数说明,请参见更新智能体 AibotUpdate

{
    "event_id": "event_456",
    "type": "session.update",
    "session": {
        "object": "realtime.session",
        "Config": {
            "ASRConfig": {
                "Provider": "volcano",
                "ProviderParams": {
                    "ApiResourceId": "volc.bigasr.sauc.duration",
                    "Mode": "bigmodel"
                },
                "VADConfig": {
                    "AIVAD": true
                },
                "TurnDetectionMode": 0
            },
            "LLMConfig": {
                "Mode": "CozeBot",
                "CozeBotConfig": {
                    "Url": "https://api.coze.cn",
                    "BotId": "75739535xxxxx478720",
                    "APIKey": "saXXXXXXXXRPne",
                    "Parameters": {
                        "deviceID": "xxxxxx"
                    }
                }
            },
            "TTSConfig": {
                "Provider": "volcano_bidirection",
                "ProviderParams": {
                    "ResourceId": "volc.service_type.10029",
                    "audio": {
                        "voice_type": "zh_female_yuanqinvyou_moon_bigtts"
                    }
                }
            },
            "SubtitleConfig": {
                "DisableRTSSubtitle": true
            },
            "InterruptMode": 0
        },
        "agent_config": {
            "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?",
            "Burst": {
                "Enable": true,
                "BufferSize": 5000,
                "Interval": 10
            },
            "AnsMode": 3
        },
        "input_audio_format": "g711_alaw",
        "output_audio_format": "g711_alaw"
    }
}

会话配置动态更新

会话开始后,可通过 volc_update 接口动态修改部分会话参数,无需重启会话。

说明

变更后的配置不影响当前智能体回复,而是影响下一次回复。

支持更新的参数

通过 config_json 传入 JSON 格式的新的会话参数。目前支持动态修改的参数结构如下:

Config (基础配置)
├── LLMConfig (大模型配置)
│   ├── SystemMessages (系统提示词)
│   ├── UserPrompts (用户提示词)
│   ├── Tools (Function Calling 工具)
│   └── VisionConfig (视觉理解配置)
├── TTSConfig (语音合成配置)
│   ├── Provider (语音合成服务)
│   ├── ProviderParams (服务参数,支持音色 voice_type、语速 speed_ratio 等)
│   └── IgnoreBracketText (括号内容过滤配置)
└── InterruptMode (语音打断模式,0:开启,1:关闭)

具体参数说明,请参见更新智能体 AibotUpdate

参数修改说明

参数

场景

配置方式

SystemMessages /
UserPrompts

动态调整智能体的角色设定、回复风格,或注入特定的对话背景信息。

  • 传入新的字符串数组(SystemMessages)或对象数组(UserPrompts)进行全量覆盖。
  • 传入 null 或空数组 [] 清除当前预设内容。

Tools

根据业务需求开启、更新或关闭 Function Calling 工具列表。

  • 传入包含新工具定义的数组进行全量覆盖。
  • 传入 null 或空数组 [] 关闭 Function Calling 功能。

VisionConfig

在对话过程中根据需要动态管理视觉理解能力。

  • Enable 设置为 true 并配置 SnapshotConfig 以开启或更新。(不支持修改 StorageConfig。)
  • VisionConfig 设置为 null 或将 Enable 设置为 false 以关闭。

TTSConfig

切换语音合成服务、音色,或实时调整语速、音量等表现。

  • 仅修改当前服务参数:仅需通过 ProviderParams 传入要修改的字段(如 speed_ratio)。
  • 切换服务:必须同时传入 ProviderProviderParams 及其支持的字段以覆盖旧配置。

IgnoreBracketText

过滤 LLM 返回内容中的括号文字(如情绪标记、动作描写)再进行语音合成,使对话更自然。

  • 传入包含指定枚举值的数组(如 [1, 2])进行设置或更新。
  • 传入 null 或空数组 [] 取消过滤。

InterruptMode

灵活开启或关闭语音打断功能(如播报重要通知时临时关闭)。

  • 传入 0 开启打断(默认)。
  • 传入 1 关闭打断。

使用场景示例

  • 场景 1:更新系统提示词
    例如,在会话过程中动态调整智能体的角色设定或回复风格。

    {
        "event_id": "event_123",
        "type": "session.update",
        "session": {
            "Config": {
                "LLMConfig": {
                    "SystemMessages": [
                        "你是一个性格幽默的旅游助手,善于推荐当地美食。"
                    ]
                }
            }
        }
    }
    
  • 场景 2:切换 TTS 音色
    例如,根据用户偏好将语音切换为特定音色。

    {
        "event_id": "event_456",
        "type": "session.update",
        "session": {
            "Config": {
                "TTSConfig": {
                    "Provider": "volcano_bidirection",
                    "ProviderParams": {
                        "audio": {
                            "voice_type": "zh_male_taocheng_uranus_bigtts"
                        }
                    }
                }
            }
        }
    }
    
  • 场景 3:修改打断模式
    例如,在播报重要通知时临时关闭语音打断功能,确保信息完整传递。

    {
        "event_id": "event_789",
        "type": "session.update",
        "session": {
            "Config": {
                "InterruptMode": 1
            }
        }
    }
    

高质量方案(RTC)

会话初始化配置

高质量方案的会话初始化配置分为“引擎初始化”和“会话启动”两个阶段。

创建引擎实例

使用 volc_create 创建引擎实例,并配置 RTC 连接参数,如设置会话音频 codec。
配置示例
通过 config_json 参数传入如下 JSON 配置。

{
    "ver": 1,
    "iot": {
        "instance_id": "******",
        "product_key": "******",
        "product_secret": "******",
        "device_name": "device_name"
    },
    "rtc": {
        "log_level": 3,
        "audio": {
            "publish": true,
            "subscribe": true,
            "codec": 3
        },
        "video": {
            "publish": false,
            "subscribe": false,
            "codec": 1
        },
        "params": [
            "{\"audio\":{\"codec\":{\"internal\":{\"enable\":1}}}}"
        ]
    }
}

启动会话

使用 volc_start 启动会话,并配置智能体参数(包含 Config、AgentConfig)。
配置示例
volc_opt_t 结构体中,通过 params 字段传入 JSON 格式的配置参数。详细参数说明,请参见更新智能体 AibotUpdate

{
    "Config": {
        "ASRConfig": {
            "Provider": "volcano",
            "ProviderParams": {
                "ApiResourceId": "volc.bigasr.sauc.duration",
                "Mode": "bigmodel"
            },
            "VADConfig": {
                "AIVAD": true
            },
            "TurnDetectionMode": 0
        },
        "LLMConfig": {
            "Mode": "CozeBot",
            "CozeBotConfig": {
                "Url": "https://api.coze.cn",
                "BotId": "75739535xxxxx478720",
                "APIKey": "saXXXXXXXXRPne",
                "Parameters": {
                    "deviceID": "xxxxxx"
                }
            }
        },
        "TTSConfig": {
            "Provider": "volcano_bidirection",
            "ProviderParams": {
                "ResourceId": "volc.service_type.10029",
                "audio": {
                    "voice_type": "zh_female_yuanqinvyou_moon_bigtts"
                }
            }
        },
        "SubtitleConfig": {
            "DisableRTSSubtitle": true
        },
        "InterruptMode": 0
    },
    "AgentConfig": {
        "WelcomeMessage": "我是你的AI助手,有什么需要我为您效劳的吗?",
        "Burst": {
            "Enable": true,
            "BufferSize": 1000,
            "Interval": 10
        },
        "AnsMode": 3
    }
}
最近更新时间:2026.01.04 16:04:19
这个页面对您有帮助吗?
有用
有用
无用
无用