File size: 2,251 Bytes
39e0760
 
2de692c
39e0760
2de692c
 
39e0760
2de692c
 
39e0760
 
2de692c
 
 
 
 
 
 
39e0760
 
 
 
 
 
 
 
2de692c
39e0760
 
 
2de692c
39e0760
2de692c
 
 
 
 
 
39e0760
2de692c
39e0760
 
2de692c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39e0760
 
 
2de692c
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
import gradio as gr
from transformers import pipeline
import os

# Creamos un modelo de resumen más ligero
resumidor = pipeline("summarization", model="t5-small")

# Creamos un modelo de generación de diálogo más ligero
dialogador = pipeline("text-generation", model="microsoft/DialoGPT-small")

def transformar_texto(archivo):
    if archivo is None:
        return "Por favor, sube un archivo de texto."
    try:
        # Lee el contenido del archivo
        texto = archivo.decode('utf-8')
    except Exception as e:
        return f"Error al leer el archivo: {e}"
    
    # Limitación para la versión gratuita
    max_palabras = 1000  # Puedes ajustar este número
    num_palabras = len(texto.split())
    if num_palabras > max_palabras:
        return f"El texto excede el límite de {max_palabras} palabras para la versión gratuita."
    
    # Resumimos el texto
    resumen = resumidor(texto, max_length=50, min_length=25, do_sample=False)[0]['summary_text']
    
    # Generamos una conversación basada en el resumen
    prompt = f"Crear una conversación entre dos personas sobre: {resumen}"
    conversacion = dialogador(prompt, max_length=200, num_return_sequences=1)[0]['generated_text']
    
    # Guardamos la conversación en un archivo en /tmp
    ruta_archivo = os.path.join("/tmp", "conversacion.txt")
    with open(ruta_archivo, "w", encoding='utf-8') as f:
        f.write(conversacion)
    
    return ruta_archivo

# Creamos la interfaz de usuario actualizada
interfaz = gr.Interface(
    fn=transformar_texto,
    inputs=gr.File(label="Sube tu documento de texto (.txt)"),
    outputs=gr.File(label="Descarga la conversación generada"),
    title="📝➡️🎙️ Transformador de Texto a Conversación",
    description="""
    Sube un documento de texto y conviértelo en una conversación tipo podcast entre dos personas.

    **Versión Gratuita:**
    - Límite de 1000 palabras por texto.
    - Conversación básica entre dos personas.

    **Próximamente:**
    - Versiones premium sin límites.
    - Personalización de voces y estilos.
    - Descarga en formato de audio.

    ¡Mantente atento para más actualizaciones!
    """,
    theme="default",
    allow_flagging="never"
)

interfaz.launch()