This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine
What I Built
Bhootiya Indore- The Horror House is an offline tool that turns the ghost stories my grandparents tell into spooky little cards, a kind of ofrenda for voices I don't want to lose.
I live in Indore, and I grew up hearing ghost stories from the elders in my family. Nobody ever wrote them down. When Día de los Muertos showed up in this week's theme, I noticed that the usual idea is to remember people who are gone. I wanted to try the opposite: save the stories while the storytellers are still sitting next to me, drinking chai.
You upload a voice recording, the app transcribes it on your own laptop, you fix any mistakes, and a local AI model turns it into a card with a title, a place, a short summary, a "fear level" from 1 to 5, a creepy opening line, and the name of the person who told it. The original audio sits right on the card, so you can still hear their real voice.
I recorded four stories:
- Two from my dadi: one about a haunted peepal tree in a village, and one about a blood-drinking Pishachini.
- One from my dada: about a ferocious wolf that kills and eats a dangerous hunter named Vikram Singh.
- One from my nani, who lives far away: about a boy named Rohan, living in a hostel, who is always scared.
All four are real voices. Nothing is retold or copied from the internet.
Demo
Video:
Screenshots:
Code
https://github.com/NitinGangwal/bhootiya-indore
How I Built It
Everything runs locally on my 16 GB laptop, on CPU, with no cloud API:
-
faster-whisper (Whisper
small) turns the Hindi audio into text. - Gemma 3 (4B) through Ollama reads the transcript and returns structured JSON: title, place, summary, fear level, opening line, and a "remember" line.
- Streamlit is the interface, with a dark theme and marigold colours as a small nod to the ofrenda.
There is one deliberate step in the middle: the transcript is shown in an editable box before Gemma sees it. Whisper is good with Hindi, but one wrong word can change a story, so a human check felt right.
What went wrong along the way:
- Whisper was slow on CPU. A single story of 3 to 4 minutes took a few minutes to transcribe.
- One 4-minute story seemed to hang for a very long time. I added a progress bar so I can see what is happening, and changed a few Whisper settings so it doesn't get stuck repeating itself on longer audio.
- Audio loading failed on my setup because of a library version mismatch on Python 3.14. I fixed it by converting audio to a simple 16 kHz file with ffmpeg first and passing that to Whisper.
Why Does Open Innovation Matter?
This project is about my family's voices, and that changed how I thought about the tools.
- Privacy: my grandparents' recordings never leave my laptop. Nothing is uploaded to a server I don't control, and the audio is not in the GitHub repo.
- It works offline: after the models are downloaded, the whole pipeline runs without internet.
- It lasts: if a service shuts down or changes its pricing, these stories are still mine. I can also swap Whisper or Gemma for another model without rebuilding anything.
- Cost: it cost nothing to run.
A closed API might transcribe faster. But I would not feel comfortable sending my dadi's voice to a stranger's server, and that is exactly where open models won for me.
The Spirit of It
I showed the finished app to my dadi. She was really excited that her grandson had used his own mind to build something for her.
What touched me most was something else. She is not very educated, and this was the first time she felt she had helped with my studies. Her story was inside my project, in her own voice. That was the moment it landed for me.
Prize Categories
Best Use of Gemma: Gemma 3 runs locally through Ollama and does all the story understanding, turning messy spoken-Hindi transcripts into clean, structured cards.
Thanks for reading, and a big thanks to my dadi, dada and nani for the stories. 🕯️
Thank You Hacktoberfest Team. Because of you, I've had the opportunity to work on such wonderfull projects and learn a great deal in the process. I hope to we will continue to stay and connected in the future as well.
Top comments (0)