DEV Community

Abhishek Singhania
Abhishek Singhania

Posted on

Ghost in the Machine: Keep Family Stories Alive with Local AI 👻

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

What I Built

I built Ghost in the Machine, a local-first oral-history archive designed to help preserve family stories and memories before they are lost.

The idea is simple: a person's voice can hold memories that never make it into a diary or a photo album. This project gives those stories a place to live, while keeping the workflow focused on preserving what people actually said rather than inventing or impersonating them.

The application lets users:

1.Record a story or upload an audio recording.

2.Transcribe speech using an open-weight Whisper model through faster-whisper.

3.Review and edit the transcript before saving it.

4.Add a story title, date, and tags.

5.Search saved memories and export individual stories or the full archive as JSON.

6.Try a fictional sample story without uploading personal recordings.

The application is designed to run on the user's own computer. Its archive is a simple JSON file, making the data format easy to inspect and back up.

Demo

Try Ghost in the Machine here:
https://ghost-in-the-machine-exh72mtphvwp8iwk96lovq.streamlit.app/

Code

GitHub repository:
https://github.com/godGamerz812/Ghost-in-the-Machine

The repository includes the Streamlit interface, story archive helpers, dependency files, automated tests, GitHub Actions workflow, and MIT license.

How I Built It

The project uses:
1.Python for the application and archive logic.
2.Streamlit for the interactive interface.
3.Whisper with faster-whisper for open-weight speech transcription.
4.JSON for saving and exporting stories.
5.Pytest and GitHub Actions for automated checks.

The speech model is loaded on the machine running the application. Its weights may need to be downloaded on first use; once cached, transcription can run locally without sending audio to a hosted AI API.

The automated checks cover the archive logic and application startup across Python 3.10, 3.11, and 3.12. They do not establish transcription accuracy with real audio, so the model's end-to-end behavior still needs to be checked with a suitable recording.

Why Does Open Innovation Matter?

A memory archive should not depend on a proprietary AI service being available forever.

Using an open-weight model and an inspectable codebase makes this project easier to study, adapt, and run independently. Developers can examine how stories are stored, choose a model size that fits their hardware, and improve the application without depending on a closed AI API.

There is also an important privacy boundary: local processing means running the app on your own machine. A cloud-hosted demonstration is convenient for showing the interface, but it is not a substitute for local handling of sensitive recordings.

The Spirit of It

A family story can feel like a ghost: still present in someone's memory, but gradually fading when nobody records it.

I wanted to build something that helps people preserve those stories without turning them into synthetic versions of the people who told them. The goal is to keep the original words, give them context, make them searchable, and let families carry them forward.

This is an early prototype, not an encrypted digital vault. Transcripts can contain mistakes, and anyone with access to the archive file may be able to read it. The intention is to make preservation more accessible while being honest about the care personal memories require.

abhishek_singhania_e3a2cd

Top comments (0)