NicoGargano's picture
Update app.py
875ab6a verified
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()