什么是 Textream?
Textream 是一个免费且开源的 macOS 应用,它通过三种核心模式来辅助你完成演讲或朗读脚本:词语追踪(在你说出每个词时实时高亮显示)、经典模式(以恒定速度自动滚动文本)以及语音激活模式(在你说话时滚动,静音时暂停)。它以时尚的动态岛风格浮层显示在屏幕顶部,也可以作为可拖动的浮动窗口,或者在通过 Sidecar 连接的 iPad 上全屏显示——所有这些都只对你自己可见,观众完全不会察觉。
你只需粘贴脚本,点击播放,然后开始说话。完成后,浮层会自动关闭。
首次启动注意事项
由于 Textream 是在 Mac App Store 之外分发的,macOS 可能会在首次打开时阻止它运行。你需要在终端中运行一次以下命令来解决问题:
xattr -cr /Applications/Textream.app
运行后,在 Finder 中右键点击应用程序并选择打开。首次启动后,系统就会记住你的选择。
功能
引导模式
- 词语追踪(默认)—— 利用设备端的语音识别技术,在你说出词语时实时高亮显示。无需连接云端,零延迟,支持离线工作,并兼容多种语言。
- 经典模式 —— 文本以恒定速度自动滚动。此模式不需要麦克风,你可以通过滑块自由调整滚动速度。
- 语音激活模式 —— 在你说话时文本开始滚动,当你静音或停顿时会自动暂停。这种模式非常适合追求自然演讲节奏的场景。
- 鼠标滚动以赶上进度 —— 在经典和语音激活模式下,你可以使用鼠标滚轮向前或向后跳转文本。计时器会在你滚动时暂停,并从新的位置恢复。
显示
- 动态岛浮层 —— 一个位于屏幕顶部的刘海形状浮层,设计灵感来源于 MacBook 的动态岛。它始终显示在所有应用程序窗口之上。
- 选择显示屏 —— 你可以选择“跟随鼠标”让浮层移动到光标所在的显示屏,或者选择“固定显示屏”将其锁定在特定的屏幕上。
- 浮动窗口模式 —— 可以从固定的刘海浮层切换为可任意拖动、放置在屏幕任何位置的浮动窗口。
- 玻璃效果 —— 为浮动窗口启用半透明的磨砂玻璃背景效果,并可以调整其不透明度。
- 外接显示器 / Sidecar —— 可以在外接显示器或通过 Sidecar 连接的 iPad 上全屏显示提词器内容。
- 可配置的镜像模式 —— 可以水平、垂直或同时翻转外接显示器上的图像,以适应提词器镜像设备的需求。
- 可调整大小 —— 通过设置面板 (⌘+,) 调整浮层的宽度和文本区域的高度,以适应不同的屏幕尺寸。
自定义
- 字体家族 —— 可以从 Sans、Serif、Mono 或对阅读障碍友好的 OpenDyslexic 字体中选择。
- 字体大小 —— 提供四种大小预设:XS、SM、LG、XL。
- 高亮颜色 —— 提供六种颜色预设:白色、黄色、绿色、蓝色、粉色、橙色。
- 滚动速度 —— 可以调整经典和语音激活模式的滚动速度,范围从 0.5 到 8 词/秒。
- 语言选择 —— 为词语追踪模式选择你偏好的语音识别语言。
文件支持
- PowerPoint 备注导入 —— 直接拖放
.pptx 文件,Textream 会自动提取演示者备注作为页面内容。对于 Keynote 或 Google Slides,请先导出为 PowerPoint 格式,Textream 会处理后续工作。
- 保存为 .textream 文件 —— 将你的脚本保存为
.textream 文件以便随时重用,方便跨演示文稿有序管理你的备注。
其他
- 实时波形 —— 提供视觉化的语音活动指示器,让你随时清楚麦克风是否正在拾音。
- 点击跳转 —— 点击浮层中的任意词语,提词器会立即跳转到该位置。
- 暂停与恢复 —— 可以随时脱离脚本休息一下,然后返回继续。追踪器会从你离开的位置准确恢复。
- 完全私密 —— 所有处理都在设备本地进行。无需账户,无用户追踪,你的数据绝不会离开你的 Mac。
- 自动更新检查 —— 在启动时以及从 Textream 菜单中,可以检查 GitHub Releases 以获取新版本。
- 开源 —— 采用 MIT 许可证。欢迎贡献代码和想法。
适用人群
| 使用场景 |
Textream 如何提供帮助 |
| 直播主 |
在不移开视线的情况下阅读赞助商片段、公告和谈话要点。 |
| 采访者 |
在与嘉宾保持自然眼神交流的同时,让你准备好的问题保持可见。 |
| 演讲者 |
自信地交付主题演讲、演示和讲话,永远不会在脚本中迷失位置。 |
| 播客主 |
在录制时无需动手即可跟随节目备注、广告词和话题提纲。 |
使用方法
- 粘贴您的脚本 —— 将你的谈话要点、采访问题或完整脚本粘贴到 Textream 的文本编辑器中。
- 点击播放 —— 动态岛浮层会从屏幕顶部滑下。
- 开始说话 —— 词语会在你阅读时实时高亮显示。完成后,浮层会自动关闭。
从源代码构建
要求
- macOS 15+
- Xcode 16+
- Swift 5.0+
构建
git clone https://github.com/f/textream.git
cd textream/Textream
open Textream.xcodeproj
在 Xcode 中使用 ⌘R 构建并运行。
项目结构
Textream/
├── Textream.xcodeproj
├── Info.plist
└── Textream/
├── TextreamApp.swift # 应用程序入口点,深层链接处理
├── ContentView.swift # 主文本编辑器界面 + 关于视图
├── TextreamService.swift # 服务层,URL 方案处理
├── SpeechRecognizer.swift # 设备端语音识别引擎
├── NotchOverlayController.swift # 动态岛 + 浮动浮层
├── ExternalDisplayController.swift # Sidecar / 外接显示器输出
├── NotchSettings.swift # 用户偏好设置和预设
├── SettingsView.swift # 选项卡式设置界面
├── MarqueeTextView.swift # 词语流布局和高亮显示
├── PresentationNotesExtractor.swift # PPTX 演示者备注提取
├── UpdateChecker.swift # GitHub 发布版本更新检查器
└── Assets.xcassets/ # 应用程序图标和颜色
URL 方案
Textream 支持 textream:// URL 方案,用于直接启动并显示浮层:
textream://read?text=Hello%20world
它还在 macOS 中注册为一项系统服务,因此你可以在任何应用程序中选择文本,然后通过右键菜单中的“服务”选项将其直接发送到 Textream。
项目地址
项目的完整说明和源代码位于:https://github.com/f/textream/blob/master/README.md
如果你想探索更多类似的实用开发工具或技术实践,欢迎来 云栈社区 与广大开发者交流探讨。
|