承接语不只是填等待,它是一份可被兑现的语义合同
它连接上一轮理解、当前真实动作与下一段正式答案,同时改变话轮控制器在 listening、bridge_speaking、answer_speaking 中采用的判停与打断策略。用户未说完时的 backchannel 主动附和与确认说完后的任务承接语必须分轨:前者表示“我在听”,后者才可以表示“我开始做”。
BridgeContract、revision、去重与状态机均是参考实现,不代表伶鹊生产 API。先分清两类“嗯、好的”:一个继续听,一个开始做
声音相似不代表对话行为相同。判断边界是 EOU 是否已经提交,以及 AI 是否取得话权。
EOU 未提交
floor_intent = listen_continue用户无需重新抢回话权
EOU_COMMITTEDfloor_intent = hold_floor兑现动作与结果承诺
floor_intent 划分两类表达。尚未披露伶鹊是否用同一控制器生成 backchannel 与任务承接语。承上启下不是修辞,而是三段可校验语义
一句好的承接语把“我理解了什么、我正在做什么、下一句先回答什么”同时固定下来。
Grounding · 承上
只确认高置信的意图、槽位和用户态度。低置信信息转为澄清,不把推测说成事实。
Action projection · 承接
宣布真实已启动或即将启动的查询、RAG、Workflow、API 或 MCP 动作;动作名称要与 trace 一致。
Result projection · 启下
约定正式答案先兑现什么,限制答案从正确位置接续,避免重复复述或答非所问。
✓ 动作一致,答案从承诺处接
“想把明天三点改到四点,帮我看看。”
“明白,您想改到四点。我先查有没有空位。” — 未承诺已改成
“四点有空位。需要我现在提交变更吗?” — 直接兑现可用性,再请求写操作确认
✕ 虚假承诺,答案重头再来
“想把明天三点改到四点,帮我看看。”
“没问题,已经帮您改好了。” — 尚未查询就宣称写入成功
“您想把明天三点改到四点,我来帮您查询一下……” — 与前句矛盾且重复
Grounding 门槛
高置信槽位可以复述;同音词、数字、否定和修正信息低置信时必须澄清。承上纠正率单独统计。
动作一致
话术说“正在查询”,后台必须有对应 request;说“已办理”,写操作必须返回成功。排队中与完成不能混说。
去重与兑现
承接语已复述的意图不再完整重播;正式答案从 expected_result 开始,先交付承诺的结果。
BridgeContract:把话术、任务与播放真相绑在同一轮
这是一份产品落地参考结构,不修改任何生产 API,也不代表厂商内部协议。
turn_id / revision semantic_frame: intent, user_stance, slots + confidence dialogue_acts: grounding, action_projection, result_projection planned_task: request_id, status, cancellable, idempotency bridge: source, text, floor_intent, dedupe_keys playback: queued, playing, completed, interrupted, played_ms, heard_text expected_result answer_transition # 每次回写先校验 result.turn_id == active.turn_id && result.revision == active.revision
排队或已生成但尚未播放的文本不能写入“用户已听到”。事实源是逐段确认的 heard_text。
用户补充或纠正后 revision++;旧请求即使成功返回,也必须丢弃或只进审计日志。
dedupe_keys 只消除已经播出的 grounding 与承诺。未听到的半句可以在新答案中自然补回。
用户打断 TTS 不等于后台写操作撤销;状态必须查询、确认或补偿,不能把“停播”当成“回滚”。
floor_intent、heard-text 续接与 revision 校验。官方披露OpenAI Realtime 文档提供打断时截断已播内容的会话机制;Twilio ConversationRelay 提供 interruption 事件。尚未披露伶鹊的播放进度、幂等键和迟到结果隔离字段。“动态 VAD”要拆成四层:VAD 只负责第一层候选
承接语不会直接改造声学 VAD 模型;它改变话轮状态,控制器再为不同状态切换阈值、等待与打断策略。
输入:音频能量、声学特征、回声消除后的帧
输出:speech_start、pause_candidate、speech_stop_candidate;不理解“但是”是否说完。
输入:近期停顿分布、预期回答类型、通道质量、最短/最长等待
动作:在快速提交与避免抢话之间动态选择提交时间;最大等待负责兜底。
输入:转写、韵律或音频上下文、句法与意图完整概率
动作:完整概率高则快速提交;“嗯……”“但是”“号码还没报完”等信号延长监听。
输入:承接/答案播报状态、AEC 后用户音频、短转写与语义类别
动作:区分真实插话、附和、噪声、回声与空转写;决定停播、忽略或恢复。
server_vad 与 semantic_vad;LiveKit、Pipecat、Deepgram 分别公开框架层或 STT 内的话轮机制。参考重构四层拆分及按对话状态切换策略档。尚未披露伶鹊生产系统的 EOU 分数、状态条件和动态阈值函数。同一接口的两种判停
server_vad 暴露 threshold、prefix padding、silence duration;semantic_vad 依据完成可能性动态等待,并以 eagerness 调节响应倾向。
两级判断与可恢复候选
Smart Turn 在 VAD 触发后做 EOU 二次判定;Flux 用 EagerEndOfTurn 允许预计算,并可由 TurnResumed 撤销,最后才发 EndOfTurn。
Dynamic Endpointing 与打断分治
官方动态模式用 min_delay、max_delay 和 alpha 在会话停顿统计上调整等待;Adaptive Interruption 再负责播报期的真实插话、附和与假打断恢复。
同一通电话需要多档策略,参考形态是受控全双工
预期回答类型、当前话权和可修复成本共同决定“等多久、能否附和、什么算打断”。
号码 / 地址 / 长问题
保守等待档:延长端点窗口,识别列举与分段输入;号码可提供 DTMF 兜底。句中停顿不播放任务承接语。
是 / 否 / 确认类
快速提交档:预期答案短,语义完整时尽快提交;澄清问题交还话权后尤其要避免短回复漏检。
“嗯……但是”
未完成档:语义 EOU 降低提交概率,继续监听;必要时轻量 backchannel,不启动查询或写操作。
承接语正在播
暂持话权档:“嗯、好的”视为附和;“等一下、不是这个、我说错了”视为真实纠正并立即停播。
澄清问题刚播完
交还话权档:立刻打开用户通道,缩短短回复判停;防止 AI 把自己的尾音或回声当作用户输入。
噪声 / 回声 / 空转写
假打断档:AEC、VAD、转写和语义分类联合确认;若无有效用户意图,从安全边界恢复原播报。
全双工
双方可同时说,体验上限高;电话回声、背景人声和附和容易触发误停,状态一致性最难。
半双工
AI 播报时关闭或弱化收音,逻辑简单稳定;用户无法及时纠正,长播报体验机械。
受控全双工
持续监听,但按 floor_intent、语义类别和业务风险决定是否停播;兼顾纠错速度与附和容忍。
双轨状态机:可以提前算,不能提前说
候选端点允许可取消的投机计算;只有 EOU 提交后,任务承接语才获得播放资格。
收集同一用户话轮
禁止播放任务承接语
固定 turn_id + revision
共享 BridgeContract
EagerEndOfTurn → TurnResumed 是这一思想的官方事件化示例。选择模板、录音或生成
记录 played_ms / heard_text
request_id + revision
生成安全接续点
跳过承接语,直接播正式答案;不要为了命中话术而增加延迟。
在词组或短句安全边界结束承接语,从 heard_text 之后自然接续且不重复。
进入 interruption classifier
revision++,新请求另开 turn四条实现路线可以并存,选择取决于确定性与上下文深度
“承接语”不是一种固定模型能力。录音、规则、生成与实时原生会话各有最合适的轮次。
预录音频
预先录制“好的”“我查一下”等短句,在 EOU 后立即播放。
- 优势
- 首声最快、音色稳定、行为确定
- 局限
- 上下文弱,容易重复或语气错配
- 适用
- 通用确认、极短等待
规则模板 + 槽位
由意图、动作与有限槽位选择模板,例如“我查一下尾号四二一九的订单”。
- 优势
- 可审计、动作易对齐
- 局限
- 模板爆炸,需处理敏感槽位与读法
- 适用
- 高频业务流程
上下文生成式
模型根据 semantic frame 和 planned task 生成三段语义,再做动作与去重校验。
- 优势
- 自然、能承接复杂上下文
- 局限
- 延迟与虚假承诺风险更高
- 适用
- 开放问答、复杂检索
实时模型原生异步会话
实时模型持续理解音频、管理话轮,并与工具或答案流异步衔接。
- 优势
- 韵律与互动最自然
- 局限
- 内部控制粒度、可观测性与迁移性依平台而定
- 适用
- 高互动、低延迟会话
伶鹊重点案例
阿里百炼现行页面披露自动承接语及多模态交互能力,伶鹊发布叙事也强调承接语与主任务的体验配合;但公开材料没有证明每条承接语都由轻量模型实时生成,也没有披露是否预录、模板选择、真正并发、取消和音频拼接算法。因此四条路线应并列展示,不替厂商补齐内部实现。
话术库按动作状态设计,呼入与外呼分别控制语气
示例只展示承接结构;上线时需绑定真实工具状态、品牌语气和业务槽位。
客服呼入 · 解决问题优先
“明白,是这笔退款一直没到账。我先查处理进度,先告诉您现在卡在哪一步。”Grounding + 查询 + 结果顺序
“信息已经核对好了。接下来我准备提交地址变更,提交前再请您确认一次新地址。”不把“准备提交”说成“已经完成”
“确实让您等久了。我在核对两次扣款记录,先把重复扣款的结果告诉您。”承认情绪,但不预判赔付结果
“这次查询比预期久,我还在等系统返回。您可以继续等,我也可以先为您转人工。”只有确有请求在运行时才能说“还在查”
“刚才没有查到结果,我不会猜测。可以重试一次,或者现在转人工继续处理。”承认失败,给出下一步
“我已经整理好订单号和问题经过,正在为您接入人工;接通后您不用从头复述。”只有摘要已生成且队列已发起时这样说
AI 外呼 · 打扰成本优先
“了解,您想先知道剩余费用。我查一下当前方案,先报总额,再说明构成。”短、直接,避免重新推销
“好的,您倾向周五下午。我先查可约时段,确认有空位后再请您决定。”未查询前不承诺已预约
“明白,您现在不考虑。我记录为不再继续介绍,这通电话就到这里。”兑现用户态度,不再强行承接新动作
“可以,我先记录明天下午四点回电。记录成功后我再把时间复述一遍。”写操作成功前使用进行态
“现在没能保存回电时间,我不想让您白等。可以换一个时间重试,或结束后由人工跟进。”不伪装成功,不无限等待
“这个问题需要人工确认。我先把您刚才的诉求整理好,再为您接入。”解释转接原因与下一步
承接语复述一遍,正式答案又从用户原句完整复述。用 heard_text + dedupe_keys 控制。
尚未发请求就说“正在查询”,未成功写入就说“已经办理”。用 request 状态校验。
结果已到,AI 仍播完整段暖场。应跳过或在安全短句边界接续。
用户说“嗯嗯”就停播,导致语流断裂。需要 floor-aware interruption 分类。
用户已纠正,旧查询返回后仍被播出。所有回写校验 turn_id + revision。
评价承接语,要同时量语义、时间、话权与浪费
只看“首声快不快”会奖励虚假承诺和重复播报;指标必须能回到具体 turn、revision 和播放事件。
语义合同
用户在承接语后纠正被确认的意图/槽位占比。
承接语声明的动作与实际 request/状态一致的比例。
正式答案首先交付 expected_result 的比例。
承接语与正式答案重复复述同一内容的轮次比例。
旧 revision 结果进入新话轮或被播出的比例,目标应为零。
延迟与接续
用户末音到 EOU 提交;按短答、号码、长问题分桶。
EOU 提交到承接语首个可听音频。
承接语末尾到正式答案首声,包含跳过承接语的分布。
用户真实插话起点到 TTS 实际静音。
话权与成本
“嗯、好的”等 backchannel 被误判为真实打断的比例。
噪声、回声、空转写后成功恢复且上下文一致的比例。
候选端点启动后因 TurnResumed / revision 变化被废弃的计算占比。
答案已就绪仍继续播放非必要承接语的比例。
证据边界:能力存在,不等于内部实现已经公开
本专题以官方资料为事实底座;跨厂商组合图、合同和状态机均明确标为参考重构。
官方披露
- 阿里百炼:全/半双工、语义判停与拒识、自动承接语及语音模型配置。
- OutboundBot:VAD、智能断句、优雅打断与 VUI。
- OpenAI:server VAD、semantic VAD、eagerness 与实时会话打断/截断。
- LiveKit:Turn Detector、话轮端点调参与 interruption 行为。
- Pipecat Smart Turn、Deepgram Flux、Twilio ConversationRelay 的官方事件或接口。
参考重构
- Grounding / Action projection / Result projection 三段语义。
- BridgeContract、floor_intent、heard_text、dedupe_keys。
- 声学、端点、语义、打断四层动态策略。
- EOT 候选投机、EOU 后双轨、跳过与安全边界接续。
- turn_id + revision 隔离、读写操作不同取消语义。
尚未披露
- 伶鹊是否以轻量模型实时生成承接语,或采用录音/模板混合。
- 承接语与主任务是否真正并发、如何取消与拼接。
- 生产系统的 EOU 模型、阈值函数和打断分类器。
- 播放进度如何回写上下文,旧 generation 如何清理。
- 跨伶鹊、OutboundBot、CCC 与百炼实例的服务复用关系。
- 阿里百炼 · 2026-08-26多模态交互配置
全/半双工、语义判停与拒识、自动承接语及语音模型配置。
- OutboundBot · 2025-01-16语音与 VUI
VAD、智能断句、优雅打断和语音配置边界。
- 伶鹊 · 本轮访问 2026-08-30千问 AI 平台伶鹊产品页
对话领域模型与实时交互的厂商产品叙事;不据此反推未公开的内部调度。
- LiveKit · 官方文档Turn handling options — Dynamic endpointing
dynamic模式、min_delay、max_delay、alpha与运行时更新。 - LiveKit · 官方文档Adaptive interruption handling
VAD 后区分真实插话与 backchannel、假打断恢复和话轮边界保护。
- LiveKit · 2026-07Solving end-of-turn detection
Turn Detector 与 EOU 评估视角;平台自评数据需注意来源立场。
- OpenAI · 官方文档Realtime API VAD
server_vad、semantic_vad与eagerness。 - OpenAI · 官方文档Realtime conversations — Interruption and truncation
WebRTC/SIP 自动处理相应截断;WebSocket 客户端需停止播放并发送
conversation.item.truncate。 - Pipecat · 官方文档Smart Turn overview
VAD 候选后的 EOU 二次判断、incomplete 与最长等待关系。
- Deepgram · 官方文档Flux — Voice Agent Eager End-of-Turn
EagerEndOfTurn、TurnResumed、EndOfTurn事件语义。 - Twilio · 官方文档ConversationRelay WebSocket Messages
interruption 事件及打断前已播放内容与时长相关信息。