Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """ | |
| Script de test pour diagnostiquer le problème WebSocket | |
| """ | |
| import asyncio | |
| import aiohttp | |
| import json | |
| import sys | |
| async def test_services(): | |
| """Teste tous les services backend""" | |
| print("🔍 Test des services backend...") | |
| services = [ | |
| ("TTS", "http://localhost:5000/health"), | |
| ("STT", "http://localhost:5001/health"), | |
| ("LLM", "http://localhost:5002/health"), | |
| ("Live Stream", "http://localhost:5003/health"), | |
| ] | |
| for name, url in services: | |
| try: | |
| async with aiohttp.ClientSession() as session: | |
| async with session.get(url) as resp: | |
| if resp.status == 200: | |
| print(f"✅ {name}: OK") | |
| else: | |
| print(f"❌ {name}: Erreur (status {resp.status})") | |
| except Exception as e: | |
| print(f"❌ {name}: Erreur de connexion - {e}") | |
| async def test_tts(): | |
| """Teste le service TTS""" | |
| print("\n🧪 Test TTS...") | |
| try: | |
| async with aiohttp.ClientSession() as session: | |
| data = {"text": "Test", "lang": "fr"} | |
| async with session.post("http://localhost:5000/generate-tts", json=data) as resp: | |
| if resp.status == 200: | |
| result = await resp.json() | |
| print(f"✅ TTS: OK - {result}") | |
| else: | |
| print(f"❌ TTS: Erreur (status {resp.status})") | |
| except Exception as e: | |
| print(f"❌ TTS: Erreur - {e}") | |
| async def test_stt(): | |
| """Teste le service STT""" | |
| print("\n🧪 Test STT...") | |
| try: | |
| # Créer un fichier audio de test simple | |
| import wave | |
| import tempfile | |
| with tempfile.NamedTemporaryFile(suffix='.wav', delete=False) as f: | |
| # Créer un fichier WAV de 1 seconde de silence | |
| with wave.open(f.name, 'w') as wav_file: | |
| wav_file.setnchannels(1) | |
| wav_file.setsampwidth(2) | |
| wav_file.setframerate(16000) | |
| wav_file.writeframes(b'\x00' * 32000) # 1 seconde de silence | |
| async with aiohttp.ClientSession() as session: | |
| with open(f.name, 'rb') as audio_file: | |
| data = aiohttp.FormData() | |
| data.add_field('audio', audio_file, filename='test.wav', content_type='audio/wav') | |
| data.add_field('language', 'fr') | |
| async with session.post("http://localhost:5001/transcribe", data=data) as resp: | |
| if resp.status == 200: | |
| result = await resp.json() | |
| print(f"✅ STT: OK - {result}") | |
| else: | |
| print(f"❌ STT: Erreur (status {resp.status})") | |
| import os | |
| os.unlink(f.name) | |
| except Exception as e: | |
| print(f"❌ STT: Erreur - {e}") | |
| async def main(): | |
| print("🚀 Démarrage des tests...") | |
| await test_services() | |
| await test_tts() | |
| await test_stt() | |
| print("\n✅ Tests terminés") | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |