import gradio as gr import edge_tts import asyncio import os # Função para gerar o áudio async def text_to_speech(text, language): # Mapeamento de idiomas para vozes da Azure voices = { "Português (Brasil)": "pt-BR-FranciscaNeural", "Inglês": "en-US-AriaNeural", "Espanhol": "es-ES-ElviraNeural", "Francês": "fr-FR-DeniseNeural", "Italiano": "it-IT-ElsaNeural" } voice = voices.get(language, "pt-BR-FranciscaNeural") # Gerar um nome de arquivo único output_file = f"output_{hash(text)}.mp3" # Criar a comunicação com o edge-tts communicate = edge_tts.Communicate(text, voice) # Salvar o áudio await communicate.save(output_file) return output_file # Função para processar a entrada e chamar o TTS def process_tts(text, language): return asyncio.run(text_to_speech(text, language)) # Configurar a interface Gradio iface = gr.Interface( fn=process_tts, inputs=[ gr.Textbox(label="Texto para converter em fala"), gr.Dropdown(["Português (Brasil)", "Inglês", "Espanhol", "Francês", "Italiano"], label="Idioma") ], outputs=gr.Audio(label="Áudio gerado"), title="Conversor de Texto para Fala usando Azure TTS", description="Converta texto em fala usando as vozes da Azure em diferentes idiomas." ) # Iniciar a aplicação iface.launch()