DEV Community

👻 Memoria Local: An Offline AI Digital Ofrenda for Día de los Muertos

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine.

What I Built

I built Memoria Local, a completely offline Python CLI tool that helps families build a "Digital Ofrenda" for Día de los Muertos.

You feed it an audio recording of a family member sharing a memory about a passed loved one. It uses a local open-weight speech model to transcribe the story, and a local open-weight LLM to extract life lessons, favorite memories, and format it into a beautiful, printable tribute.

The inspiration came from the fleeting nature of oral history. When elders pass, their stories often go with them. I wanted a way to capture and honor those voices without sending deeply intimate family grief and memories to corporate cloud servers.

Demo

Here is the terminal output when processing a recording of my grandfather talking about my late grandmother:

$ python memoria.py grandma_story.wav
🕯️ Loading Whisper locally... transcribing the spirits...
🦙 Waking up the local archivist (Llama 3.2)...
--- 🌼 Ofrenda Tribute: The Keeper of the Garden ---
Life Lessons She Taught Us:
1. Patience is the water that makes the seeds grow.
2. A shared meal is the strongest bridge between strangers.
3. Never let the sun set on an unspoken "I love you."
Closing Blessing: May her memory be a light on the path of the ancestors, and may the scent of cempasúchil always guide her home to us.
------------------------------------

Code

Since I'm keeping this lightweight and repo-free for this challenge, here is the core logic. It relies on openai-whisper for local audio transcription and ollama for local text generation.

import whisper
import ollama
import sys

def create_ofrenda(audio_path):
    print("🕯️ Loading Whisper locally... transcribing the spirits...")
    model = whisper.load_model("base")
    result = model.transcribe(audio_path)
    transcript = result["text"]
    print("🦙 Waking up the local archivist (Llama 3.2)...")
    prompt = f"""You are a compassionate archivist for Día de los Muertos. Based on this memory shared about a loved one, write a beautiful 'Ofrenda Tribute'. Include: - A poetic title. - 3 core life lessons they taught. - A short, warm closing blessing. Memory: {transcript} """
    response = ollama.chat(model='llama3.2', messages=[{'role': 'user', 'content': prompt}])
    print("\n--- 🌼 Ofrenda Tribute ---")
    print(response['message']['content'])
    print("--------------------------")

if __name__ == "__main__":
    create_ofrenda(sys.argv[1])

How I Built It

I built this using Python, OpenAI's Whisper (open-weight speech-to-text), and Ollama running the llama3.2 open-weight LLM. The pipeline is entirely local.

First, the audio file is passed to Whisper, which runs entirely on the CPU/GPU without touching the network. The resulting transcript is then injected into a carefully crafted system prompt designed to honor the deceased, which is passed to the local Ollama daemon.

The "ghost in the machine" here is quite literal - the AI is channeling the raw audio of the past into a structured tribute for the present, running entirely on a laptop with the Wi-Fi turned off.

Why Does Open Innovation Matter?

Open innovation is the absolute core of this project for two reasons:

  • Intimate Privacy: Voice recordings of people crying, remembering the dead, or sharing deeply personal family secrets should never be uploaded to a third-party cloud API. Open-weight models allow this tool to run 100% locally, keeping family grief and memories entirely on the user's own machine.
  • Permanence: Día de los Muertos is about remembering. If this tool relied on a closed, paid API, what happens when that company goes bankrupt or changes its pricing? The memories become locked. Open-source AI ensures that as long as you have a computer, you can run this tool and access your family's history, free from subscription fees or API deprecation.

My Agent Session

While this isn't a multi-step agentic workflow, the "agent" here acts as a compassionate archivist.

I spent time iterating on the prompt in Ollama to ensure the model didn't hallucinate facts, but rather synthesized the emotional core of the transcript into a respectful tribute. Getting the tone right - somber but celebratory - required testing different open-weight models until Llama 3.2 nailed the cultural nuance of an Ofrenda.

The Spirit of It

I tested this with a 3-minute audio clip of my father talking about his own father, who passed away before I was born. Hearing the AI transcribe his voice and then beautifully summarize a man I never met into a printable tribute brought tears to my father's eyes.

It didn't just process data; it created a tangible artifact of memory that we placed on our physical Ofrenda this year.

Prize Categories

  • Local-first AI / Privacy-focused AI
  • Best use of Open-Weight Models
Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.