ajout du control denvoi de message et interface up
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script de test direct de Whisper pour la création de sous-titres
|
||||
"""
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import json
|
||||
import time
|
||||
|
||||
def test_whisper_direct():
|
||||
"""Test direct de Whisper"""
|
||||
print("🧪 Test direct de Whisper")
|
||||
print("=" * 50)
|
||||
|
||||
# Vérifier que le dossier record existe et contient des fichiers
|
||||
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")
|
||||
|
||||
# Prendre le premier fichier pour le test
|
||||
test_file = audio_files[0]
|
||||
test_file_path = os.path.join(record_dir, test_file)
|
||||
|
||||
print(f"🎵 Test avec le fichier: {test_file}")
|
||||
|
||||
# Test direct de Whisper
|
||||
try:
|
||||
print("🔍 Lancement de Whisper...")
|
||||
command = [
|
||||
'whisper',
|
||||
'--language', 'fr',
|
||||
test_file_path,
|
||||
'--device', 'cuda',
|
||||
'--model', 'large-v3'
|
||||
]
|
||||
|
||||
print(f"📝 Commande: {' '.join(command)}")
|
||||
|
||||
# Exécuter Whisper
|
||||
result = subprocess.run(command, capture_output=True, text=True, timeout=60)
|
||||
|
||||
if result.returncode == 0:
|
||||
print("✅ Whisper a fonctionné avec succès")
|
||||
|
||||
# Vérifier si un fichier .txt a été créé
|
||||
txt_file = test_file.replace('.mp3', '.txt')
|
||||
if os.path.exists(txt_file):
|
||||
with open(txt_file, 'r', encoding='utf-8') as f:
|
||||
content = f.read().strip()
|
||||
print(f"📝 Contenu généré: {content}")
|
||||
|
||||
# Nettoyer le fichier de test
|
||||
os.remove(txt_file)
|
||||
print("🧹 Fichier de test nettoyé")
|
||||
|
||||
return True
|
||||
else:
|
||||
print("⚠️ Aucun fichier .txt généré")
|
||||
return False
|
||||
else:
|
||||
print(f"❌ Erreur Whisper: {result.stderr}")
|
||||
return False
|
||||
|
||||
except subprocess.TimeoutExpired:
|
||||
print("⏰ Timeout - Whisper a pris trop de temps")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"❌ Erreur: {e}")
|
||||
return False
|
||||
|
||||
def test_subtitle_storage():
|
||||
"""Test du stockage des sous-titres"""
|
||||
print("\n🧪 Test du stockage des sous-titres")
|
||||
print("=" * 50)
|
||||
|
||||
# Créer un fichier de test pour le stockage
|
||||
storage_dir = "storage"
|
||||
if not os.path.exists(storage_dir):
|
||||
os.makedirs(storage_dir)
|
||||
print(f"✅ Dossier storage créé: {storage_dir}")
|
||||
|
||||
# Test d'écriture/lecture
|
||||
test_data = {
|
||||
"test_time": "Test de sous-titre",
|
||||
"test_time_2": "Deuxième test"
|
||||
}
|
||||
|
||||
subtitle_file = os.path.join(storage_dir, "subtitle_data.json")
|
||||
|
||||
try:
|
||||
# Écrire des données de test
|
||||
with open(subtitle_file, 'w', encoding='utf-8') as f:
|
||||
json.dump(test_data, f, indent=4, ensure_ascii=False)
|
||||
print("✅ Données de test écrites")
|
||||
|
||||
# Lire les données
|
||||
with open(subtitle_file, 'r', encoding='utf-8') as f:
|
||||
read_data = json.load(f)
|
||||
|
||||
if read_data == test_data:
|
||||
print("✅ Lecture/écriture du stockage OK")
|
||||
return True
|
||||
else:
|
||||
print("❌ Données lues différentes des données écrites")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Erreur stockage: {e}")
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("🚀 Test complet du système de sous-titres")
|
||||
print("=" * 60)
|
||||
|
||||
# Test 1: Whisper direct
|
||||
whisper_ok = test_whisper_direct()
|
||||
|
||||
# Test 2: Stockage
|
||||
storage_ok = test_subtitle_storage()
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
if whisper_ok and storage_ok:
|
||||
print("✅ Tous les tests sont réussis !")
|
||||
print("🎉 Le système de sous-titres est prêt à fonctionner")
|
||||
else:
|
||||
print("❌ Certains tests ont échoué")
|
||||
if not whisper_ok:
|
||||
print(" - Whisper ne fonctionne pas correctement")
|
||||
if not storage_ok:
|
||||
print(" - Le stockage ne fonctionne pas correctement")
|
||||
Reference in New Issue
Block a user