~/talk

Building Conversational Speech Annotation Tool in Clojure

Talkat Heart of Clojure 2024 · 2024-09-18..09-19· [machine-learning, clojure]
links:none on file
slides:none on file

A bespoke ClojureScript editor becomes a working conversational audio annotator that uses Reagent and re-frame, Wavesurfer.js for the waveform UI, piano audio library for diarization and Whisper for transcript seeds, and produces segments by merging ML tokens right-to-left then partitioning by speaker or gap. Concrete wins: property-based tests catch a rare selection-consistency bug; test coverage enables safe refactors. Pain points include Specter hit a 20-arg function limit, local undo histories per segment, and a custom merge that preserves user edits while resizing segments.

AI-written summary · about

  1. 0:00Introduction and background
  2. 3:33Text annotation features
  3. 9:01Editor architecture overview
  4. 11:10Spectre challenges and fixes
  5. 15:47Debugging tooling and data structure
  6. 19:24Conversational speech annotation
  7. 23:38Speech annotation workflow
  8. 26:34Waveform UI and immutability
  9. 27:40Critical UI challenges
  10. 31:58Acknowledgments and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.