← PROJECTS

ともだち
アバター

広告・課金・中毒設計を排除した、子どものための対話型アンビエント知能コンパニオン。AIペンダント・ルームカメラ・タブレットが連携し、生活習慣と発見を自然な会話で身につける。

STATUS
Phase 5 実装完了
TARGET
3〜4歳児
PIPELINE
18ノード / 5センサー
STACK
React + FastAPI + Ollama
COST
$0 (全ローカル実行)

Overview

コンセプト

01 介入しないことがデフォルト。子どもの自発的な遊びと発見を最優先する。AIペンダントとルームカメラで見守りながら、必要な時だけ話しかける。
02 教えるのではなく一緒に発見する。先生ではなく「ともだち」として接し、生活習慣を自然な会話で身につける。
03 時間帯に応じた24のマイクロハビットに対応。朝の挨拶から就寝まで、1日のリズムに寄り添う。
04 ポジティブな強化。褒める、励ます、否定しない。安全フィルタで不適切なコンテンツを排除。生データはすべてローカル処理。
05 親の方針がすべてに優先する。システムの判断は常に保護者の意思の下にある。

やらないこと

広告表示
ガチャ・課金要素
オートプレイ
通知による呼び戻し
スコア・ランキング
個人情報の収集

Architecture

┌─────────────────────────── 屋内 ─────────────────────────────────┐
│                                                                   │
│   [モコ]            [AIペンダント]      [ルームカメラ]              │
│   タブレット          子どもが装着        各部屋に設置              │
│   ┌─────┐           ┌────────┐         ┌──────────┐             │
│   │ ^_^ │           │ Accel  │         │ MediaPipe│             │
│   │ SVG │           │ HR/Temp│         │ 骨格検出  │             │
│   │ TTS │           │ Mic    │         │ 表情分析  │             │
│   └──┬──┘           └───┬────┘         └────┬─────┘             │
│      │                  │                    │                    │
│      ▼                  ▼                    ▼                    │
│   ┌───────────────────────────────────────────────────────────┐  │
│   │              Orchestrator(中央統合エンジン)                │  │
│   │  STT → Context → LLM → TTS → Lipsync → Avatar Render    │  │
│   │         + Pendant Fusion   + Camera Fusion                │  │
│   │         + Health Engine    + Safety Filter                │  │
│   └───────────────────────────────────────────────────────────┘  │
└───────────────────────────────────────────────────────────────────┘

データフロー

Input
音声入力 + センサーデータ
マイク音声をWebSocketで送信。同時にAIペンダント(加速度・心拍・体温・環境音)とルームカメラ(顔検出・視線・表情)のデータがOrchestrator に流入。
STT
Whisper 音声認識
faster-whisper でリアルタイム文字起こし。VADフィルタで発話区間を検出。200〜400ms。
Fusion + LLM
センサー融合 + 応答生成
ペンダント融合エンジンが活動量・心拍変動・環境音を統合。カメラ融合エンジンが表情・視線・まばたき率を統合。これらとテキスト・時間帯コンテキストをLLM (Qwen2.5:7b) に注入し、感情タグとアクション指示を含むJSON応答を生成。300〜800ms。
TTS + Health
音声合成 + 健康エンジン
VOICEVOX/Edge-TTSで音声合成し、音素タイミングからリップシンクデータを生成。並行してHealth Engineが心拍・目の疲れ・眠気・ストレスを検出し、必要に応じて介入トリガーを発行。150〜300ms。
Output
アバター応答
音声再生と同時にアバターが口パク同期(日本語かな→口形マッピング、100ms間隔)。感情に応じた表情変化、15種類のボディアクション、パーティクルエフェクト、背景テーマ切替。

レイテンシ目標

Pendant
50-100ms
Camera
20-40ms
STT
200-400ms
LLM
300-800ms
TTS
150-300ms
Health
30-60ms
Total
< 2s

Avatar

NAMEモコ (Moco)
RENDERSVG 200x200
EMOTIONS9種 (happy, excited, proud, shy, empathy, surprised, thinking, sleepy, neutral)
ACTIONS15種 (wave, clap, jump, dance, nod, sleep, thumbs_up, stretch, peek, point_up, think_pose, shh, cheer, spin, pat_head)
MOUTH10形状 (かな→口形マッピングでリップシンク)
FEATURESまばたき、呼吸、耳ウィグル、しっぽ振り、パーティクル、背景テーマ連動

Simulation Scenes

9つのシミュレーションシーン。各16〜18ステップの自然な会話フローで、ペンダントセンサーとカメラ分析のリアルタイムデータを含む。

🌧
朝、マメに起こされる
雨の朝。犬のマメがひなたを起こし、着替えと朝ごはんの準備を促す。ペンダントで起床検知。
18 steps / dawn / bedroom
🌆
夕方、パパを待つ
低活動量を検知し、複数の話題を試行。マメの寄り添い、パパの帰宅までのクレシェンド。
17 steps / evening / living_room
🌳
公園で虫発見
高活動量・心拍上昇の中、虫・花・雲の発見を通じた自然学習。
18 steps / afternoon / park
🚗
車でしりとり
車内の加速度パターン検知。しりとりゲーム、トンネル通過イベント。
16 steps / morning / car
🌀
台風の夜
心拍上昇(恐怖)、音量スパイク(風)。歌やお話で安心感を提供。
18 steps / night / bedroom
👁
目の疲れ検出
まばたき率低下をカメラが検出。遠くを見る遊びへの誘導。
16 steps / afternoon / living_room
😴
うとうと検出
心拍低下・視線外れをセンサーが検出。お昼寝への自然な誘導。
16 steps / afternoon / living_room
😢
泣き声検出
環境音量スパイクと表情分析で泣き声を検出。寄り添いと気分転換。
16 steps / evening / bedroom
📱
画面休憩
連続画面視聴を検出し、体を動かす遊びへの切り替えを提案。
16 steps / morning / living_room

Pipeline

18ノードのリアルタイムパイプライン。メイン処理チェーン、ペンダントAIセンサー、カメラ分析の3系統が並行動作し、Health Engineで統合判断。

メインパイプライン

MIC16kHz
WS_UP5-15ms
STT200-400ms
LLM300-800ms
TTS150-300ms
WS_DOWN5-15ms
LIPSYNC10-30ms
RENDER8-16ms

ペンダント AI

ACCEL50Hz
HR1Hz
TEMP50-80ms
MIC50-100ms
FUSION20-40ms

カメラ分析

FACE6 FPS
GAZE15-30ms
EMOTION25-40ms
FUSION10-20ms
HEALTH30-60ms

データインスペクタ

デモでは各ステップの通信ペイロードを5タブで可視化。実際のAPIレスポンスと同等の模擬データを生成。

01

WS

WebSocket通信フレーム

02

Pendant

センサー生データ

03

Camera

顔・視線・表情分析

04

LLM

推論メタデータ

05

Audio

TTS出力・音素

Conversation

scene01 — 朝、マメに起こされる(雨の日)
SYS🛏 薄暗い子ども部屋。雨音が窓を叩く。ひなたは布団の中
SYS🐕 マメがベッドに飛び乗って、ひなたの顔を舐める
USERんー...マメぇ...もうちょっと... sleepy
MOCOおはよ〜!マメがおはようだって! happy / peek
USER...あめ、ふってる?
MOCOしとしと降ってるね。でもお部屋はあったかいよ empathy / nod
scene18 — 台風の夜
SYS🌀 風が窓をガタガタと揺らす。ひなたがペンダントを握りしめている
USERモコ...こわい... empathy
MOCOだいじょうぶだよ、モコがいるからね。ぎゅってしよ empathy / nod
MOCOね、おうたうたおっか?ぞうさん、知ってる? happy / wave

Safety & Privacy

保護機能

  • [01]全データ処理はローカル/エッジで完結。クラウドに生映像・生音声が送信されることはない
  • [02]LLM応答にリアルタイム安全フィルタを適用。不適切な語彙・概念を自動除外
  • [03]使用時間制限。累積時間に応じた休憩促進。画面疲れ検知で自動介入
  • [04]Health Engine: 心拍異常・高ストレス・眠気を検出し、段階的に介入(促し→提案→親通知)

設計原則

  • [01]ゲーミフィケーション禁止 — スコア、ランキング、報酬ループを一切持たない
  • [02]中毒設計排除 — 通知による呼び戻し、ストリーク、無限スクロールなし
  • [03]保護者優先 — すべてのシステム判断は親の設定に従う。親はいつでもオーバーライド可能
  • [04]データ最小化 — 会話ログは端末にのみ保存。センサーデータは特徴量のみ保持、生データは破棄

Tech Stack

Client

React + TypeScriptUI
ViteBuild
ZustandState
SVG AvatarRender
Web Audio APIAudio
MediaPipeFace

Server

FastAPIAPI
WebSocketStream
Ollama (Qwen2.5)LLM
faster-whisperSTT
VOICEVOX / Edge-TTSTTS

Hardware

AIペンダントSensor
ルームカメラVision
タブレットDisplay
スマートスピーカーAudio
ペットセンサーIoT

Interactive Demo

9つのシーンをブラウザ上で再生するインタラクティブデモ。パイプライン可視化、データインスペクタ、リップシンク、再生速度制御を含む3カラムレイアウト。

デモを起動する