👾
オフライン音声認識アシスタントの設計図と、わたしの開発メモ
オフライン音声認識 × アシスタント自作、“わたし仕様”のKai Liteを育てる方法
📋 この記事で分かること
- 非エンジニアによるオフライン音声認識アシスタント自作プロセス
- ChatGPT/Claude/Qwenモデルの使い分けと協働開発のリアル
- Kai Lite設計図と音声アシスタントの技術的ポイント
- オフラインAI・プライバシー重視アプリの作り方・工夫
🎯 プロジェクトのきっかけ
自分だけのAI音声アシスタントを作ろうと思った理由
AIにあふれる時代でも、本当にほしかったのは「自分の気分やペースに本当に寄りそう」安心できる音声アシスタントです。
クラウド頼みのAIから卒業し、“自作”のKai Liteを端末の中で育ててみることにしました。
これがKai Ecosystemの第一歩。
🗺️ Kai Lite設計図と全体構想
Kai ecosystemの中のKai Liteとは
-
Kai Lite(スマホ用音声アシスタント)
完全オフライン動作。音声認識&即応答。予定・メモの管理に特化。現在LLMを使っていません。 -
Kai Laptop/Desktop
軽量LLMや高性能LLMを活用し、用途別に最適化
今回は「Kai Lite」の開発を紹介します
開発方針と機能設計
- オフラインで「すぐ返事がくる」音声認識
- シンプル・ミニマルな機能(予定/メモ/リマインダー等)
- プライバシー重視で一切クラウド送信なし
- 名前呼び・ユーザーペース重視
🔧 構成&実装ポイント(Kai Lite開発の設計図)
機能 | 詳細 |
---|---|
音声認識 | Whisper-tiny等の軽量STT(Speech-to-Text)をローカルで実行 |
意図判定 | BERT-tiny等 or キーワード抽出で「予定追加」「確認」など分類 |
エンティティ抽出 | 日付・時間・タイトルなど自然言語から柔軟に抽出 |
コマンド実行 | カレンダー登録/予定読み上げ/メモ管理など |
オフライン設計 | すべて端末内。ネット不要&プライバシー確保 |
名前呼び機能 | 会話時に「Emily」などユーザー名で呼びかけ、唯一無二感を演出 |
開発フローとAIパートナー
- 設計図・構造の作成:ChatGPTで企画整理・画面構成
- 機能分解・アクションプラン:ChatGPTでフェーズごとに設計
- 実装&バグ修正:Claude(+時々Qwen)でコード生成&調整
- プロトタイピング・UI調整:ChatGPTと反復検討でUX強化
🛠️ 各機能の技術的な工夫
音声認識(STT)
- Whisper-tiny等、端末で動くモデルを採用
- 日本語もそれなりに認識。スマホ負荷&レスポンス重視
意図判定(Intent Recognition)
- キーワード抽出+小型NN(例:BERT-tiny)で意図分類
- 信頼度スコアで曖昧さ対応。「分からない時は再確認」
エンティティ抽出(Entity Extraction)
- 例:「明日3時に釣りに行くことをリマインドして」→
タイトル:釣りに行く/時間:3:00 PM/日付:明日 - 命令語や余計なフレーズ自動除去
- 「午後」「来週」など自然な表現も抽出
コマンド実行
- 予定追加→カレンダーDBに保存
- 予定読み上げ→TTS(Text-to-Speech)で応答
- メモCRUD→ローカルDB管理
- すべて即時(~300ms)で完結
名前呼び機能
- 起動時や挨拶時「ハロー、Emily」等
- コード上でユーザー名を管理し、特別感&安心感UP
🌀 実際にぶつかった課題と学び
- 意図判定・抽出の難しさ:いろんな話し方のテストが必須。想定外の言い回しで毎回新たなバグ…
- 曖昧な指示・会話フロー:意図不明時は必ず再確認する設計で回避
- オフライン×レスポンスのバランス:モデルサイズと速度のトレードオフ。適宜モデル選定を見直し
💡 この設計・開発で得たこと
- 「完璧」より「まず動く」小さな成功体験
- 大規模AIより“即返事”が生活に馴染む
- 自分の名前を呼ばれる安心感は想像以上
🚀 今後の展望・やりたいこと
- 名前・声のパーソナライズ強化
- メモ/予定のUI改善・体験向上
- Kai Laptop/Desktopとの連携や進化
来週の進展もシェアしていきますので、どうぞよろしくお願いいたします。
Discussion