Spaces:
Running
Running
Update inference.py
Browse files- inference.py +14 -11
inference.py
CHANGED
|
@@ -268,7 +268,7 @@ def main():
|
|
| 268 |
|
| 269 |
if not args.audio.endswith('.wav'):
|
| 270 |
print('Extracting raw audio...')
|
| 271 |
-
temp_wav = 'temp
|
| 272 |
command = f'ffmpeg -y -i "{args.audio}" -strict -2 "{temp_wav}"'
|
| 273 |
subprocess.call(command, shell=True)
|
| 274 |
args.audio = temp_wav
|
|
@@ -307,11 +307,13 @@ def main():
|
|
| 307 |
if args.save_as_video:
|
| 308 |
frame_sample = next(reader)
|
| 309 |
frame_h, frame_w = frame_sample.shape[:2]
|
| 310 |
-
|
|
|
|
|
|
|
| 311 |
cv2.VideoWriter_fourcc(*'DIVX'), fps, (frame_w, frame_h))
|
| 312 |
if args.save_frames:
|
| 313 |
-
gt_out = cv2.VideoWriter("
|
| 314 |
-
pred_out = cv2.VideoWriter("
|
| 315 |
else:
|
| 316 |
out = None
|
| 317 |
gt_out = None
|
|
@@ -327,7 +329,7 @@ def main():
|
|
| 327 |
pred = model(mel_batch, img_batch)
|
| 328 |
|
| 329 |
pred = pred.cpu().numpy().transpose(0, 2, 3, 1) * 255.0
|
| 330 |
-
|
| 331 |
for p, f, c in zip(pred, frames, coords):
|
| 332 |
y1, y2, x1, x2 = c
|
| 333 |
|
|
@@ -364,16 +366,17 @@ def main():
|
|
| 364 |
if out:
|
| 365 |
out.release()
|
| 366 |
|
| 367 |
-
# О
|
| 368 |
-
|
| 369 |
-
|
| 370 |
-
|
|
|
|
| 371 |
if args.save_frames and args.save_as_video:
|
| 372 |
gt_out.release()
|
| 373 |
pred_out.release()
|
| 374 |
|
| 375 |
-
gt_video_cmd = f'ffmpeg -y -i "
|
| 376 |
-
pred_video_cmd = f'ffmpeg -y -i "
|
| 377 |
|
| 378 |
subprocess.call(gt_video_cmd, shell=(platform.system() != 'Windows'))
|
| 379 |
subprocess.call(pred_video_cmd, shell=(platform.system() != 'Windows'))
|
|
|
|
| 268 |
|
| 269 |
if not args.audio.endswith('.wav'):
|
| 270 |
print('Extracting raw audio...')
|
| 271 |
+
temp_wav = os.path.join(os.path.dirname(args.outfile), 'temp.wav')
|
| 272 |
command = f'ffmpeg -y -i "{args.audio}" -strict -2 "{temp_wav}"'
|
| 273 |
subprocess.call(command, shell=True)
|
| 274 |
args.audio = temp_wav
|
|
|
|
| 307 |
if args.save_as_video:
|
| 308 |
frame_sample = next(reader)
|
| 309 |
frame_h, frame_w = frame_sample.shape[:2]
|
| 310 |
+
# Определяем путь для result.avi в той же директории, что и outfile
|
| 311 |
+
result_avi = os.path.join(os.path.dirname(args.outfile), "result.avi")
|
| 312 |
+
out = cv2.VideoWriter(result_avi,
|
| 313 |
cv2.VideoWriter_fourcc(*'DIVX'), fps, (frame_w, frame_h))
|
| 314 |
if args.save_frames:
|
| 315 |
+
gt_out = cv2.VideoWriter(os.path.join(os.path.dirname(args.outfile), "gt.avi"), cv2.VideoWriter_fourcc(*'DIVX'), fps, (384, 384))
|
| 316 |
+
pred_out = cv2.VideoWriter(os.path.join(os.path.dirname(args.outfile), "pred.avi"), cv2.VideoWriter_fourcc(*'DIVX'), fps, (96, 96))
|
| 317 |
else:
|
| 318 |
out = None
|
| 319 |
gt_out = None
|
|
|
|
| 329 |
pred = model(mel_batch, img_batch)
|
| 330 |
|
| 331 |
pred = pred.cpu().numpy().transpose(0, 2, 3, 1) * 255.0
|
| 332 |
+
|
| 333 |
for p, f, c in zip(pred, frames, coords):
|
| 334 |
y1, y2, x1, x2 = c
|
| 335 |
|
|
|
|
| 366 |
if out:
|
| 367 |
out.release()
|
| 368 |
|
| 369 |
+
# Определение пути к result.avi
|
| 370 |
+
if args.save_as_video:
|
| 371 |
+
final_command = f'ffmpeg -y -i "{args.audio}" -i "{result_avi}" -strict -2 -q:v 1 "{args.outfile}"'
|
| 372 |
+
subprocess.call(final_command, shell=(platform.system() != 'Windows'))
|
| 373 |
+
|
| 374 |
if args.save_frames and args.save_as_video:
|
| 375 |
gt_out.release()
|
| 376 |
pred_out.release()
|
| 377 |
|
| 378 |
+
gt_video_cmd = f'ffmpeg -y -i "{os.path.join(os.path.dirname(args.outfile), "gt.avi")}" -i "{args.audio}" -strict -2 -q:v 1 "{args.gt_path}"'
|
| 379 |
+
pred_video_cmd = f'ffmpeg -y -i "{os.path.join(os.path.dirname(args.outfile), "pred.avi")}" -i "{args.audio}" -strict -2 -q:v 1 "{args.pred_path}"'
|
| 380 |
|
| 381 |
subprocess.call(gt_video_cmd, shell=(platform.system() != 'Windows'))
|
| 382 |
subprocess.call(pred_video_cmd, shell=(platform.system() != 'Windows'))
|