98ae211b3d
Capture the product decisions for long-press clipboard instruction mode before implementation.
5.5 KiB
5.5 KiB
剪贴板语音指令(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. 交互主路径
复制文本
→ 开场资格 30s 内且通过材料过滤
→ 提示:「点击说话,长按处理剪贴板」
→ 长按 → 立刻录音,冻结 clipboardSnapshot,开启指令会话
→ ASR(指令) + Snapshot(材料) + StylePack(底色) → LLM
→ 空框写入 / 非空追加;记录本轮插入区间
→(可选)会话未到期再长按连续改写:
干净则删上轮产物再写新版;否则追加
→ 短按 / 会话到期 / 切框 / 收起键盘 → 结束会话,丢弃快照
4. 开场过滤(不开放指令入口)
命中任一条 → UI 保持「点击说话」,长按按 听写 处理:
- 长度 < 10 字
- 明显是数字(电话、订单号等)
- 无意义字符 / 乱码 / 单符号重复
- 验证码形态(短字母数字码等)
- 非文本、安全输入框、无 Full Access 读不到剪贴板
5. 写入与「干净」判定
可替换(干净)须同时满足: 同一指令会话、字段指纹未变、有上轮插入记录、光标仍在上轮产物末尾、上轮文本未被用户改动。
推荐执行顺序: LLM 成功拿到新文本 → 再删旧 → 再插新;删后插失败则尽力写回旧文本。不确定时 只追加或不插,绝不误删用户原文。
6. 失败态与边界(优先级)
- 不丢用户原文(替换不确定 → 追加或不插)
- 不把指令 ASR 当听写上屏(ASR/LLM 失败均不插入指令原文)
- 不静默滥用剪贴板(无资格 = 听写;仅长按开场时读一次)
- 软失败可重试但不续期(没听清 / 生成失败:不插入、会话保持、时钟不刷新)
- 少打断(弱提示,不弹模态)
| 场景 | 策略 |
|---|---|
| 剪贴板过期后长按 | 弱提示「剪贴板已过期」→ 听写 |
| 无有效语音 / ASR 空 | 不调用 LLM;不插入;会话保持 |
| 指令不可解析 | 提示说明要怎么处理;不插入 |
| LLM 超时/拒绝/空结果 | 不插入;可重试;不刷新时钟 |
| 字段切换 / 收起键盘 | 结束会话;已上屏保留 |
| 会话中剪贴板被覆盖 | 本会话仍用旧快照 |
| 密码框 | 禁止指令模式 |
隐私: 快照仅内存,会话结束丢弃;不写历史明文;不后台轮询剪贴板。
7. 与现有架构的关系
| 可复用 | 必须新建(实现期) |
|---|---|
| Flow 命令/结果桥、PiP、ASR、插入器、字段指纹 | 剪贴板开场资格与材料过滤 |
PolishingService / LLM 调用层、Style Pack 底色 |
新 prompt 契约(指令模式;不可复用「ASR 绝不当命令」的听写 R6) |
| 会话超时与冷启动 handoff | 指令会话状态、上轮插入区间、干净替换逻辑 |
非目标(本期): 后台监听剪贴板、强制预览确认、独立「回复」大按钮、把指令模式混进现有 transcript-polish 路径。
8. 成功标准(验收)
- 复制合格文本 30s 内,提示变为「点击说话,长按处理剪贴板」。
- 长按后口述「委婉拒绝 / 精简 / 总结」等,结果直接进入当前输入框。
- 会话内再长按改写:未手改则替换上轮产物;手改则追加。
- 会话中短按恢复听写,且不会把上一段指令会话状态带到听写。
- 过短/数字/验证码等材料不会出现指令提示。
- ASR/LLM 失败时输入框不被指令原文污染。
9. 下一步
- 补一页状态机(听写 / 开场资格 / 指令录音 / 生成 / 可连续改写 / 结束)。
- 定长按阈值与材料过滤的具体启发式。
- 设计指令模式 prompt 与听写 polish 的分流接口。
- 产品确认后进入实现(键盘提示 → 主 App 会话 → Shared prompt → 插入替换)。