Spaces:
Running
Running
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() | |