I built a voice-to-recipe tool for a friend who never measures anything
This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend* What I Built I have a friend who cooks everything by feel. Ask her for a recipe and she says "put some masala, add water till it looks right." Nothing is written down, because she doesn't know the amounts herself. But she can explain a dish out loud really well. So I built Voice2Recipe: you put voice notes in a folder, run one Python script, and get a written recipe book. I told the AI not to invent amounts. If the cook doesn't say how much, it writes "to taste", because I didn't want the tool to put words in my friend's mouth. Demo I tested it with free public domain audio from LibriVox, where a volunteer reads an old cookbook. I did this before asking my friend to trust it with her own recipes. It works, but it isn't perfect. The AI added a "here's a cleaned recipe" line at the top, spelled the author's name wrong, and wrote "to taste" next to an ingredient that needed a real amount. I used the small 1B model, so a person should always read the recipe before trusting it. What my friend said I haven't shown her the result yet, because I was still fixing mistakes. My guess is she'll say the amounts are wrong, since she never measures anything. I'll ask her if it sounds like how she explains it and update this post. Code How I Built It It's one Python script with two open models, both running on my laptop: - Whisper (through faster-whisper) listens to the audio and writes down the text. - Gemma (through Ollama) turns that messy text into a recipe with ingredients, steps and tips. My laptop is low on memory, so the script reads audio in 30 second pieces and uses the small Gemma 3 1B model. Why Does Open Innovation Matter? A voice note of someone cooking is personal, and I didn't want to upload it to a site I don't control. Since Whisper and Gemma run on my own laptop, the audio never leaves it. It also cost nothing and needed no account. The bigger Gemma model didn't fit in my memory, so I switched to the 1B one by changing a single word in the script. With a closed API I wouldn't have had that choice. Prize Categories Best Use of Gemma Top comments (0)
Comments
No comments yet. Start the discussion.