~ things built at night ~

The transcription pipeline

« back to Built

What it does

I record a voice memo or a conversation on my phone and forget about it. The file syncs to my home PC on its own. There the pipeline works out who spoke when, writes down what was said, labels each line with its speaker and gives the memo a short title. Each morning a second job reads the new transcripts and pulls out the action items, the things someone said they would do, into my task list.

Why I built it

I think out loud and then lose the thought. Typing notes in the moment kills the conversation, and I did not want my voice memos uploaded to someone else's server. Now the recording is the note, and the follow-ups find me.

Stack

  • Syncthing, phone to PC, no cloud in between
  • pyannote speaker diarization 3.1 (who spoke when)
  • faster-whisper with the large-v3 model on the GPU (what was said)
  • Python glue that aligns speakers and words by timestamp
  • The local Qwen model for titles
  • A daily Claude job that extracts action items into Notion
  • A GPU lock, so two jobs never load models at once
Phone recording synced by Syncthing pyannote who spoke Whisper what was said Labelled transcript speaker + time + words Local Qwen writes a 3-6 word title Every morning extract the action items Task list
fig. 2, from voice memo to to-do