Spaces:
Sleeping
Sleeping
File size: 2,861 Bytes
39e0760 2de692c 39e0760 2de692c 39e0760 2de692c 39e0760 2de692c 6c70207 2de692c 6c70207 2de692c 6c70207 39e0760 6c70207 39e0760 6c70207 39e0760 6c70207 39e0760 2de692c 6c70207 2de692c 39e0760 2de692c 39e0760 2de692c 39e0760 2de692c 6c70207 |
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 78 79 80 81 82 83 84 85 86 87 88 89 |
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:
raise gr.Error("Por favor, sube un archivo de texto.")
try:
# Lee el contenido del archivo subido
with open(archivo.name, 'r', encoding='utf-8') as f:
texto = f.read()
except Exception as e:
raise gr.Error(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:
raise gr.Error(f"El texto excede el límite de {max_palabras} palabras para la versión gratuita.")
try:
# Resumimos el texto
resumen = resumidor(
texto,
max_length=50,
min_length=25,
do_sample=False,
clean_up_tokenization_spaces=True
)[0]['summary_text']
except Exception as e:
raise gr.Error(f"Error al resumir el texto: {e}")
try:
# 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,
clean_up_tokenization_spaces=True
)[0]['generated_text']
except Exception as e:
raise gr.Error(f"Error al generar la conversación: {e}")
# Guardamos la conversación en un archivo en /tmp
ruta_archivo = os.path.join("/tmp", "conversacion.txt")
try:
with open(ruta_archivo, "w", encoding='utf-8') as f:
f.write(conversacion)
except Exception as e:
raise gr.Error(f"Error al guardar la conversación: {e}")
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()
|