Spaces:
Sleeping
Sleeping
File size: 3,001 Bytes
39e0760 2de692c d986ac0 39e0760 2de692c 39e0760 2de692c 39e0760 2de692c 6c70207 2de692c 6c70207 2de692c 6c70207 d986ac0 39e0760 6c70207 d986ac0 6c70207 d986ac0 6c70207 d986ac0 6c70207 d986ac0 6c70207 d986ac0 39e0760 2de692c 39e0760 2de692c d986ac0 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 90 91 92 93 94 |
import gradio as gr
from transformers import pipeline
import os
from gtts import gTTS # Importamos gTTS
# Función para convertir texto a audio
def convertir_texto_a_audio(texto, nombre_archivo):
tts = gTTS(text=texto, lang='es')
tts.save(nombre_archivo)
# 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}")
# Convertimos la conversación a audio
ruta_audio = os.path.join("/tmp", "conversacion.mp3")
try:
convertir_texto_a_audio(conversacion, ruta_audio)
except Exception as e:
raise gr.Error(f"Error al convertir texto a audio: {e}")
return ruta_audio
# Creamos la interfaz de usuario actualizada
interfaz = gr.Interface(
fn=transformar_texto,
inputs=gr.File(label="Sube tu documento de texto (.txt)"),
outputs=gr.Audio(type="file", label="Escucha 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()
|