diff --git a/MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb index e7da05664f..235b189d4b 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/01-Foundation/01-4-Whisper-Local.ipynb @@ -1822,7 +1822,7 @@ " - Extraire : texte, langue, timestamps debut/fin, confiance moyenne\n", "4. Créer un tableau recapitulatif avec pandas ou un dictionnaire structure\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- `librosa.effects.split(y, top_db=20)` retourne les indices des segments non-silents\n", "- Convertir les indices en temps : `start_sample / sr` donne le temps en secondes\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb index dc0cba79d6..7e5716554f 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-1-Chatterbox-TTS.ipynb @@ -4563,7 +4563,7 @@ " - Ratio temps reel\n", " - Evaluation subjective de l'expressivite (1-5)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- La fonction `model.generate()` accepte les paramètres `exaggeration` et `cfg_weight`\n", "- Pour comparer objectivement, utilisez le même texte pour toutes les configurations\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb index 44692a5d90..fa28dfb3db 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-2-XTTS-Voice-Cloning.ipynb @@ -2212,7 +2212,7 @@ " - Sinon : comparer les caractéristiques audio (RMS, peak, spectrogramme)\n", " - Créer un tableau recapitulatif des résultats\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- La méthode `tts.tts_to_file()` accepte les paramètres `text`, `file_path`, `speaker_wav`, et `language`\n", "- Les langues supportees incluent : 'fr', 'en', 'es', 'de', 'it', 'pt'\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb index 7d3aa41dd2..4add339d5b 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-4-Demucs-Source-Separation.ipynb @@ -1813,7 +1813,7 @@ " - Un remix \"balance personnalise\" (volumes au choix)\n", " - Pour chaque remix, calculer le SDR (Signal-to-Distortion Ratio) approximatif\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utiliser `apply_model()` avec `shifts=1` et `overlap=0.25` pour la separation\n", "- Le SDR peut etre estime en comparant l'energie du stem avec l'energie du mix original\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb index b30d6b479e..190995284a 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/02-Advanced/02-6-MIDI-Generation.ipynb @@ -17331,7 +17331,7 @@ " - Noter chaque variation sur : coherence (1-5), originalite (1-5), adequation au contexte (1-5)\n", " - Identifier la meilleure variation et expliquer pourquoi\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utilisez `create_music_prompt()` pour configurer le prompt\n", "- Utilisez `generate_and_save()` avec différents paramètres\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb index 15785a9260..54ccf626c0 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-1-Multi-Model-Audio-Comparison.ipynb @@ -1162,7 +1162,7 @@ "3. Calculer le WER pour chaque phrase avec la fonction `word_error_rate()` du notebook\n", "4. Analyser comment la longueur et la complexite des phrases influencent le WER\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Inclure des phrases simples (\"Hello world\"), moyennes et techniques (\"The RTX 3090 has 24GB of GDDR6X VRAM\")\n", "- `# Étape 2` : Simuler des erreurs en modifiant aleatoirement des mots de la reference\n", "- `# Indice` : Le WER = (substitutions + insertions + deletions) / nombre de mots de reference\n", @@ -3149,7 +3149,7 @@ "3. Calculer le cout pour chaque combinaison (Whisper API vs local, OpenAI TTS vs Kokoro vs Chatterbox)\n", "4. Presenter les résultats dans un tableau comparatif\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Choisir un scénario avec un volume mensuel realiste\n", "- `# Étape 2` : Whisper API = $0.006/min, OpenAI TTS = $15/1M caractères, local = electricite GPU (~$0.001/min)\n", "- `# Indice` : Un service client traite typiquement 2-4h d'appels/jour\n", @@ -3838,7 +3838,7 @@ "3. Comparer au moins 2 modèles STT et 2 modèles TTS\n", "4. Generer un tableau recapitulatif et une visualisation\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Utilisez la classe `BenchmarkResult` du notebook comme modèle\n", "- Pour le WER, utilisez la fonction `word_error_rate()` déjà définie\n", "- Pour le cout, consultez les tarifs dans les tables du notebook\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb index 27702f278b..faa155f36a 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-2-Audio-Pipeline-Orchestration.ipynb @@ -1406,7 +1406,7 @@ "3. Tester avec 3 exemples : un texte FR, un texte EN, et un texte melange\n", "4. Comparer la qualite de traduction dans les deux directions\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Une detection simple peut compter les mots francais courants (\"le\", \"la\", \"les\", \"de\", \"et\", \"un\", \"une\")\n", "- `# Étape 2` : Adapter le system prompt du LLM selon la langue detectee\n", "- `# Indice` : Pour le texte melange, le LLM peut gerer naturellement - mais le résultat sera imprevisible\n", @@ -1934,7 +1934,7 @@ "3. Proposer 3 ameliorations au prompt system du LLM pour obtenir de meilleurs scripts\n", "4. Comparer les scripts obtenus avec et sans ameliorations\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Verifier que le script a bien 6 echanges, que les locuteurs alternent correctement\n", "- `# Étape 2` : Calculer la longueur moyenne des repliques (cible : 20-40 mots)\n", "- `# Indice` : Un bon prompt system precise le format de sortie, le ton, et les contraintes de longueur\n", @@ -2535,7 +2535,7 @@ "3. Tester avec au moins 2 questions différentes\n", "4. Comparer la latence totale vs utilite\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Reutilisez les classes `PipelineStep` et `PipelineResult` du notebook\n", "- Pour la gestion des erreurs, utilisez `retry_with_backoff()`\n", "- Mesurez le temps de chaque étape avec `time.time()`\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb index 2ee085d09c..af6fe82e74 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/03-Orchestration/03-3-Realtime-Voice-API.ipynb @@ -1165,7 +1165,7 @@ "3. Valider que le résultat correspond au format attendu (PCM16, 24kHz, mono)\n", "4. Tester avec différents fichiers audio (si disponibles) ou des données generees\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Charger le fichier avec soundfile (WAV) et convertir en mono avec `data.mean(axis=1)` si stereo\n", "- `# Étape 2` : Resampler avec interpolation lineaire si le sample rate != 24000\n", "- `# Indice` : Normaliser le volume en divisant par `np.max(np.abs(data))` avant la conversion PCM16\n", @@ -1497,7 +1497,7 @@ "3. Implementer un suivi de consommation (minutes utilisees, cout cumule)\n", "4. Simuler un mois d'utilisation avec un mix de tâches interactives et batch\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Définir les couts Realtime ($0.30/min) vs Pipeline ($0.01/min)\n", "- `# Étape 2` : Les tâches interactives (conversation) necessitent le Realtime, les tâches batch (transcription, podcast) utilisent le pipeline\n", "- `# Indice` : Suivre un compteur `minutes_used` et `cost_accumulated` dans la classe\n", @@ -1848,7 +1848,7 @@ " - Affiche les reponses audio (simulees)\n", "4. Tester avec des scénarios necessitant des function calls\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Utilisez la bibliotheque `websockets` pour la connexion WebSocket\n", "- Structurez vos tools selon le schema JSON de l'API\n", "- Gerer les événements: `session.created`, `response.audio.delta`, `response.function_call_arguments.delta`\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb index 048460944f..ad23943afe 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-1-Educational-Audio-Content.ipynb @@ -586,7 +586,7 @@ "3. Tester avec un même texte source pour 2 niveaux différents\n", "4. Comparer les scripts obtenus (longueur, structure, vocabulaire)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Définir les paramètres de niveau (vocabulaire simple vs technique)\n", "- `# Étape 2` : Construire un prompt dynamique en fonction du niveau\n", "- `# Étape 3` : Appeler le LLM avec le prompt personnalise\n", @@ -1955,7 +1955,7 @@ "4. Retranscrire chaque audio via Whisper\n", "5. Comparer original vs retranscrit avec `SequenceMatcher`\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Définir le texte source et le traduire via `client.chat.completions.create()`\n", "- `# Étape 2` : Utiliser `client.audio.speech.create()` pour generer l'audio dans chaque langue\n", "- `# Étape 3` : Sauvegarder les fichiers temporairement puis appeler `client.audio.transcriptions.create()`\n", @@ -2374,7 +2374,7 @@ "4. Appliquer les paramètres d'accessibilite (vitesse reduite)\n", "5. Assembler les modules en cours audio complet\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Utilisez la fonction `parse_narration_script()` pour structurer les voix\n", "- Pour la traduction, utilisez GPT avec un prompt de traduction pedagogique\n", "- Pour l'accessibilite, reduisez la vitesse a 0.85x\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb index f004c7e516..eca9931693 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-2-Transcription-Pipeline.ipynb @@ -925,7 +925,7 @@ "3. Gerer les erreurs avec retries et fallback\n", "4. Retourner un résultat structure avec statut et metadonnees\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Verifier l'extension du fichier (.mp3, .wav, .flac, .m4a)\n", "- `# Étape 2` : Verifier la taille (max 25 MB pour l'API OpenAI)\n", "- `# Étape 3` : Appeler Whisper API avec `response_format=\"verbose_json\"` pour les timestamps\n", @@ -1551,7 +1551,7 @@ "4. Verifier qu'aucun sous-titre ne depasse 5 secondes\n", "5. Generer les formats SRT et VTT\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Parcourir chaque segment et verifier sa longueur\n", "- `# Étape 2` : Trouver l'espace le plus proche du milieu pour couper une ligne longue\n", "- `# Étape 3` : Fusionner les segments adjacents de même locuteur si < 1s\n", @@ -1908,7 +1908,7 @@ "4. Parser la reponse JSON pour extraire les actions\n", "5. Afficher un tableau recapitulatif (Action, Responsable, Echeance)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Generer un audio avec TTS contenant au moins 3 phrases avec actions\n", "- `# Étape 2` : Sauvegarder le fichier et appeler `client.audio.transcriptions.create()`\n", "- `# Étape 3` : Prompt LLM : \"Extrais les actions en JSON avec champs action, responsable, echeance\"\n", @@ -2187,7 +2187,7 @@ "4. Optimiser les sous-titres (longueur des lignes, timing)\n", "5. Synchroniser et verifier la qualite\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Pour extraire l'audio video: utiliser `moviepy` ou `ffmpeg`\n", "- Pour la transcription: Whisper API avec `response_format=\"verbose_json\"`\n", "- Pour l'optimisation: limiter a 42 caractères par ligne, 2 lignes max\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb index 4312b1fe85..c87a0804b8 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-3-Music-Composition-Workflow.ipynb @@ -1299,7 +1299,7 @@ "4. Calculer l'energie RMS de chaque bande\n", "5. Retourner un rapport structure avec recommandations de mixage\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Charger l'audio avec `AudioSegment.from_file()` puis convertir en numpy\n", "- `# Étape 2` : Utiliser `scipy.signal.butter()` et `scipy.signal.sosfilt()` pour les filtres\n", "- `# Étape 3` : L'energie RMS = `np.sqrt(np.mean(audio ** 2))`\n", @@ -1971,7 +1971,7 @@ "3. Créer un pipeline qui applique les effets sequentiellement\n", "4. Tester différentes configurations et comparer les résultats\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Définir la liste d'effets : `[(\"eq\", {\"bass\": 1.3}), (\"reverb\", {\"decay\": 0.3})]`\n", "- `# Étape 2` : Utiliser `apply_eq()` et `apply_reverb()` du notebook\n", "- `# Étape 3` : Appliquer chaque effet a la suite sur le signal modifie\n", @@ -2757,7 +2757,7 @@ "4. Appliquer des effets audio (reverb, EQ, delay) sur certains stems\n", "5. Assembler une composition originale avec transitions\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Pour MusicGen: utilisez des prompts descriptifs (style, instrumentation, ambiance)\n", "- Pour le remix: ajustez les gains de chaque stem (drums, bass, other, vocals)\n", "- Pour les effets: utilisez les fonctions `apply_reverb()`, `apply_eq()` du notebook\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb index 45b5659d32..e3628c283b 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-4-Audio-Video-Sync.ipynb @@ -675,7 +675,7 @@ "3. Generer des suggestions de texte de narration adaptees\n", "4. Verifier que chaque texte respecte la contrainte de duree\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Vitesse standard = 2.17 mots/seconde, mots_max = duree * 2.17 * 0.85 (marge)\n", "- `# Étape 2` : Pour chaque segment, calculer le budget de mots\n", "- `# Indice` : Prevoir 15% de marge pour les pauses naturelles\n", @@ -1341,7 +1341,7 @@ "3. Appliquer une reduction de volume sur la musique dans ces zones\n", "4. Lisser les transitions avec des fades (200-500ms)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Calculer l'energie RMS par fenêtre glissante (50ms) sur la voix\n", "- `# Étape 2` : Si energie > seuil, appliquer un gain reduit sur la musique\n", "- `# Étape 3` : Lisser les transitions avec np.convolve() ou un filtre exponentiel\n", @@ -1929,7 +1929,7 @@ "3. Appliquer les transitions entre les segments\n", "4. Normaliser le volume global et exporter\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Structure : `[{\"audio\": np.array, \"transition\": \"fade\", \"duration\": 0.5}]`\n", "- `# Étape 2` : Fade = np.linspace(0, 1, samples) en entree, np.linspace(1, 0, samples) en sortie\n", "- `# Étape 3` : Crossfade = superposer les derniers echantillons d'un segment avec les premiers du suivant\n", @@ -2375,7 +2375,7 @@ "5. Generer des sous-titres a partir de la narration\n", "6. Assembler le tout en une video finale\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Pour la video: utilisez `moviepy.ColorClip` et `TextClip` pour des segments simples\n", "- Pour la narration TTS: synchronisez la duree audio avec la duree du segment video\n", "- Pour la musique de fond: utilisez un volume de -20dB pour ne pas couvrir la voix\n", @@ -2496,7 +2496,7 @@ "5. Generer des sous-titres a partir de la narration\n", "6. Assembler le tout en une video finale\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Pour la video: utilisez `moviepy.ColorClip` et `TextClip` pour des segments simples\n", "- Pour la narration TTS: synchronisez la duree audio avec la duree du segment video\n", "- Pour la musique de fond: utilisez un volume de -20dB pour ne pas couvrir la voix\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb index 3697c027b0..739e7b2080 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-5-LiveCoding-LLM-Music.ipynb @@ -661,7 +661,7 @@ "3. Combiner les deux en code Strudel complet\n", "4. Exporter le code genere et le tester dans le REPL\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Rythme euclidien = repartir k impulsions dans n pas uniformement\n", "- `# Étape 2` : Progression I-IV-V-I en Do = \"c3 f3 g3 c3\"\n", "- `# Étape 3` : Concatener les patterns avec `,` (parallel) en Strudel\n", @@ -1490,7 +1490,7 @@ "3. Enchainer les sections en fondu enchaine (crossfade)\n", "4. Exporter le résultat en WAV\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Structure = liste de tuples [(\"A\", 4), (\"B\", 4), (\"A\", 4)] (section, nombre de repetitions)\n", "- `# Étape 2` : Chaque section reference un pattern déjà défini dans `patterns`\n", "- `# Étape 3` : Crossfade = echantillons en commun entre la fin d'une section et le debut de la suivante\n", @@ -2117,7 +2117,7 @@ "2. Ajouter le contrôle de volume par piste\n", "3. Combiner toutes les pistes en un signal stereo\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Panoramique = coefficient entre 0.0 (gauche) et 1.0 (droite), 0.5 = centre\n", "- `# Étape 2` : Volume = multiplication du signal par un facteur entre 0.0 et 1.0\n", "- `# Étape 3` : Signal stereo = 2 colonnes (gauche, droite), sommer les contributions de chaque piste\n", @@ -2444,7 +2444,7 @@ " - Fluidite des transitions (1-5)\n", " - Respect du thème (1-5)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utilisez `MusicSession` pour conserver le contexte entre les morceaux\n", "- Strudel supporte le crossfade via `.gain()` progressif\n", diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb index 331d021068..17a829ed2b 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-6-Audiobook-Pipeline.ipynb @@ -1091,7 +1091,7 @@ "2. Comparer le debit de parole a des seuils de reference\n", "3. Produire un rapport qualitatif par segment\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Debit de parole = nombre de mots / duree en secondes ( mots/minute)\n", "- `# Étape 2` : Seuils typiques : 120-180 mots/min = normal, <100 = trop lent, >220 = trop rapide\n", "- `# Étape 3` : Rapport = liste de dictionnaires avec score, problème detecte, recommandation\n", @@ -1470,7 +1470,7 @@ "2. Implementer des règles de classification (genre, age, rôle) -> voix\n", "3. Generer automatiquement le dictionnaire `character_voices`\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Reutiliser le prompt d'analyse JSON de la Section 1 en ajoutant \"genre\" et \"age_estime\"\n", "- `# Étape 2` : Règles : femme -> nova/shimmer, homme -> onyx/echo, neutre -> alloy/fable\n", "- `# Étape 3` : Rôle principal -> voix la plus distinctive, rôle secondaire -> voix neutre\n", @@ -1716,7 +1716,7 @@ "3. Configurer le mapping voix en fonction des personnages detectes\n", "4. Executer `create_audiobook()` pour generer le fichier final\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- Pour le choix du texte, privilgier un extrait avec des dialogues (theatre, nouvelle)\n", "- Adaptez le nombre de voix dans `character_voices` selon le nombre de personnages\n", "- Utilisez la fonction `parse_narration_script()` pour structurer le script" diff --git a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb index 3bf7cb0b4c..cde2e8338e 100644 --- a/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Audio/04-Applications/04-7-TTS-Voice-Benchmark.ipynb @@ -1569,7 +1569,7 @@ "2. Collecter les metriques (latence, taille audio)\n", "3. Produire un rapport comparatif avec recommandation\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Appeler `tts_kokoro()` et `tts_openai()` sur le même texte\n", "- `# Étape 2` : Comparer latence (plus rapide gagne), taille (plus petit = compression efficace)\n", "- `# Étape 3` : Verdict = \"modèle A\" si latence < 80% du modèle B ET taille acceptable, sinon \"modèle B\"\n", @@ -2282,7 +2282,7 @@ "2. Calculer un score par metrique (1-5) base sur la distance au seuil optimal\n", "3. Combiner les scores en un MOS estime pondere\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Seuils = latence ideale < 3000ms, taille/K mot > 5KB, debit 120-180 mots/min\n", "- `# Étape 2` : Score par metrique = 5 - abs(valeur - ideale) / marge, clamp entre 1 et 5\n", "- `# Étape 3` : MOS estime = moyenne ponderee (naturalite 30%, latence 20%, taille 20%, debit 30%)\n", @@ -2542,7 +2542,7 @@ "2. Implementer un routeur qui attribue un modèle + voix a chaque segment\n", "3. Estimer le cout et la duree totale du pipeline\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Règles = narration -> Kokoro (rapide), dialogue -> OpenAI (expressif), monologue -> Qwen3 (personnalisable)\n", "- `# Étape 2` : Routeur prend une liste de segments [{\"rôle\": \"NARRATEUR\", \"text\": \"...\"}] et retourne [{\"rôle\": ..., \"model\": ..., \"voice\": ...}]\n", "- `# Étape 3` : Cout estime = somme des latences + cout OpenAI ($0.015/1000 chars pour tts-1)\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-2-GPT-5-Image-Generation.ipynb b/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-2-GPT-5-Image-Generation.ipynb index b2cc5701e8..cab830abf1 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-2-GPT-5-Image-Generation.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-2-GPT-5-Image-Generation.ipynb @@ -1754,7 +1754,7 @@ "4. **Implémenter une fonction d'analyse** qui combine les 3 modes (quick, detailed, educational)\n", "5. **Générer les questions pédagogiques** que GPT-5 suggère pour les étudiants\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Indice 1 : Utilisez la fonction `analyze_image_with_gpt5()` avec le paramètre `prompt` pour votre prompt personnalisé\n", "- Indice 2 : Le mode \"educational\" génère automatiquement 3 questions de réflexion pour étudiants\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-3-Basic-Image-Operations.ipynb b/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-3-Basic-Image-Operations.ipynb index 148ab06d6f..bc5c0ce0bb 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-3-Basic-Image-Operations.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/01-Foundation/01-3-Basic-Image-Operations.ipynb @@ -2517,7 +2517,7 @@ "4. **Préparer l'image pour l'API** : format correct, taille optimale, base64 encoding\n", "5. **Créer une fonction réutilisable** pour le pipeline complet\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Indice 1 : DALL-E 3 préfère les carrés (1024x1024), Stable Diffusion img2img utilise 512x512 ou 768x768\n", "- Indice 2 : Utilisez `ImageEnhance` pour les ajustements et `prepare_for_api()` pour l'optimisation\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-1-Multi-Model-Comparison.ipynb b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-1-Multi-Model-Comparison.ipynb index 333c9f9a01..5ff36eb28e 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-1-Multi-Model-Comparison.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-1-Multi-Model-Comparison.ipynb @@ -307,7 +307,7 @@ "3. Ajouter un mécanisme de fallback : si Forge echoue, essayer ComfyUI (et inversement)\n", "4. Logger chaque tentative (succes/echec, latence) dans un historique\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : La classe encapsule les deux fonctions `generate_forge` et `generate_z_image` existantes\n", "- `# Étape 2` : Pour le retry, utiliser une boucle avec `time.sleep(2 ** attempt)` (backoff exponentiel)\n", "- `# Indice` : Le fallback consiste a essayer l'autre service si le premier retourne None\n", @@ -518,7 +518,7 @@ "3. Pour chaque variation, mesurer le temps de generation\n", "4. Presenter les résultats dans un tableau avec une analyse des compromis\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Fixer le seed pour que les variations proviennent uniquement du paramètre change\n", "- `# Étape 2` : Utiliser `time.time()` pour mesurer le temps de chaque generation\n", "- `# Indice` : Plus de steps = meilleure qualite mais plus lent (loi logarithmique)\n", @@ -617,7 +617,7 @@ " - Calcule des métriques de comparaison (ratio qualité/temps, coût par image)\n", "3. **Analyser les résultats** sous forme de tableau et de graphiques\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utilisez une boucle pour itérer sur les prompts\n", "- Stockez les résultats dans une structure de données (liste de dictionnaires ou DataFrame)\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-2-Workflow-Orchestration.ipynb b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-2-Workflow-Orchestration.ipynb index fd7e998d6a..c11566ad6b 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-2-Workflow-Orchestration.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-2-Workflow-Orchestration.ipynb @@ -1155,7 +1155,7 @@ "4. Troisieme étape : evaluer chaque résultat avec `evaluate_quality` et sélectionner le meilleur\n", "5. Afficher les 3 versions stylisees et le gagnant\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Créer un premier orchestrateur pour la generation initiale\n", "- `# Étape 2` : Créer un second orchestrateur pour les 3 styles en parallele\n", "- `# Étape 3` : Comparer les `quality_score` de chaque résultat\n", @@ -1458,7 +1458,7 @@ "3. Implementer une stratégie \"escalade\" : steps croissants + prompt enrichi + seed changeant\n", "4. Visualiser l'evolution des scores avec matplotlib\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Commencer par copier la structure de `ConditionalPipeline`\n", "- `# Étape 2` : Ajouter une méthode `_enhance_prompt(prompt, attempt)` qui ajoute des qualificateurs\n", "- `# Indice` : \"ultra detailed, masterpiece, best quality\" sont des mots-cles efficaces pour ameliorer le prompt\n", @@ -1773,7 +1773,7 @@ "3. Implementer une méthode `generate_report` qui affiche un tableau formatte\n", "4. Tester avec plusieurs exécutions paralleles et séquentielles\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Stocker les résultats dans un dictionnaire indexe par nom de workflow\n", "- `# Étape 2` : Pour `compare_models`, extraire les durees et statuts depuis les `TaskResult`\n", "- `# Indice` : Utiliser `orchestrator.results` pour acceder aux details de chaque étape\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-3-Performance-Optimization.ipynb b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-3-Performance-Optimization.ipynb index d59f866449..5332b0070f 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-3-Performance-Optimization.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/03-Orchestration/03-3-Performance-Optimization.ipynb @@ -707,7 +707,7 @@ "3. Generer un tableau comparatif avec `profiler.get_comparison_table()`\n", "4. Identifier quel paramètre (taille memoire ou temps de calcul) a le plus d'impact\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Définir deux fonctions utilisant `simulate_model_inference` avec des paramètres différents\n", "- `# Étape 2` : Encapsuler chaque appel dans un bloc `with profiler.profile(\"nom_test\"):`\n", "- `# Étape 3` : Utiliser `profiler.get_comparison_table()` pour afficher les résultats\n", @@ -1393,7 +1393,7 @@ "3. Tester avec 3 scénarios : GPU 4 GB (mobile), GPU 8 GB (mid-range), GPU 24 GB (high-end)\n", "4. Afficher les résultats sous forme de tableau comparatif\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Reutiliser `PrecisionManager`, `QuantizationConfig` et `OffloadingStrategy` du notebook\n", "- `# Étape 2` : Appliquer les recommandations de chaque classe et les combiner\n", "- `# Indice` : L'ordre de priorite est : precision reduite > quantification > offloading > batch reduction\n", @@ -3642,7 +3642,7 @@ "3. Ajouter des metriques de performance (hit rate, temps economise)\n", "4. Tester avec une serie de prompts (dont certains repetes)\n", "\n", - "### Indices\n", + "> **Indices :**\n", "- `# Étape 1` : Combiner les deux caches existants du notebook\n", "- `# Étape 2` : Pour `get_or_compute`, verifier le cache de résultats d'abord (plus rapide), puis le cache d'embeddings\n", "- `# Indice` : Utiliser `time.time()` pour mesurer le temps economise par les hits cache\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-1-Educational-Content-Generation.ipynb b/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-1-Educational-Content-Generation.ipynb index 47c5bb2704..794abca026 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-1-Educational-Content-Generation.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-1-Educational-Content-Generation.ipynb @@ -1522,7 +1522,7 @@ "\n", "3. **Créer une interface de test** avec au moins 2 sujets différents\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utilisez les templates existants dans `subject_templates`\n", "- Pour les questions, exploitez GPT-5 via OpenRouter\n", diff --git a/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-3-Production-Integration.ipynb b/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-3-Production-Integration.ipynb index c390657ed7..7ad654fc07 100644 --- a/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-3-Production-Integration.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Image/04-Applications/04-3-Production-Integration.ipynb @@ -2228,7 +2228,7 @@ "\n", "3. **Créer un dashboard avancé** avec visualisations des coûts\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Étendez la classe `CostTracker` existante\n", "- Utilisez `logging` pour les alertes avec différents niveaux (WARNING, ERROR, CRITICAL)\n", diff --git a/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-1-Multi-Model-Video-Comparison.ipynb b/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-1-Multi-Model-Video-Comparison.ipynb index 26dbbdc3c4..7ab378a693 100644 --- a/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-1-Multi-Model-Video-Comparison.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-1-Multi-Model-Video-Comparison.ipynb @@ -1463,7 +1463,7 @@ " - Recommandation pour votre cas d'usage\n", " - Limites de l'évaluation\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Pour le prompt, incluez des détails de style (caméra, éclairage, atmosphere)\n", "- La VRAM serveur limite la resolution et le nombre de frames\n", @@ -1515,7 +1515,7 @@ " - Comparer avec les métriques existantes\n", " - Analyser les corrélations\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Le flow optique (ex: Farneback dans OpenCV) mesure le mouvement pixel par pixel\n", "- La cohérence de patchs divise l'image en régions et compare leur évolution\n", @@ -1908,7 +1908,7 @@ " - RTX 3060 (12 GB), RTX 3090 (24 GB), RTX 4090 (24 GB), A100 (80 GB)\n", " - Comparer les plans de benchmark generes\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- `# Étape 1` : `MODEL_REGISTRY` contient `vram_estimate_gb` et `quantize` pour chaque modèle\n", "- `# Étape 2` : la quantification INT8 reduit la VRAM d'environ 40-50% avec une perte de qualite mineure\n", diff --git a/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-2-Video-Workflow-Orchestration.ipynb b/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-2-Video-Workflow-Orchestration.ipynb index 18c7303138..4f6f8a0c77 100644 --- a/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-2-Video-Workflow-Orchestration.ipynb +++ b/MyIA.AI.Notebooks/GenAI/Video/03-Orchestration/03-2-Video-Workflow-Orchestration.ipynb @@ -1837,7 +1837,7 @@ " - Identifier les goulots d'étranglement\n", " - Proposer des optimisations\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Pipelines possibles : Text->DALL-E->SVD, Text->SDXL->RealESRGAN->RIFE, Text->LTX->interpolation\n", "- La libération VRAM entre chaque étape est critique (`release_vram()`)\n", @@ -1890,7 +1890,7 @@ " - Trade-offs (qualité vs vitesse)\n", " - Limites de l'approche\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Le chargement de modèle est lent : charger une seule fois et réutiliser\n", "- Les générations d'images (DALL-E) sont indépendantes : paralléliser\n", @@ -2286,7 +2286,7 @@ " - Verifier que les checkpoints permettent la reprise\n", " - Mesurer le temps economise grace au checkpointing\n", "\n", - "### Indices\n", + "> **Indices :**\n", "\n", "- Utiliser `json` pour les metadonnees et `PIL.Image.save()` pour les images\n", "- Le checkpoint contient : nom de l'étape, timestamp, chemin vers les données\n",