Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
Loading
Loading