# 剪贴板语音指令(Clipboard Voice Command)一页规划 > **文档状态**:产品规划(**决策已冻结**,未进入实现) > **适用范围**:iOS 主 App + 键盘扩展(复用现有 Flow / ASR / 润色管线) > **创建日期**:2026-08-07 > **关联能力**:Flow 会话、PiP 保活、Polish Style Packs、字段指纹插入 --- ## 1. 一句话定义 用户复制一段材料到剪贴板后,**长按麦克风**口述处理意图;系统以「剪贴板快照 = 材料、ASR = 指令、当前风格包 = 底色」生成结果,并直接写入当前输入框。短按始终回到普通听写。 覆盖场景:**社交回复**(委婉拒绝、温暖安慰)与 **文档处理**(精简、总结)共用一条管线。 --- ## 2. 冻结决策 | 项 | 选择 | |----|------| | 入口 | **复用麦克风**:短按 = 听写;长按 = 剪贴板指令 | | 提示文案 | 有开场资格时改为:**「点击说话,长按处理剪贴板」** | | 开录时机 | 长按达标后 **立刻录音**,不插确认动画 | | 开场资格时钟 | 复制后 **30 秒内** 可进入 | | 指令会话时钟 | 开场成功起 **30 秒**;每轮 **成功上屏** 刷新 30 秒;失败不刷新 | | 材料快照 | 开场瞬间冻结;会话中剪贴板变更不影响本会话 | | 首轮写入 | 空框写入;非空追加 | | 连续改写 | **干净 → 替换上轮产物**;**不干净 → 追加**(用户自删) | | 会话中短按 | **结束指令会话 → 听写** | | 风格 | 共享基础润色契约;当前 Style Pack 作底色;**本轮指令优先** | | 预览 | 直接上屏,不强制确认 | | 翻译开关 | 指令模式 MVP **忽略**(语言需求由口述指令携带) | --- ## 3. 交互主路径 ```text 复制文本 → 开场资格 30s 内且通过材料过滤 → 提示:「点击说话,长按处理剪贴板」 → 长按 → 立刻录音,冻结 clipboardSnapshot,开启指令会话 → ASR(指令) + Snapshot(材料) + StylePack(底色) → LLM → 空框写入 / 非空追加;记录本轮插入区间 →(可选)会话未到期再长按连续改写: 干净则删上轮产物再写新版;否则追加 → 短按 / 会话到期 / 切框 / 收起键盘 → 结束会话,丢弃快照 ``` --- ## 4. 开场过滤(不开放指令入口) 命中任一条 → UI 保持「点击说话」,长按按 **听写** 处理: - 长度 **< 10** 字 - 明显是数字(电话、订单号等) - 无意义字符 / 乱码 / 单符号重复 - 验证码形态(短字母数字码等) - 非文本、安全输入框、无 Full Access 读不到剪贴板 --- ## 5. 写入与「干净」判定 **可替换(干净)须同时满足:** 同一指令会话、字段指纹未变、有上轮插入记录、光标仍在上轮产物末尾、上轮文本未被用户改动。 **推荐执行顺序:** LLM 成功拿到新文本 → 再删旧 → 再插新;删后插失败则尽力写回旧文本。不确定时 **只追加或不插,绝不误删用户原文**。 --- ## 6. 失败态与边界(优先级) 1. **不丢用户原文**(替换不确定 → 追加或不插) 2. **不把指令 ASR 当听写上屏**(ASR/LLM 失败均不插入指令原文) 3. **不静默滥用剪贴板**(无资格 = 听写;仅长按开场时读一次) 4. **软失败可重试但不续期**(没听清 / 生成失败:不插入、会话保持、时钟不刷新) 5. **少打断**(弱提示,不弹模态) | 场景 | 策略 | |------|------| | 剪贴板过期后长按 | 弱提示「剪贴板已过期」→ 听写 | | 无有效语音 / ASR 空 | 不调用 LLM;不插入;会话保持 | | 指令不可解析 | 提示说明要怎么处理;不插入 | | LLM 超时/拒绝/空结果 | 不插入;可重试;不刷新时钟 | | 字段切换 / 收起键盘 | 结束会话;已上屏保留 | | 会话中剪贴板被覆盖 | 本会话仍用旧快照 | | 密码框 | 禁止指令模式 | **隐私:** 快照仅内存,会话结束丢弃;不写历史明文;不后台轮询剪贴板。 --- ## 7. 与现有架构的关系 | 可复用 | 必须新建(实现期) | |--------|-------------------| | Flow 命令/结果桥、PiP、ASR、插入器、字段指纹 | 剪贴板开场资格与材料过滤 | | `PolishingService` / LLM 调用层、Style Pack 底色 | **新 prompt 契约**(指令模式;不可复用「ASR 绝不当命令」的听写 R6) | | 会话超时与冷启动 handoff | 指令会话状态、上轮插入区间、干净替换逻辑 | **非目标(本期):** 后台监听剪贴板、强制预览确认、独立「回复」大按钮、把指令模式混进现有 transcript-polish 路径。 --- ## 8. 成功标准(验收) 1. 复制合格文本 30s 内,提示变为「点击说话,长按处理剪贴板」。 2. 长按后口述「委婉拒绝 / 精简 / 总结」等,结果直接进入当前输入框。 3. 会话内再长按改写:未手改则替换上轮产物;手改则追加。 4. 会话中短按恢复听写,且不会把上一段指令会话状态带到听写。 5. 过短/数字/验证码等材料不会出现指令提示。 6. ASR/LLM 失败时输入框不被指令原文污染。 --- ## 9. 下一步 1. 补一页状态机(听写 / 开场资格 / 指令录音 / 生成 / 可连续改写 / 结束)。 2. 定长按阈值与材料过滤的具体启发式。 3. 设计指令模式 prompt 与听写 polish 的分流接口。 4. 产品确认后进入实现(键盘提示 → 主 App 会话 → Shared prompt → 插入替换)。