teetch / app.py
Equityone's picture
Update app.py
f0dbdcc verified
raw
history blame
2.41 kB
import gradio as gr
from PIL import Image
import random
# Exemple de base de données de mots (objets courants avec leurs traductions et audios)
WORDS_DATABASE = {
"cat": {"fr": "chat", "audio": "audio/cat.mp3"},
"house": {"fr": "maison", "audio": "audio/house.mp3"},
"tree": {"fr": "arbre", "audio": "audio/tree.mp3"},
"dog": {"fr": "chien", "audio": "audio/dog.mp3"},
}
# Simule un modèle de reconnaissance d'image (remplace par un vrai modèle si disponible)
def recognize_object(image):
# Simule une reconnaissance aléatoire pour les besoins de démo
recognized_object = random.choice(list(WORDS_DATABASE.keys()))
return recognized_object
# Fonction principale pour gérer les interactions
def handle_drawing(image):
# Reconnaissance de l'objet dessiné
recognized_object = recognize_object(image)
# Récupération des informations sur le mot
word_info = WORDS_DATABASE.get(recognized_object, {})
english_word = recognized_object.capitalize()
french_translation = word_info.get("fr", "Inconnu")
audio_path = word_info.get("audio", None)
# Génération de la réponse
response = f"Objet reconnu : **{english_word}** (Français : **{french_translation}**)"
return response, audio_path
# Interface utilisateur avec Gradio
def create_interface():
with gr.Blocks() as demo:
gr.Markdown("# 🖌️ Atelier de Dessin Virtuel - Apprends l'Anglais en Dessinant !")
gr.Markdown(
"""
1. Dessine un objet simple (par ex., un chat, une maison, un arbre, un chien).
2. L'IA essaiera de reconnaître ton dessin et te montrera le mot en anglais et français.
3. Écoute la prononciation pour améliorer ton anglais !
"""
)
# Zone de dessin et résultats
with gr.Row():
canvas = gr.Sketchpad(label="Dessine ici !", tool="freedraw") # Correction de l'argument
response_text = gr.Textbox(label="Résultat", interactive=False)
audio_output = gr.Audio(label="Prononciation", interactive=False)
# Bouton pour soumettre
submit_button = gr.Button("Reconnaître et apprendre")
submit_button.click(handle_drawing, inputs=[canvas], outputs=[response_text, audio_output])
return demo
# Lancement du Space
if __name__ == "__main__":
demo = create_interface()
demo.launch()