Turning Family Voice Notes into a Living Digital Ofrenda with Local AI
Description and use
The app turns family voice notes into a searchable, printable digital ofrenda, processing all data locally and ensuring exact quote fidelity.
Problem
Family members want to preserve oral histories without sending sensitive audio to external services, ensuring privacy and exact quote fidelity.
Outcome
The app enables private, accurate family oral histories by transcribing and extracting key elements locally, preserving exact quotes and keeping all data on the user's machine.
Workflow
- Upload voice note via browser to /api/transcribe
- FastAPI forwards audio to faster-whisper (base model) on localhost:8000
- User edits transcript for accuracy
- Edited transcript sent to local Ollama (gemma3:4b-it-qat) on localhost:11434 with JSON schema and temperature 0
- Server validates extracted fields against transcript using guard() to ensure exact matches
- User reviews and edits extracted items, removing unwanted entries
- Saved data populates ofrenda page with portrait, offerings, quotes, and original recording
- User can search, filter by tag, print, or export page as PNG
Evidence
The app transcribes it on the same computer, gathers the foods, songs, places, tags and exact quotes mentioned, and turns them into an ofrenda page that can be searched, printed and saved as an image.
No accounts, cloud storage, or external AI APIs: the audio, transcripts, photos and database stay on the computer running it.
The server checks the output against the transcript in guard(). Foods, songs and places must match a whole word or phrase in the transcript... Quotes have surrounding quote marks removed and must match a whole phrase in the normalized transcript.
Three things were hard: JSON reliability on a small model... A PyAV version mismatch broke faster-whisper's audio decoding... Windows setup.
- Record date: 2026-11-01T20:14:04.278Z