← Phase 4 / M21 — IA Générative & Multimodale

🧠 IA Générative & Multimodale

Extension du copilote IA vers le multimodal : reconnaissance visuelle de lieux depuis une photo, interface vocale complète, avatar animé personnalisé, génération de cartes postales IA et jumeau digital v3 avec prise de décision proactive.

GPT-4o
Vision + Texte + Voix
Whisper
STT multilingue
D-ID
Avatar vidéo animé
16
User Stories

📋 16 User Stories — M21

US21.1 Must En tant qu'utilisateur, je peux photographier un lieu (restaurant, monument, quartier) et le copilote l'identifie automatiquement et m'en donne le contexte.
US21.2 Must En tant qu'utilisateur, je peux dicter ma question au copilote par voix (micro in-app) et recevoir une réponse écrite + éventuellement vocale.
US21.3 Must En tant qu'utilisateur, je peux activer le mode voix complet : parler à NOMIIQ et recevoir une réponse audio naturelle (ElevenLabs TTS).
US21.4 Must En tant qu'utilisateur, je peux photographier un plat et le copilote identifie le plat, ses ingrédients, les allergènes potentiels et si c'est halal/végétarien.
US21.5 Must En tant qu'utilisateur, je peux uploader plusieurs photos de voyage et l'IA génère automatiquement un résumé de mon trip (texte + timeline).
US21.6 Should En tant qu'utilisateur, je peux générer une carte postale IA personnalisée depuis ma photo de voyage (SDXL) avec le nom du lieu en surimpression stylisée.
US21.7 Should En tant qu'utilisateur, je peux partager cette carte postale directement sur le feed NOMIIQ avec label "Créé avec IA".
US21.8 Should En tant que créateur, je peux générer une vidéo de présentation de mon itinéraire avec un avatar animé qui parle (D-ID / HeyGen).
US21.9 Should En tant qu'utilisateur, le copilote peut me lire mon itinéraire du jour à voix haute (mode conduite / mode mains libres).
US21.10 Should En tant qu'utilisateur, je peux cloner ma voix (5 min d'enregistrement) pour que mon avatar IA parle avec ma propre voix.
US21.11 Should En tant qu'utilisateur, le jumeau digital v3 me propose proactivement une destination pour mes prochaines vacances basé sur mon historique et budget restant.
US21.12 Should En tant qu'utilisateur, le copilote peut analyser une capture d'écran d'un billet d'avion ou d'un itinéraire papier et l'importer dans NOMIIQ.
US21.13 Could En tant qu'utilisateur, je peux créer un Reel automatique depuis mes photos de voyage (montage IA, musique, transitions).
US21.14 Could En tant que système, l'IA détecte si une image uploadée contient un monument et tag automatiquement la destination et le lieu.
US21.15 Could En tant qu'utilisateur, je peux faire traduire en temps réel un panneau ou un menu via la caméra (AR overlay — Google ML Kit).
US21.16 Could En tant que créateur, mon avatar IA répond automatiquement aux questions basiques sur mes itinéraires publiés dans les commentaires.

🏗️ Pipeline IA Multimodale

1
📸 Entrée Multimodale Image (JPG/PNG/WebP) + Audio (WAV/MP3) + Texte
Validation MIME + taille (max 10MB image, 25MB audio)Stockage temporaire S3 (TTL 1h)Hash MD5 pour déduplication
2
🔬 Preprocessing Normalisation avant envoi aux modèles
Images : resize 1024px max, EXIF extraction, géo-tag récupéré si présentAudio : normalisation 16kHz mono, détection langue (langdetect)Validation contenu (Hive NSFW) avant traitement IA
3
🧠 Traitement IA Routage vers le modèle approprié
Image → GPT-4o Vision (identification lieu/plat/texte)Audio → Whisper API (transcription) → GPT-4o (réponse) → ElevenLabs (TTS)Image + Prompt → SDXL (génération carte postale)Vidéo portrait → D-ID API (avatar animé)
4
📤 Post-processing & Stockage Enrichissement résultat + persistance
Enrichissement : matching lieu NOMIIQ si reconnu (PostGIS)Badge "IA Generated" appliqué si contenu synthétiqueStockage résultat S3 + URL signée CDNLog analytics PostHog : modèle utilisé, latence, coût token

🔗 Endpoints M21 — Multimodal AI

MéthodeEndpointEntréeDescription
POST /api/ai/vision/identify image (multipart) Identifier lieu/plat depuis photo
POST /api/ai/vision/translate image (multipart) Traduction AR menu/panneau
POST /api/ai/voice/transcribe audio (multipart) STT Whisper multilingue
POST /api/ai/voice/speak {text, voice_id} TTS ElevenLabs → URL audio
POST /api/ai/voice/clone audio[] (multipart) Clonage voix utilisateur
POST /api/ai/generate/postcard image + {place_name} Génération carte postale SDXL
POST /api/ai/generate/reel image[] + {style} Montage Reel automatique
POST /api/ai/generate/avatar-video {script, voice_id} Vidéo avatar D-ID / HeyGen
POST /api/ai/import/document image (capture billet) Import itinéraire depuis photo
GET /api/ai/twin/proactive Suggestions proactives jumeau v3

🗄️ Nouvelles Tables — M21

🔊 Table voice_clones

id UUID PRIMARY KEY
user_id UUID → users
elevenlabs_voice_id TEXT NOT NULL
voice_name TEXT
sample_count INT DEFAULT 0
language CHAR(5)
is_active BOOLEAN DEFAULT true
consent_at TIMESTAMPTZ NOT NULL
-- Consentement RGPD explicite requis
created_at TIMESTAMPTZ

🖼️ Table ai_generated_media

id UUID PRIMARY KEY
user_id UUID → users
type ENUM(postcard,reel,avatar_video,voice)
model_used TEXT -- 'sdxl-turbo','d-id','elevenlabs'
input_refs TEXT[] -- S3 URLs inputs
output_url TEXT NOT NULL
prompt TEXT
tokens_used INT
cost_usd DECIMAL(8,6)
created_at TIMESTAMPTZ