Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -38,24 +38,13 @@ def eliminar_archivo_tiempo(ruta, delay=1800):
|
|
38 |
logging.error(f"Error al eliminar {ruta}: {e}")
|
39 |
Timer(delay, eliminar).start()
|
40 |
|
41 |
-
@gr.validation
|
42 |
def validar_texto(texto):
|
43 |
"""Validación de texto para TTS"""
|
44 |
texto_limpio = texto.strip()
|
45 |
if len(texto_limpio) < 3:
|
46 |
-
|
47 |
-
success=False,
|
48 |
-
message="⚠️ El texto debe tener al menos 3 caracteres"
|
49 |
-
)
|
50 |
if any(c in texto_limpio for c in ["|", "\n", "\r"]):
|
51 |
-
|
52 |
-
success=False,
|
53 |
-
message="⚠️ Caracteres no permitidos detectados"
|
54 |
-
)
|
55 |
-
return gr.ValidationResult(
|
56 |
-
success=True,
|
57 |
-
message="✅ Texto válido"
|
58 |
-
)
|
59 |
|
60 |
async def procesar_audio(texto, voz, duracion_total, duracion_intro):
|
61 |
"""Genera TTS y mezcla con música"""
|
@@ -143,6 +132,9 @@ def agregar_transiciones(clips):
|
|
143 |
|
144 |
async def procesar_video(video_input, texto_tts, voz_seleccionada, metodo_corte, duracion_corte):
|
145 |
try:
|
|
|
|
|
|
|
146 |
# Cargar video con audio original
|
147 |
video_original = VideoFileClip(video_input)
|
148 |
audio_original = video_original.audio.volumex(0.7) if video_original.audio else None
|
@@ -198,8 +190,7 @@ with gr.Blocks() as demo:
|
|
198 |
texto_tts = gr.Textbox(
|
199 |
label="Texto para TTS",
|
200 |
lines=3,
|
201 |
-
value="¡Hola! Esto es una prueba. Suscríbete al canal y activa la campanita."
|
202 |
-
validate=validar_texto # Validación activada
|
203 |
)
|
204 |
voz_seleccionada = gr.Dropdown(
|
205 |
label="Voz",
|
|
|
38 |
logging.error(f"Error al eliminar {ruta}: {e}")
|
39 |
Timer(delay, eliminar).start()
|
40 |
|
|
|
41 |
def validar_texto(texto):
|
42 |
"""Validación de texto para TTS"""
|
43 |
texto_limpio = texto.strip()
|
44 |
if len(texto_limpio) < 3:
|
45 |
+
raise gr.Error("⚠️ El texto debe tener al menos 3 caracteres")
|
|
|
|
|
|
|
46 |
if any(c in texto_limpio for c in ["|", "\n", "\r"]):
|
47 |
+
raise gr.Error("⚠️ Caracteres no permitidos detectados")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
|
49 |
async def procesar_audio(texto, voz, duracion_total, duracion_intro):
|
50 |
"""Genera TTS y mezcla con música"""
|
|
|
132 |
|
133 |
async def procesar_video(video_input, texto_tts, voz_seleccionada, metodo_corte, duracion_corte):
|
134 |
try:
|
135 |
+
# Validar texto antes de procesar
|
136 |
+
validar_texto(texto_tts)
|
137 |
+
|
138 |
# Cargar video con audio original
|
139 |
video_original = VideoFileClip(video_input)
|
140 |
audio_original = video_original.audio.volumex(0.7) if video_original.audio else None
|
|
|
190 |
texto_tts = gr.Textbox(
|
191 |
label="Texto para TTS",
|
192 |
lines=3,
|
193 |
+
value="¡Hola! Esto es una prueba. Suscríbete al canal y activa la campanita."
|
|
|
194 |
)
|
195 |
voz_seleccionada = gr.Dropdown(
|
196 |
label="Voz",
|