File size: 2,060 Bytes
bebca55 8e766a8 a66075a bebca55 8e766a8 a66075a 8e766a8 bebca55 8e766a8 bebca55 8e766a8 bebca55 8e766a8 bebca55 8e766a8 bebca55 8e766a8 |
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import gradio as gr
import requests
import asyncio
import edge_tts
# Fonction pour générer du texte avec PyBotChat API (simulée ici)
def generate_text(prompt):
# Simulation d'une génération de texte depuis Hugging Face (remplacer l'URL par une API réelle)
url = "https://huggingface.co/spaces/Sad44587/PyBotChat/resolve/main/app.py"
# Paramètres de la requête, ajuster selon le modèle spécifique
payload = {
"inputs": prompt,
"options": {"use_gpu": False}
}
response = requests.post(url, json=payload)
if response.status_code == 200:
response_data = response.json()
return response_data.get('generated_text', 'Désolé, je n\'ai pas pu générer de texte.')
else:
return "Erreur de génération du texte."
# Fonction pour générer la voix à partir du texte avec Edge TTS
async def generate_voice(text):
communicate = edge_tts.Communicate(text, voice="fr-FR-DeniseNeural", rate="0%")
await communicate.save("generated_audio.mp3")
return "generated_audio.mp3" # Retourne le chemin vers l'audio généré
# Fonction principale qui combine les deux processus
def generate_and_speak(prompt):
# Générer le texte avec PyBotChat API
generated_text = generate_text(prompt)
# Générer la voix à partir du texte généré
audio_path = asyncio.run(generate_voice(generated_text))
return generated_text, audio_path
# Interface Gradio
def create_interface():
with gr.Blocks() as demo:
gr.Markdown("### Chatbot avec génération vocale")
with gr.Row():
prompt_input = gr.Textbox(label="Entrez votre message", placeholder="Tapez ici...")
text_output = gr.Textbox(label="Réponse générée")
audio_output = gr.Audio(label="Réponse vocale")
prompt_input.submit(generate_and_speak, inputs=prompt_input, outputs=[text_output, audio_output])
return demo
# Lancer l'interface
if __name__ == "__main__":
demo = create_interface()
demo.launch() |