M5Stack Core2とLLMで台所用音声入力メモ装置を作ると便利
- Digital800 JPY








本書は筆者が作成した「台所用音声入力メモ装置」について紹介する本です。M5Stack Core2、LLM(Gemini API)、AWS を用いて開発しました。 本システムは、台所の冷蔵庫に貼り付けた M5Stack Core2 デバイスの画面をタッチしながら話しかけると、その内容が文字に起こされ、買い物リストに入れるべきワードが自動で抽出されて、スマホで確認できるようになる、というものです。これがあれば、スーパーでの買い物忘れを防ぐのに役立ちます。実際に筆者も半年ほど使ってみて、毎日の買い物で無くてはならない存在となり、とても便利に感じています。 本書では、前半で本システムを作る動機から完成させるまでのストーリーと、システムの具体的な使い方と使用感を述べ、後半でシステム内部の解説や実装上の工夫について解説しています。後半は技術寄りである一方、前半は技術がわからない方でもDIYエッセイとして楽しめる内容となっています。 筆者は本作をAIによるバイブコーディングで開発しました。「同じものが欲しい!」と思われた方は、本書の仕様を元に、是非ご自身でもバイブコーディングに挑戦してみて下さい! M5Stack、IoT、LLM、バイブコーディング、生活に役立つアプリ開発、などに興味がある方にオススメです。 ※ソースコードの掲載はごく一部です。ソース全体の公開はしていません。 ※本書の執筆では生成 AI を活用しています。創作に AI を用いること自体に拒否感がある方はご注意ください。 ■目次 はじめに 第1章 背景と経緯 1.1 課題と対策案 1.1.1 買い物メモをなんとかしたい 1.1.2 紙のメモは? 1.1.3 スマホで入力するのは? 1.1.4 音声入力デバイスが欲しい 1.2 過去の挑戦 1.2.1 第一の挑戦:Raspberry Pi と Julius 1.2.2 第二の挑戦:Google Home Mini 1.3 LLM の登場と再チャレンジ 1.3.1 LLM の登場と再チャレンジへの意欲 1.3.2 Gemini API で音声から品目抽出まで試す 1.3.3 M5Stack Core2 を音声入力装置とする 1.4 開発と完成 1.4.1 バイブコーディングで開発 1.4.2 完成 第2章 システム外部仕様と使用感 2.1 本システムの簡単な使い方 2.2 システムの全体像 2.3 M5Stack Core2 による音声入力装置の仕様 2.3.1 M5Stack Core2 の仕様 2.3.2 冷蔵庫への設置 2.3.3 タッチパネル画面の表示 2.3.4 タッチ操作による録音開始とモーター振動 2.3.5 電源 ON/OFF と省電力運用 2.3.6 連続録音も可能 2.3.7 音声入力のフレーズ 2.3.8 余計な機能は持たせない 2.4 Web 画面でのリスト閲覧・編集仕様 2.5 使ってみた感想 2.5.1 良かった点 2.5.2 気になる点・制限事項 第3章 システム全体像とデバイス側の実装 3.1 システム全体のアーキテクチャ概観 3.2 M5Stack Core2 側のプログラム 3.2.1 処理フローの検討と FreeRTOS による並列タスク設計 3.2.2 ミューテックス(Mutex)を用いた共有リソースの排他制御 3.2.3 電源 ON からの起動シーケンス 3.2.4 録音処理の詳細 3.2.5 SD カードへの一時保存 3.2.6 アップロード処理の流れ 3.2.7 省電力設計(自動電源 OFF) 第4章 クラウド側の設計と実装 4.1 全体構想 4.1.1 AWS の選定理由 4.1.2 なぜサーバーレスか 4.2 Lambda + API Gateway による API サーバ設計 4.2.1 API エンドポイントと S3 イベントハンドラの一覧 4.2.2 Chalice フレームワークの採用 4.2.3 API Gateway 再作成に伴う URL 変更問題とその対策 4.2.4 音声データ登録 API の実装と S3 イベント通知 4.3 DynamoDB 設計 4.3.1 シングルテーブル設計の採用 4.3.2 テーブルのキー構成 4.3.3 データ内容 4.3.4 voice レコードのライフサイクル 4.4 S3 の用途 4.5 LLM による音声処理 4.5.1 使用した LLM モデルとその理由 4.5.2 音声文字起こし 4.5.3 買い物品目の抽出 4.5.4 LLM ならではの柔軟な入力吸収 4.6 Web フロントエンド 4.6.1 構成と配信方法 4.6.2 品目の削除について 第5章 料金・電池残量ログアプリ・まとめ 5.1 料金 5.1.1 AWS の料金 5.1.2 Gemini API の料金 5.1.3 M5Stack Core2 購入料金 5.2 電池残量ログアプリ 5.2.1 なぜ作ったか 5.2.2 API の呼び出し 5.2.3 Web 画面と使用感 5.3 おわりに あとがき







