#!/usr/bin/env python3 """ Script de démonstration du système de sous-titres """ import os import json from datetime import datetime def demo_subtitle_system(): """Démonstration du système de sous-titres""" print("🎬 Démonstration du système de sous-titres") print("=" * 60) # 1. Vérifier les fichiers audio record_dir = "record" if not os.path.exists(record_dir): print(f"❌ Dossier record non trouvé: {record_dir}") return False audio_files = [f for f in os.listdir(record_dir) if f.endswith('.mp3')] if not audio_files: print(f"❌ Aucun fichier audio trouvé dans {record_dir}") return False print(f"✅ {len(audio_files)} fichiers audio trouvés") print(f"📁 Premier fichier: {audio_files[0]}") print(f"📁 Dernier fichier: {audio_files[-1]}") # 2. Vérifier le stockage storage_dir = "storage" subtitle_file = os.path.join(storage_dir, "subtitle_data.json") if os.path.exists(subtitle_file): try: with open(subtitle_file, 'r', encoding='utf-8') as f: subtitle_data = json.load(f) print(f"✅ Stockage existant avec {len(subtitle_data)} sous-titre(s)") if subtitle_data: print("📝 Derniers sous-titres:") sorted_keys = sorted(subtitle_data.keys()) for key in sorted_keys[-3:]: # Afficher les 3 derniers print(f" {key}: {subtitle_data[key]}") except Exception as e: print(f"⚠️ Erreur lecture stockage: {e}") else: print("📝 Aucun stockage existant") # 3. Simuler le traitement manuel print("\n🔧 Simulation du traitement manuel:") print(" 1. Détection des fichiers audio ✅") print(" 2. Lancement de Whisper sur chaque fichier") print(" 3. Nettoyage et suppression des répétitions") print(" 4. Sauvegarde dans le stockage") print(" 5. Nettoyage des fichiers temporaires") # 4. Créer un exemple de sous-titre example_subtitle = { "03:52:30": "Voici un exemple de sous-titre généré", "03:52:35": "Le système fonctionne correctement", "03:52:40": "Whisper traite les fichiers audio" } # Sauvegarder l'exemple if not os.path.exists(storage_dir): os.makedirs(storage_dir) try: with open(subtitle_file, 'w', encoding='utf-8') as f: json.dump(example_subtitle, f, indent=4, ensure_ascii=False) print("✅ Exemple de sous-titres sauvegardé") except Exception as e: print(f"❌ Erreur sauvegarde: {e}") # 5. Afficher les instructions pour l'interface web print("\n🌐 Instructions pour l'interface web:") print(" 1. Ouvrir http://localhost:5000") print(" 2. Aller dans l'onglet 'Sous-titres'") print(" 3. Cliquer sur 'Traitement Manuel'") print(" 4. Attendre le traitement des fichiers audio") print(" 5. Voir les sous-titres générés") return True def test_whisper_availability(): """Tester la disponibilité de Whisper""" print("\n🔍 Test de Whisper:") try: import subprocess result = subprocess.run(['whisper', '--help'], capture_output=True, text=True, timeout=10) if result.returncode == 0: print("✅ Whisper est disponible et fonctionnel") return True else: print("❌ Whisper ne répond pas correctement") return False except FileNotFoundError: print("❌ Whisper n'est pas installé") return False except Exception as e: print(f"❌ Erreur test Whisper: {e}") return False if __name__ == '__main__': print("🚀 Démonstration du système de sous-titres") print("=" * 60) # Test 1: Système de base system_ok = demo_subtitle_system() # Test 2: Whisper whisper_ok = test_whisper_availability() print("\n" + "=" * 60) if system_ok and whisper_ok: print("✅ Système prêt !") print("🎉 Vous pouvez maintenant utiliser le bouton 'Traitement Manuel'") print(" dans l'interface web pour créer des sous-titres.") else: print("❌ Problèmes détectés") if not system_ok: print(" - Problème avec le système de base") if not whisper_ok: print(" - Problème avec Whisper")