DEV Community

Zhao Yang
Zhao Yang

Posted on

I turned my grandmother's voice messages into a family cookbook (open Vietnamese speech model + local LLM)

This is a submission for the Build for a Friend challenge: ship something with open-source AI that solves a real problem for someone you love.

Grandma's Kitchen turns my grandmother's voice messages into a printed family cookbook.

She talks, the way she always has. An open speech model fine-tuned for Vietnamese transcribes her recordings on my laptop. A small local LLM turns each rambling, wonderful memo into a structured recipe: ingredients, steps, and her tips kept in her own words. Then it produces a printable PDF, plus a list of questions for us to call and ask her about whatever she left out.

Nothing is uploaded anywhere. Her voice stays in the family.


The person: my grandmother

My grandmother is the reason our family gathers. Every Lunar New Year, every death anniversary, every Sunday that anyone can make it, it's her food on the table.

She has never used a measuring spoon. Ask her how much fish sauce goes into the braised fish and she'll say "enough," then add "until it smells right." Ask how long to simmer and she'll tell you "until the color is like this," while pointing at the pot.

None of it is written down. Her recipes exist in exactly two places: her hands and her memory.

Our family is spread out now. Some of us are in Hanoi, some in the south, and a few cousins are abroad and read Vietnamese slowly. Everyone wants to cook her food. Nobody can.

The one thing she does do is send voice messages. Long ones. If you ask her a cooking question in the family chat, she'll answer with a three-minute recording that wanders from the recipe to which market sells the best shallots to a story about my grandfather. Those recordings were already the cookbook. They just weren't usable.

So I built something to make them usable, without asking her to change anything.


What I built

The rule I set for myself: Grandma doesn't learn any new technology. She keeps sending voice messages the way she already does. Everything else is my job.

The pipeline:

 Voice messages            Local, on my laptop                         Output
 (as she always sends)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ .m4a / .aac  │──▢│  ffmpeg  │──▢│  PhoWhisper  │──▢│ Local LLM │──▢│  Validator   β”‚
β”‚ from family  β”‚   β”‚ 16kHz wavβ”‚   β”‚ (Vietnamese  β”‚   β”‚ (Ollama)  β”‚   β”‚ "did she     β”‚
│ chat export  │   │          │   │  speech→text)│   │ structure │   │  really say  │
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  that?"      β”‚
                                                                     β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                            β–Ό
                                                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                         β”‚ πŸ“– Printable cookbook (PDF)β”‚
                                                         β”‚ ❓ "Ask Grandma" call list β”‚
                                                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Enter fullscreen mode Exit fullscreen mode

Each recipe page in the book has:

  • The dish name and roughly how many people it feeds
  • Ingredients, with what she said ("a handful of shallots") next to a rough estimate ("β‰ˆ 5–6 shallots"), clearly marked as an estimate
  • Steps in order, cleaned up but faithful
  • "Grandma says": her best lines, quoted directly from the transcript, because "don't stir it, you'll make the fish sad" is not something a recipe card should lose
  • An **English

Top comments (0)