File size: 2,726 Bytes
abf9da3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
875ab6a
abf9da3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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()