diff --git a/backend/voiceover/utils.py b/backend/voiceover/utils.py index 13ae1b61..7d3dd375 100644 --- a/backend/voiceover/utils.py +++ b/backend/voiceover/utils.py @@ -1227,6 +1227,8 @@ def adjust_audio(audio_file, original_time, audio_speed): elif audio_time_difference == 0: logging.info("No time difference") elif audio_time_difference < -0.001: + if original_time == 0: + raise ZeroDivisionError logging.info("Speed up the audio by %s", str(seconds / original_time)) speedup_factor = seconds / original_time if speedup_factor > 1.009: diff --git a/backend/voiceover/views.py b/backend/voiceover/views.py index 07d92b73..e801dad2 100644 --- a/backend/voiceover/views.py +++ b/backend/voiceover/views.py @@ -1171,9 +1171,15 @@ def save_voice_over(request): if voice_over.voice_over_type == "MANUALLY_CREATED": voiceover_adjusted = adjust_voiceover(translation_payload) else: - voiceover_machine_generated = generate_voiceover_payload( - translation_payload, task.target_language, task - ) + try: + voiceover_machine_generated = generate_voiceover_payload( + translation_payload, task.target_language, task + ) + except ZeroDivisionError: + return Response( + {"message": "Cannot generate voiceover due to 0 duration for a segment"}, + status=status.HTTP_400_BAD_REQUEST, + ) if request.data.get("final"): if ( VoiceOver.objects.filter(status=VOICEOVER_EDIT_COMPLETE)