The voice pipeline that writes my diary for me

I talk into a small recorder a few minutes a day. By the next morning, a dated journal entry exists — transcribed locally, condensed by AI, no cloud. Here is the whole setup, including the parts that broke.

I have kept a diary on and off for years, and the failure mode is always the same: writing takes energy I don’t always have, so the gaps grow. This year I stopped writing it myself. I talk instead — a few minutes into a small recorder during the day — and by the next morning, a dated journal entry exists.

The whole chain runs locally. Nothing leaves the house.

The pieces

  • A recorder. I started with a Tascam DR-10L (a lavalier recorder designed for filmmakers), and recently replaced it with a DJI Mic Mini 2S as the primary. The DJI costs about a third of the Tascam and measured better in a direct comparison — lower noise floor, more headroom. I run it at 24-bit/48 kHz. The Tascam stays as backup.
  • A drop folder. When I’m home, the recorder’s files land in one folder on my desktop. That’s the only manual step: plug in, drop, done.
  • A watcher. A small background job notices new audio files and transcribes them with Whisper (large-v3-turbo, converted for speed) running on a Linux box in my garage. No GPU needed for this model — it does about 5× real time on the CPU. A 1h53m recording came out as 383 segments, 8,524 words, processed in roughly 20 minutes.
  • The condenser. The transcript goes to a local AI agent that writes the actual journal entry for the day: what happened, what decisions were made, open questions. The raw transcript is kept; the entry is what I read.

What it actually catches

The value surprised me. A diary entry I write at night is what I remember. A transcript is what actually happened — including the things I didn’t think were worth writing down. Half the useful entries are things like “I told myself to check the insurance deadline in October” that I would never have written but did say out loud.

The condenser also picks up tasks and questions I voice mid-thought. Those get flagged, so they don’t just dissolve into the transcript.

The honest parts

Three things broke on the way, and they’re the parts worth knowing:

  1. The permissions trap. The watcher runs as a background service on macOS, and macOS refused to let the system Python read files on my desktop. The fix was making the service use the Python from a virtual environment that had disk access. If your transcription silently never starts, this is almost certainly why.
  2. The date trap. The recorder’s clock drifted, so files showed up with wrong dates and the journal sorted them wrong. One-time fix: set the recorder’s clock properly. Boring, but it broke the pipeline more than any software did.
  3. Storage creep. An hour of 48 kHz WAV is roughly 700 MB. The pipeline keeps only the two most recent recordings and deletes older ones after the transcript is verified. Without that rule, the folder grows forever and you stop trusting it.

What I’d tell anyone building this

Start with one recording a day and one folder. The transcription quality question — which Whisper size, which language model — matters less than people think; the pipeline discipline matters more. And run the whole thing locally before you even consider a cloud version. Voice is the most personal data you generate, and the local hardware for this is modest: any machine from the last five years handles it.

The diary exists again. I haven’t written a single entry by hand.

Share this article