帮你快速理解、总结文档立即下载

主动送文本给 LLM 或者 TTS

最近更新时间:2026-10-29 21:43:33
我的收藏

功能概述

大语言模型(LLM)本身并不支持主动输出,需要业务侧基于一定规则主动触发 AI 说话,从而提升实时互动中的沉浸感。例如:用户长时间没有说话,让 AI 主动追问一句;业务侧检测到订单发货、时间到点等关键事件时,让 AI 立刻向用户播报提醒。
TRTC AI 实时对话提供三类 AI 主动说话能力:
能力
实现方式
特点
主动调用 LLM
任务运行中,通过控制任务接口下发文本注入指令(InvokeLLM)。
注入文本进入对话上下文,触发一轮 LLM 回复;回复结合上下文动态生成,经 TTS 合成播报。
文本直送 TTS
任务运行中,通过控制任务接口下发文本播报指令(InvokeTTS)。
文本不经过 LLM 推理,直接由 TTS 合成播报,AI 说出的内容与业务下发的一字不差。
固定话术播报
创建任务时通过 DialogConfig 配置欢迎语、静音追问。
直接播报固定文本,由后台在对应时机自动触发,无需业务侧运行时干预。
说明:
上述文本注入能力面向 Cascade(三段式) 模式;S2S(端到端) 模式下语音理解与生成由端到端模型完成,不存在独立的 LLM / TTS 段。

主动调用 LLM(文本注入)

使用方式

任务运行期间,业务后端通过控制任务接口(任务生命周期五类标准操作之一)下发 Command=InvokeLLM 指令:
注入的文本进入当前对话上下文,触发一轮 LLM 回复;
LLM 基于上下文(含注入文本)生成回复,回复文本经 TTS 合成后推入房间播报;
回复内容可通过客户端字幕事件与服务端 LLM 回复回调获取(见下文)。
该接口同时支持强制打断指令(Interrupt)与文本直送 TTS 指令(InvokeTTS),三者共用同一接口,详细参见下文及 (客户端)打断指令。

输入参数

参数名
必选
类型
描述
SdkAppId
是
Integer
TRTC 应用 ID。
TaskId
是
String
任务 ID。
Command
是
String
指令名:InvokeLLM。
InvokeLLM
条件必填
Object
Command=InvokeLLM 时必填,字段见下表。
InvokeLLM 对象:
字段名
必选
类型
描述
Content
是
String
注入的文本内容,长度 ≤ 1000。
Priority
否
Integer
优先级,决定注入文本与当前交互的冲突处理策略:
1=高优先级;
2=中优先级;
3=低优先级;
各个档的具体行为详细参见 Priority 优先级说明。

Priority 优先级说明

InvokeLLM 与 InvokeTTS 共用同一套 Priority 优先级定义,用于处理传入文本与 AI 当前正在进行的交互之间的冲突:
Priority
优先级
行为
1
高优先级
立即终止当前 AI 的交互(例如正在进行的播报),并立即执行传入的指令。对于 InvokeTTS,会立即播报指定文本;对于 InvokeLLM,会立即将文本注入 LLM 并触发新一轮回复的生成与播报。
2
中优先级
等当前交互结束后,再播放传入的文本内容。
3
低优先级
若正在交互则直接丢弃传入文本;未在交互则播放传入的文本内容。
选型建议:
紧急提醒(例如风控告警、审核拦截提示)用高优先级即时插播;一般性事件通知用中优先级排队播报;可有可无的背景信息用低优先级,宁可不播也不打断当前对话。

请求示例

{
"SdkAppId": 1400000000,
"TaskId": "-nG0jIFU7q3wqZnqm8xB5TY0n43U5rLb...",
"Command": "InvokeLLM",
"InvokeLLM": {
"Content": "提醒用户订单已发货",
"Priority": 1
}
}

回复的获取

获取方式
说明
客户端(字幕事件)
LLM 回复文本通过字幕事件实时下发,端侧直接整句渲染,详细参见 (客户端)实时字幕。
服务端(LLM 回复回调)
LLM 单轮回复完成时,回调推送该轮终态完整文本(含轮次 ID),详细参见 AI 对话回调事件。

主动调用 TTS(文本直送播报)

使用方式

任务运行期间,业务后端通过控制任务接口下发 Command=InvokeTTS 指令:
下发的文本不经过 LLM 推理,直接送 TTS 合成,音频由回推机器人推入 TRTC 房间播报;
AI 说出的内容与业务下发的文本一字不差,适合需要精确控制播报内容的场景:系统公告、审核拦截提示、运营活动话术、固定播报文案等;
播报遵循统一的打断控制——播报过程中用户开口(自动打断模式)或下发 Interrupt 指令即可打断。

与 InvokeLLM 的区别

对比项
InvokeLLM(送 LLM)
InvokeTTS(送 TTS)
链路
文本注入上下文 → LLM 动态生成回复 → TTS 播报
文本直接送 TTS 合成播报,不经过 LLM。
播报内容
LLM 结合上下文动态生成,内容不确定。
业务下发的原文,一字不差。
典型用途
让 AI 结合上下文主动开口、事件提醒转述。
公告、提示、运营话术等固定内容的精确播报。

输入参数

参数名
必选
类型
描述
SdkAppId
是
Integer
TRTC 应用 ID。
TaskId
是
String
任务 ID。
Command
是
String
指令名:InvokeTTS(不区分大小写)。
InvokeTTS
条件必填
Object
Command=InvokeTTS 时必填,字段见下表。
InvokeTTS 对象:
字段名
必选
类型
描述
Content
是
String
播报的文本内容,长度 ≤ 1000。
Priority
否
Integer
优先级,决定播报文本与当前交互的冲突处理策略:
1=高优先级;
2=中优先级;
3=低优先级;
各档具体行为详细参见 Priority 优先级说明。

请求示例

{
"SdkAppId": 1400000000,
"TaskId": "-nG0jIFU7q3wqZnqm8xB5TY0n43U5rLb...",
"Command": "InvokeTTS",
"InvokeTTS": {
"Content": "今天你有什么想关注的",
"Priority": 1
}
}

播报效果的获取

获取方式
说明
客户端(音频流)
订阅回推机器人的音频流即可听到播报内容。
客户端(状态事件)
播报期间机器人状态流转为:说话中,播报完成流转为:已说完,详细参见 (客户端)接收 AI 机器人状态。
服务端(状态回调)
通过 AI 状态流转回调跟踪播报起止,详细参见 AI 对话回调事件。

固定话术播报(欢迎语与静音追问)

固定话术无需 LLM 动态生成,由后台在特定时机直接送 TTS 播报。通过创建任务时的 DialogConfig 配置:
字段名
必选
类型
描述
WelcomeMessage
否
String
欢迎语,主播进房后自动播报。
SilenceFollowUp
否
Integer
静音后 Bot 主动追问的时间(秒),范围 0-300,0=关闭(默认)。
SilenceFollowUpText
否
String
静音追问的文本内容。
配置示例:
"DialogConfig": {
"InterruptMode": 0,
"InterruptSpeechDuration": 200,
"SilenceFollowUp": 50,
"SilenceFollowUpText": "你还在吗?有想问的直接告诉我。",
"WelcomeMessage": "你好,我是AI助手,有什么可以帮你的?"
}
说明:
除上述三类外,LLMConfig.FailureMessage(LLM 调用失败时的兜底播报文本)同样属于固定话术,详细参见 LLM 配置。

典型应用场景

场景
实现方式
说明
进房欢迎语
DialogConfig.WelcomeMessage
每次对话开始时 AI 自动播报一句欢迎语。
静音追问(避免冷场)
SilenceFollowUp + SilenceFollowUpText
用户长时间未说话,AI 主动追问,例如:你还在吗?有想问的直接告诉我。
业务事件主动提醒
运行时 InvokeLLM 注入
订单发货、活动开始、时间到点等关键节点,注入“提醒用户订单已发货”,由 AI 播报。
主动发起话题
运行时 InvokeLLM 注入
注入“用户一段时间没有说话了,请主动说一句话”,AI 结合上下文主动开口。
固定内容精确播报
运行时 InvokeTTS 注入
系统公告、审核拦截提示、运营活动话术等需要一字不差的播报。
确定性播报(跳过 LLM)
运行时 InvokeTTS 注入
对时延或内容确定性敏感的提醒,绕过 LLM 推理直接合成播报。

注意事项

1. 注入文本会进入对话上下文(仅 InvokeLLM):主动调用 LLM 注入的内容作为上下文参与该轮及后续对话,请避免注入与业务无关的文本,以免干扰对话质量;InvokeTTS 文本不经过 LLM,直接合成播报。
2. 长度限制:InvokeLLM.Content 与 InvokeTTS.Content 长度均 ≤ 1000 字符。
3. 按优先级选择冲突策略:高优先级会立即终止当前交互(用户可能听到半截话被截断),请仅在确实需要抢播时使用;对时延不敏感的通知建议用中优先级,避免频繁打断影响对话体验。
4. 播报可被打断:主动说话的 TTS 播报同样遵循打断控制——自动打断模式下用户开口即可打断 AI 的主动播报,详细参见 (客户端)打断指令。
5. 仅对运行中的任务生效:任务结束或 Bot 离开房间后指令不再响应,建议通过状态流转回调维护任务生命周期。
6. 固定话术不可运行时修改:欢迎语与静音追问在创建任务时配置;DialogConfig 中仅 InterruptMode 支持通过修改任务接口热更新。
7. 音色跟随任务配置:InvokeTTS 播报使用任务 TTSConfig 中配置的音色与厂商,指令本身不指定音色;如需更换音色请重建任务(TTSConfig 不支持热更新),详细参见 TTS 配置。