This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Pahana turns a family elder's spoken stories into a digital ofrenda. You upload or record a short story, an open-weight speech model transcribes it, and an open LLM pulls out the foods, songs, places and sayings the elder mentioned. These appear as offerings on an animated altar with candles and flowers. You can also ask questions, and the "memory keeper" answers only from what was actually recorded, with citations to the exact sentence.
I took the theme in two directions: a warm Remembrance mode for Día de
los Muertos, and a Spooky mode for Halloween.
It was inspired by my own grandmother's stories, which exist only in
people's heads and will disappear unless someone writes them down.
Code
Pahana---An-Open-Source-AI-Ofrenda-for-Family-Stories
How I Built It
Everything at the core is open:
- Speech-to-text: Whisper large-v3 (open-weight)
- LLM: Qwen2.5-72B-Instruct (open-weight) for fact extraction and Q&A
- UI: Gradio (open-source), hosted on Hugging Face Spaces
-
Flow: audio → editable transcript with segment IDs (
[s1],[s2]...) → JSON fact extraction → ofrenda. For questions, the full transcript is passed to the model as context. The stories are short, so I skipped a vector database.
Because I was building something that speaks about people who have passed away, I added guardrails on purpose:
- The AI is a memory keeper, never the person. It says "here is what she said", never "I am your grandmother".
- Grounded answers only. If the transcript doesn't say it, the answer is: "There is no recording about this."
- Citation check. Every answer must cite segment IDs. If it cites an ID that doesn't exist, the answer is rejected.
- Human in the loop. The transcript is editable, because the AI drafts and the family confirms.
Why Does Open Innovation Matter?
Family stories are some of the most personal data there is, so where
they live matters.
- No lock-in: Models are open-weight. If a hosted service shuts down, Pahana can run elsewhere. Swapping Qwen for Llama or Gemma is a one-line change.
- Path to full privacy: The inference calls go through a standard client, so the same app can point at a local model (e.g. Ollama) and run with the internet off. A closed API can't offer that.
- Cost: Open models mean free tiers and self-hosting, so families aren't paying per token to preserve their own history.
- Adaptable: Whisper's weaker Sinhala accuracy could be improved by fine-tuning on open speech data. With a closed API, that's not possible.
Honest note: my public demo uses hosted inference, so audio goes to
the provider's servers. The privacy benefit is realized when you run it
locally, which I haven't fully tested yet.
The Spirit of It
When I tested it with the story I wrote, I asked about something the
grandmother never mentioned. Instead of inventing an answer, it said "there's no recording about this." That small refusal felt right. A
memory keeper should protect what was said, not make up what wasn't.
Top comments (0)