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