Yay Emacs 7: Using word timing in caption editing with subed-word-data
| emacs, yay-emacs, subedWhen I work with video captions, I often want to split long captions using subed-split-subtitle. If my player is somewhere in the current subtitle, it'll use that timestamp. If not, it'll make a reasonable guess based on character position.
I can use subed-word-data.el to load word-level times from WhisperX JSON or from Youtube SRV2 files. This allows me to split a subtitle using the timestamp for that word.
Because subed-word-data colours words based on transcription confidence, I can see where something might need to be closely examined, like when there's no timing information for the words at the start or end.
If I combine that with subed-waveform, I can see silences. Then I can tweak start times by shift-left-clicking on the waveform. This automatically adjusts the end time of the previous subtitle too.
I like how Emacs makes it easy to use word timing data when editing captions. Yay Emacs!
You can watch this on YouTube, download the video, or download the audio.
Note: Sometimes WhisperX gives me overlapping
timestamps for captions, so I use M-x
subed-align
to get the aeneas forced alignment
tool to give me subtitle-level timestamps. Then I
use the word-level data from WhisperX for further
splitting.
Links:
- WhisperX
- sachac/subed: subed is a subtitle editor for Emacs
- subed-word-data.el
- subed-waveform.el
- My other blog posts about subed.el, in particular:
Aside: I was trying to find some kind of
value-to-color translator for Emacs Lisp for
easier visualization, like the way the d3
Javascript library makes it easy to translate a
range of numbers (say, linear 0.0 to 1.0) to
colors (ex: red-yellow-green). I found
color-hsl-to-rgb
and also the range of colours
defined by the faces calendar-scale-1
to
calendar-scale-10
. There's also prism, which
colours code by depth and allows people to specify
the colour transformations (saturation, lightness,
etc.). I wonder if someone's already written a
general-purpose data-to-fg/bg-color Elisp library
that supports numerical and categorical data…