Skip to content

[capsule] 流式原文移出胶囊并截断不可见字形 #1144

Description

@HKLHaoBin

现象

#1093 / #1094 已把流式原文做到胶囊上:LiveTranscriptPill 按字拆成 motion.span,做淡入、上弹和分组左移。当前布局与渲染仍有两处不合适:

  1. 不可见字形仍全量参与计算。 胶囊宽度有上限后,滚出可视区的字只是被裁切,仍留在 units 里:继续 measureText、分配 spring delay、每帧位移。长录音时字形数量线性增长,录音窗口会越来越卡。
  2. 原文占了胶囊内部。 Classic 在出现 live text 后用 LiveTranscriptPill 替换 ClassicPill,波形消失;Siri 虽保留 orb,原文仍叠在胶囊窗口里。录音时既要看电平,又要连续读原文,两者挤在同一胶囊里。

需要把职责拆开:胶囊内只保留波形(及取消/确认等控件),流式原文放到胶囊外;同时对不可见字做窗口截断,不再为屏幕外的字付动画成本。

影响

长语音时胶囊卡顿、发热;Classic 一旦出字就看不到波形,无法判断是否还在收音。原文和波形抢同一块胶囊,阅读与电平反馈互相干扰。

建议接受标准

  • Siri、Classic/OpenLess、Typeless:在 recording / transcribing / polishing 期间,胶囊内保持波形(orb 或 pill 电平),取消/确认仍在胶囊上。
  • 流式原文显示在胶囊外侧(独立一行,不进入胶囊内部),关闭「流式原文」后只保留原有波形与状态提示。
  • 只保留当前可视窗口内的字形(可加少量缓冲);滚出窗口的字从 DOM / 动画列表移除,不再测量宽度、不再跑 spring。
  • 长文本仍右锚、最新内容可见;可视区内继续现有插入动效(新字淡入上弹、旧字分组左移)。
  • 连续分片、识别修正、跨句输出仍保持正确全文语义;截断只影响渲染窗口,不丢会话文本。
  • 有截断窗口与「原文在胶囊外、波形在胶囊内」的布局/浏览器边界验证。

TODO / 不确定项

  • 原文相对胶囊的默认位置(上方或下方)是否按风格区分,待实现时对照现有 capsule 预览确认。
  • 截断窗口是否保留 1–2 个溢出缓冲字,避免弹簧回弹时露白,以实现时观感为准。

Activity

  1. HKLHaoBin commented on Oct 4, 2026

    @HKLHaoBin
    CollaboratorAuthor

    开始调研

  2. HKLHaoBin commented on Oct 5, 2026

    @HKLHaoBin
    CollaboratorAuthor

    @HKLHaoBin #1144 已完成实现并通过 CI、桌面端和 Android 构建,请协助测试以下产物:

    桌面端:

    移动端:

    构建记录:Release Tauri · Android debug · CI

    如果 artifact 页面没有直接开始下载,请进入页面后在 Artifacts 区点击同名产物。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priorityarea:uiUI areaenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions