{"slug": "i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source", "title": "I turned my mother-in-law's voice memos into a recipe book — 100% local open-source AI", "summary": "A developer built voice-recipe-book, an open-source pipeline that transcribes voice memos with faster-whisper and structures them into Markdown recipe cards using Qwen2.5-3B-Instruct, all running locally on CPU with no cloud or API keys. The roughly 150 lines of Python code produced a complete recipe card from a 40-second French memo, though regional dish names like Gromperekichelcher were mistranscribed, so the app accepts an explicit title override.", "body_md": "*This is a submission for the [Hacktoberfest Weekend Challenge: Build for a Friend](https://dev.to/challenges/hacktoberfest-weekend-2026-10-01).*\n\nOdilia is my mother-in-law, and her cooking lives in voice memos. Decades of family recipes — including her Luxembourgish *Gromperekichelcher* (crispy potato fritters) — exist only as rambling WhatsApp audios she sends when one of us asks \"how do you make that again?\". Nobody ever scrolls back to find them, and nobody writes them down.\n\nSo this weekend I built her **voice-recipe-book**: drop a voice memo in, get a clean recipe card out. One real person, one real problem.\n\n```\nvoice memo (.mp3/.m4a/.wav)\n   │\n   ├─ transcribe.py        faster-whisper (open-weight Whisper, int8 CPU) → raw text\n   └─ structure_recipe.py  Qwen2.5-3B-Instruct (open-weight LLM, local CPU) → Markdown card\n                              title · servings/times · ingredients · steps · \"the secret\"\n```\n\n**Everything runs locally. No cloud, no API key, €0 per recipe.**\n\n👉 **Repo: [https://github.com/jeffreyturov-dev/voice-recipe-book](https://github.com/jeffreyturov-dev/voice-recipe-book)**\n\nThe demo memo is TTS-synthesized because I won't publish a real family recording — the pipeline is identical either way. Whisper (small, CPU) transcribed the 40-second French memo at confidence 1.00. One honest failure: *Gromperekichelcher* came out as \"grands-pèreux qui chèrent\" — regional dish names are exactly the words a speech model has never seen, so the app accepts an explicit title (a feature, not a bug).\n\nThen Qwen2.5-3B-Instruct, running on the same CPU, structured the raw transcript — hesitations and all — into this card (actual output, unedited except the title):\n\n```\n# Gromperekichelcher d'Odilia\n**Portions :** 8 | **Préparation :** 30 min | **Cuisson :** 15 min\n\n## Ingrédients\n- 1 kg de pommes de terre farineuses\n- 1 oignon\n- 2 œufs\n- 2 cuillères à soupe de farine\n- Sel, poivre, noix de muscade\n- Persil haché (non précisé)\n\n## Étapes\n1. Râpez les pommes de terre farineuses et essorez-les bien dans un torchon.\n2. Mélangez avec l'oignon râpé, les œufs, la farine, le sel, le poivre et la muscade.\n3. Chauffez de l'huile dans une poêle à feu moyen.\n4. Formez des galettes et aplatissez-les.\n5. Faites frire 3 à 4 minutes de chaque côté jusqu'à ce qu'elles soient croustillantes.\n6. Servez chaud avec une compote de pommes.\n\n## Le secret\n> Essorer bien les pommes de terre pour éviter qu'elles détrempe.\n```\n\nIt even extracted \"the secret\" — squeeze the potatoes dry — the one line of grandma-wisdom that makes the dish.\n\nThe stack: **Whisper** (MIT, via faster-whisper/CTranslate2) + **Qwen2.5-3B-Instruct** (Apache 2.0) on plain CPU. Total new code: ~150 lines of Python, written this weekend — the open models do the heavy lifting.\n\n```\ngit clone https://github.com/jeffreyturov-dev/voice-recipe-book\ncd voice-recipe-book && pip install -r requirements.txt\npython3 app.py memo.m4a \"Grandma's apple pie\"\n```\n\nNext for Odilia: a weekly cron that pulls her memos and prints the growing book for Christmas. She doesn't need to know what an LLM is. She just needs her recipes to outlive the chat history.", "url": "https://wpnews.pro/news/i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source", "canonical_source": "https://dev.to/jeffreyturov/i-turned-my-mother-in-laws-voice-memos-into-a-recipe-book-100-local-open-source-ai-46m", "published_at": "2026-10-04 08:34:18+00:00", "updated_at": "2026-10-04 08:42:19.943442+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "natural-language-processing", "developer-tools"], "entities": ["Whisper", "Qwen2.5-3B-Instruct", "faster-whisper", "CTranslate2", "Hacktoberfest", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source", "markdown": "https://wpnews.pro/news/i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source.md", "text": "https://wpnews.pro/news/i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source.txt", "jsonld": "https://wpnews.pro/news/i-turned-my-mother-in-law-s-voice-memos-into-a-recipe-book-100-local-open-source.jsonld"}}