test / examples.py
Ronaldo
first commit
3e08670
"""Exemples d'utilisation de l'API MMS ASR/TTS"""
import requests
import json
BASE_URL = "http://localhost:7860"
# Exemples de textes dans différentes langues
EXAMPLES = {
"beh": {
"text": "Àbọ̀ wa",
"translation": "Hello"
},
"bba": {
"text": "A gbà kú",
"translation": "Good morning"
},
"ddn": {
"text": "Sàlaam alaikum",
"translation": "Peace be upon you"
},
"ewe": {
"text": "Woé gbé o",
"translation": "Hello"
},
"gej": {
"text": "A-kúma",
"translation": "Good morning"
},
"tbz": {
"text": "Salaam",
"translation": "Hello"
},
"yor": {
"text": "Àbọ̀ wa",
"translation": "Hello"
},
"eng": {
"text": "Hello world",
"translation": "Hello world"
}
}
def test_tts():
"""Test TTS pour toutes les langues"""
print("=" * 60)
print("TEST TTS (Text-to-Speech)")
print("=" * 60)
for lang, data in EXAMPLES.items():
print(f"\n📢 Langue: {lang} ({data['translation']})")
print(f" Texte: {data['text']}")
try:
response = requests.post(
f"{BASE_URL}/tts",
json={"text": data["text"], "language": lang},
timeout=60
)
if response.status_code == 200:
result = response.json()
audio_size = len(result["audio"]) // 2 # hex = 2 chars per byte
print(f" ✅ Audio généré: {audio_size} bytes")
print(f" Sample rate: {result['sample_rate']} Hz")
# Sauvegarde l'audio
with open(f"output_{lang}.wav", "wb") as f:
f.write(bytes.fromhex(result["audio"]))
print(f" Fichier: output_{lang}.wav")
else:
print(f" ❌ Erreur {response.status_code}: {response.json()}")
except Exception as e:
print(f" ❌ Exception: {e}")
def test_health():
"""Teste la santé du service"""
print("=" * 60)
print("TEST SANTÉ DU SERVICE")
print("=" * 60)
try:
response = requests.get(f"{BASE_URL}/health")
data = response.json()
print(f"✅ Status: {data['status']}")
print(f" Device: {data['device']}")
except Exception as e:
print(f"❌ Erreur: {e}")
def test_supported_languages():
"""Liste les langues supportées"""
print("=" * 60)
print("LANGUES SUPPORTÉES")
print("=" * 60)
try:
response = requests.get(f"{BASE_URL}/supported-languages")
data = response.json()
print(f"\n🎤 ASR: {data['asr']}")
print(f"\n📢 TTS: {', '.join(data['tts'])}")
print(f"\n📝 Codes de langue:")
for code, name in data['language_codes'].items():
print(f" {code:5} -> {name}")
except Exception as e:
print(f"❌ Erreur: {e}")
def test_asr_sample():
"""Test ASR (nécessite un fichier audio)"""
print("\n" + "=" * 60)
print("TEST ASR (Automatic Speech Recognition)")
print("=" * 60)
audio_path = "sample_audio.wav"
try:
with open(audio_path, "rb") as f:
files = {"audio": f}
response = requests.post(
f"{BASE_URL}/asr",
files=files,
data={"language": "eng"},
timeout=60
)
if response.status_code == 200:
result = response.json()
print(f"✅ Transcription: {result['transcription']}")
print(f" Langue: {result['language']}")
print(f" Durée: {result['audio_length']:.2f}s")
else:
print(f"❌ Erreur {response.status_code}: {response.json()}")
except FileNotFoundError:
print(f"⚠️ Fichier audio introuvable: {audio_path}")
print(" Pour tester l'ASR, fournir un fichier audio valide")
except Exception as e:
print(f"❌ Erreur: {e}")
if __name__ == "__main__":
print("\n🚀 MMS ASR/TTS API - Exemples d'utilisation\n")
# Tests
test_health()
test_supported_languages()
test_tts()
test_asr_sample()
print("\n" + "=" * 60)
print("Tests terminés!")
print("=" * 60)