多模态融合交互设计规范
面向设计师与工程师:当一次输入或一次输出由两个以上通道共同构成时,让"这个"指得准、让等待有边界、让冲突可裁决可撤销、让同一个意图只被执行一次,并且在某个通道用不了的时候任务仍然做得完。
6 条原则 · 34 条规则 · 必须 26 · 应当 8
目录
面向设计师与工程师:当一次输入或一次输出由两个以上通道共同构成时,让"这个"指得准、让等待有边界、让冲突可裁决可撤销、让同一个意图只被执行一次,并且在某个通道用不了的时候任务仍然做得完。
多模态融合把多个通道的片段组成一次输入,或把一次输出分配给多个通道。例如“把这个移到这里”:语言给出动作,指点给出对象和目标位置。识别各路信号正确,仍可能发生对象绑错、抢先提交、重复执行或反馈相互矛盾。因此,设计对象是从表达、组合、提交到反馈与恢复的完整过程。
本规范由六条原则、34 条规则组成。每条规则说明适用条件、行为要求、设计应用、用户侧与实现侧验证,以及“做不到/做过头”两侧反例。评审时回答三个问题:设计师决定什么,工程提供什么事实,用户怎样知道并改变结果。
多通道是用户按任务选择的表达方式,不是必须采用的入口。先指后说、边说边指和中途换成触摸都需要明确处理;一次输入不以各路信号同时到达为前提。历史研究中的使用比例和时间间隔仅适用于其样本,不作为其他设备、人群或任务的默认值(R03、R04)。
适用范围:两个及以上通道共同构成输入、共同触发操作,或参与同一次输出。只有多种独立入口、但不存在组合、冲突、重复接收或组合输出的产品,可记录不适用。本文不指定识别算法、融合层级、传感器或通用时间阈值;无障碍、隐私与安全关键领域仍需针对实际产品专项验证。
阅读顺序:第 1 章原则;第 2 章规则读法与速查;第 3 章完整要求;第 4 章术语与运行事实。附录 A 提供验收场景,附录 B 说明论据边界,附录 C 提供时间参数测定方法。配置查 Design Token,来源查 reference.md。
1. 六条原则
六条原则按规范对象切分设计责任:每条原则管辖一类对象上的义务,每条规则按其义务的直接规范对象归属唯一原则。对象不同,原则就不会互相替代——这是切分的依据,也是检验切分的方式。
| 原则 | 规范对象 | 设计方向 | 管辖规则 |
|---|---|---|---|
| MM1 指代解析到对象 | 跨通道指代表达式与它所指对象之间的绑定关系 | "这个"和"这里"必须指得出具体是谁。绑定不成立时不猜,退回显式选择;绑定成立时也要在动手那一刻仍然成立 | MM1-1 ~ MM1-6 |
| MM2 融合窗口有边界 | 来自不同通道的信号在时间上如何被组合成一次输入 | 融合要等,但不能白等也不能无限等。窗口的开、关与等待代价都要是产品做过的决定 | MM2-1 ~ MM2-6 |
| MM3 冲突可裁决可撤销 | 两个以上通道给出彼此不相容内容时的处理 | 通道不一致是常态不是异常。要检出、按预先定的规则裁、把裁的结果说出来,并且允许改回去 | MM3-1 ~ MM3-5 |
| MM4 一个意图执行一次 | 同一用户意图在多个通道上各被识别一次之后的执行次数 | 两个通道听见同一件事,不等于用户要做两遍;也不等于用户想做两遍时做不成第二遍 | MM4-1 ~ MM4-5 |
| MM5 少一个通道仍能完成 | 可用通道集合发生变化时的任务可完成性 | 通道会不可用、会被关掉、会被环境禁止。任务不能只有多通道一条路,降级要被告知而不是静默发生 | MM5-1 ~ MM5-6 |
| MM6 输出按通道分工 | 一次系统输出在视觉、听觉、触觉等通道上的分配 | 三个通道说同一句话不是稳妥而是过载。分工是默认,冗余是有理由的例外,不可错过的信息要落在收得到的通道上 | MM6-1 ~ MM6-6 |
同一个场景可以触及多条原则——用户看着一张卡片说"把这个删掉",系统同时面对指代绑到哪张卡(MM1-1)、语音比注视晚到该等多久(MM2-2)、注视落在 A 而语音里说了 B 的名字时谁赢(MM3-1)、语音识别和手势识别各产生一次删除意图会不会删两次(MM4-1)、以及删除结果该用哪个通道回执(MM6-1)——这不是分类错误:五条规则约束的是五个不同规范对象上的义务,一个是绑定关系,一个是时间组合,一个是内容冲突,一个是执行次数,一个是输出分配。互斥与穷尽是这套切分接受检验的主张,不是宣布即成立的事实:规则增删或归属存疑时,按附录 A 的分类检验验证。检验不过,修改的是原则的切分。
本切分中最需要持续检验的两处边界,在此明示:MM2 与 MM4——MM2 管"等不等第二个通道、等多久",MM4 管"两个通道都到齐之后执行几次"。融合窗口内的第二个信号既是 MM2 的等待对象,也是 MM4 的去重输入,看起来是同一个机制;归属依据是义务的直接规范对象——"窗口关闭前不得抢先执行"约束的是时间组合,归 MM2;"关闭后不得把已融合的意图再执行一次"约束的是执行次数,归 MM4。MM3 与 MM5——通道给出不同内容是 MM3,通道给不出内容是 MM5。实践中两者会连在一起(某通道置信极低,既像冲突又像不可用),归属依据是系统实际做了什么:在两个内容之间选一个是裁决,把一个通道从组合中拿掉是降级。这两处若在实践中反复出现归属争议,应当调整原则而不是增设中间层。
原则用于理解规则与裁决归属,本身不作为单独的判定条目。当原则与具体条款的解读出现冲突时,以适用条款为准,并记录需要澄清的歧义。
规则归属唯一,不等于机制不能复用。一份带时间戳的信号缓冲既是融合窗口的实现基础(MM2-1)、冲突检出的比对来源(MM3-1),也是去重判据的输入(MM4-2);一套通道健康状态既决定降级路径(MM5-2),也决定输出通道的选择(MM6-1)。同一机制一物多用是常态,写在哪条取决于义务的直接规范对象。
2. 规则的读法
2.1 每条规则的结构
| 部分 | 作用 |
|---|---|
| 一句话 | 规则的记忆版,不替代正文 |
| 适用 | 这条规则在什么情境下生效。不落在适用范围内的产品记录"不适用"即可,不必勉强套用 |
| 规则 | 规范正文,规定这条规则的要求 |
| 边界条件 | 与适用共同限定要求的适用范围:说明这条规则不要求什么、例外在什么条件下成立(仅部分规则有) |
| 设计应用 / 验证示例 / 反例 | 帮助落地的说明,不另行增加义务,也不指定唯一实现 |
| 依据与参考 | 失败记录与实现参考(仅部分规则有;论据类型与出处见附录 B 与 reference.md) |
一句话概括各部分的效力:规则正文规定要求;适用与边界条件共同限定要求的适用范围;设计应用、验证示例、反例与依据参考不另行增加义务。
规则写行为性质、不写实现方式:融合窗口关闭前不执行看起来完整的单通道指令,这是产品行为;用缓冲队列、状态机还是延迟提交实现,是工程方案——两者必须对得上,但不是同一份交付物。本规范同样不规定融合发生在哪一层:信号级、特征级与语义级融合都可能满足这些要求,选哪一层是工程决定(三层的差别见 R07)。
2.2 约束词
规则正文使用三级约束词:
- 必须:不满足即不符合本规范。缺了它,某条对用户的承诺会在可预见的情境下失效——这是标「必须」的唯一依据。
- 禁止:与「必须」同等强度的反向表述,指明不得出现的行为;正文中的「不得」与「禁止」等价。
- 应当:默认遵循;确有理由偏离时,记录理由与替代做法,并接受同样的验证。偏离不需要审批,但需要留痕。「不应当」是「应当」的反向表述。
合规判定以正文中的独立义务子句为单位:无约束词的陈述句承接所在规则标题的强度;显式标注约束词的子句按其自身强度判定——【应当】规则内的「禁止/不得」子句仍是硬约束(MM1-6、MM2-5、MM2-6、MM4-5、MM5-5、MM6-2、MM6-5、MM6-6 含此类子句),规则标题与速查表的强度标注不替代子句约束力。正文中的「不能」仅用于能力或事实陈述,不表达义务。
强度表示约束力,不表示重要性。
2.3 反例的两侧
反例分两侧:"做不到"是漏掉这条要求,"做过头"是为了满足它而把每次融合都变成一轮确认对话。多模态融合被做坏的方式在两端都很密集:一端是绑错了对象还照做、两个通道各执行一次;另一端是因为怕绑错而在每句"把这个移到这里"之后都弹出"您指的是哪一个?"的候选列表——那样用户不如自己点两下,多通道带来的表达效率被确认成本吃光。已有记录显示多通道在视觉—空间任务上带来的任务完成时间收益是有限量级的(R04),把它整个抵消掉并不需要多少额外确认。谨慎不等于把判断全部推给用户。
2.4 规则速查:34 条
下表是全部规则的一句话记忆版,点击规则名可跳到第 3 章的完整正文。速查不替代各条的适用条件与完整要求;个别【应当】规则内含禁止级子句(MM1-6、MM2-5、MM2-6、MM4-5、MM5-5、MM6-2、MM6-5、MM6-6),判定以正文为准(见 2.2)。
MM1 指代解析到对象
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM1-1 指代解析到具体对象才执行 | 必须 | "这个"没指出是哪个之前,不要动手。 |
| MM1-2 解析不成立时回退显式选择 | 必须 | 猜不出来就让人自己选,不要挑一个最像的。 |
| MM1-3 多个指代项按语义角色对位 | 必须 | "把这个放到那儿"是两个位置,不能串。 |
| MM1-4 绑定在执行时点重新校验 | 必须 | 从指到做之间东西变了,绑定就不算数了。 |
| MM1-5 高代价操作的绑定结果执行前可见 | 必须 | 删之前先说清楚删的是哪一个。 |
| MM1-6 绑定的依据与失败侧可被说明 | 应当 | 是没听清还是没看清,要分得出来。 |
MM2 融合窗口有边界
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM2-1 融合窗口显式定义并可核验 | 必须 | 窗口开多久是产品做过的决定,不是代码里的一个常数。 |
| MM2-2 窗口关闭前不抢先执行 | 必须 | 看起来完整的半句话,等等第二个通道再说。 |
| MM2-3 等待有上限且结果明确 | 必须 | 等不到就按单通道解释办或明确失败,不悬着。 |
| MM2-4 顺序整合与同时整合都要支持 | 必须 | 有人先指后说,有人边说边指,两种都是正常用法。 |
| MM2-5 窗口内外的同一动作语义不同且可感知 | 应当 | 这一指是补上一句还是新的一句,人要看得出来。 |
| MM2-6 不为提高融合率延长窗口 | 应当 | 延长窗口时,漏融合与误绑定都要测。 |
MM3 冲突可裁决可撤销
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM3-1 冲突必须被检出 | 必须 | 两个通道说的不一样,这件事本身要被发现。 |
| MM3-2 裁决规则预先定义且稳定 | 必须 | 谁赢是事先定好的,不是谁先到谁赢。 |
| MM3-3 裁决结果可见 | 必须 | 采纳了哪一边、放弃了哪一边,要说出来。 |
| MM3-4 裁决可撤销并可切到另一解释 | 必须 | 选错了要能一步换回来,不是重做一遍。 |
| MM3-5 后果越大越不自动裁决 | 必须 | 代价高的冲突交给人,不要替人挑。 |
MM4 一个意图执行一次
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM4-1 同一意图只产生一次副作用 | 必须 | 两个通道识别到同一件事,只做一遍。 |
| MM4-2 去重按意图标识而非表面相同 | 必须 | 字面一样不等于同一次,字面不同也可能是同一次。 |
| MM4-3 去重窗口与作用范围显式 | 必须 | 管多久、管到哪儿,要写下来。 |
| MM4-4 有意重复必须可表达 | 必须 | 用户真想做第二遍时,去重不能拦着。 |
| MM4-5 判不准时不静默执行第二次 | 应当 | 说不清是不是重复,就别偷偷再做一次。 |
MM5 少一个通道仍能完成
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM5-1 任务不只有多通道一条路径 | 必须 | 每项任务都有不依赖原组合的完成路径。 |
| MM5-2 通道不可用是明确状态 | 必须 | 用不了就说用不了,不要装作在工作。 |
| MM5-3 降级须被告知并说明变了什么 | 必须 | 悄悄换了一套行为,比不能用更糟。 |
| MM5-4 可分通道关闭且关闭有效 | 必须 | 关掉摄像头就是不再看,也不用别的信号绕回来。 |
| MM5-5 环境与社会条件纳入可用性判断 | 应当 | 能出声不代表此刻方便出声。 |
| MM5-6 切换通道不重置已完成的部分 | 必须 | 换个方式接着说,不是从头再说一遍。 |
MM6 输出按通道分工
| 规则 | 强度 | 一句话 |
|---|---|---|
| MM6-1 不可错过的信息落在收得到的通道 | 必须 | 屏幕不在视野里的时候,别把要紧的话只写在屏幕上。 |
| MM6-2 分工是默认,冗余要有理由 | 应当 | 三个通道说同一句话,不是三倍稳妥。 |
| MM6-3 跨通道输出的时序有定义 | 必须 | 差得太远,人会当成两件事。 |
| MM6-4 任一通道单独可理解 | 必须 | 少一个通道,信息可以变少,不能变错。 |
| MM6-5 输出通道分工随情境解析且用户可改 | 应当 | 谁承载什么,按当下情境定,也让人能改。 |
| MM6-6 多通道输出不叠加为过载 | 应当 | 同时来三下,等于一下都没收到。 |
3. 规则详解
本章按六条原则展开全部 34 条规则。每条的结构与各部分的约束力见 2.1;其中的设计应用、验证示例与反例只是帮助落地的说明,不指定唯一组件,也不要求新增独立交付文档。
3.1 MM1 指代解析到对象
跨通道指代是这个领域的起点问题:"这个""这里""那个蓝色的"本身不携带足够信息,它的所指要由另一个通道补上。这条原则管的是这个补全过程:什么时候算补全成功、补不成功怎么办、补上之后到执行之间发生变化怎么办、以及补全的结果要不要给人看。指代解析的失败与语音识别的失败是两件事:语音可以一字不差,指代仍然绑错——本原则约束的是对象对应关系,识别准确率不能替代绑定正确率。
MM1-1指代解析到具体对象才执行必须
一句话:"这个"没指出是哪个之前,不要动手。
适用接受跨通道指代表达(指示代词、方位词或省略了宾语的指令)并据此执行操作的系统。
规则含跨通道指代的指令,必须在指代解析到明确的对象或位置之后才进入执行。解析结果必须是一个可被系统指名的具体对象或坐标,不得以"当前上下文中最可能的一项"这类未收敛的描述进入执行。解析失败、候选多于一个且无法区分、或候选集合为空时,禁止执行,按 MM1-2 处置。指代所需的补全信息来自哪个通道由产品定义,但任何单一通道都不必然拥有解析权——注视落点、指向射线、触点与上文提及都可能是候选来源,选用哪些须显式声明(见 mm.binding.sources)。
组合输入的片段必须关联到已声明的交互主体或参与范围。共享场景中跨主体的组合须有明确的角色规则(谁可以为谁补全、哪些角色的表达可以合并),禁止仅因时间接近就把不同主体的片段拼成一条指令——甲说"移动这个"、乙指了另一个对象,即使时间与语义都相容,也不是甲的完整指令。主体归属无法确定时,不执行依赖该组合的动作,保留各路已有效表达的部分,并给出重新指定的路径。
候选与操作意图分开:看向、经过、系统播放的声音或被读取的画面文字可以是候选依据,不自动成为激活、确认或授权。产品必须声明何种明确动作开始输入、何种动作提交;仅增加一个被动通道不得提高执行权限。系统自身输出再次进入麦克风或摄像头时,须按来源排除自触发;无法区分来源时停止受影响提交并提供直接输入路径。
边界条件本条不要求系统支持所有类型的指代表达,也不要求解析必须成功;它要求的是"未解析到具体对象时不执行"。本条不要求识别或建档在场的其他人——归属可由会话、设备绑定、显式角色或结构隔离取得;通过识别所有旁观者来满足归属要求不是合格实现。单用户且结构上保证隔离的产品可记录依据后简化。不含指代的完整单通道指令不受本条约束。系统对候选对象的排序机制不在本条要求范围内,排序的可解释性见 MM1-6。
设计应用把"解析成功"设计成执行的前置状态而非执行过程中的一步,这样失败会停在解析而不是停在半个操作里。把"候选唯一"和"候选置信最高"分开表达——后者不是前者。
验证示例
- 用户侧:在两个相邻且外观相似的对象之间说"把这个删掉",观察系统是执行还是要求区分。
- 实现侧:检查执行入口是否接受未解析的指代占位符;构造空候选集合,确认不落到默认对象。
反例做不到——注视落在两个卡片的交界处,系统按 Z 序挑了上面那张就删了;做过头——所有含"这个"的指令一律要求用户先点选对象,多通道表达退化为"先点后说",指代能力实际上没有被用上。
依据与参考跨通道指代解析是本领域最早被提出的问题形态(R01);在三维环境中把指代候选做成带时间戳的对象命中统计并据此排序,是已有实现路径(R08)。
MM1-2解析不成立时回退显式选择必须
一句话:猜不出来就让人自己选,不要挑一个最像的。
适用跨通道指代解析可能失败的系统。
规则指代解析不成立时,系统必须回退到显式选择路径——列出候选、请求重新指定,或提示改用不含指代的表述——并禁止以下三种处理:按内部排序静默选取一项执行;把指令整体丢弃且不给出任何反馈;把未解析的指代当作"上一次操作的对象"沿用。回退路径必须能在当前通道条件下走完:若解析失败的原因正是某通道不可用,回退不得要求使用同一通道(见 MM5-1)。候选列表的呈现须保留用户已经表达的部分,不要求用户重述整条指令。
边界条件本条不禁止系统给出带排序的候选建议;它禁止的是把建议直接当成结论执行。未解析到具体对象时不得进入执行,不设"可撤销即可先执行"的例外——MM1-1 的固定底线在此没有分支。产品可以呈现显著标记的暂定预览:它不写入业务状态、不外发、可被丢弃,且不得显示为已完成;用户选定候选后才进入执行。候选集合为空时连预览也不成立——不存在可被预览的对象。
设计应用候选列表用用户能认出的属性排序与标注(位置、名称、最近一次改动),不要用内部 ID 或置信度分值;把"重新指一次"和"从列表里选"做成两条并行入口,前者留给还能用指点通道的人。
验证示例
- 用户侧:在候选歧义场景下,观察系统是否给出可操作的下一步而不是沉默或直接执行。
- 实现侧:注入空候选集与多候选等分场景,确认不落到默认项;检查回退路径是否依赖已失效的通道。
反例做不到——识别不出指哪个,就按最近一次操作过的对象执行;做过头——候选有两个,系统弹出包含全部 40 个可见对象的完整列表让用户翻找。
依据与参考本条属于附录 B 的"从承诺反推"类:系统既然承诺理解"这个",就必须在理解不了时把控制权交回,而不是用一个未经确认的猜测替代理解。
MM1-3多个指代项按语义角色对位必须
一句话:"把这个放到那儿"是两个位置,不能串。
适用单条指令中含两个及以上跨通道指代项的系统。
规则一条指令含多个指代项时,每个指代槽位必须绑定到具有明确角色的对象、对象集合或位置(源、目标、参数等)。配对依据是已声明的语义角色、事件时间与有效上下文三者;禁止仅按信号到达顺序配对,也禁止仅以表述顺序作为唯一依据——语言中的槽位顺序标识的是槽位,不能独自决定逆序到达的两个指点分别填哪一个槽。
原始的采样事件、手势片段与语义候选不是同一计数单位:系统必须先按已声明的规则把原始事件归并为语义候选(一次持续指点的多帧是一个候选,同一对象被重复指仍是同一候选,一次圈选可以是一个对象集合候选),再比较候选与槽位。禁止把原始事件数与槽位数直接相比并据此整体拒绝。无法唯一确定某个槽位的角色、或该槽位缺项时,只就受影响的槽位发起澄清,其余已确定的绑定保留。系统必须能表达"第一个指代已绑定、第二个尚未绑定"的中间状态,并允许用户只补全缺失的那一项。产品支持的单数与复数指代范围须在能力披露中说明。
边界条件本条不要求用户按任何特定顺序提供指点事件——事件到达顺序可以与表述顺序不同。本条也不承诺在完全没有角色线索时自动配对成功:两个无任何角色证据的指点,正确处置是澄清而不是猜测。语言本身允许的语序变化(例如把方位词前置)由产品的语言解析处理,不在本条范围内。
设计应用把指代项建模为带序号的槽位,把指点事件建模为带时间戳的候选池,配对是一次显式匹配而不是逐个弹栈。槽位数与事件数不等时,缺口要指得出来是哪个槽位。
验证示例
- 用户侧:说"把这个移到这里",先指目标位置再指源对象,在存在角色证据(对象类型、可放置性、上下文)时应正确绑定而不互换;再构造两个完全无角色线索的指点,检查系统是否发起澄清而不是猜测。
- 实现侧:构造两个指代项、三个原始指点事件(其中两帧属于同一次持续指点)的输入,确认系统先归并为语义候选再配对,不因原始事件数不等而整体拒绝,也不自行丢弃事件凑数。
反例做不到——用户先指了要放的位置再指了对象,系统把对象移到了它自己原来的位置上;做过头——要求用户严格"说一个词、指一下"地交替输入,任何提前的指点都被丢弃;或因为一次持续指点产生了多帧事件、事件数与槽位数不等,就把整条合理指令判为失败。
MM1-4绑定在执行时点重新校验必须
一句话:从指到做之间东西变了,绑定就不算数了。
适用指代绑定的产生时点与操作执行时点之间可能存在间隔,且对象状态可能在此期间变化的系统。
规则绑定产生之后、操作执行之前,系统必须重新校验被绑定对象仍然存在、仍然可操作,且其身份未被替换;校验同时覆盖主体、目标身份、内容快照与本次交互。到达顺序可以影响等待策略,但不替代事件发生时点与主体归属;迟到片段只在声明的窗口与版本仍然有效时参与本次绑定。校验不通过时禁止在替代对象上执行,须按 MM1-2 回退。对象内容发生变化但身份未变时,是否仍然执行由产品定义并向用户表达,不得默认按旧内容执行。列表、地图或时间线等位置随时刷新的容器中,绑定必须锚定到对象身份而非屏幕坐标或列表序号。
边界条件本条不要求系统冻结界面或阻止后台更新;它要求的是执行前的校验与校验失败后的处置。绑定与执行在同一帧内完成、期间不可能发生变化的场景,记录"结构上不可能"即满足本条。增加被动通道不自动扩大执行资格。
设计应用绑定记录里存对象标识与观测时间,不存屏幕位置;把"对象已不在"与"对象变了"设计成两种可分别处置的结果,前者必须停,后者可以问。
验证示例
- 用户侧:说出指令的同时让列表刷新一位,观察操作落在哪个对象上。
- 实现侧:在绑定与执行之间注入删除、移动与内容变更三类变化,分别检查处置。
反例做不到——用户注视第三行说"删掉",语音处理完成时列表插入了新项,系统删了新的第三行;做过头——只要界面有任何刷新就作废绑定,在实时数据界面上多通道指令永远无法完成。
MM1-5高代价操作的绑定结果执行前可见必须
一句话:删之前先说清楚删的是哪一个。
适用跨通道指代绑定的结果将用于不可逆、涉及他人或代价显著的操作的系统。
规则当被绑定对象将承受不可逆操作、外发操作或按产品风险分级属于高代价的操作时,系统必须在执行前把解析结果本身呈现给用户——即"这个=哪一个""这里=哪儿"——而不只是呈现操作名称。呈现必须使用用户可辨认的标识,且必须与实际将被操作的对象一致。确认必须同时绑定具体对象、动作、关键参数与后果;这些内容变化后,原确认不再覆盖新的请求。未作确认不视为同意。禁止以"已理解您的指令"这类不含所指的表述替代呈现。
边界条件本条不为所有多通道操作引入确认步骤,只针对高代价一档;风险分级必须考虑可逆性、外部影响、对象数量与纠错成本;后果未知按高代价处理。可完全撤销且撤销入口在结果处直接可达的操作,可按产品定义归入低代价一档。
设计应用把"操作确认"与"指代确认"合成同一次呈现,不做成两跳;在确认里给出对象的可见特征而不是内部标识。
验证示例
- 用户侧:对一个高代价操作发出含指代的指令,检查确认信息里能否看出对象是哪一个。
- 实现侧:核对确认时呈现的对象与执行时实际操作的对象是同一个标识,中间不允许再解析一次。
反例做不到——"确定要删除吗?"点了确定才发现删的是相邻那一个;做过头——每次移动一个图标都要先确认"您指的是图标 A 吗",连续布局操作变成逐项审批。
MM1-6绑定的依据与失败侧可被说明应当
一句话:是没听清还是没看清,要分得出来。
适用指代解析可能因不同通道的不同原因失败的系统。
规则系统应当能说明一次绑定用了哪些通道的什么信息,以及绑定失败时失败发生在哪一侧——语言侧没有产生可解析的指代项、指点侧没有产生可用的候选、还是两侧都有但无法配对。面向用户的说明应当用可行动的语言给出下一步("再指一次"与"换个说法"是不同的下一步);面向实现的记录应当保留必要的时间锚点、候选摘要与选中依据,以便复核;原始音视频、眼动轨迹不因可解释性要求而默认留存。禁止用一句统一的失败文案掩盖不同的失败原因,也禁止把内部置信度分值直接作为对用户的解释。
边界条件本条不要求向用户展示完整的候选排序过程,也不要求实时解释每一次成功的绑定;成功时的说明按需提供即可。
设计应用把失败原因分成"语言侧""指点侧""配对侧"三类并各自对应一句可操作提示;内部记录与用户提示分开设计,前者详尽,后者简短。
验证示例
- 用户侧:分别在麦克风被遮挡与手离开跟踪范围两种情况下发出同一条指令,观察提示是否不同。
- 实现侧:抽查失败样本,确认记录中能还原出各通道的输入与选中依据。
反例做不到——任何绑定失败都提示"没有理解您的指令",用户不知道该重指还是重说;做过头——失败时向用户展示候选对象的置信度排行榜和时间戳表格。
3.2 MM2 融合窗口有边界
融合需要等待:一个通道的信号到了,另一个可能还在路上。这条原则管的是这段等待——窗口什么时候开、开多久、关的时候做什么、以及等待本身对用户意味着什么。已有实证记录表明不能假定信号在时间上重叠:语音与笔输入在约一半的情况下是顺序整合,笔输入先于语音,中间有一到两秒的间隔;而按用户区分,存在同时整合与顺序整合两类稳定的个体模式,后者的先后间隔可达数秒(R04)。本原则不给出任何通用的窗长数值——那是产品按附录 C 测定并记录的结果。
MM2-1融合窗口显式定义并可核验必须
一句话:窗口开多久是产品做过的决定,不是代码里的一个常数。
适用把来自两个及以上通道的信号组合为一次输入的系统。
规则融合窗口必须解析到一份窗口合同,其中至少包含:事件时间锚点(以信号的发生时间而非系统接收时间测量间隔,并声明取信号的起点还是终点)、接收时间的用途(只用于超时与调度,不用于测量人的表达间隔)、可接受的到达延迟与时钟不确定的处置、完成所需的通道集合、开启条件、可提前关闭的条件、最长截止、关闭后的处理,以及关窗后迟到事件的处置。"可早关的条件""最长收集期限""开始给出等待提示的时刻"是三个分别决定的量,不得合并为一个数值(后者见 MM2-3)。
三路及以上的融合另须声明全局完成判据:两两通道相容不蕴含整体解释相容,缺少全局判据时不得按"已配对的两路"提交。窗口合同必须可查询并可复核(见 mm.fusion.window.contract)。窗长必须有依据:由产品按目标人群与任务实测并记录,或引用已声明适用范围的公开结果;禁止使用没有来源的通用数值,也禁止把窗长写成不可查的实现细节。窗口定义必须说明它适用于哪些通道组合——每种组合都须有测定依据;经验证相同的取值可以复用,不能未经测量直接通用。已知的人群差异(语言、年龄、运动能力)与交互差异(首次使用与熟练使用)若在测定中出现,须在定义中声明适用范围。
连续跟踪流必须定义采样片段的归并、候选有效期和空间参照:坐标绑定到哪个界面、视口或空间锚点。坐标变换不可用、时钟误差超出已声明容差或候选过期时,不强行融合。后续帧不得无限续开同一窗口;迟到片段不得重新打开已经提交或取消的交互,也不得仅因迟到便自动成为新的操作。
边界条件本条不规定窗长的具体数值、时钟容差或延迟上限,也不要求窗长固定不变;按情境或按用户自适应的窗口同样满足本条,只要自适应规则本身被定义并可核验。窗口关闭意味着融合终止,不意味着任务终止——关窗后用户仍可澄清或补全,那是一条新的输入而不是原窗口的延续。一次交互所用的窗口配置快照随该次运行事实记录;一般策略变更从下一个窗口起生效,撤权与关闭立即阻止受影响的未提交行为。
设计应用把窗口参数放在可查的配置里而不是散落在各处的超时常量;对每个通道组合分别记录一组参数与其测定依据。窗口过短会漏掉顺序整合的用户,过长会把两条独立指令粘成一条——两侧都要在测定中被检查。
验证示例
- 实现侧:调取窗口参数及其测定记录,确认覆盖了产品实际支持的每个通道组合。
- 用户侧:在实测样本中检查窗口两端的错误率,确认取值不是只优化了一侧。
反例做不到——融合窗口是某次调试时随手定的一个毫秒常量,无人知道依据;做过头——为每个用户每个会话动态调参,窗口行为不可复现,故障无法归因。
依据与参考已有系统按经验数据设定时间约束来许可融合,其记录的模式是语音倾向于跟随手势、反向很少见(R03、R02);个体整合模式在首次交互时确立并在会话中保持稳定(R04)。附录 C 给出测定方法。
MM2-2窗口关闭前不抢先执行必须
一句话:看起来完整的半句话,等等第二个通道再说。
适用存在输入融合、流式识别或由组合输入触发执行的系统。
规则当一个通道产生了在语义上完整、可独立执行的指令,而该指令同时可能是一次多通道输入的组成部分时,系统在融合窗口关闭之前禁止执行它,也禁止产生该执行的任何外部可见副作用。窗口关闭后,若另一通道未提供可融合的信号,则按单通道解释处理(见 MM2-3)。本条约束的是执行与副作用,不约束预处理、候选生成与界面预览——这些可以在窗口内进行,但必须是可无痕撤回的。
流式输入:中间转写、尚未结束的手势和预测落点只能更新候选或预览。产品必须定义“输入已完成”的依据;收齐通道不等于解释已稳定。用户说“不是 A,是 B”或识别器修正同一段输入时,只替换受影响槽位并重新校验,旧候选不得再提交,修正不得被当作新的重复操作(见 mm.fusion.revision.policy)。
停止与取消:必须存在无需补齐普通融合输入即可到达的控制路径,优先拦截尚未提交的动作。控制回执分别说明“已收到”与“已生效”;已提交部分核对真实结果,不能只因识别到“取消”就显示“已撤销”。暂停播报、取消本次输入、停止任务和撤销已执行结果须有不同语义;恢复必须由明确的继续动作触发,迟到识别或通道重新上线不自动恢复(见 mm.fusion.control.policy)。
边界条件当产品已声明某通道组合下不会出现跨通道补全(例如该界面上没有任何可指代对象),可不开窗直接执行,此判断须可核验而不是由实现顺手决定。停止与取消按本条的控制要求优先处理,不等待普通融合窗口。
设计应用把"可执行"和"已提交"分开:窗口内到达可执行状态,窗口关闭才提交。给窗口内的等待一个轻量、非阻塞的可见表现,让用户知道系统在等而不是卡住(与 MM2-5 配合)。
验证示例
- 用户侧:先说出一条完整指令,随即在窗口内补一个指点动作,观察是执行了两次还是一次融合结果。
- 实现侧:检查执行入口是否在窗口关闭事件之后被调用;确认窗口内不产生网络写入或状态变更。
反例做不到——用户说"删除"然后指向对象,系统在听完"删除"时就删了当前选中项;做过头——所有单通道指令都被无条件延迟等待第二通道,纯语音操作整体变慢,且这个延迟不可关闭。
依据与参考已有系统明确记录了这一处理:融合器在收到看起来完整的单通道指令时不立即执行,以防随后到达的另一通道信号构成多通道解释;若窗口内没有等到,则送出最佳的单通道解释(R03)。本条是该实现模式的行为化表述,不指定实现。
MM2-3等待有上限且结果明确必须
一句话:等不到就按单通道解释办或明确失败,不悬着。
适用存在融合等待的系统。
规则融合等待必须有上限。窗口关闭时,系统必须结束本次收集并产生明确的融合结果:完整解释进入提交前校验,缺项或冲突进入待澄清,或明确拒绝/取消。只有完整、无冲突且满足提交条件的单通道解释才可执行;禁止停留在既未执行也未反馈的静默状态。等待期间超过产品定义的可感知时长时,必须给出正在等待的可见或可感表现。最长等待上限、可提前关闭的条件与开始给出等待提示的时刻是三个分别决定的量——等待提示的时刻约束的是用户感知,窗口的最长截止约束的是融合逻辑,早关条件决定它可能更早结束;产品若令其中任意两者相等须是显式决定。
边界条件本条不要求等待上限对所有通道组合相同,也不禁止在用户显式表示"还没说完"时延长等待;延长须由用户行为触发并可被观察,不得由系统自行续期。
设计应用把"窗口关闭"做成一个必然发生的事件而不是一个可能不发生的条件;对每条路径都写出收集结论与后续任务状态,包括"两个通道都没给出可用结果"这一条。
验证示例
- 用户侧:只提供半条多通道指令然后停止动作,观察系统是否在声明期限内说明缺项、保留已有内容并给出补全或取消入口。
- 实现侧:注入第二通道信号永不到达的情况,确认窗口按时关闭且产生融合结果与下一步,无悬挂请求。
反例做不到——用户说"把这个"然后没有指点,系统既不提示也不放弃,界面停在原样;做过头——等待上限压到远短于实测的顺序整合间隔,先指后说的用户几乎无法完成任何多通道指令。
MM2-4顺序整合与同时整合都要支持必须
一句话:有人先指后说,有人边说边指,两种都是正常用法。
适用支持跨通道指代或跨通道补全的系统。
规则融合逻辑必须同时接受时间上重叠与时间上先后两种通道到达模式,禁止把"信号重叠"作为构成一次多通道输入的必要条件。通道之间的先后顺序不得被固定为唯一合法顺序——产品可以声明它支持哪些顺序,但不得以"用户应当同时进行"为由拒绝处理常见的顺序输入。本条不要求支持任意长的间隔:可接受的间隔上限由 MM2-1 的窗口定义给出,本条要求的是间隔本身不是错误。
边界条件本条不要求支持所有通道对的所有顺序;若某一顺序在实测中不出现或产品明确不支持,须在能力披露中说明,而不是在运行时静默丢弃。
设计应用融合器不要以"当前正在接收语音"为前提去等指点,也不要反过来;把两侧都建模为可先可后的事件流。窗口的起点应当能由任一通道的信号触发。
验证示例
- 用户侧:分别以"先指后说""边说边指""先说后指"三种方式发出同一条指令,比较结果是否一致。
- 实现侧:检查融合条件中是否含有时间区间必须相交的硬性判断。
反例做不到——只有在语音时间区间与指点时间区间相交时才融合,先指两秒再开口的用户永远得不到融合结果;做过头——为容纳所有顺序把窗口开到很长,两条不相关的指令被粘成一条。
依据与参考已有实证记录显示多通道输入约有一半是顺序整合,且笔输入先于语音的比例极高,间隔在一到两秒量级;同一记录还区分出同时整合与顺序整合两类用户,个体模式稳定(R04)。另有记录指出,包含与指点重叠的口语指示词的指令只占少数(R04),"重叠即融合"的假设会漏掉大部分情况。
MM2-5窗口内外的同一动作语义不同且可感知应当
一句话:这一指是补上一句还是新的一句,人要看得出来。
适用同一动作在融合窗口内与窗口外具有不同语义的系统。
规则当同一个通道动作在窗口内被解释为"补全上一条指令"、在窗口外被解释为"发起新指令"时,系统应当让当前处于哪种状态是可感知的,且状态表现要在动作发生之前就可获得,而不是事后才由结果揭示。窗口开启与关闭这两个时刻应当有可感表现(视觉、听觉或触觉均可,选择见 MM6-5)。禁止让用户只能通过观察执行结果来推断刚才是否还在窗口内。窗口状态的表现应当轻量,不遮挡内容也不要求用户为它分配注意力。
边界条件本条不要求把窗口剩余时间量化展示;只要求"在窗口内"这一事实可被感知。当窗口内外语义完全相同(补全与新指令导致同一结果)时,本条不适用,记录"不适用"即可。
设计应用用一处持续的轻量状态而不是一次瞬时提示表达"正在等待补全";窗口关闭时给一个明确的结束表现,避免用户在关闭之后继续做补全动作。
验证示例
- 用户侧:在窗口即将关闭时做出指点动作,询问用户预期该动作属于上一条还是新一条,比较与系统实际处理是否一致。
- 实现侧:确认窗口开闭事件都有对应的输出,且交互状态与呈现同步更新;呈现未准备好时不开放依赖新语义的入口。
反例做不到——用户以为还在补上一句,系统已经关窗并把这一指当成了新指令;做过头——窗口状态用一个占据屏幕中央的倒计时环表达,每次多通道输入都伴随一次显著动画。
MM2-6不为提高融合率延长窗口应当
一句话:延长窗口时,漏融合与误绑定都要测。
适用以融合成功率作为优化目标之一的系统。
规则融合窗口的取值应当由 MM2-1 所述的测定依据决定,禁止仅以提高融合率、降低"未融合"计数或改善某项聚合指标为由延长窗口。窗口变更应当同时记录其对误绑率的影响——延长窗口在提高融合率的同时会把更多无关信号纳入候选,两者必须一并评估。融合率本身不应当作为该能力做对了的验收指标;验收应当采用与任务结果相关的指标(见 mm.evidence.success.metrics)。
边界条件本条不禁止调整窗口,也不禁止在实测支持下延长;它禁止的是把融合率单独作为调整理由。
设计应用把融合率与误绑率作为一对必须同时报告的量,任何一次窗口调整的记录里两者都要出现。
验证示例
- 用户侧:在相同任务上比较候选窗长,确认先指后说的成功率改善没有以误绑、等待或多余确认为代价。
- 实现侧:调取窗口的参数调整依据,检查每次调整是否附有两侧影响的评估。
反例做不到——为了让"多通道使用率"这项指标好看,把窗口从实测值翻倍;做过头——窗口一经确定就再不允许调整,实测已显示取值不适用于新增的通道组合也不改。
3.3 MM3 冲突可裁决可撤销
两个通道给出不相容的内容,这是融合的常态而不是异常:注视落在 A 而语音提到 B,手势指向左而语音说"往右"。这条原则管的是这种不一致被怎么处理——先要被发现,再按事先定好的规则裁,裁完要说出来,而且要能改回去。本原则管内容不一致,不管通道缺失:通道给不出内容时按 MM5 处理。已有实现把跨通道的相互印证当作纠错手段(一个通道的语义信息可以帮助另一个通道从识别错误中恢复),这条原则的另一面正是:相互印证成立的前提是不一致会被发现(R04、R08)。
MM3-1冲突必须被检出必须
一句话:两个通道说的不一样,这件事本身要被发现。
适用同一次输入中多个通道可能给出彼此不相容内容的系统。
规则系统必须具备检出跨通道内容冲突的机制,禁止用"后到覆盖先到""某通道恒定优先"或"取置信度最高者"的隐式规则让冲突在无人察觉的情况下消失。检出的粒度至少要能区分三种情况:两通道内容相容(可融合)、两通道内容不相容(冲突)、其中一方无可用内容(缺失,转 MM5)。冲突事件必须可被记录与统计——冲突率是这类系统的基础运行指标,不得因为它一直被自动处理而不予观测。
无法判明相容性时必须保留“未知”,不得把未知等同相容。两路分数未经同任务、同人群条件下的校准,不得直接相加、相乘或取高者作为正确性的证明;同一原始信号的两种推断不得计作两份独立证据。采用自动裁决时须记录输入来源关系和共同失效条件;不能证明满足裁决条件时转显式选择。
边界条件本条不要求系统解决所有冲突,只要求识别出冲突存在;解决方式由 MM3-2 至 MM3-5 规定。通道之间在语义上互补而非重复的输入(一个提供动作、一个提供对象)本就不构成冲突,不在本条范围内。
设计应用把“相容”“冲突”“缺失”“未知”分别表达,让下游显式处理未能判明的情况。冲突计数与融合计数一起上报。
验证示例
- 用户侧:注视一个对象的同时用语音说出另一个对象的名称,观察系统是否表现出察觉。
- 实现侧:检查融合逻辑中是否存在无条件覆盖。用已知冲突样本注入,检出率须达到产品声明的门槛;用已知相容样本注入,不得被判为冲突。统计须同时报出分母、漏检数、误报数与归入「未知」的数量。恒为零本身既不能证明机制有效,也不能证明机制缺失——低冲突场景下真实值可以是零;只有在注入样本未被检出时才判为机制未生效。
反例做不到——语音说"打开设置",指点落在"删除"上,系统按指点执行且全程无任何冲突记录;做过头——把所有语义不完全等价的通道输入都判为冲突,互补型输入("移到" + 指点位置)被反复要求澄清。
MM3-2裁决规则预先定义且稳定必须
一句话:谁赢是事先定好的,不是谁先到谁赢。
适用会对跨通道冲突作出自动裁决的系统。
规则自动裁决必须依据预先定义、可核验且在相同条件下产生相同结果的规则(见 mm.arbitration.policy)。禁止以信号到达顺序、处理线程调度或识别器返回快慢作为裁决依据——这些是实现细节而非设计决定。裁决规则可以引用通道的可靠性差异、任务情境或用户显式设置,但所引用的每一项都必须是可解析的声明值而非运行时的偶然状态。通道优先级不等于内容正确:某通道在优先级上靠前,只决定冲突时采纳谁,不构成"它说的是对的"这一判断,也不减免 MM3-3 的告知义务与 MM3-4 的撤销义务。
边界条件本条不要求裁决规则固定不变,允许按情境解析出不同规则;变化必须由声明的情境维度驱动并可复现。本条不适用于 MM3-5 所述必须交由用户裁决的高代价冲突。
设计应用把裁决规则写成一张可查的表:情境 × 通道对 → 采纳方,而不是散布在各处的 if 分支。设置项里让用户能表达"我说话时以语音为准"这类偏好,并让它进入同一张表。
验证示例
- 用户侧:在同一情境下重复制造同一种冲突,确认裁决结果一致。
- 实现侧:改变信号到达顺序而保持内容不变,确认裁决结果不随之改变。
反例做不到——哪个识别器先返回就用哪个,同一操作在网络好和网络差时表现不同;做过头——裁决规则细化到每个控件每种组合都单列一条,无人能预测系统行为,规则表本身成了不可维护的黑盒。
依据与参考已有平台文档给出过成文的输入优先级与回退次序,并把"设备输入优先于身体输入"解释为对用户意图的推断(R16、R17)——那是一个可核验的预先声明,而不是运行时的偶然结果;本条要求的是这种可声明性,不采纳其具体次序。
MM3-3裁决结果可见必须
一句话:采纳了哪一边、放弃了哪一边,要说出来。
适用对跨通道冲突作出自动裁决并据此改变行为的系统。
规则自动裁决改变了系统行为时,必须让用户能知道采纳了哪个通道的内容,并且在被放弃的一侧存在明确用户表达时,必须让用户知道它被放弃了。告知须与结果同处一处、同一时机,不得只存在于日志或事后可查的记录中。告知的详略按后果分级,但"发生过一次裁决"这一事实本身不得被省略。回执必须来自实际裁决与提交事实,不由动画播放或生成文案推断。
边界条件本条不要求逐次展示裁决依据的完整推理;依据的可说明性见 MM1-6 的同类要求。当被放弃的一侧并非用户的明确表达(例如一次低置信的被动信号)时,可将采纳来源合并进结果回执,不必呈现被放弃项;仍须让用户知道采用了哪一路。
设计应用把裁决告知合并进操作结果的呈现里,不做成额外的提示层;用"按您说的执行"这类指向通道的措辞,而不是"已处理"。
验证示例
- 用户侧:制造一次两侧都有明确表达的冲突,检查用户能否从界面上看出哪一侧生效。
- 实现侧:确认裁决事件在用户可见层有对应输出,而不是只写入日志。
反例做不到——语音和手势指向不同对象,系统选了一个执行,界面上完全看不出另一侧存在过;做过头——每次轻微的通道不一致都弹出"检测到输入冲突,已采用语音输入"的模态提示。
MM3-4裁决可撤销并可切到另一解释必须
一句话:选错了要能一步换回来,不是重做一遍。
适用存在自动裁决且裁决可能与用户意图不符的系统。
规则自动裁决产生的结果必须可撤销,并且系统必须提供直接切换到被放弃的那一个解释的路径——不要求用户重新完成整条多通道输入。切换路径应当与裁决告知处于同一位置,且在结果发生后的一段可用时间内保持可达(时长见 mm.arbitration.revert.window)。切换前必须核对已产生的结果:先撤销原结果,再提交另一解释;原结果无法撤销时不得叠加执行替代操作。撤销只作用于本次操作,保留用户此后无关的修改。若被放弃的解释因对象状态变化已不可用(见 MM1-4),必须说明原因而不是静默移除入口。
边界条件本条不要求无限期保留候选解释;保留时长由产品定义。对于按 MM3-5 已交由用户裁决的情况,本条不再额外要求撤销入口。
设计应用把候选解释与结果一起保留一小段时间,让"不是这个,是那个"成为一次点击而不是一次重新输入。撤销与切换是两件事:前者回到操作前,后者跳到另一个结果。
验证示例
- 用户侧:在裁决结果出现后尝试切换到另一解释,记录所需步数与是否需要重述指令。
- 实现侧:确认被放弃的解释在保留期内可被检索并执行;构造对象已变化的情况,确认给出原因。
反例做不到——裁决错了只能撤销后把整条"看着它说把这个移到那儿"重做一遍;做过头——每个结果旁边长期挂着一列"其他可能的理解",界面被候选项占满。
MM3-5后果越大越不自动裁决必须
一句话:代价高的冲突交给人,不要替人挑。
适用跨通道冲突可能发生在不可逆、外发或高代价操作上的系统。
规则当冲突涉及的操作属于不可逆、影响他人或按产品风险分级属于高代价一档时,禁止自动裁决后直接执行;系统必须把冲突呈现给用户并由用户选择。呈现必须包含两侧各自对应的具体结果(不是通道名称),使用户能在结果之间而不是在通道之间作选择。用户未作选择时不得默认执行任一侧。确认须包含对象、动作、关键参数和后果;风险未知时按高代价处理。
边界条件安全关键的即时停止类指令不受本条约束——此类指令走 MM2-2 的控制路径,在声明的安全策略内优先处理。当两侧解释导致的结果完全相同时不构成需要用户裁决的冲突。
设计应用把选项写成"删除 A"与"删除 B",不要写成"采用语音"与"采用手势"——用户不需要知道通道,需要知道后果。
验证示例
- 用户侧:在高代价操作上制造冲突,确认系统停下来询问且选项描述的是结果。
- 实现侧:核对风险分级表与自动裁决开关的对应关系,确认高代价一档不可被配置为自动。
反例做不到——语音说"发给张三"、注视落在李四的头像上,系统自动选一个发了出去;做过头——把所有多通道操作都归入高代价一档,每次交互都以一次二选一对话结束。
3.4 MM4 一个意图执行一次
同一个用户意图可能在两个通道上各被识别一次。融合分组只解决输入归并,实际提交还要抵抗并发、重传与结果回执丢失。设计要同时证明“形成一个意图”和“业务只生效一次”;只合并界面提示不能证明后者。
MM4-1同一意图只产生一次副作用必须
一句话:两个通道识别到同一件事,只做一遍。
适用多通道输入可产生业务副作用,且同一操作可能被多路、重传或重连重复提交的系统。
规则当多个通道在同一次交互中各自产生了对应同一用户意图的指令时,系统必须只产生一次副作用。禁止把"两个通道都识别到了"当作两次表达,也禁止把它当作置信度提升的理由而执行得更彻底(例如从提示升级为直接执行)。去重必须发生在产生外部可见副作用之前;已经外发、已经写入或已经通知的结果,事后合并不满足本条。
输入归并后,提交入口必须在实际副作用发生前保证同一动作不会因并发、重传或重连重复生效。已提交但回执丢失时,结果为“未知”,先核对业务状态;不得生成新动作标识盲目重试,也不得显示已失败。无法提供安全提交机制时,停用受影响的自动执行路径,保留意图并提供核对/人工处理入口。
边界条件本条不适用于用户明确表达的重复(见 MM4-4),也不适用于语义上互补的多通道输入——那是一次输入的两个部分,本就只有一次意图。
设计应用在意图产生处而不是在执行处去重;把"融合产出一个意图"作为唯一的下游入口,不给各通道保留旁路提交路径。
验证示例
- 用户侧:同时说出确认词并做出确认手势,检查是否只发生一次操作。
- 实现侧:检查是否存在绕过融合层直接提交的通道;构造两通道同时产出的场景,确认下游只收到一个意图。
反例做不到——用户说"发送"的同时点了发送手势,消息发出两条;做过头——把用户在两秒内的两次真实发送都判为重复,第二条消息静默丢弃且不告知。
MM4-2去重按意图标识而非表面相同必须
一句话:字面一样不等于同一次,字面不同也可能是同一次。
适用进行跨通道去重的系统。
规则去重判据必须建立在意图的标识上——即所指对象、动作与参数构成的可比较标识——而禁止仅以文本相同、事件类型相同或时间接近作为唯一判据。两个通道对同一意图的表述通常不相同(一个说"删掉"、一个做删除手势),仅比文本会漏判;两次不同的意图也可能表述相同(连续两次"下一个"),仅比文本会误判。标识的构成须显式定义(见 mm.idempotence.key),并须包含足以区分相邻两次真实操作的成分。
"语义签名"与"交互实例标识"必须分开:前者比较动作、目标域与参数,用于判断两路表达是否在说同一件事;后者由融合分组与明确的新操作证据(用户的再次发起、状态已变化、显式的重复入口)决定,用于判断这是不是新的一次。仅凭语义签名相同不得判为重复——连续两次"加一"在动作、对象与参数上完全相同,却是两次意图。缺少绑定对象的指令不得为满足标识而伪造指代对象:此类指令以其目标域(当前焦点上下文、当前任务)作为标识成分。实际提交的动作标识与输入语义签名分别定义,并保持可追溯关联;同一动作重试复用其标识,有意重复生成新动作标识。
边界条件本条不要求标识在全系统唯一,只要求在去重窗口与作用范围内可区分。当产品的意图空间中不存在可重复的相邻同类操作时,可简化标识,但简化须是显式决定。本条不承诺任何单一时间阈值能把"跨通道重复"与"真实的第二次"分开:去重窗口须同时参照跨通道重复的到达延迟分布与真实重复的间隔分布,两者重叠的区间以显式的重复入口、状态证据或"不确定"处置解决,不得宣称一个阈值必然分开。
设计应用把标识定义成结构而不是字符串:动作 + 绑定对象 + 关键参数。让不同通道产出的意图落在同一个标识空间里,否则去重无从比较。
验证示例
- 用户侧:连续发出两次真实的相同操作,确认两次都生效;同时用两个通道发出一次操作,确认只生效一次。
- 实现侧:检查去重判据的组成,确认不是仅比较识别文本或事件名。
反例做不到——按识别文本去重,用户连说两次"下一页"只翻了一页;做过头——把绑定对象的内部内容标记也放进标识,同一意图因两通道读到的内容标记不同而去重失败,仍然执行两次。
MM4-3去重窗口与作用范围显式必须
一句话:管多久、管到哪儿,要写下来。
适用进行跨通道去重的系统。
规则去重的时间窗口与作用范围必须显式定义并可核验(见 mm.idempotence.window 与 mm.idempotence.scope)。作用范围须说明去重在哪些通道之间生效、是否跨会话、是否跨入口。去重窗口与融合窗口是两个分别定义的量,禁止默认相等而不作说明——融合窗口决定"还等不等",去重窗口决定"这次算不算重复"。窗口取值须有依据,不得使用无来源的通用数值。输入去重窗口结束,不代表已提交动作可以再次执行;提交记录的保留期须覆盖重试与回执核对范围。
边界条件本条不要求所有意图类型使用同一窗口;按意图代价分档设置不同窗口是允许的,分档规则须可核验。
设计应用把两个窗口分别命名、分别记录依据,避免工程实现顺手共用一个常量;作用范围写清参与者、任务、通道与入口,明确哪些事件共享一次交互。
验证示例
- 实现侧:调取两个窗口的定义与依据,确认它们是分别决定的。
- 用户侧:在窗口边界前后各制造一次重复,确认行为符合定义。
反例做不到——去重直接复用融合窗口的常量,融合窗口一调整,去重行为跟着变且无人知道;做过头——去重窗口设为整个会话,用户一整天内只能执行一次同类操作。
MM4-4有意重复必须可表达必须
一句话:用户真想做第二遍时,去重不能拦着。
适用进行跨通道去重且其意图空间中存在合理重复操作的系统。
规则用户有意重复执行同一操作的意图必须能够被表达并被执行。系统必须提供至少一条不受去重抑制的路径:可以是显式的重复入口,可以是用户确认"再来一次",也可以是携带新操作证据的自然重复。禁止把去重做成用户无法绕过的限制,也禁止在抑制了一次重复之后不告知——对用户可能理解为新操作的输入,抑制时必须说明没有再次执行;已明确归并为同一交互的多路输入可共用一次回执,无需逐路提示。
边界条件本条不要求在高代价操作上提供快捷的重复路径;此类操作的重复可以要求显式确认。产品若能论证某类操作在其语义下不可能被合理重复,记录该论证即满足本条。
设计应用把"抑制了一次重复"做成一次轻量反馈而不是无反馈;重复入口放在结果附近,用户不必回到起点。
验证示例
- 用户侧:在去重窗口内故意重复一次真实操作,确认能完成或至少被告知未发生。
- 实现侧:检查是否存在不受去重影响的执行路径,且该路径不需要用户切换通道。
反例做不到——用户想连续加两次数量,第二次被去重静默吃掉,界面无任何变化;做过头——为保证重复可达,任何被判为重复的操作都弹窗询问"是否再执行一次",去重的意义被抵消。
MM4-5判不准时不静默执行第二次应当
一句话:说不清是不是重复,就别偷偷再做一次。
适用去重判据在部分输入上必然无法确定的系统。
规则当系统无法确定两次意图是同一次表达还是两次表达时,应当优先按不重复执行处理,并把不确定性表达出来:给出已执行一次的结果与一个可用的重复入口,让用户决定是否再来一次。禁止在不确定的情况下静默执行第二次并只在事后提供撤销。对于可完全撤销且撤销成本低的操作,产品可按 mm.idempotence.uncertain 选择"执行并显著提示"一档,但该档不适用于不可逆与外发操作。
边界条件本条不要求消除不确定性,也不禁止产品通过增加判据来降低不确定比例;它规定的是不确定情况下的默认方向。
设计应用把"不确定"设计成去重结果的一档合法取值而不是异常分支——否则实现会倾向于二选一,通常选成执行。
验证示例
- 实现侧:注入时间戳缺失、通道时钟偏移与标识部分缺失三类情况,确认产生"不确定"档而非默认执行。
- 用户侧:在不确定场景下确认用户能看出只执行了一次,并且知道怎样再执行一次。
反例做不到——两个通道的时间戳对不上,系统无法判断,于是两次都执行,转账发生两笔;做过头——一旦出现不确定就中止操作并要求用户重新完整输入,正常操作被高频打断。
3.5 MM5 少一个通道仍能完成
通道会消失:权限被撤销、设备被占用、跟踪短暂丢失、环境不适宜或用户主动关闭。需要明确减少通道后怎样继续、哪些输入仍然有效、何时允许恢复。多通道的价值包含在表达条件变化时仍能完成任务,而不只是正常条件下少点几次(R04)。
MM5-1任务不只有多通道一条路径必须
一句话:每项任务都有不依赖原组合的完成路径。
适用提供多通道组合输入的系统。
规则通过多通道组合可完成的每一项任务,必须存在不依赖该组合的替代完成路径。替代路径可以更慢、步数更多、表达更啰嗦,但必须能达到同一结果,且必须在产品内可被发现。禁止存在只有多通道组合才能触发的功能,除非该功能在物理上不可能由更少通道完成(此类例外须显式声明并说明理由)。替代路径的可达性不因用户关闭了某通道而降低(见 MM5-4)。
替代路径须验证选择对象、填写参数、确认、纠错与取消的全过程。不得仅按首次检测到的设备锁定输入方式。对 Web 的拖拽功能,同时检查无需拖拽的单指针路径;提供键盘入口本身不证明触摸用户能够完成。状态变化须能被辅助技术感知,常规反馈不抢焦点,流式候选不逐帧播报。相应公开依据与适用边界见 R13、R19、R20。
边界条件本条不要求替代路径在效率上等同,也不要求每个剩余的单通道都能单独完成全部任务——要求的是存在至少一条不依赖多通道组合的路径。产品须声明它承诺覆盖的可用通道子集清单、每个子集下各任务的可达入口,以及完全没有可操作通道时的保留与恢复路径(保留已表达的部分,恢复后可继续)。"存在替代路径"不得被读成"任一单通道均全能"。
设计应用设计功能时先写出它的单通道路径,再考虑多通道能省掉哪几步;反过来做容易产生只有组合才能触发的功能。已有设计记录建议让可选的输入模式提供重复的功能覆盖,以便用户用任一模式达成目标(R04)。
验证示例
- 用户侧:遍历产品声明支持的通道子集,检查各任务能否走完;完全无可操作通道时检查状态保留和恢复入口。
- 实现侧:核对功能清单与其单通道路径的对应表,确认无空缺或空缺已有声明理由。
反例做不到——"把这个移到那里"是布局功能的唯一入口,不能说话的用户无法调整布局;做过头——为保证等价,把多通道路径也拆成与单通道相同的分步确认,组合输入的表达效率被抹平。
MM5-2通道不可用是明确状态必须
一句话:用不了就说用不了,不要装作在工作。
适用任一参与融合的通道可能不可用的系统。
规则通道不可用必须是一个明确的、可被系统内部识别并对外表达的状态,而不是表现为持续无响应或持续低质量结果。不可用状态必须区分至少三种成因:设备或权限层面不可用、用户主动关闭、当前环境条件下不适用。禁止把不可用的通道继续计入融合候选并因此拖长等待(见 MM2-3),也禁止在不可用状态下继续向用户呈现该通道可用的表现(例如仍显示"正在聆听")。
跟踪短暂丢失与恢复须有稳定判据,避免在两种交互方式间反复跳转;稳定等待不得拖延权限撤销和用户关闭。恢复只允许新鲜且归属明确的信号参与,不重放断开期间的旧动作,不自动提交先前未完成的意图(见 mm.channel.recovery.policy)。
边界条件本条不要求系统区分不可用的全部技术原因;三类成因的区分是下限,因为它们对应不同的用户下一步。短暂丢失也必须阻止使用已过期的候选;是否改变提示与默认通道,按声明的稳定条件决定。
设计应用把通道状态做成融合器的一等输入,让融合逻辑读取状态而不是靠超时推断;对外表达用"当前不可用"而不是"没有听到"。
验证示例
- 用户侧:撤销麦克风权限后发起多通道指令,观察系统是否明确说明而不是无响应。
- 实现侧:分别注入权限拒绝、用户关闭与环境不适用三种情况,确认状态可区分且融合逻辑读取到。
反例做不到——摄像头被系统占用,手势通道永远收不到数据,界面上手势图标依然亮着;做过头——通道每一次短暂抖动都升级为"通道不可用"横幅,正常使用中提示不断。
MM5-3降级须被告知并说明变了什么必须
一句话:悄悄换了一套行为,比不能用更糟。
适用通道减少时会改变交互方式或改变同一动作语义的系统。
规则因通道减少而进入降级路径时,系统必须告知用户已经降级以及哪些行为随之改变。禁止静默降级——尤其禁止在保持界面外观不变的情况下改变同一动作的语义。告知须说明用户当下可以怎么做,而不只是说明发生了什么。降级期间被禁用或被改变的入口须可被识别,不得保持原样但不再生效。
边界条件本条不要求为每一次通道状态波动都发出告知;只要求在交互方式实际改变时告知。若降级后行为完全不变(仅冗余通道消失),可不告知,但该判断须可核验。
设计应用把"降级告知"和"如何继续"写在同一处;对改变了语义的控件给出明确的新语义提示,而不是让用户从失败中发现。
验证示例
- 用户侧:在多通道使用中途关闭一个通道,观察是否得到告知以及能否知道接下来怎么做。
- 实现侧:列出所有降级路径,逐条确认有对应的告知与行为差异说明。
反例做不到——手势通道失效后,原本"看着并捏合"的操作变成了"注视两秒即触发",界面毫无变化,用户开始误触;做过头——每次降级都以模态对话框中断当前任务,并要求用户阅读完整的能力差异说明。
MM5-4可分通道关闭且关闭有效必须
一句话:关掉摄像头就是不再看,也不用别的信号绕回来。
适用采集两个及以上通道信号的系统。
规则用户必须能分通道关闭参与融合的采集,而不是只能整体开关。某通道被关闭后,系统必须停止该开关已声明控制范围内的采集、读取或推断,禁止继续将其历史原始信号或未接受的候选用于当前融合。已被接受的对象与参数按 MM5-6 保留为任务状态;用户另行要求删除时按声明的删除范围执行。禁止在未经用户明确选择的情况下,借其他信号恢复已被关闭的采集、读取或推断用途(例如关闭眼动后自动以头部朝向推断"等价注视落点",或关闭麦克风后以唇动重建语音内容)。
用户可以明确启用经过说明的替代输入:例如在关闭眼动之后主动选择头部指针——它表达的是用户直接控制的指向,不得被呈现为对真实注视的推断,也不恢复已关闭的数据流。关闭控制必须披露它实际控制的层级(原始采集/本应用读取/某项推断用途/整个定位能力),以及在共享传感器上哪些系统必要用途不在本应用的控制范围内。关闭不得导致与该通道无关的核心功能降级,也不得改变 MM5-1 所要求的替代路径可达性。关闭前已采集数据的保留与删除必须一并说明并可分别执行。
关闭或撤权必须使待处理缓冲中的相应片段退出当前融合,并阻止未提交动作继续使用它们。融合用途、原始采集、处理位置、保留范围与期限须有明确说明;撤回一种用途不等于删除全部历史。运行诊断优先保留事件摘要与必要依据,原始敏感信号的留存须有独立目的和可执行的删除路径,不得以“调试需要”为由无限保留(见 mm.evidence.data.policy)。
边界条件本条要求参与融合的各通道用途分别可控;产品不能承诺关闭自己无法控制的系统级采集。产品可将同一物理传感器上的多项推断合并为一个开关,但该合并须有技术依据并说明该开关实际关闭了哪些采集与哪些用途;物理上共用传感器不自动取消对本应用各项用途的分别控制。
设计应用把"停止采集"与"删除既有数据"做成两个可分别执行的操作,各自说明后果;关闭状态要在所有入口生效,包括被动通道与后台采集。
验证示例
- 用户侧:关闭其中一个通道后,观察系统行为是否不再随该通道的信号变化。
- 实现侧:检查是否存在以其他通道信号重建等价能力的路径;确认关闭状态被融合层实际读取而非仅记录在设置里。
反例做不到——用户关闭了眼动采集,系统改用头部朝向估计注视落点,融合行为几乎不变;做过头——关闭任一通道即停用全部多通道能力,且不提供 MM5-1 要求的替代路径,开关变成劝退。
MM5-5环境与社会条件纳入可用性判断应当
一句话:能出声不代表此刻方便出声。
适用在移动、公共或共享环境中使用的多通道系统。
规则通道可用性的判断应当包含环境条件与社会条件,而不只是设备与权限层面的技术可用性:噪声、手被占用、公共场合不便出声、旁边有人不便使用大幅手势,都会使一个技术上可用的通道在实际上不可用。系统应当在这些条件可被观察时据此调整默认的通道组合,并禁止把用户不使用某通道解释为该通道不被需要而永久降低其权重。判断依据须可解析且可被用户覆盖——用户显式选择的通道组合优先于系统的情境判断。旁观者的说话与动作不得默认作为当前用户的指令。
边界条件本条不要求系统具备环境感知能力;不具备时按用户显式设置处理即可,记录该限制。本条不要求推断用户所处的社会情境细节,只要求把可直接观察的条件纳入默认值选择。
设计应用把情境判断的结果做成"默认组合建议"而不是"强制组合";让用户的一次显式选择能覆盖它并在同类情境下保持。
验证示例
- 用户侧:在嘈杂环境与安静环境下分别发起同一任务,观察默认建议的通道组合是否合理且可被覆盖。
- 实现侧:确认用户显式设置在情境判断之上生效,且不被使用频率反向修改。
反例做不到——在会议室里系统仍把语音作为唯一便捷路径,用户只能小声重复三遍;做过头——系统根据环境噪声频繁自动切换主通道,用户每次抬手都不知道这次该说还是该指。
MM5-6切换通道不重置已完成的部分必须
一句话:换个方式接着说,不是从头再说一遍。
适用允许用户在一次任务中切换输入通道的系统。
规则用户在一次任务过程中切换通道时,已经表达并被系统接受的部分必须保留,禁止因通道切换而重置输入状态、清空已绑定的对象或要求用户重述前序内容。切换后系统必须能说明当前还缺什么。通道切换是错误恢复的常见手段——用户在一个通道识别失败后倾向于换一个通道再试(R04)——因此切换路径在识别失败之后必须仍然可达,且不得因失败而清空上下文。
边界条件确已失效的槽位单独标记并说明原因,其余有效部分保留。在新通道不能直接展示的已接受内容须提供可回取形式,不得因无法展示而删除。本条不要求无限期或跨会话保留。
设计应用把任务状态存在任务上而不是存在通道会话上;把"还缺什么"做成随时可查的当前状态,而不是只在失败时才出现的提示。
验证示例
- 用户侧:说到一半改用手势完成,检查前半部分是否仍然有效。
- 实现侧:在通道切换点检查任务状态对象是否被重建;构造识别失败后切换的场景,确认上下文保留。
反例做不到——语音说完"把这个移到"之后识别失败,改用触摸时发现绑定的对象也没了,只能从头开始;做过头——保留了已完成部分却不告诉用户保留了什么,用户重复表达一遍,系统按两次意图处理(同时违反 MM4-1)。
3.6 MM6 输出按通道分工
输出侧的融合问题与输入侧对称:一次系统输出可以分配到视觉、听觉、触觉等多个通道上。这条原则管的是这个分配——谁承载什么、什么时候一起出现、少一个通道会怎样。常见错误是把多通道输出理解为多份保险:同一句话在屏幕上写一遍、念一遍、再震一下,结果是三个通道互相争抢注意力,用户一个也没接住。已有关于人的多通道表达的记录指出,自然的组织方式是互补而非冗余——不同通道承载不同的语义成分,完全重复的比例极低(R04)。
MM6-1不可错过的信息落在收得到的通道必须
一句话:屏幕不在视野里的时候,别把要紧的话只写在屏幕上。
适用输出可分配到多个通道,且存在用户不得错过的信息的系统。
规则对于用户不得错过的信息——操作已执行的回执、不可逆结果、错误与需要用户介入的状态——系统必须将其投放到按当前可观察条件判断可接收的通道上,且必须为这类信息显式指定承载通道而不是让它随默认布局分散。承载通道的选择须依据可观察的接收条件(屏幕是否在视野内、是否外放、是否佩戴设备)与用户的输出通道设置。已发出、平台已接受、已呈现、用户已处理是四件事,禁止互相冒充;通道路由是产品的决定,不构成用户已获知的保证。
接收条件未知,或候选中没有任何已知可用通道时,系统必须把该信息保留为"未确认接收",提供可回查或待处理的路径,并按预先定义的规则有限升级(改走其他通道、提高显著度、延后重试);禁止把此类信息只放在一个当前不可接收的通道上,禁止仅以"已发出"作为送达的判定,也禁止为满足本条自行恢复用户已关闭的通道。只有当后续处理必须依赖用户的决定时才要求显式确认,不得对每一次提醒都询问用户是否看见。安全关键信息必须同时提供可回查详情。
边界条件本条不要求所有信息都多通道投放;只针对"不得错过"一档。该档的划分由产品定义并记录,划分本身须可核验。
设计应用先给每类输出标注"可错过/不可错过",再决定通道分配;把承载通道写进输出定义(见 mm.output.critical.carrier),不要交给渲染层的默认规则。
验证示例
- 用户侧:在用户视线离开屏幕时触发一次不可逆操作的回执,检查用户能否得知。
- 实现侧:核对不可错过信息清单与其承载通道声明的对应关系,确认无遗漏。
反例做不到——头显中的确认回执只以一行小字出现在用户当前不在看的面板上,用户以为没执行又做了一次;做过头——把所有系统消息都升格为不可错过并同时以声音与触觉推送,重要信息淹没在提醒里。
MM6-2分工是默认,冗余要有理由应当
一句话:三个通道说同一句话,不是三倍稳妥。
适用一次输出可以分配到多个通道的系统。
规则同一次输出在多个通道上应当分工承载不同成分——例如视觉承载细节与可复核内容、听觉承载结论、触觉承载事件发生本身——而不是在每个通道上重复同一内容。采用冗余(同一内容多通道重复)应当有明确理由并被记录,典型的正当理由是接收条件不确定或信息属于不可错过一档(见 MM6-1)。禁止把冗余作为不做分工决定时的默认做法。分工方案须说明缺少任一通道时信息如何仍然完整(见 MM6-4)。
边界条件本条不禁止冗余,也不要求分工必须细到每个语义成分;它要求的是分工与冗余都是被决定过的。无障碍所要求的等价替代不属于本条所指的冗余——那是 MM6-4 的要求。
设计应用为每类输出写一张小表:这条信息的哪一部分给眼睛、哪一部分给耳朵、哪一部分给皮肤,以及为什么。中性触觉提示可以提醒事件发生,具体对象、数量和结果应有可取得的明确说明。
验证示例
- 用户侧:观察一次典型输出,记录三个通道各自说了什么,检查是否为同一句话的三份拷贝。
- 实现侧:抽查输出定义,确认冗余项附有理由。
反例做不到——每条通知都同时弹窗、朗读全文并震动,用户关掉了其中两个,然后错过了真正重要的那条;做过头——为了避免重复,把结论只放在听觉通道,静音的用户完全得不到结论(同时违反 MM6-4)。
依据与参考人的自然多通道表达以互补为主,不同通道承载不同语义成分,完全重复的比例极低(R04)。该记录来自输入侧的观察;把它用于输出侧的分工是本规范的设计推导,不构成「分工普遍优于冗余」的证明——在输出侧,冗余在何种条件下更可取仍未有本规范可援引的结论,产品须自行验证。
MM6-3跨通道输出的时序有定义必须
一句话:差得太远,人会当成两件事。
适用同一次输出跨两个及以上通道呈现的系统。
规则属于同一次输出的多通道呈现,其相对时序必须被定义:哪个先出、允许的间隔范围是多少、超出范围时如何处理(见 mm.output.sync)。间隔取值须由产品按目标情境测定并记录依据,禁止使用无来源的通用数值。超出定义范围时,系统必须避免让用户把它们理解为两次独立事件——可以合并、可以丢弃迟到的一路并保持已呈现的一路完整,但不得原样先后呈现而不作处理。
各路输出必须关联同一业务事件和当前结果。结果被纠正或取消时,须移除尚未播放的过期输出,已呈现的错误结论须更正;不得让“发送失败”的画面与排队中的“发送成功”语音先后出现。取消播报只停止呈现,不自动撤销已执行业务动作(见 mm.output.update.policy)。
边界条件本条不要求各通道严格同时;不同通道的呈现时长本就不同,本条约束的是起始时序与可接受区间。刻意设计的先后序(先提示后详述)不属于同步失败,但其序与间隔同样须被定义。
设计应用把跨通道输出建模为一个带时序约束的组合而不是几个独立发送;为迟到的一路预先写好处置,不要留给运行时偶然决定。
验证示例
- 用户侧:在人为增加一路延迟的条件下观察用户是否把一次输出理解成两件事。
- 实现侧:注入单通道渲染延迟,确认按定义的处置执行而不是原样呈现。
反例做不到——触觉反馈立刻发生,对应的视觉说明在数秒后才出现,用户以为是两次不同的事件;做过头——为保证时序把所有通道都对齐到最慢的一路,即时反馈整体变迟钝。
依据与参考本条要求「同步窗口由产品自行定义并测定」是本规范的设计主张,不依赖外部研究即成立——没有测定就没有可核验的承诺。常被援引的「人对跨通道信号是否属于同一事件的判断存在时间窗、且窗宽因人因条件而异」这一定性陈述登记为 R09,已有访问记录未取得正文,保持待核验;在原文核实之前,本条不以「已有研究证明」的语气引用它,也不据此设定任何毫秒数。
MM6-4任一通道单独可理解必须
一句话:少一个通道,信息可以变少,不能变错。
适用跨通道分工呈现输出的系统。
规则跨通道分工的输出必须做到:用户在只能接收其中任一通道时,所获得的信息仍然是正确的,可以更少、更粗,但不得产生与完整信息相反或有歧义的理解。会改变语义方向的关键成分(否定、数量、对象归属)必须出现在表达该结论的那一路中,禁止把结论放在一路而把改变其方向的成分放在另一路。中性的事件提醒可以不携带这些成分——一次不表达结论的触觉提示不因未编码否定与数量而不合格;但此时必需的详情必须能在当前可用的路径上取得,不得只剩一个无法追查详情的提醒。信息为不可错过一档时,还须同时满足 MM6-1 的承载要求。本条与 MM6-2 的关系:MM6-2 说分工是默认,本条给分工划下限——分工不得分到任何一路单独看是错的。
边界条件本条不要求每个通道都传达完整信息;它禁止的是单通道视角下的错误理解,不是信息缺失。三项检查须分别进行:各路是否与真实状态一致(本条)、必要信息是否在当前可用路径上可达(MM6-1)、无障碍等价替代是否具备(另按无障碍要求)。"视觉显示未发送的原因 + 一次中性触觉提醒"符合本条;"只有中性提醒且无法取得错误详情"违反的是 MM6-1 而不是本条。纯粹的氛围性或装饰性输出不承载语义,不在本条范围内。
设计应用检查每一路输出能否独立成句:只听声音、只看画面、只感觉震动,各自都不能得出相反结论。特别检查否定词与数量词落在哪一路。
验证示例
- 用户侧:分别屏蔽每一路输出,请用户复述得到的信息,检查是否出现与实际相反的理解。
- 实现侧:抽查含否定或含数量的输出,确认关键成分未被拆到单一通道。
反例做不到——屏幕显示"未发送",语音只念了"发送",静音用户与不看屏幕的用户得到相反结论;做过头——为保证每路独立可理解,每一路都完整重复全部内容,退化为 MM6-2 所禁止的默认冗余。
MM6-5输出通道分工随情境解析且用户可改应当
一句话:谁承载什么,按当下情境定,也让人能改。
适用输出通道的可用性或适宜性随情境变化的系统。
规则输出的通道分工应当按当前情境解析——设备形态、是否外放、是否佩戴、是否共享屏幕、是否处于免打扰——而不是固定绑定在某个通道上。用户应当能改变分工偏好(例如"结论也给我显示出来"),且该偏好应当在同类情境下保持。禁止把用户关闭某一输出通道理解为可以把原本由它承载的信息一并丢弃——被关闭通道所承载的信息须改由其他通道承载或明确告知不再提供。路由必须遵守系统静音、免打扰与用户关闭设置;敏感详情不得因原通道不可用而自动转到外放或共享屏幕。
边界条件本条不要求提供逐条信息的通道选择;类别级的偏好即可。不具备情境感知能力的产品按用户设置处理并记录该限制。
设计应用把分工写成"信息类别 × 情境 → 通道"的可解析规则,让用户偏好作为一层覆盖进入同一规则,而不是散在各功能里的独立开关。
验证示例
- 用户侧:在外放与佩戴耳机两种情境下触发同类输出,观察分工是否变化且合理。
- 实现侧:关闭一个输出通道,确认其原本承载的信息改由其他通道承载或有明确告知。
反例做不到——用户关掉了语音播报,原本只由语音承载的结论从此再也不出现,界面上也没有;做过头——分工规则随情境频繁变化,同一类消息每次出现的位置都不同,用户无法形成预期。
MM6-6多通道输出不叠加为过载应当
一句话:同时来三下,等于一下都没收到。
适用可能在短时间内产生多路输出的系统。
规则系统应当对同一时间窗内的多通道输出总量设上限,超限时按语义重要性合并、延后或丢弃,而不是全部呈现。上限本身是必须存在的:可以按产品记录的理由改用等效的总量控制手段(例如按语义类别分别限流),但不得不作任何总量控制;所采用的手段与其等效性论证须记录,并接受与设上限同样的验证。禁止因为通道不同就认为它们互不干扰——视觉、听觉与触觉同时到达仍然共同占用注意力。合并规则应当保留不可错过一档的信息(见 MM6-1),优先丢弃可错过的部分。
边界条件本条不规定具体的总量数值;上限由产品按情境定义并记录依据。安全关键告警按专门告警策略处理,不因普通预算被丢弃;该策略也必须定义优先级与告警风暴处置,不允许无限叠加。
设计应用把输出总量做成一个跨通道共享的预算而不是各通道各自计数;先按重要性排序再分配预算,不要先分配再排序。
验证示例
- 用户侧:构造密集事件场景,检查用户能否指出其中最重要的那一条。
- 实现侧:确认存在跨通道共享的输出预算,且不可错过一档在合并中被保留。
反例做不到——同时到达五条通知,界面弹五个卡片、朗读五段话、震动五次;做过头——上限设得过严,把用户主动操作的即时反馈也一并合并掉,操作变得没有回应。
4. 术语和定义
本章区分配置、一次交互中的事实和用户可见反馈;状态与真实输入不属于 Token。
| 术语 | 定义 | 关键边界 |
|---|---|---|
| 通道 | 系统与用户之间传递信息的一条感知或表达路径,如语音、注视、手势、触摸、视觉呈现、听觉呈现、触觉呈现。 | 一个物理传感器可以承载多个通道,一个通道也可能由多个传感器共同构成;本规范按信息路径而非按硬件划分。 |
| 融合 | 把来自两个及以上通道的信号组合为一次输入的处理。 | 发生在哪一层(信号级、特征级、语义级)不由本规范规定;本规范约束的是组合结果的行为性质。 |
| 融合窗口 | 系统为等待其他通道信号以完成一次融合而保持开启的时间区间。 | 有开启条件、时长与关闭条件三者,缺一不可核验。它与去重窗口是两个分别定义的量(MM4-3)。 |
| 跨通道指代 | 一个通道中的指示表达("这个""这里"),其所指由另一个通道的信号补全。 | 指代解析失败与识别失败是两件事:识别可以完全正确而指代仍然无所指。 |
| 绑定 | 指代表达式与具体对象或坐标之间建立的对应关系。 | 有产生时点与执行时点之分;两个时点之间对象可能变化(MM1-4)。绑定锚定对象身份,不锚定屏幕位置。 |
| 顺序整合 | 各通道信号在时间上先后到达而不重叠地构成一次输入。 | 是正常用法而非异常输入;与同时整合并列存在,个体倾向稳定(见 MM2-4 与 reference.md R04)。 |
| 同时整合 | 各通道信号在时间上重叠地构成一次输入。 | 不是多通道输入的必要形态;把它当作融合的必要条件会系统性排除一类用户。 |
| 冲突 | 两个及以上通道在同一次输入中给出彼此不相容的内容。 | 与"缺失"不同:缺失是某通道给不出内容,按 MM5 处理。互补型输入不构成冲突。 |
| 裁决 | 冲突发生时决定采纳哪一侧内容的处理。 | 裁决是选择,不是判定正确;采纳一侧不表示另一侧是错的(MM3-2)。 |
| 意图标识 | 用于判断两次识别是否对应同一用户意图的可比较结构,通常由动作、绑定对象与关键参数构成。 | 不是识别文本,也不是事件类型;它必须能区分相邻两次真实的同类操作(MM4-2)。 |
| 降级 | 因通道减少而改用不依赖该通道组合的交互方式。 | 是通道集合变化的结果,不是内容冲突的结果;必须被告知(MM5-3)。 |
| 不可错过的信息 | 用户若未接收就会形成错误认知或错失必要介入时机的输出。 | 是产品显式划分的一档,不是全部输出;划分本身须可核验(MM6-1)。 |
| 分工 | 一次输出的不同语义成分被分配到不同通道承载。 | 与冗余(同一内容多通道重复)相对;分工是默认,冗余需要理由(MM6-2)。 |
4.1 一次交互的事实契约
下表用于实现与评审 MM1–MM6,不要求采用特定协议,也不新增 Token。实际的事件、对象、坐标、时间与回执属于运行数据。
| 事实 | 最小内容 | 不得混同 |
|---|---|---|
| 输入片段 | 事件标识、来源通道、主体范围、发生/接收时间、时钟不确定性、暂定/完成/撤回状态、必要的来源关联 | 同源衍生结果不算独立证据;中间转写不算新指令 |
| 交互实例 | 所属任务、参与片段、待补槽位、开关窗依据、实际采用的配置快照 | 关窗不等于任务完成;迟到事件不自动新建实例 |
| 绑定与裁决 | 稳定对象标识或空间锚点、角色、有效条件、候选摘要、选中依据、用户决定 | 置信度最高不等于对象唯一;采纳不等于正确 |
| 动作与回执 | 动作标识、关联交互、实际对象与参数、未提交/已提交、成功/失败/未知、核对依据 | 预览、提交、完成分别表达 |
| 控制 | 作用范围、请求接收、生效结果、未能取消的部分与下一步 | 停播不等于停任务,取消输入不等于撤销结果 |
| 输出 | 业务事件、内容有效性、各路路由、已发出/平台接受/呈现/用户处理的可得证据 | 播放成功不证明用户知悉,缺回执不证明失败 |
收集状态(收集中/已关闭)、解释状态(完整/缺项/冲突/未知)和执行状态分别保存。例如“收集已关闭、缺目标位置、未提交”是合法状态,界面应显示“已选中卡片 A,请选目标列”,而非“任务失败”。
运行记录按 mm.evidence.data.policy 最小化保留;可复核不要求保存所有原始信号。
附录 A:故障注入验证清单与分类检验
本清单用于检验条款是否真的生效,不新增义务。逐项注入,记录系统的实际行为;“不适用”须附场景依据;“没测”记待验证,不得记通过。
A.1 指代与绑定
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 在两个外观相近、相邻的对象之间发出含"这个"的指令 | 不执行,进入显式选择 | MM1-1、MM1-2 |
| 指点通道无任何候选,只有语音里的"这个" | 明确失败并说明失败在指点侧 | MM1-2、MM1-6 |
| 一条指令含两个指代项,指点事件按相反顺序到达 | 有明确角色证据时正确对位;无角色证据时只澄清缺项 | MM1-3 |
| 绑定完成后、执行前删除该对象 | 不在替代对象上执行,说明对象已不存在 | MM1-4 |
| 绑定完成后、执行前列表插入一项使序号偏移 | 操作落在原对象上,不落在同序号的新对象上 | MM1-4 |
| 对不可逆操作发出含指代的指令 | 确认信息中包含解析出的具体对象 | MM1-5 |
A.2 时间与融合窗口
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 调取融合窗口参数与其测定记录 | 覆盖产品支持的每个通道组合,且有依据 | MM2-1 |
| 说出可独立执行的完整指令,随后在窗口内补一次指点 | 只发生一次融合结果,不先执行再修正 | MM2-2、MM4-1 |
| 第二通道信号永不到达 | 窗口按时关闭并产生明确融合结果 | MM2-3 |
| 先指点、停顿、再说话(顺序整合) | 与"边说边指"得到相同结果 | MM2-4 |
| 在窗口关闭前后各做一次相同的指点动作 | 两次语义不同,且用户在动作前能感知处于哪种状态 | MM2-5 |
| 调取窗口的参数调整依据 | 每次变更附有对融合率与误绑率两侧的评估 | MM2-6 |
A.3 冲突与裁决
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 注视落在 A,语音说出 B 的名称 | 冲突被检出并被记录,不静默覆盖 | MM3-1 |
| 保持内容不变,改变两通道信号的到达顺序 | 裁决结果不变 | MM3-2 |
| 制造一次两侧均有明确表达的冲突 | 用户能看出采纳了哪一侧、放弃了哪一侧 | MM3-3 |
| 裁决结果出现后尝试改用另一解释 | 一步可切换,不需重述整条指令 | MM3-4 |
| 在不可逆或外发操作上制造冲突 | 停下询问,选项描述的是结果不是通道名 | MM3-5 |
A.4 重复与幂等
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 同时说出确认词并做出确认手势 | 只发生一次副作用 | MM4-1 |
| 连续两次发出字面相同的真实操作 | 两次都生效 | MM4-2、MM4-4 |
| 调取去重窗口与融合窗口的定义 | 两者分别定义、分别有依据 | MM4-3 |
| 在去重窗口内故意重复一次真实操作 | 能完成,或至少被告知未发生 | MM4-4 |
| 令两通道时间戳缺失或时钟偏移 | 产生"不确定"档,不静默执行第二次 | MM4-5 |
A.5 通道可用性与降级
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 遍历承诺支持的通道子集及完全无通道情形 | 承诺子集内任务可完成;无通道时保留待恢复状态 | MM5-1 |
| 撤销某通道权限后发起多通道指令 | 状态明确,不表现为无响应或持续低质量 | MM5-2 |
| 使用中途关闭一个通道 | 得到降级告知,并知道接下来怎么做 | MM5-3 |
| 关闭眼动采集后观察融合行为 | 不以头部朝向等信号重建等价能力 | MM5-4 |
| 在嘈杂或不便出声的环境中发起任务 | 默认组合合理,且用户的显式选择可覆盖 | MM5-5 |
| 语音说到一半识别失败后改用触摸完成 | 已完成部分保留,不需重述 | MM5-6 |
A.6 输出分工
| 注入 | 期望行为 | 相关规则 |
|---|---|---|
| 用户视线离开屏幕时触发不可逆操作的回执 | 回执落在当前可接收的通道上 | MM6-1 |
| 记录一次典型输出在各通道上的内容 | 是分工不是三份拷贝;冗余处附有理由 | MM6-2 |
| 人为延迟其中一路输出 | 按定义处置,不原样先后呈现 | MM6-3 |
| 分别屏蔽每一路输出并请用户复述 | 无一路产生与实际相反的理解 | MM6-4 |
| 关闭一个输出通道 | 其承载的信息改由他路承载或明确告知不再提供 | MM6-5 |
| 构造密集事件场景 | 用户能指出最重要的一条;不可错过一档被保留 | MM6-6 |
A.7 组合链路与正常使用成本
每个用例分别记录设计定义、机制证据、用户理解;文档检查通过不等于产品实测通过。
| 场景 | 期望行为与可查事实 | 相关规则 |
|---|---|---|
| 同一语句先输出暂定 A,再修正为 B | A 仅预览,旧候选失效;只向 B 提交一次 | MM2-2、MM4-1 |
| 开窗期间说“取消”,随后迟到指点到达 | 控制优先生效,迟到片段不能复活交互 | MM2-1、MM2-2 |
| 已提交后回执超时,用户再次确认 | 显示结果未知并核对;不凭超时再次提交 | MM4-1、MM4-5 |
| 窗口未关时关闭眼动或撤权 | 缓冲片段不再参与;未提交动作被阻止;可用触摸继续 | MM5-4、MM5-6 |
| 三路各自两两相容、整体槽位却矛盾 | 全局检查不通过,不以任一局部配对提交 | MM2-1、MM3-1 |
| 同一摄像头同时导出头姿与注视候选 | 保留共同来源,不能计作独立确认 | MM1-1、MM3-1 |
| 系统播报“发送”,声音重新被麦克风收到 | 无用户激活依据,不触发自执行 | MM1-1 |
| 跟踪连续丢失与恢复;恢复时带回旧动作 | 不反复切换默认方式,旧动作不重放 | MM5-2 |
| 成功语音排队中,真实结果已变为失败 | 取消过期播报,各路解释同一实际结果 | MM6-3、MM6-4 |
| 原耳机通道消失,详情为敏感内容 | 不自动改为外放,保留安全的待查看入口 | MM6-1、MM6-5 |
| 正常低风险移动、连续两次“加一”、切换触摸 | 不增加无必要确认,真实重复可达,有效槽位保留 | MM1-5、MM4-4、MM5-6 |
A.8 分类检验
用于检验第 1 章的切分是否成立:取 10 至 15 条具体要求(可来自本规范条款,也可来自真实评审意见),让至少三名未参与撰写的评审者独立判断其归属原则。归属分歧集中在某两条原则之间,说明这两条原则的规范对象没有切开——此时应当调整原则,而不是增设中间层或映射说明。已知需要重点检验的两处见第 1 章的明示(MM2 与 MM4、MM3 与 MM5)。此处的评审人数与分歧判据是本规范建议的内部检查法,不是经文献验证的标准方法。
附录 B:论据边界与来源类型
B.1 约束词的判据
标「必须」的唯一依据是:缺了它,某条对用户的承诺会在可预见的情境下失效。下列三类论据提供不同支持,不是三种独立的强制性来源;实现参考本身不足以决定标「必须」——
| 来源 | 说明 | 例 |
|---|---|---|
| 有证据的失效 | 已有研究或公开记录表明该承诺会以特定方式失效 | MM2-4(顺序整合占相当比例,按重叠判定会排除一类用户)、MM5-6(研究记录了识别失败后切换输入方式) |
| 已有实现印证机制存在 | 已有系统采用过该机制,证明它可行,但不证明它对所有产品适用 | MM2-2(窗口关闭前不提交单通道解释)、MM1-1(候选排序与指代解析分离) |
| 从承诺反推 | 产品既然承诺理解跨通道指代或组合输入,缺了这项机制承诺必然落空 | MM1-2(解析不成立时回退)、MM4-1(一个意图一次副作用)、MM5-1(单通道路径存在) |
标「应当」的八条是 MM1-6、MM2-5、MM2-6、MM4-5、MM5-5、MM6-2、MM6-5、MM6-6,它们各自都含有禁止级子句(判定见 2.2)。其中的“应当”子句允许有依据的偏离;“必须/禁止”子句仍是底线,不能用偏离记录豁免。
B.2 本规范证据最薄的三处
明确列出,不用条款语气掩盖:
- MM2 组的窗口取值没有可直接采用的通用基准。 所列来源的时间关系记录来自特定的通道组合(语音与笔、语音与手势)与特定任务(地图类空间任务),其量级不能直接移植到注视与捏合、语音与触摸等组合上。本规范因此只要求"窗口被显式定义、有依据、可核验",不给数值——这也是本规范中最可能被形式化应付的一组条款。
- MM6 组的分工原则来自输入侧观察。 "互补而非冗余"的记录描述的是人在表达时如何组织多通道信息(R04),把它用于系统输出侧的分工是本规范的设计推导,不是对来源结论的直接移植。输出侧分工的效果尚待各产品自行验证。
- MM3 的裁决规则缺少跨产品的效果比较。 所列平台文档记录了成文的输入优先级声明(R16、R17),但未发现可比较不同裁决策略在用户理解与纠错成本上的公开结果。本规范因此只要求裁决规则可声明、可复现、可撤销,不推荐任何具体的优先级次序。
B.3 本规范未做的事
不给融合架构(信号级、特征级、语义级均不作规定),不给识别阈值与置信度设定,不给时间窗数值,不给通道优先级次序,不给指代解析算法。这些是产品与领域的决定;本规范只规定这些决定必须被作出、必须可被检验,以及哪些取值不被允许。识别准确率、设备可感知性与任务安全性仍需独立测量,不能由组合行为合格推定。
B.4 来源
完整的来源对照与核验范围见 reference.md。规范中的条款不因为某个产品这样做过就成立;产品做法是"这类机制在真实产品中可行"的证据,不是"应当这样要求"的依据。
附录 C:融合窗口与去重窗口的取值测定
本附录是 MM2-1、MM2-3、MM4-3 与 MM6-3 的应用参考,不新增义务,也不给出任何推荐数值。
| 要回答的问题 | 取得方式 | 解释边界 |
|---|---|---|
| 本产品的目标用户在这个通道组合上,两路信号的先后关系分布是什么 | 在真实任务上采集带时间戳的双通道日志,按用户分组统计先后与间隔分布,而不是只看总体均值 | 个体整合模式存在稳定差异,均值会同时不适合两类用户;分布的两端比中心更能决定窗长 |
| 窗长取某个值时,漏融合与误融合各是多少 | 用同一批日志离线重放不同窗长,两侧错误一并报告 | 只报融合率等于只看一侧;窗长的选择是两类错误的取舍,不是最大化某一项 |
| 这个取值能否移植到另一个通道组合 | 不直接移植;对每个支持的组合分别验证,可复用有依据的同值 | 相同取值不表示测量条件相同;每种组合须有适用依据 |
| 去重窗口取多少 | 同时测跨通道重复的到达延迟与真实重复的间隔分布;重叠区间验证显式重复与不确定处置 | 去重窗口过长会吞掉真实重复(MM4-4),过短会漏掉跨通道重复(MM4-1);两侧都要测 |
| 跨通道输出的可接受时序区间 | 在目标情境与目标设备上以用户是否把它理解为一次事件为判据测定 | 以实际呈现与用户判断为证据,不以尚未核验的文献或单一实验室区间替代产品测量 |
先写清楚要保护的是哪一侧的用户,再选取值。测定记录应当包含样本的人群构成、任务类型与设备条件;换了人群、任务或设备,取值须重新确认。
实施验收场景
以下场景把已有条款转成可复核的验收输入,不另设通用性能阈值。按产品适用能力选取,补充真实设备、用户、输入序列和证据;不适用记录原因,未执行不得记为通过。
| 条款 | 测试输入与异常 | 预期行为与失败判据 |
|---|---|---|
| MM1-4 | 指向 A 并说删除它,视线移到 B 后语音结果到达。 | 按发起绑定和内容版本核对 A,不静默取最新候选。 |
| MM1-1 | 甲发语音、乙发指向,两者时间相近。 | 未明确允许跨主体协作时不合并为一个获准指令。 |
| MM4-1 | 语音与按键重复表达一次提交,随后用户确实再次发起。 | 前者防止重复副作用;后者有新意图身份,不被永久吞掉。 |
每个场景分别核对配置的有效值、执行记录与用户可理解的结果。保留版本、目标、事件时点、失败范围和恢复结果;外部结果未知不填作成功或失败。
使用说明
本字典记录多通道组合的行为设计决定:候选怎样绑定,信号等多久,冲突怎样处理,重复怎样抑制,通道怎样切换,输出怎样分配。它与 设计规范 配套;填写配置不证明机制已经实现,也不证明用户能够理解和使用。
mm.* 是本产品的行为参数命名空间。真实对象、时间戳、识别文本、交互实例和回执是运行数据,不写进 Token。颜色、字号、音色和触觉效果可在输出映射中引用具体资源;本字典不定义识别模型和传感器参数。
采用“不做融合”“不自动裁决”是有效的设计选择。能力未启用时不强行填字段;启用后依赖必须完整。参数数量不等于用户设置数量,融合率也不代表任务完成质量。
七类速览
| 类别 | 前缀 | 必选 | 可选 | 合计 | 负责什么 |
|---|---|---|---|---|---|
| 指代与绑定 | mm.binding | 3 | 6 | 9 | 支不支持"这个"、候选从哪来、绑不到怎么办、绑了之后还算不算数 |
| 时间与融合 | mm.fusion | 4 | 7 | 11 | 什么开窗、开多久、关窗做什么、接受哪些到达顺序 |
| 冲突裁决 | mm.arbitration | 2 | 5 | 7 | 冲突检不检出、按什么规则裁、裁完说什么、能不能改回去 |
| 重复与幂等 | mm.idempotence | 3 | 3 | 6 | 拿什么判定是同一次、管多久管多远、判不准时怎么办 |
| 通道可用性 | mm.channel | 3 | 5 | 8 | 哪些通道参与、不可用怎么表达、少一个走哪条路、关了还能不能绕回来 |
| 输出分工 | mm.output | 3 | 5 | 8 | 哪条信息不可错过、由谁承载、几路之间怎么对时、总量上限 |
| 验证与记录 | mm.evidence | 1 | 4 | 5 | 拿什么判定这项能力做对了、取值依据存在哪、多久复核一次 |
必选与可选
| 级别 | 含义 | 配置方式 |
|---|---|---|
| 必选 | 对应能力被激活时必须明确的基础决策。"必选"不等于"每个产品都要填",等于"该能力存在就不能缺"。 | 可以继承产品预设,也可以用合法的"不支持""不做融合"等取值表达限制;不要求用户逐项填写。只有单通道输入且输出不做跨通道分工的产品,整份字典记"不适用"即可。 |
| 可选 | 仅在特定能力或差异化需求下采用的参数。 | 无对应能力时不配置;启用能力后,必要依赖必须有明确值或可执行的继承规则(见第八节)。 |
能力适用矩阵——各字段组按下列能力分别激活,不因产品具备其中一项而要求填写其余各组:
| 能力 | 激活的字段组 | 不具备该能力时 |
|---|---|---|
| 输入融合(两路及以上信号构成一次输入) | fusion.*、idempotence.*(存在跨通道重复可能时) | 记"不适用",不填窗口与去重键 |
| 跨通道指代 | binding.* | binding.mode 取"不支持跨通道指代",其余记"不适用" |
| 内容可能冲突 | arbitration.detect.enabled、policy;自动裁决另需风险、告知、撤销与证据规则 | 不自动裁决仍须检出冲突并提供选择;无冲突须有结构依据 |
| 跨通道重复可能 | idempotence.*;产生副作用时另需 submit.contract | 无重复可能时记录结构依据,不伪造去重键 |
| 输入通道可切换或关闭 | channel.* 按实际能力配置 | 纯输出产品不要求填输入通道字段 |
| 组合输出 | output.channels、critical.classes、critical.carrier、allocation、sync;预算、冗余、更新按能力补齐 | 单路呈现不要求同步字段,仍须保证必要信息可回查 |
| 任一适用能力 | evidence.success.metrics;时间测定、数据政策按实际使用配置 | 全部能力均不适用时整份字典记不适用 |
五种状态互不等同:字段未填(配置无效,停用受影响能力)/由规则继承(须可解析到确定值与来源)/能力不适用(记录判断依据)/运行事实未知(保留未知,不转换)/非法值(阻止生效并报出,不静默回落)。每一条必须义务可由显式字段或可回取确定内容的规则引用满足,但不得无承载。
绑定、融合窗口、冲突、意图标识与承载通道的边界
| 对象 | 负责什么 | 关键边界 |
|---|---|---|
| 绑定 | 指代表达式与具体对象或坐标之间的一次对应关系。 | 锚定对象身份,不锚定屏幕位置或列表序号。产生绑定与执行操作是两个时点,中间对象可能变化(对应 MM1-4)。 |
| 融合窗口 | 为等待其他通道信号而保持开启的时间区间。 | 由开启条件、时长与关闭条件三者构成,缺一即不可核验。它决定"等不等",不决定"算不算重复"——后者是去重窗口。 |
| 冲突 | 两个及以上通道在同一次输入中给出不相容内容。 | 与"缺失"不是一回事:缺失走 channel.*,冲突走 arbitration.*。互补型输入(一路给动作、一路给对象)本就不是冲突。 |
| 意图标识 | 用于判断两次识别是否对应同一意图的可比较结构。 | 不是识别文本,也不是事件类型。它必须能区分相邻两次真实的同类操作,否则去重会吞掉用户想做的第二遍。 |
| 承载通道 | 某类信息在当前情境下实际投放到的输出通道。 | 是按情境解析出的结果,不是固定绑定。"已发出"不等于"已送达",承载通道的选择要依据可观察的接收条件。 |
同一产品可以支持跨通道指代而不做冲突自动裁决,也可以反过来。各能力先按自身开关裁决,不因其中一项启用而放宽另一项。"两个通道都识别到了"与"用户表达了两次"是两件事:前者是识别结果,后者是意图判定,后者不得仅由前者自动认定而绕过 idempotence.key 的定义。
字段读取约定
每节前缀与表中的字段拼接为完整名称,例如 mm.fusion 与 window.duration 组成 mm.fusion.window.duration。七类统一使用 级别、设计决定、字段、类型与合法取值、适用条件与作用 五列。
持续时长默认要求有限正值(fusion.window.duration、idempotence.window、revert.window 等):单位明确且全表统一换算,负值与无限值非法,零只在字段明确允许时合法;起算事件、截止的比较符(严格大于还是大于等于)与适用的通道组合写在其关联合同中。关闭某项能力用能力状态表达,不得用负数或零时长表达。
output.sync 是有符号偏移,不是持续时长:定义为 offset = onset(B) - onset(A),给出有限的有符号上下界(同一单位、下界 ≤ 上界);超界处置是"条件 → 规则","保持已呈现一路完整"是所有处置都须满足的后置条件,不是可与其他处置并列的一项。
output.budget 须写明计数单位(事件数/呈现次数/声明权重)、窗口类型(滚动或固定)、聚合域、优先级与合并后必须保留的详情;同一事件的三路呈现按已声明的单位计为一或三,不得随意解释。
revert.window 的"保留解释"不等于"结果可撤销":须分别声明起点、实际的恢复能力范围与记录保留期限,保留期限须覆盖所声明的可切换期;过期后入口可以不再挂出,但须能给出解释。
引用型配置须写明引用目标、内容快照与负责人,并定义未解析、循环引用、内容矛盾与过期的失败路径:一律记为配置无效并停用受影响能力,不得静默按空值或最宽松档处理。当前窗口内冻结已解析的普通策略,关闭与撤权立即生效;非法取值不得静默回落为执行更积极的默认。
集合不默认全选;阈值带单位与适用的通道对。本字典不提供通用时间默认值——融合窗口、去重窗口与跨通道输出时序的取值跨产品、跨通道组合、跨人群差异都很大,不同产品缺少已证明可通用的取值,因此要求的是取值被显式定义、有测定依据并可复核(测定方法见规范附录 C)。多个硬限制同时生效时取共同允许的范围,不按"后配置覆盖前配置"放宽保护;会话级配置不得放宽产品级或人群级的保护设定。
未知按保守的一档决定当前行为,但不改写记录状态。未知候选按解析失败;未知冲突后果按高代价;未知是否重复按不重复执行并提供重复入口;未知接收条件不推定任何一路已被接收;可尝试已启用的其他可用路径,仍保留为"未确认接收"并给出可回查路径——不得据此宣称已送达;未知主体归属按不执行依赖该组合的动作处理。
配置归属、生效与交换
| 决定层 | 适合的决定 | 解析纪律 |
|---|---|---|
| 产品限制 | 可执行动作、风险上限、允许来源、实际可恢复范围 | 用户偏好不能扩大权限或取消固定底线 |
| 场景预设 | 通道组合、时间合同、冲突规则、输出分工 | 每种实际启用的组合都需有证据与完整依赖 |
| 用户选择 | 关闭通道、替代输入、输出偏好、明确继续 | 关闭即时收紧,系统情境判断不得自动覆盖 |
| 本次交互 | 用户选择的对象、实际采用的配置快照 | 对象和时间是运行事实;普通配置从下一窗口生效 |
每项配置记录谁决定、为何取值、适用范围、何时生效、依赖机制。引用须解析到确定内容与来源;循环、缺失、互相矛盾或过期的引用阻止受影响能力启用。关闭、撤权及必要信息的回查入口不因配置失败而消失。
本字典使用“枚举、集合、结构、引用”等应用层类型,不是可直接导入任意工具的 DTCG 文件。DTCG 的标准类型可承载部分表现值或时长,不自动承载本字典的裁决、权限与提交语义;导出时须定义映射并验证工具支持,不能自造 $type: fusion 后声称标准兼容(R14)。
值形状与缺省纪律
| 类型 | 值形状与检查 |
|---|---|
| 枚举 | 一个表中定义的值;缺失不自动取第一项。标注默认的项可由产品预设继承 |
| 集合 | 无重复的受支持标识;空集合只有在字段明确允许时合法,不代表全部 |
| 时长 | {value: 有限数值, unit: ms或s};一般须大于零,等待提示允许零表示立即提示 |
| 阈值 | 指标、单位、比较符、边界值、适用组合与依据;比较符不得由实现自行补猜 |
| 引用 | 目标标识、可回取内容、适用范围、负责人;目标无内容或无法解析则配置无效 |
| 结构 | 明列必需子项,分别校验类型和交叉约束;不能用一段“智能处理”替代条件表 |
时间戳和有符号偏移不是时长;output.sync 可包含零或负偏移。未知是运行事实,不是放宽限制的配置值。参数改变后,对受影响的场景重验,不要求无关功能重复验收。
一、指代与绑定:支不支持"这个"、候选从哪来、绑不到怎么办
前缀:mm.binding
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 指代支持模式 | mode | 枚举:不支持跨通道指代/仅支持对已显式选中对象的引用/支持跨通道指代解析。第二、第三档均须明确 sources 与 fallback;第二档的来源限于已显式选中项。 | 明确产品是否让用户说"这个";第一档是合法且常见的取值(对应 MM1-1)。 |
| 必选 | 候选来源 | sources | 集合:注视落点、指向射线、触点、光标、上文已提及对象、当前选中项。解析模式启用时集合非空;空集合不得隐式改写 mode,两者不相容即配置无效。每项须可解析到采集范围与所属通道。 | 决定指代解析的依据;集合扩大不自动提高解析可靠性,只增加候选(对应 MM1-1)。 |
| 必选 | 解析不成立时的处置 | fallback | 枚举:请求重新指定并说明原因/列出候选由用户选择/呈现显著标记的暂定预览并等待用户选定。不存在"按内部排序静默选取"的合法取值,也不存在"未解析先执行"的合法取值。第三档的暂定预览不写入业务状态、不外发、可被丢弃,且不得显示为已完成;候选集合为空时第三档不成立。 | 明确绑不到时做什么;这是本类的核心约束(对应 MM1-2)。 |
| 可选 | 候选排序依据 | candidate.ranking | 引用:排序所用的信号及其权重来源的声明与依据。仅用于生成候选顺序,不得单独构成解析成立的判据。 | 候选常多于一个时配置;缺此字段时排序不可复核(对应 MM1-6)。 |
| 可选 | 执行前重校验范围 | revalidate.on_execute | 枚举:不校验/校验稳定身份与存在性、可操作性/在前者之上另校验相关内容状态。稳定身份的校验在后两档中固定包含——"对象还在且可操作"不排除它已被替换成另一个对象;相关内容状态是否额外约束由产品按任务决定并记录。"不校验"仅在绑定与执行结构上不可分离时成立且须说明依据。 | 绑定与执行之间可能间隔时配置;防止操作落到替代对象上(对应 MM1-4)。 |
| 可选 | 多指代项对位策略 | multi_slot.policy | 枚举:不支持多指代项/按已声明的语义角色配对。取第二档时须一并声明:各槽位的角色定义、原始事件归并为语义候选的规则(持续指点的多帧、对同一对象的重复指点、圈选产生的对象集合各算一个候选)、以及支持的单数与复数指代范围。不存在"按信号到达顺序对位"的合法取值,也不存在"仅按表述顺序对位"的合法取值——表述顺序是角色证据之一,不是唯一依据。禁止直接比较原始事件数与槽位数并据此整体拒绝;无法唯一确定角色或缺项时只就受影响的槽位澄清,其余绑定保留。 | 一条指令可能含两个及以上指代项时配置(对应 MM1-3)。 |
| 可选 | 执行前回显触发档 | preview.risk_threshold | 引用:触发"呈现解析结果"的风险分级门槛,须与产品的风险分级表同源。回显内容须含用户可辨认的对象标识。 | 存在不可逆、外发或高代价的指代操作时必须配置;对应 MM1-5。 |
| 可选 | 组合的主体归属 | subject.scope | 结构:参与一次组合的片段必须关联到的交互主体或参与范围(会话、设备绑定、显式角色、结构隔离),跨主体组合的角色规则(谁可为谁补全、哪些角色可合并),以及归属不可确定时的处置(不执行依赖该组合的动作、保留各路已有效表达、给出重新指定路径)。禁止仅因时间接近就跨主体拼接。****不得以识别并建档在场其他人的方式满足本字段;单用户且结构隔离的产品可记录依据后简化。实际主体标识与信号是运行事实,不写进本字典。 | 同一空间可能有一个以上人同时表达时必须配置(见第八节);对应 MM1-1、MM5-5。 |
| 可选 | 失败归因分类 | failure.attribution | 集合:语言侧无可解析指代项、指点侧无可用候选、两侧均有但无法配对。每项对应一条可行动的用户提示,不得共用同一文案。 | 需要区分失败原因时配置;面向用户的提示不得使用内部置信度分值(对应 MM1-6)。 |
边界:来源决定候选从哪来,处置决定绑不到时做什么,重校验决定绑了之后还算不算数。三者各自独立收紧,任一项放宽不放宽其余两项。支持指代解析不产生跳过 fallback 的资格,也不产生在高代价操作上免于回显的资格。
二、时间与融合:什么开窗、开多久、关窗做什么
前缀:mm.fusion
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 开窗触发 | window.open.trigger | 集合:可开启融合窗口的通道事件类型。任一参与融合的通道都应可作为触发方;触发须有已声明的输入参与依据,被动采样不自动开窗或提交;仅允许单一通道开窗须说明依据。 | 决定窗口何时开始;只让主通道开窗会排除先用副通道的用户(对应 MM2-4)。 |
| 必选 | 窗口时长 | window.duration | 阈值集合:按通道对分别设定,每项含单位、适用通道对与测定依据引用。本字典不给出推荐数值;无依据的通用常量不是合法取值。 | 决定等多久;每种组合均须验证;同值可复用但不代替分组合验证(对应 MM2-1)。 |
| 必选 | 关窗处理 | window.close.action | 引用:"结束原因 × 解释结果 → 下一步" 的可解析表。原因含完成、截止、取消、通道失效;结果含完整、缺项、冲突、未知、无有效输入。完整且无冲突才进入提交前校验;缺项/冲突转待澄清;未知转补充或核对;无有效输入转明确结束。不存在"保持等待"或"无处理"的合法取值。****窗口关闭是融合终止,不是任务终止——关窗后用户仍可澄清,那是新的一次输入。 | 决定关窗后怎么办;收集结束不代表任务结束(对应 MM2-3)。 |
| 必选 | 窗口合同 | window.contract | 引用:事件时间锚点(以信号发生时间测量间隔,并声明取起点还是终点)、接收时间的用途(仅用于超时与调度,不用于测量人的表达间隔)、可接受的到达延迟与时钟不确定的处置、完成所需的通道集合、可提前关闭的条件、最长截止、关窗后迟到事件的处置,以及连续流的片段归并、候选有效期和空间参照,三路及以上时的全局完成判据(两两相容不蕴含整体相容)。"可早关条件""最长截止""开始提示等待的时刻"是三个分别决定的量,不得合并为一个数值。 | 存在融合窗口时必须配置(见第八节);缺此项则窗口的测量口径与终止条件不可核验(对应 MM2-1、MM2-3、MM2-4)。 |
| 可选 | 接受的到达顺序 | order.accepted | 集合:时间区间重叠、通道 A 先于 B、通道 B 先于 A。"仅含重叠"不是合法取值——MM2-4 禁止把时间重叠作为构成一次多通道输入的必要条件,说明理由不能满足一条禁止句。产品确有以本质同时性为条件的设备能力时,须先把该能力另设适用类别并从本字段的适用范围中排除,再讨论其配置。 | 支持跨通道补全时配置;顺序不同不等于输入错误(对应 MM2-4)。 |
| 可选 | 窗口内提交策略 | commit.hold | 枚举:窗口内仅收集/窗口内允许暂定预览。两档均禁止业务提交;预览不写入、不外发、不显示完成,丢弃后无业务影响。 | 存在可独立执行的单通道指令时配置;预览不是提前提交(对应 MM2-2)。 |
| 可选 | 等待可感知门槛 | wait.perceptible_after | 有限非负时长;0 表示开窗即提示,否则达到门槛即提示。与最长等待截止分别设定,提示不得晚于截止;两者相等须是显式决定。 | 窗口时长可能超过用户可感知等待时配置(对应 MM2-3)。 |
| 可选 | 窗口自适应规则 | window.adaptation | 引用:按情境或按用户调整窗长的规则声明与依据。规则须可复现;不得由单次交互结果即时改写。 | 采用自适应窗口时必须配置;缺此字段时窗口行为不可复现(对应 MM2-1)。 |
| 可选 | 窗口调整依据 | window.change.evidence | 引用:参数调整依据的位置,每次须同时含对融合率与误绑率两侧的评估。仅含单侧评估的记录不满足本字段。 | 窗口取值可能调整时配置;防止以单一指标驱动窗长(对应 MM2-6)。 |
| 可选 | 流式修正 | revision.policy | 引用:输入完成判据、同片段修正关联、被替换候选失效、槽位保留、提交后修正路径。中间结果仅候选/预览;完成不只看通道到齐。 | 接收流式识别或用户自我修正时必须配置(MM2-2)。 |
| 可选 | 停止与取消 | control.policy | 结构:入口、作用范围、未提交拦截、接收/生效回执、已提交核对、显式恢复。停止任务、取消输入、停播、撤销结果分别定义;不得等待普通窗口或自动恢复。 | 存在输入收集、待提交或组合指令执行时必须配置(MM2-2)。 |
边界:开窗触发管"从谁开始",时长管"等多久",关窗处理管"等不到怎么办"。三者缺任一项,窗口就不可核验。窗口时长与去重窗口(idempotence.window)是两个分别决定的量,共用同一常量是本类最常见的实现错误。
三、冲突裁决:检不检出、按什么裁、能不能改回去
前缀:mm.arbitration
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 冲突检出 | detect.enabled | 枚举:结构上不适用/检出并记录。"结构上不适用"仅在产品结构上不可能产生跨通道内容冲突且有依据时成立。检出结果须能区分相容、冲突、缺失与未知。 | 决定冲突是否被发现;隐式覆盖等于永远不检出(对应 MM3-1)。 |
| 必选 | 裁决规则 | policy | 枚举 + 引用:不自动裁决(冲突一律交由用户在结果之间选择,是合法且常见的取值)/按引用的"情境 × 通道对 → 采纳方"可解析规则表裁决(含适用条件)。禁止以信号到达顺序、线程调度或识别器响应快慢作为规则内容。相同条件须产生相同结果。 | 决定谁赢;优先级靠前只表示采纳,不构成"它说的是对的"(对应 MM3-2)。 |
| 可选 | 自动裁决风险上限 | auto.risk_ceiling | 引用:允许自动裁决的最高风险档,须与产品风险分级表同源。其上的冲突必须交由用户在结果之间选择,且不得配置为自动。 | 启用任何自动裁决时必须配置;不可逆、外发、高代价和未知风险均不得自动提交(对应 MM3-5)。 |
| 可选 | 裁决告知方式 | disclosure.mode | 枚举:呈现采纳方/呈现采纳方与被放弃方。"仅呈现结果"不是合法取值。****两侧都有用户的明确表达时必须取第二档——采纳了哪一侧与放弃了哪一侧都要能得知;可合并到一次轻量回执中,不要求弹窗。告知须与结果同处一处、同一时机。 | 自动裁决会改变行为时配置;"发生过一次裁决"不得被省略(对应 MM3-3)。 |
| 可选 | 另一解释保留时长 | revert.window | 正时长;被放弃解释在结果之后保持可切换的时长。到期或对象已变化时须说明原因,不得静默移除入口。 | 提供裁决撤销时必须配置(见第八节);对应 MM3-4。 |
| 可选 | 冲突观测项 | metrics | 集合:冲突发生率、裁决被改判率、按通道对的分布。仅用于内部复核,不得进入用户画像或商业用途。 | 需要验证 MM3-1 实际生效时配置;观测项另须记录分母、漏检数、误报数与未知数。冲突率恒为零既不证明机制有效也不证明机制缺失——低冲突场景下真实值可以是零,误报也能让失效的机制产生非零值;机制是否生效以已知冲突样本的注入检出率与相容样本的不误报率判定(MM3-1 实现侧验证)。 |
| 可选 | 裁决证据规则 | evidence.policy | 引用:允许证据、适用人群与任务、分数可比性、共同来源和共同失效处理、未知处置。未经校准不直接比较分数;同源推断不算两份独立确认。 | 启用自动裁决时必须配置;不满足时退回用户选择(MM3-1、MM3-2)。 |
边界:检出管"发现了没有",规则管"怎么裁",保留时长管"能不能改回去"。裁决是选择不是判定:采纳一侧不减免告知义务,也不减免保留另一侧的义务。安全关键的即时停止类指令不进入本类的裁决流程。
四、重复与幂等:拿什么判定是同一次
前缀:mm.idempotence
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 意图标识构成 | key | 两部分分别定义:语义签名(动作 + 目标域 + 关键参数;无绑定对象的指令以当前焦点上下文或任务作为目标域,不得为满足本字段而伪造指代对象)与交互实例标识(由融合分组与明确的新操作证据决定:用户再次发起、状态已变化、经显式重复入口触发)。仅语义签名相同不判为重复——连续两次"加一"的签名完全相同却是两次意图。不得仅由识别文本或事件类型构成。实际提交的动作标识须关联交互实例,另行定义生成与保留规则;不能仅用语义签名充当动作标识。 | 决定拿什么判定重复;标识错了,去重要么失效要么吞掉真实操作(对应 MM4-2)。 |
| 必选 | 去重窗口 | window | 有限正时长(单位明确)+起算事件+区间端点的包含关系,含测定依据引用。须与 fusion.window.duration 分别定义;两者相等必须是显式决定并说明理由。测定须同时参照跨通道重复的到达延迟分布与真实重复的间隔分布;两分布重叠的区间以显式重复入口、状态证据或 uncertain 处置解决,不得宣称某一阈值必然把两者分开。 | 决定这次算不算重复;本字典不给推荐数值(对应 MM4-3)。 |
| 必选 | 去重作用范围 | scope | 结构:channels(参与去重的通道集合)、interaction_domain(交互域:参与者、交互实例与动作范围,单入口产品同样须区分)、cross_entry(跨入口策略)、cross_session(跨会话策略)。实例标识本身是运行数据,不写进本字典。具备任何去重能力时均须配置,可继承本地交互域的规则。跨入口接收同一操作时,须声明是否共享同一交互域;不得按入口分别计算而形成重复提交。 | 任何跨通道去重均须明确(对应 MM4-3)。 |
| 可选 | 不确定时的处置 | uncertain | 枚举:按不重复执行并提供重复入口(默认)/执行并显著提示可撤销。后者仅适用于已证明完全可撤、恢复成本低且无外发的低代价操作;高代价与未知风险禁用。不存在"静默执行第二次"的合法取值。 | 时间戳缺失或时钟偏移可能发生时配置(对应 MM4-5)。 |
| 可选 | 有意重复路径 | repeat.path | 引用:不受去重抑制的重复入口及其位置。用户可能理解为新操作的输入被抑制时须告知;同一交互的多路输入可共用一次回执。 | 意图空间中存在合理重复操作时必须配置(见第八节);对应 MM4-4。 |
| 可选 | 提交保护合同 | submit.contract | 结构:交互与动作标识关联、提交入口、并发保护、重试复用规则、结果核对路径、记录保留期限。保留覆盖可发生的重试与回执延迟;已提交结果未知时不换标识盲重试。 | 组合输入可产生副作用时必须配置;无法保证则停用受影响自动提交(MM4-1、MM4-3)。 |
边界:标识管"是不是同一次",窗口管"多久之内算",重复路径管"用户真想做第二遍时怎么办"。去重收紧不产生免于告知的资格:用户以为再次发起的操作被抑制时,必须知道它没有再次执行。输入归并和实际副作用分别验证;共用同一动作标识并有实际提交保护,才可承诺不重复执行。
五、通道可用性:哪些通道参与、少一个走哪条路
前缀:mm.channel
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 参与融合的通道 | set | 集合:语音、注视、手势、触摸、笔、控制器、头部姿态等。每项须可解析到实际输入能力、采集用途、权限与可用条件。 | 明确哪些通道进入组合;本字典不重复定义各通道内部参数(对应 MM5-1)。 |
| 必选 | 不可用状态分类 | unavailable.states | 集合:设备或权限层面不可用、用户主动关闭、当前环境不适用。三类须可分别表达,因为它们对应不同的用户下一步。 | 明确"用不了"怎么被表示;不得表现为持续无响应(对应 MM5-2)。 |
| 必选 | 降级路径表 | degrade.map | 引用:产品承诺覆盖的通道子集清单 → 各任务的可达入口 的可解析表,并含完全没有可操作通道时的保留与恢复路径(保留已表达的部分,恢复后可继续)。须覆盖到仅剩单通道的情形,但不要求每个剩余单通道都能完成全部任务——要求的是每项任务在所声明的每个子集下至少有一条可达入口;空缺须有"物理上不可能"的声明理由。"存在替代路径"不得被读成"任一单通道均全能"。 | 明确少一个通道走哪条路;这是本类的核心约束(对应 MM5-1、MM5-3)。 |
| 可选 | 关闭粒度 | disable.granularity | 分通道开关是适用产品的唯一合法基础形态;整体开关只能作为附加的便捷入口,不能替代它。共用同一物理传感器的多项推断可合并为一个开关,但须有技术依据、绑定到具体通道与用途,并说明该开关实际停止了哪些采集与哪些用途;不得默认把所有通道归为一组。开关须披露其控制层级(原始采集/本应用读取/某项推断用途),以及共享传感器上不在本应用控制范围内的系统必要用途。 | 采集两个及以上通道时配置(对应 MM5-4)。 |
| 可选 | 重建禁止清单 | reconstruction.blocklist | 集合:某通道被关闭后,未经用户明确选择时禁止用于恢复其采集、读取或推断用途的替代信号(如自动以头部姿态推断"等价注视落点"、以唇动重建语音内容)。由机制执行,不靠各处自觉。用户明确启用的、经说明的替代输入不在本清单的禁止范围内——但该替代输入不得被呈现为对原信号的推断,也不恢复已关闭的数据流。 | 存在可互相近似的通道时必须配置(见第八节);对应 MM5-4。 |
| 可选 | 情境判断输入 | context.inputs | 集合:环境噪声、手部是否被占用、是否公共场合、是否共享屏幕、是否佩戴。仅用于选择默认组合;用户的显式选择优先于本项,且使用频率不得反向修改用户设置。 | 具备情境感知能力时配置;不具备时按用户设置处理并记录该限制(对应 MM5-5)。 |
| 可选 | 切换时的状态保留 | switch.state.retention | 枚举:保留已完成部分并说明还缺什么(唯一合法取值)。"切换即重置"不是合法取值——MM5-6 禁止因通道切换清空有效状态。确已失效的槽位单独标记为失效并说明原因,其余部分保留;已完成部分在新通道下不可表达时须说明原因,并给出可回取的形式。 | 允许任务中途切换通道时必须配置(见第八节);对应 MM5-6。 |
| 可选 | 丢失与恢复 | recovery.policy | 引用:短暂丢失、持续不可用的判据,候选有效期、恢复稳定条件、回到原方式的提示和继续动作。撤权/关闭即时生效;恢复不重放旧输入、不自动提交。 | 通道会断连、失去跟踪或抖动时必须配置(MM5-2、MM5-3、MM5-6)。 |
边界:通道集合管"谁参与",不可用状态管"怎么表示用不了",降级表管"少一个走哪条路"。关闭是用户的决定,降级是系统的应对,两者不得互相替代:用降级路径代替关闭开关,等于没有提供关闭。
六、输出分工:哪条不可错过、由谁承载、几路怎么对时
前缀:mm.output
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 输出通道 | channels | 集合:视觉、听觉、触觉、其他。每项须可解析到其表现 token 来源与可用条件。 | 明确输出可分配到哪些通道(对应 MM6-2)。 |
| 必选 | 不可错过的信息类别 | critical.classes | 集合:不可逆结果回执、错误、需要用户介入的状态等。空集合须有依据;其中的必要性按任务后果判断。划入本集合的信息须同时配置 critical.carrier。 | 明确哪些信息不得被错过;这是一档显式划分,不是全部输出(对应 MM6-1)。 |
| 必选 | 承载通道解析 | critical.carrier | 引用:情境 × 用户输出通道设置 → 承载通道 的解析规则,并须含"无已知可用通道"分支:保留为"未确认接收"、提供可回查或待处理路径、按预先定义的规则有限升级(改走其他通道、提高显著度、延后重试)。已发出、平台已接受、已呈现、用户已处理四态分别表达,任一不得冒充其余。****通道路由是产品的决定,不构成用户已获知的保证。仅在后续处理必须依赖用户决定时才要求显式确认;不得自行恢复用户已关闭的输出通道。 | 明确不可错过的信息落在哪一路;对应 MM6-1。 |
| 可选 | 分工表 | allocation | 引用:信息类别 × 情境 → 通道与其表现 token 的映射与依据。会改变语义方向的成分(否定、数量、对象归属)必须出现在表达该结论的那一路中;不表达结论的中性事件提醒可不携带这些成分,但必需详情须在当前可用路径上可取得(对应 MM6-4、MM6-1)。 | 需要跨通道分工时配置;缺此字段时分工不可复核(对应 MM6-2)。 |
| 可选 | 冗余项与理由 | redundancy.justification | 引用:采用同内容多通道重复的条目及各自理由。无理由的重复不是合法条目;无障碍所要求的等价替代不计入本项。 | 存在冗余呈现时必须配置(见第八节);对应 MM6-2。 |
| 可选 | 跨通道时序 | sync | 阈值集合:各通道对的起始时序区间、单位与测定依据,以及超出区间时的处置(合并/丢弃迟到一路/保持已呈现一路完整)。不得原样先后呈现而不作处理。 | 同一次输出跨两路及以上呈现时必须配置(见第八节);对应 MM6-3。 |
| 可选 | 输出总量预算 | budget | 阈值:单位时间窗内跨通道输出总量上限与合并规则。预算跨通道共享,不按通道分别计数;critical.classes 中的项在合并中须被保留。 | 可能短时间产生多路输出时配置;安全关键告警使用专门告警策略,不受普通预算丢弃,但仍须防告警风暴(对应 MM6-6)。 |
| 可选 | 输出更新与取消 | update.policy | 结构:业务事件关联、内容有效条件、队列作废、已呈现结论更正、播报停止的作用范围。过期输出不继续播报,停播不撤销业务结果。 | 输出可排队、流式更新、持续播报或被取消时必须配置(MM6-3、MM6-4)。 |
边界:不可错过的类别管"哪条不能丢",承载解析管"落在哪一路",分工表管"各路说什么",预算管"一共多少"。分工是默认、冗余要有理由,但分工的下限是每一路单独看都不产生相反理解——这条下限先于分工的效率考量。
七、验证与记录:拿什么判定这项能力做对了
前缀:mm.evidence
| 级别 | 设计决定 | Token 字段 | 类型与合法取值 | 适用条件与作用 |
|---|---|---|---|---|
| 必选 | 验收指标 | success.metrics | 集合;至少含一项与任务结果相关的指标(任务完成率、纠错次数、误绑率、时延、纠错负担等)。每项须定义单位、分子/分母或测量起止点、未知样本处理、验收门槛、适用场景与责任方,只写指标名称视为未配置。禁止单独凭融合率、多通道使用率、通道触发次数或窗口命中率决定验收结论或放宽融合窗口;这类过程指标(含漏融合率)可以与上述结果类指标共同设门槛,但不得单独成为判据。 | 定义这项融合能力做对了的判据;须在上线与迭代决策中实际使用(对应 MM2-6)。 |
| 可选 | 窗口测定方案 | window.protocol | 引用:融合窗口、去重窗口与输出时序的测定方案,含样本人群构成、任务类型、设备条件与统计方式。换人群、任务或设备须重新确认。 | 配置任一时间阈值时明确;方法参考见规范附录 C(对应 MM2-1、MM4-3、MM6-3)。 |
| 可选 | 冲突与裁决记录 | conflict.log | 引用:冲突、裁决与改判事件的记录位置与保留期限。仅用于内部复核,最小化保留,不得进入用户画像或商业用途。 | 启用自动裁决时配置;至少保留可复核的裁决摘要;不要求保存原始信号。 |
| 可选 | 复核周期 | review.interval | 正时长;窗口取值、裁决规则表、降级路径表与承载通道规则的复核周期,含责任人。 | 配置上述任一引用型字段时明确;缺此项则规则表会过期而无人发现。 |
| 可选 | 输入与诊断数据政策 | data.policy | 结构:目的、最小数据项、原始信号与摘要分别的保存策略、处理位置、访问范围、有限保留期/不落盘、删除路径、关闭后的缓冲清理。不得默认无限保存音视频或完整眼动轨迹。 | 处理敏感信号或留存融合诊断时必须配置(MM1-6、MM5-4)。 |
边界:验收指标管"这项能力该不该继续这样做",观测项管"运行中发生了什么"。两者可以共用同一个量,禁止的是让过程指标单独决定结论——一旦「融合率上升」本身就能判定通过或放宽窗口,就等于给窗口加了一个朝单方向拉的力(MM2-6 禁止的正是这一点)。共用时须写明:该量在验收中与哪些结果类指标一起构成门槛,以及它单独变化时不触发哪些决定。
八、可选项的联动要求
能力可以不启用;启用后,依赖必须完整。下表不新增字段或第三种级别,相关值可由产品规则继承。表内省略共同前缀 mm.。
| 能力或承诺 | 必须明确的依赖 | 未满足时 |
|---|---|---|
| 支持跨通道指代解析 | binding.mode 取第三档时须有 binding.sources、fallback、revalidate.on_execute(存在绑定与执行间隔时)、failure.attribution,以及 fusion.window.duration 与 window.contract 覆盖相关通道对。 | 不支持"这个";对象由用户显式选中后再发指令。 |
| 存在融合窗口 | fusion.window.contract 可解析到事件时间锚点、完成所需通道集合、早关条件、最长截止与迟到事件处置;三路及以上时含全局完成判据。 | 停用融合,改用已验证的独立入口;仍须防止多路输入产生重复提交。 |
| 同一空间可能有一人以上同时表达 | binding.subject.scope 已声明归属依据与跨主体角色规则,且归属不可确定时不执行依赖该组合的动作。 | 结构上保证单主体隔离并记录依据。 |
| 绑定与执行之间存在间隔 | binding.revalidate.on_execute 非"不校验",且对象标识可在两个时点比较。 | 绑定与执行同帧完成,或不支持跨通道指代。 |
| 一条指令含多个指代项 | binding.multi_slot.policy 为"按已声明的语义角色配对",且角色定义、原始事件归并规则与单复数范围已声明;某槽位无法确定角色时的逐槽澄清路径已定义。 | 每条指令只接受一个指代项;多余的指点事件不参与配对且被告知。 |
| 存在不可逆、外发或高代价操作 | 含指代时须有 binding.preview.risk_threshold;启用自动裁决时另须有 arbitration.auto.risk_ceiling,且此类动作均不自动裁决后提交。 | 不在多通道路径上提供此类操作;由显式选择路径完成。 |
| 单通道指令可独立执行 | fusion.commit.hold 为仅收集或允许暂定预览,两档都不提交。 | 停用自动补全,改用明确的单路提交入口并防重复;说明当前支持范围。 |
| 采用自适应融合窗口 | fusion.window.adaptation 规则可复现,且 evidence.window.protocol 覆盖自适应维度。 | 使用固定窗口;取值按测定依据设定并记录。 |
| 调整过融合窗口取值 | fusion.window.change.evidence 含融合率与误绑率两侧评估。 | 保持原取值;变更须先补齐两侧评估。 |
| 启用冲突自动裁决 | arbitration.detect.enabled 为检出并记录;policy 非"不自动裁决"且可解析;auto.risk_ceiling、disclosure.mode、revert.window 与 evidence.policy 已明确,且原结果真实可撤销。 | arbitration.policy 取"不自动裁决";冲突一律交由用户在结果之间选择,检出与告知义务不因此免除。 |
| 跨通道去重 | idempotence.key 的语义签名与交互实例标识分别定义;window 与 fusion.window.duration 分别定义;scope 已解析到交互域;存在合理重复时 repeat.path 可解析。 | 不得把每一路直接视为新意图:无法证明单通道独占接收时,阻止受影响的提交并给出显式确认路径;同一意图被多路接收的可能性须在设计上被排除并记录依据。 |
| 意图空间中存在合理重复操作 | idempotence.repeat.path 与被抑制重复的反馈方式已明确。 | 记录"该产品的意图不可合理重复"的论证;缺论证则不得启用去重抑制。 |
| 两个通道可互相近似 | channel.reconstruction.blocklist 已列出,且由机制执行;用户明确启用的替代输入已与被禁止的自动重建分别声明。 | 保留分通道关闭能力:关闭一项即同时停止可自动重建它的其余推断用途,并说明该开关实际停止了什么。不得以缺少该清单为由取消关闭控制。 |
| 允许任务中途切换通道 | channel.switch.state.retention 为保留档,且"还缺什么"可被查询。 | 保留原任务并给出可回取的状态,拒绝在新通道上继续本次融合步骤;不得把已有效表达的输入视为新任务而丢弃——告知不能使有效输入合法消失。 |
| 按情境选择默认通道组合 | channel.context.inputs 已明确,且用户显式选择在其之上生效。 | 只按用户设置;不作情境推断,并记录该限制。 |
| 跨通道分工呈现输出 | output.allocation 可解析;sync 覆盖相关通道对;每一路单独可理解已核验。 | 输出只走单一通道;其余通道暂停同事件输出,避免在缺少时序定义时仍产生组合呈现。该单一通道路径须完整可用,不得因取消分工而使某类信息无处承载。 |
| 同内容多通道重复呈现 | output.redundancy.justification 列出条目与理由。 | 先用可用单路完整呈现;确需冗余时补齐理由,不为保留重复输出而随意升格信息。 |
| 短时间可能产生多路输出 | output.budget 已明确,且 critical.classes 中的项在合并规则中被保留。 | 暂停非必要主动输出并配置可核验的总量控制;必要回执保留,不以逐条排队代替预算。 |
| 配置了任一输入侧时间阈值 | evidence.window.protocol 可解析到测定方案与样本条件。 | 不得使用该阈值;相关输入融合能力按不做融合处理。 |
| 配置了输出时序阈值而缺测定依据 | evidence.window.protocol 覆盖输出时序维度。 | 同一次输出改由可用单路完整承载;固定次序的多路输出同样需要时序依据,不能作为豁免;不得以"不做融合"笼统带过而使输出呈现无定义。 |
| 存在流式或自我修正输入 | fusion.revision.policy 明确完成判据、替换与失效;binding.revalidate.on_execute 覆盖修正后校验。 | 只接收明确完成的输入;保留人工改选入口,不提交中间结果。 |
| 存在输入等待或组合指令执行 | fusion.control.policy 覆盖当前阶段可达入口和实际生效回执。 | 停用无法被控制的持续路径,保留直接取消入口。 |
| 组合输入产生副作用 | idempotence.submit.contract、scope 与 key 均可解析到真实提交机制。 | 阻止受影响自动提交,保留意图与核对入口。 |
| 通道丢失或恢复 | channel.recovery.policy 定义候选失效、恢复稳定条件与明确继续。 | 暂停依赖该通道的步骤,显式切换替代入口;不自动重放。 |
| 输出排队、更新、持续播报或取消 | output.update.policy 绑定业务事件,能移除过期条目并更正已呈现结果。 | 关闭受影响的异步呈现,保留可查询的真实结果。 |
| 敏感输入或诊断记录 | evidence.data.policy 定义目的、处理范围、保留与清理路径。 | 无合法处理依据时停用受影响采集;缺留存政策时不保存原始信号。 |
"继承默认"必须能解析到明确的值、来源与生效范围,不能只是一句说明。
九、固定底线:不能通过配置关闭
下表是配置检查入口,不替代 设计规范 的适用条件与完整要求。即使能力降级,保护与恢复入口仍须成立。
| 决策范围 | 不可配置掉的要求 | 规则 |
|---|---|---|
| 主体与绑定 | 不因时间接近跨主体拼接;被动候选不作为授权;不在未解析对象上执行;按语义角色绑定并核对稳定身份 | MM1-1~MM1-5 |
| 时间与修正 | 普通窗口内不提交;中间结果只作候选或预览;关窗给出明确结果与下一步;迟到事件不复活已取消交互 | MM2-1~MM2-4 |
| 用户控制 | 控制不等普通补全;接收和生效分别回执;已提交结果核对,恢复须有明确继续 | MM2-2 |
| 冲突与风险 | 冲突和未知不静默覆盖;未经校准不直接比较分数;同源结果不算独立确认;高代价不自动裁决后提交 | MM3-1~MM3-5 |
| 重复与提交 | 一个意图一次副作用;语义相同不等于同一操作;提交结果未知不换标识盲重试;真实重复可表达 | MM4-1~MM4-5 |
| 关闭与恢复 | 分通道控制真实生效,不擅自重建已关闭用途;缓冲退出融合,保留已接受的有效任务状态;恢复不重放 | MM5-1~MM5-6 |
| 输出与反馈 | 各路不产生相反结论;过期输出作废;已发出不等于已知悉;无可用通道时保留待处理信息;私密详情不自动转公开通道 | MM6-1~MM6-5 |
| 预算与验证 | 跨通道总量受控,关键告警另有风暴处置;结果指标与过程指标一起评估,时间取值有适用依据 | MM2-6、MM6-6 |
本字典不构成安全、隐私或法律合规证明;真实产品仍需验证机制、设备条件与用户体验。
十、配置验收
先验证字段,再验证行为;以下检查不能替代真实设备和用户验证。
| 检查 | 通过条件 | 失败时 |
|---|---|---|
| 类型与依赖 | 所有启用能力的必需值可解析;引用无循环,单位与端点完整 | 不启用受影响能力,列明缺项 |
| 组合约束 | 通道集合、完成判据、全局一致性与风险上限相容 | 不以“保守默认”掩盖冲突 |
| 普通变更与关闭 | 普通参数下一窗口生效;关闭/撤权使缓冲失效并拦截提交 | 不继续运行失效配置 |
| 事实与反馈 | 回显对象=实际对象;一次动作=一次实际副作用;未知结果不显示成功 | 停止错误承诺并补齐回执 |
| 恢复与替代 | 取消不复活,切换不丢有效槽位,必要信息始终有回查路径 | 保留已接受内容,给出可行的下一步 |
配置交付与校验
“支持跨通道指代”只选择能力,不表示任意候选已被授权。生产配置还需窗口、来源、主体、冲突和结果防重合同;示例仅检查该枚举。结果未知时核对同一业务动作,不能把重新融合出的事件当作新的执行许可。
随附的可执行样例只覆盖 mm.binding.mode,其余字段按本字典逐项校验;未覆盖不等于不适用或已通过。样例是所选字段的格式正反例,不是可直接启用全部能力的产品预设。完整产品交付另外包含适用性、依赖、证据、执行映射及进行中操作的生效边界。
字段名、类型或含义变更时更新引用方与验收样例;仅修改说明且不改变合法行为的,保留已有字段名。调用方读取解析后的有效配置,不由 UI 控件、动画或模型文字反推权限、测量或完成事实。参见对应场景。
参考来源
本文件为 设计规范 与 Design Token 提供来源和适用边界。外部资料支持问题模型、表示方式或可行机制;本文中的行为要求仍是针对用户承诺作出的设计判断,不因某个平台这样做过就自动成立。
1. 如何使用来源
- 直接核验:此次打开原始页面并读取相关内容;不表示全文审阅、设备实测或符合性评估。
- 已有核验记录:沿用现有资料中记载的阅读范围,未在此次重复核验;用于历史问题和实现线索,不据此承诺平台当前表现。
- 摘要/二手记录:只支持条目明确描述的内容,不扩展为完整实验结论。
- 待核验:仅保留研究线索,不用于支持事实性断言或参数取值。
没有取得可直接移植到所有通道组合、人群和任务的时间默认值。融合窗口、输入去重期限和输出时序是三个分别测定的量;未查到通用数值不等于证明通用数值不存在。
2. 历史研究与问题模型
| 编号与原始来源 | 核验范围 | 支持内容与限制 |
|---|---|---|
| R01 Bolt,Put-that-there: Voice and gesture at the graphics interface | 已有摘要核验记录;历史原型 | 语音动作配合指点补全所指,支持 MM1 的问题模型。不能推出指代解析已经可靠解决。 |
| R02 Oviatt & Cohen,Multimodal Interfaces That Process What Comes Naturally | 已有第 45–51 页阅读记录 | 时间和语义共同参与整合;不同通道不必同时发生。支持 MM2、MM3 的问题分析,不指定唯一融合架构。 |
| R03 Johnston 等,Unification-based Multimodal Integration | 已有正文第 281–287 页阅读记录 | 记录等待另一路再确定是否采用单通道解释的机制。支持 MM2-2;该系统的时间参数不作为产品默认。 |
| R04 Oviatt,Multimodal Interfaces | 已有第 4–11 页阅读记录 | 特定语音与笔任务中的顺序整合、个体差异、识别失败后切换通道及功能替代。支持 MM2-4、MM5-1、MM5-6。输入互补的观察不能直接证明输出分工优于冗余。 |
| R05 Oviatt,Ten myths of multimodal interaction | 二手记录,经 R07 转录核对;未取得全文 | 作为“同时输入不是必要条件”等问题的研究线索;不复述未读实验的完整结论。 |
| R06 Oviatt 等,When do we interact multimodally? Cognitive load and multimodal communication patterns | 已有摘要核验记录 | 任务与表达复杂度和通道选择有关。只作研究方向,不引用比例、效果量或据此设门槛。 |
| R07 Multimodal Systems: Taxonomy, Methods and Challenges | 已有相关章节阅读记录;综述性预印本 | 提供融合层级与问题分类,支持本文不预设技术架构的边界;不是独立的产品效果证据。 |
| R08 Kaiser 等,Mutual Disambiguation of 3D Multimodal Interaction in Augmented and Virtual Reality | 已有前两页阅读记录 | 带时间信息的空间候选与相互消歧机制,支持 MM1 的可实现性;未完整核验评测,不采纳效果数字。 |
| R09 Audiovisual simultaneity windows reflect temporal sensory uncertainty;Perceptual Training Narrows the Temporal Window of Multisensory Binding | 待核验;已有访问记录未取得正文 | 只保留线索,不支持本文的定性事实或时间阈值;输出同步要求依据产品承诺和实际测量建立。 |
R02 与 R04 来自同一研究脉络,不能按独立样本累加证据;R03 与 R08 的二维/三维对象、通道与设备条件不同,也不能相互移植参数。历史研究用于解释问题,不代表当前所有用户的行为分布。
3. 公开技术与无障碍资料
| 编号与来源 | 核验范围 | 可支持内容 | 不能推出 |
|---|---|---|---|
| R10 W3C Multimodal Interaction Framework | 已有组件与集成章节阅读记录;W3C Note | 区分识别、解释、融合、生成和呈现。 | 该框架不替产品定义具体架构、阈值和任务行为。 |
| R11 W3C EMMA | 直接核验输入解释、来源、时间、候选、派生关系和置信度相关内容;Recommendation | 可表达候选及输入的时间与来源关系。本文据此区分原始片段、派生解释与组合结果(MM1-6、MM2-1、MM3-1)。 | 表示格式不决定何时提交、谁优先,也不证明不同识别器分数可以直接比较;校准与共同来源检查是本文的设计要求。 |
| R12 W3C Multimodal Architecture and Interfaces | 直接核验生命周期与 Cancel/Pause 请求及响应;Recommendation | 控制请求和实际完成控制有对应事件,可作为 MM2-2 控制回执的实现参考。 | 停止模态组件不等于撤销已发生的业务后果;本文不要求采用 XML 或该协议。 |
| R13 W3C WCAG 与 Concurrent Input Mechanisms | 直接核验并发输入说明和成功准则;该项为 AAA | 不仅接受首次检测到的输入方式,允许使用与切换平台支持的输入机制;支持 MM5-1、MM5-6。 | AAA 条款不能被写成 AA 的强制项;允许输入切换也不等于要求所有输入必须融合。非 Web 产品要核对自身适用要求。 |
| R14 DTCG Format Module | 直接核验文件定位、类型及发布状态 | 支持类型化表现值的交换;本文引用它说明应用行为配置与通用交换格式的区别。 | 页面明确它不是 W3C Standard。mm.* 的枚举、合同、风险规则没有因此成为标准类型,不能声称直接导入所有设计工具。 |
| R19 W3C Understanding Dragging Movements | 直接核验成功准则、意图与例子;AA | 非必要拖拽提供无需拖拽的单指针路径;键盘可操作与单指针替代分别检查。用于 MM5-1 的替代路径走查。 | “支持键盘”不自动满足触摸或指针用户的需要;保留原文的必要性及用户代理例外,不声称覆盖所有无障碍问题。 |
| R20 W3C Understanding Status Messages | 直接核验状态消息的意图、辅助技术接收和不转移焦点的说明;AA | 支持 MM5-1 中可被辅助技术感知的状态反馈。 | 不是要求每个输入采样或逐字转写都朗读;焦点和播报频率仍须按任务验证。 |
4. 平台案例
以下保留已有核验范围,不作为平台当前功能完整性的保证。本文不采用其中的具体优先级、距离和时间数值。
| 编号与来源 | 已有阅读范围 | 在本文中的用途与限制 |
|---|---|---|
| R15 Apple:Use gestures with Apple Vision Pro | 手势列表、眼手配合说明 | 定位与选择可以由不同通道承担,是 MM1 的实例;不据此推定采集关闭后底层机制或无障碍覆盖。 |
| R16 Meta:Multimodality | 手与控制器并发、交接及设计建议 | 输入能力重叠与交接需设计,支持 MM3、MM4、MM5 的问题存在性。平台优先级不是通用最佳次序。 |
| R17 Meta:Input hierarchy | 输入分层和回退次序 | 有成文的优先级与回退方案;仅支持机制可声明,不证明其效果优于其他策略。 |
| R18 Google:Look and Talk | 使用条件、状态提示、不可用场景、本地处理说明 | 多路条件参与触发时需要披露限制。不得推断多路一致必然排除误触,也不把设备匹配条件作为通用身份判断方案。 |
5. 事实到要求的推导
| 问题 | 本文的设计判断 | 落点与证据性质 |
|---|---|---|
| 单路识别正确,组合仍可能错 | 对象、角色、时间、主体与空间参照共同校验 | MM1、MM2;R01、R03、R08 及失败模式推导 |
| 中间识别会被修正,迟到事件可能重入 | 区分候选、完成解释与提交;同片段修正不新建操作 | MM2-1、MM2-2;产品行为合同的推导,不声称来自外部实验 |
| 取消请求不表示业务已经停止 | 独立控制入口、接收与生效回执、已提交结果核对 | MM2-2;R12 为协议机制参考,业务义务由本文定义 |
| 两路可能来自同一采集源 | 明列来源关系,未经验证不按独立证据计数 | MM3-1;R11 为来源表示参考,可靠性要求为设计推导 |
| 输入去重后提交仍可能重传 | 同一动作防并发和重试,未知结果先核对 | MM4;从“一次表达只生效一次”的承诺反推 |
| 关闭、失去跟踪与临时不便使用不同 | 独立状态、撤权即时生效、恢复不重放、保留有效槽位 | MM5;R04、R12 和失败模式推导 |
| 多种入口不能保证替代路径可走完 | 覆盖选择、确认、取消和纠错,分别检查键盘与单指针 | MM5-1;R13、R19、R20 |
| 多路呈现可能对同一结果说出不同结论 | 绑定业务事件、作废过期输出、保留完整语义与回查入口 | MM6;从可信回执的承诺反推 |
| 只按融合率选参数会掩盖误绑与使用负担 | 结果指标和正常路径成本共同验收 | MM2-6、附录 C;设计方法,不声称已有统一行业阈值 |
6. 仍须在产品中验证
- 每种通道组合的时间间隔、传输延迟、时钟误差与实际呈现偏移;平均值不能代表尾部用户。
- 候选绑定与冲突规则在目标任务、人群及共同失效条件下的表现,尤其是同源推断与多参与者。
- 用户能否区分等待补全、待澄清、已提交、结果未知、已取消,以及正常路径的额外确认负担。
- 同一动作重复接收与真实连续操作之间的边界,重试保护是否在实际副作用处成立。
- 输出分工与冗余各自的收益、信息可达性、隐私和注意力成本;输入侧研究不足以作结论。
- 数据处理、保留、删除以及关闭的实际作用范围。列出禁止重建清单不代表已穷举未来模型能力。
本次完成的是文档与来源核对,没有运行设备测试、用户研究、完整文献综述或行业认证。标准符合性需按实际市场、设备、功能和适用范围单独评估。