Skip to content

About

当你用 TTS 生成了一段长音频后,用这个网站自动随音频滚动播放原文稿吧

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Audio Reader · 有声文稿

我经常将长文稿转为音频来听,但市面上此刻并没有合适的应用,是专门为了在播放音频时自动滚动文稿而设计的。所以我用 Fable 5.1,耗时一整天,搓了这个小网站:https://marksonchen.github.io/audio-reader/ (可以试试网站里提供的demo)

阅读界面

怎么用

首页

  1. 把三个文件一起拖进首页:
    • 音频(必需):MP3、M4A、WAV、Opus、OGG、FLAC 等浏览器能播放的任何格式
    • 字幕(必需;没有字幕文件时,可以用下面的工具用音频和原稿生成一份):SRT、VTT、SBV、LRC 格式
    • 原稿(可选):TXT 或 Markdown。提供后正文按原稿显示,时间从字幕借用
  2. 点「开始阅读」。在播放时,文字会逐句高亮、自动滚动。

所有文件只会保存在你的本地浏览器里,不会上传到任何服务器。

想要逐字显示渐变,或者手头没有字幕?生成逐词字幕

普通字幕只知道每一句从哪秒到哪秒,所以阅读时只能整句整块地变色。 如果你的字幕文件能够精确到每一个词,文字就会跟着声音一个字一个字地渐变。 仓库里带了一个命令行工具:提供音频文件 + 普通字幕或原稿,获得逐词的字幕文件。如果你手头只有音频和原稿、没有任何字幕文件,也能用它得到时间轴。

怎么用?clone 这个项目,然后告诉你的本地 agent:

使用这个项目的 scripts/align.py,用我的这些文件(此处填入音频文件路径与稿件/字幕文件路径)为我生成逐词的字幕文件

或者你更愿意手动来:

# 1. 安装 uv(https://docs.astral.sh/uv/getting-started/installation/ )和 ffmpeg(macOS:brew install ffmpeg)
# 2. 取得仓库
git clone https://github.com/MarksonChen/audio-reader.git
cd audio-reader
# 3. 生成逐词字幕;首次运行会自动准备环境并下载约 460 MB 的模型
uv run scripts/align.py 音频.mp3 原稿.txt     # 没有字幕:用原稿
uv run scripts/align.py 音频.mp3 字幕.srt     # 已有普通字幕:用字幕

它会在音频旁边写出 音频.words.srt。把这个文件当作「字幕」放进网页,原稿照旧放「原稿」,就能逐字显示渐变了。 30 分钟的音频在 M4 芯片上处理 1 分钟就够了;原稿和音频有出入的地方(比如念的时候漏了几个字)会被自动跳过。

阅读设置

阅读设置

点击右上角的滑杆图标(或 ⌘ ,)打开。设置分六组:

  • 外观:主题(跟随系统 / 浅色 / 纸张 / 深色)、强调色
  • 排版:字体(只列出本机可用的)、字号、行距、页宽、两端对齐、段首缩进
  • 高亮:当前句样式(底色 / 下划线 / 仅变色)、已读句子变灰、淡化其他段落、高亮偏移
  • 跟随:打开时自动跟随、当前句停靠位置、跟随单位(逐句 / 逐段)、平滑滚动
  • 播放:快进快退步长、每句结束时(继续 / 暂停 / 重复)、点击句子后播放、倍速
  • 显示:段落时间戳、播放器波形

播放器右下角还有音量滑杆(默认 50%,滚轮可微调,M 键静音),音量会被记住。

倍速也可以直接点播放器右下角的倍速按钮:± 0.05(按住连续)、拖滑杆、或直接输入数字。 所有设置会自动保存,「恢复默认」一键还原。

快捷键

Mac Windows / Linux 作用
空格 / K 空格 / K 播放 / 暂停
← / → ← / → 后退 / 前进(步长可设,⇧ / Shift 为微调)
⌥ ← / → Alt + ← / → 上一句 / 下一句
⌥ ↑ / ↓ Alt + ↑ / ↓ 上一段 / 下一段
[ / ] [ / ] 减速 / 加速 0.05(⇧ / Shift 为 0.25)
- / = - / = 缩小 / 放大字号
F F 开关自动跟随
M M 静音 / 取消静音
Enter Enter 回到当前句
Z Z 专注阅读,隐藏上下栏(Esc 退出)
⌘F 或 / Ctrl + F 或 / 搜索正文,回车跳转
⌘ , Ctrl + , 阅读设置
? ? 快捷键帮助

触屏:正文上左右滑动前后跳,双击播放 / 暂停,从播放器向上滑呼出设置。

常见问题

  • 文字为什么是整块变色,而不是一个字一个字点亮? 因为普通字幕只精确到句。用上面的工具生成逐词字幕即可。整体偏早或偏晚可在设置里微调「高亮偏移」。
  • 原稿和字幕内容差别很大? 匹配不到的句子会以点状下划线标出;匹配度过低时会改用字幕文字显示。
  • 某个字体在列表里找不到? 列表是固定的三十多种候选,只显示其中本机已安装且已启用的;在「字体册」里启用后刷新页面即可。
  • 换了浏览器或清了数据? 文件只存在当时的浏览器里,需要重新放入。

技术细节:见 DEVELOPER.md。

About

当你用 TTS 生成了一段长音频后,用这个网站自动随音频滚动播放原文稿吧

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages