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",