File size: 1,118 Bytes
cf8445e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import gradio as gr
from gtts import gTTS  # Google Text-to-Speech
import json

# Charger les données
def charger_donnees():
    try:
        with open("semxflow_data.json", "r", encoding="utf-8") as file:
            return json.load(file)
    except Exception as e:
        return {"reponses": {"error": f"Erreur de chargement du fichier JSON : {e}"}}

# Fonction de réponse et de parole
def chatbot_response(message):
    data = charger_donnees()
    reponses = data.get("reponses", {})

    # Vérifier si l'IA connaît la réponse
    reponse = reponses.get(message.lower(), "Désolé, je ne comprends pas encore cette question.")
    
    # Convertir la réponse en audio avec gTTS
    tts = gTTS(text=reponse, lang="fr")
    tts.save("output.mp3")

    return "output.mp3", reponse

# Interface Gradio avec audio
iface = gr.Interface(
    fn=chatbot_response,
    inputs="text",
    outputs=["audio", "text"],  # Retourne l'audio et le texte
    title="Chatbot SemXFlow",
    description="Pose-moi des questions et je vais répondre (avec la voix bientôt) !"
)

if __name__ == "__main__":
    iface.launch()