import gradio as gr import unicodedata from gtts import gTTS import os # Função para contar vocais (incluindo acentos e diacríticos) def contar_vocais(texto): # Definir os vocais (incluindo acentos e diacríticos) vocais = "aeiouáéíóúãõâêîôûàèìòù" # Normalizar o texto para lidar com acentos e diacríticos texto_normalizado = unicodedata.normalize('NFD', texto) # Decompor os caracteres acentuados texto_sem_acento = ''.join(c for c in texto_normalizado if not unicodedata.combining(c)) # Remove acentos # Contar os caracteres que são vocais contagem_vocais = sum(1 for letra in texto_sem_acento if letra.lower() in vocais) return contagem_vocais # Função para criar o número mágico def separar_e_somar(numero): digitos = [int(d) for d in str(numero)] soma = sum(digitos) return soma if soma < 10 else separar_e_somar(soma) # Função para extrair cada "número mágico" def extrair_cada_numero_magico(texto, numero_magico): letras = [] contador_espacos = 0 for i in range(numero_magico - 1, len(texto), numero_magico): caractere = texto[i] letras.append(caractere) # Verifica se o caractere é um espaço em branco if caractere == ' ': contador_espacos += 1 # A cada espaço magico, insere um salto de linha numero_magico_1 = numero_magico + 1 if contador_espacos == numero_magico_1: letras.append('\n') contador_espacos = 0 # Reinicia o contador return ''.join(letras) # Função para processar o texto e gerar áudio def processar_texto_e_gerar_audio(texto): # Contar vocais e calcular o número mágico quantidade_vocais = contar_vocais(texto) numero_magico = separar_e_somar(quantidade_vocais) resultado = extrair_cada_numero_magico(texto, numero_magico) # Gerar a resposta completa resposta = f"Quantidade de vocais: {quantidade_vocais}\nNúmero extractor: {numero_magico}\n\nResultado:\n{resultado}" # Gerar o áudio com gTTS tts = gTTS(resultado, lang='pt') audio_path = "resultado.mp3" tts.save(audio_path) return resposta, audio_path # Interface Gradio def criar_interface(): interface = gr.Interface( fn=processar_texto_e_gerar_audio, inputs=gr.Textbox(label="Digite o texto", placeholder="Insira seu texto aqui...", lines=10), outputs=[gr.Textbox(), gr.Audio(label="Play Audio")], title="Traductor Plush", description="Insira o texto e o sistema irá calcular as vogais, gerar o número extractor e criar o áudio do resultado." ) interface.launch() # Chamada para criar a interface criar_interface()