Linterna: keep the voice behind the memory
Description and use
Linterna is a local web app that records, transcribes, stores, and plays back oral histories, preserving the original audio and allowing transcript editing, all without external dependencies.
Problem
Capturing oral history requires preserving not just transcripts but the original audio, pauses, and pronunciation, while keeping data local and private.
Outcome
Linterna enables private, local oral history capture with editable transcripts and original audio playback, avoiding external dependencies and preserving nuanced speech details.
Workflow
- Open the app at http://127.0.0.1:8787
- Allow microphone access
- Tap to start recording or press and hold
- Tap again to stop or release
- Preview the recording and edit the transcript if desired
- Save the memory to the local SQLite database
- Search memories by date or words
- Play back the original recording or read the transcript
Evidence
Linterna runs locally. There is no public instance collecting visitors' family recordings.
The transcription runs against my existing private speech service.
SQLite stores the audio and transcript in the same memory record.
A few less visible details made a real difference: Failed transcription keeps the draft audio available.
The GIF uses synthetic speech to demonstrate the actual browser recording, transcription, save and playback flow.
- Record date: 2026-10-27T23:11:23.275Z