gnosticdev commited on
Commit
e1b8370
verified
1 Parent(s): 344c699

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -6
app.py CHANGED
@@ -32,7 +32,13 @@ async def procesar_audio(texto, voz, duracion_total):
32
  communicate = edge_tts.Communicate(texto, voz)
33
  with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_tts:
34
  await communicate.save(tmp_tts.name)
35
- tts_audio = AudioSegment.from_mp3(tmp_tts.name)
 
 
 
 
 
 
36
 
37
  # Preparar m煤sica de fondo en loop
38
  bg_music = AudioSegment.from_mp3(MUSIC_BG) - 10 # 10% volumen
@@ -44,9 +50,14 @@ async def procesar_audio(texto, voz, duracion_total):
44
  intro_duration = VideoFileClip(INTRO_VIDEO).duration * 1000 # Duraci贸n en ms
45
  audio_final = bg_music_final.overlay(tts_audio, position=intro_duration)
46
 
47
- with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_mix:
48
- audio_final.export(tmp_mix.name, format="mp3")
49
- return tmp_mix.name
 
 
 
 
 
50
  except Exception as e:
51
  logging.error(f"Error procesando audio: {e}")
52
  raise
@@ -131,9 +142,9 @@ async def procesar_video(
131
  raise
132
  finally:
133
  # Eliminar archivos temporales
134
- for file in temp_files + [getattr(video_input, 'name', None)]:
135
  try:
136
- if file and os.path.exists(file):
137
  os.remove(file)
138
  except Exception as e:
139
  logging.warning(f"Error eliminando {file}: {e}")
 
32
  communicate = edge_tts.Communicate(texto, voz)
33
  with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_tts:
34
  await communicate.save(tmp_tts.name)
35
+ tts_path = tmp_tts.name
36
+
37
+ # Verificar que el archivo TTS es v谩lido
38
+ if not os.path.exists(tts_path) or os.path.getsize(tts_path) == 0:
39
+ raise ValueError("El archivo TTS generado est谩 vac铆o o corrupto.")
40
+
41
+ tts_audio = AudioSegment.from_mp3(tts_path)
42
 
43
  # Preparar m煤sica de fondo en loop
44
  bg_music = AudioSegment.from_mp3(MUSIC_BG) - 10 # 10% volumen
 
50
  intro_duration = VideoFileClip(INTRO_VIDEO).duration * 1000 # Duraci贸n en ms
51
  audio_final = bg_music_final.overlay(tts_audio, position=intro_duration)
52
 
53
+ # Guardar como WAV primero (para evitar problemas de formato)
54
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp_wav:
55
+ audio_final.export(tmp_wav.name, format="wav")
56
+
57
+ # Convertir a MP3 (si es necesario)
58
+ with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as tmp_mp3:
59
+ AudioSegment.from_wav(tmp_wav.name).export(tmp_mp3.name, format="mp3")
60
+ return tmp_mp3.name
61
  except Exception as e:
62
  logging.error(f"Error procesando audio: {e}")
63
  raise
 
142
  raise
143
  finally:
144
  # Eliminar archivos temporales
145
+ for file in temp_files:
146
  try:
147
+ if os.path.exists(file):
148
  os.remove(file)
149
  except Exception as e:
150
  logging.warning(f"Error eliminando {file}: {e}")