|
import os |
|
from ov_inference import ov_inference |
|
import soundfile as sf |
|
import cv2 |
|
|
|
def verificar_archivos(video_path, audio_path): |
|
""" |
|
Verifica que los archivos de video y audio existen y son legibles. |
|
|
|
Args: |
|
video_path (str): Ruta del archivo de video. |
|
audio_path (str): Ruta del archivo de audio. |
|
|
|
Returns: |
|
bool: True si ambos archivos son legibles, False en caso contrario. |
|
""" |
|
|
|
if not os.path.exists(video_path): |
|
print(f"Error: El archivo de video no existe en la ruta {video_path}") |
|
return False |
|
else: |
|
|
|
cap = cv2.VideoCapture(video_path) |
|
if not cap.isOpened(): |
|
print(f"Error: No se puede abrir el archivo de video en {video_path}") |
|
return False |
|
else: |
|
print(f"Archivo de video {video_path} está accesible.") |
|
cap.release() |
|
|
|
|
|
if not os.path.exists(audio_path): |
|
print(f"Error: El archivo de audio no existe en la ruta {audio_path}") |
|
return False |
|
else: |
|
try: |
|
|
|
with sf.SoundFile(audio_path) as audio_file: |
|
print(f"Archivo de audio {audio_path} está accesible.") |
|
except Exception as e: |
|
print(f"Error al leer el archivo de audio: {e}") |
|
return False |
|
|
|
return True |
|
|
|
|
|
|
|
video_path = os.path.abspath("../miwav2lipv6/assets/video/data_video_sun.mp4") |
|
|
|
audio_path = os.path.abspath("../miwav2lipv6/assets/audio/audio.wav") |
|
face_detection_path = os.path.abspath("../miwav2lipv6/models/face_detection.xml") |
|
wav2lip_path = os.path.abspath("../miwav2lipv6/models/wav2lip.xml") |
|
outfile = os.path.abspath("../miwav2lipv6/results/result_voice.mp4") |
|
|
|
|
|
if verificar_archivos(video_path, audio_path): |
|
ov_inference( |
|
video_path, |
|
audio_path, |
|
face_detection_path=face_detection_path, |
|
wav2lip_path=wav2lip_path, |
|
inference_device="CPU", |
|
outfile=outfile, |
|
resize_factor = 2, |
|
) |
|
else: |
|
print("No se pudo proceder con la inferencia debido a problemas con los archivos.") |
|
|