Skip to content

悬浮字幕

DeLive 提供一个悬浮字幕窗口,以始终置顶的叠层形式显示实时转录文本。

特性

  • 始终置顶 — 保持在所有其他窗口之上
  • 鼠标穿透 — 非交互时,鼠标事件穿透到下层窗口(Windows 和 macOS)
  • 三种显示模式 — 仅原文、仅翻译文、双行显示(两者兼有)
  • 完全可定制 — 字号、字体、文字颜色、背景颜色、文字阴影、最大行数和宽度
  • 可拖动 — 切换拖动模式以重新定位窗口

显示模式

模式说明
source显示原始转录文本
translated仅显示翻译文本(Provider 支持翻译时)
dual双行显示原文和翻译文本

TIP

翻译功能目前仅通过开启了 translationEnabledSoniox V4 提供。其他 Provider 仅显示原文。

工作原理

  1. ASR Provider 发出转录事件(部分文本和最终文本)
  2. CaptionBridge 去重并通过 IPC 将文本转发到字幕窗口
  3. 字幕窗口使用配置的样式渲染文本
  4. 仅当内容实际变化时才发送更新(对稳定文本、活跃文本、翻译文本和 isFinal 标志去重)

技术细节

  • 字幕窗口是独立的 BrowserWindow,设置 transparent: true(Linux 使用半透明黑色背景替代)
  • Windows 上使用分层窗口技巧(backgroundColor: '#01000001')启用透明
  • 窗口定位在包含主窗口的显示器底部居中
  • 鼠标交互检测每 100ms 轮询光标位置,当光标进入字幕区域时临时启用交互
  • 切换 setFocusable 以防止字幕在正常使用时抢夺键盘焦点

Released under the Apache 2.0 License.