Files
OSGKeyboard/docs/clipboard-voice-command-plan.md
T
Rocky 98ae211b3d docs: freeze clipboard voice command one-page plan
Capture the product decisions for long-press clipboard instruction mode before implementation.
2026-08-07 11:32:31 +08:00

5.5 KiB
Raw Blame History

剪贴板语音指令(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. 失败态与边界(优先级)

  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 → 插入替换)。