Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】My grandpa's recipes lived in WhatsApp voice memos, so I built him an offline AI cookbook

2026年10月02日に「Dev.to」が公開したITニュース「My grandpa's recipes lived in WhatsApp voice memos, so I built him an offline AI cookbook」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

祖父のボイスメモに眠るレシピを、AI(音声認識と大規模言語モデル)で自動的に文字化し、オフラインで使えるAI料理本アプリを開発した。プライバシーとコストを考慮し、全ての処理をローカル環境で完結させた。

ITニュース解説

このニュース記事では、ある開発者が自身の祖父のために作った、ユニークなAIレシピブック「Thatha's Kitchen」の物語が紹介されている。このシステムは、長年家族のグループチャットに埋もれていた祖父の音声メモのレシピを、使いやすい形でデジタル化し、さらに印刷可能な形式で提供するものだ。

開発者の祖父は50年以上もサンバルを作り続けているが、一度もレシピを書き残したことがなかった。代わりに彼はWhatsAppのボイスメモでレシピを送っており、その音声メモは家族のチャットグループに送られ、すぐに他のメッセージや写真に埋もれてしまっていた。開発者は、この失われがちな祖父の知恵を救い、いつでも参照できるようにするために、「Thatha's Kitchen」というシステムを構築した。

「Thatha's Kitchen」は、祖父の音声メモを受け取ると、そこに含まれるレシピを構造化された情報、つまりレシピカードへと変換する。このレシピカードには、料理のタイトル、材料、手順、そして祖父独特の言い回しやコツがまとめられている。特に注目すべきは、AIがレシピの内容を勝手に推測しないことだ。例えば、祖父が「ひとつまみのダール」と言えば、AIもそのまま「ひとつまみのダール」と記録し、具体的な分量が必要な場合は「祖父に尋ねる」といったフラグを自動で追加する。これにより、レシピの正確性が保たれ、後から詳細を補完できる設計になっている。最終的に、このシステムは生成されたレシピを印刷可能なPDF形式で出力する。祖父がスマートフォンアプリを使わないため、紙の料理本として読めるようにした配慮だ。

システムの核となるのは、いくつかの主要な技術要素の組み合わせだ。まず、音声メモをテキストに変換するために「faster-whisper」という音声認識AIモデルを利用している。祖父のメモにはタミル語と英語が混在していたため、このモデルの多言語対応能力が役立った。そして、そのテキストから実際のレシピ情報を抽出するために「Qwen2.5 7B」という大規模言語モデル(LLM)を「Ollama」というツールを通じてローカルで実行している。Ollamaを使うことで、高性能なAIモデルを自分のパソコン上で動作させることが可能になる。このプロセスでは、レシピのタイトル、材料、手順、コツ、そして不明確な点をJSONというデータ形式で構造化して出力する。ユーザーインターフェースとしては「Streamlit」を用いてシンプルなウェブページを作成し、レシピのPDF化には「WeasyPrint」というツールが利用されている。これらの技術が連携し、音声メモから最終的なPDFレシピまでの一連の処理を自動で行う。

このシステム開発で特に重要だったのが、AIモデルへの「プロンプト」、つまり指示の与え方だ。開発者は、AIに「高齢の料理人の話す内容をレシピにする」「JSON形式で指定されたキーのみを返す」「分量は話し手の言葉をそのまま使う」「存在しない分量、材料、手順は絶対に作り出さない」「曖昧な点や不足している点には短い質問を『unclear』リストに入れる」といった詳細なルールを与えた。最初の試作では、AIが勝手に「クミン小さじ2杯」のような具体的な分量を作り出してしまい、それが祖父の長年のレシピに対する「小さな裏切り」だと感じたという。そこで、前述のルールを厳密に設定することで、AIが創造的になりすぎず、あくまで祖父の言葉に忠実なレシピを生成するように調整したのだ。また、音声認識の段階でも課題があった。「kuzhambu」のようなタミル語の固有名詞が正確に認識されないことがあったが、initial_promptという機能で、AIに「サンバル、ラサム、クザンブ」といった特定の単語をあらかじめ教えておくことで、認識精度を大幅に向上させた。さらに、長い音声メモを処理する際にJSON形式が崩れる問題も発生したが、Ollamaのformat="json"モードを利用することで、この問題も解決している。

このプロジェクトにおいて、すべての技術が「オープンソース」であることの重要性は計り知れない。第一に、プライバシーの保護が挙げられる。祖父の音声メモには、彼が料理をしながら語る個人的な物語も含まれているため、開発者はそれらのデータを外部のサービスにアップロードすることに抵抗があった。ローカルでシステムを動かすことで、音声データがパソコンから一歩も外に出ることなく処理されるため、プライバシーが完全に保護される。第二に、コスト面でのメリットが大きい。外部のAPIサービスを利用する場合、音声の文字起こしやAIモデルの利用には通常、分単位や処理量に応じた費用が発生する。しかし、オープンソースのツールをローカルで使うことで、これらの費用が一切かからない。第三に、モデルの選択と検証の柔軟性がある。開発者は、複数のAIモデル(Llama 3.1 8BとQwen2.5 7B)を同じ音声メモで試すことができ、その結果、曖昧な点を正直に報告する能力で優れていたQwen2.5 7Bを採用した。外部のホスト型APIでは、このようなモデルの比較や固定は難しい場合が多い。

完成した最初の3つのレシピを祖父に手渡した際、彼はメガネをかけ、ゆっくりとサンバルのレシピを読んだ後、「誰がこれを書いた?まるで私が話している通りだ」と感嘆の声を上げたという。彼は、タマリンドを入れるタイミングが少し早いという一点だけを指摘し、それをペンで修正した。そして、次にラサムのレシピも作ってくれるかと尋ねたのだ。開発者は今後、完成した料理の写真をレシピに追加したり、いとこたちが自身の音声メモを録音できるようにしたり、祖父がレシピを読み上げてもらえるような機能を追加したいと考えている。このプロジェクトは、家族の歴史と知恵を現代の技術で保存し、次の世代へと継承する素晴らしい方法を示している。

関連コンテンツ

関連IT用語

関連ITニュース