TiddlyWiki: Using Recodings

 1st March 2021 at 9:59am

有些内容用文本来表达不如用语音:

  • 一些复杂的、但是非硬知识的内容(比如为人处事之道等),适合用语音来表达,这样更像是两个人在对话,更容易理解。比如 Introvert or Extrovert, This is a Choice 这篇就适合用语音,用文字反而难理解
  • 情感用录音来表达更丰满,语速语调中包含信息
  • 想讲一些话给未来的自己听
  • 用方言(比如我用的潮汕话)来表达更方便,比如 My Family Stories 中老叔一段的内容

但同时希望:

  • 语音能被转写成文字,方便快速阅读及搜索
  • 语音播放时可以加速

流程:

  1. 录音
  2. 降噪
  3. 字幕处理
  4. 嵌入 TiddlyWiki

对于前三个步骤,目前摸索出来的较简单的方法是:

  1. 录音相对随意,在电脑录比较好操作,比如讲得不流畅的部分重录
  2. 录完的音频在 Audacity 做降噪,生成 M4A 音频文件
    • 注意:这一步的过程中不要去调快语音速度(压缩音频长度),因为会损失信息。对于把音频压缩成 2/3 长,或者一段原始长度音频以 1.5 倍速播放,听完的时间是一样的,但是压缩过长度的那段听起来会不自然,应该是压缩过程中信息少了。
  3. 做语音听写,生成初始的 SRT
  4. 用 Aegisub 编辑字幕,纠正错误字,保存进 SRT 并生成一份不带时间信息的纯文本字幕稿
  5. 用 astisub 将 SRT 转换成 WebVTT 字幕文件

最后,如何嵌入 Tiddlywiki?有两种方式:

  • 使用 TW 内建的语音支持了(参考),即把音频作为一个 tiddler。但这样会显著增加 TW 的 HTML 体积,也无法使用自定义的 JS 播放器
  • 使用 TW 内建的 静态文件服务器。好处是不增加 TW HTML 的体积,也可以使用自定义 JS 播放器;缺点是不支持分段加载(Accept-Ranges),在播放时无法拖动进度条
  • 将文件传至 COS 等网络存储中。这样可以支持拖动进度条,也方便发布到互联网

我的方式是 结合静态文件服务器及网络存储。文件先放置到 files 中,保证 single source of truth,再将其同步到 COS 中。TiddlyWiki: Publish 中详细描述此过程。

同时我安装了 TheDiveO/TwTube 的插件,将 Video.js 引入进来,方便显示字幕。

使用时参考 Text Snippet: Inline Video。因为代码较复杂,没有写成宏。