diff --git a/TTS/engine_wrapper.py b/TTS/engine_wrapper.py index a06b4b9..ffabd35 100644 --- a/TTS/engine_wrapper.py +++ b/TTS/engine_wrapper.py @@ -95,9 +95,13 @@ class TTSEngine: def call_tts(self, filename: str, text: str): self.tts_module.run(text=process_text(text), filepath=f"{self.path}/{filename}.mp3") try: - self.length += MP3(f"{self.path}/{filename}.mp3").info.length - except (MutagenError, HeaderNotFoundError): - self.length += sox.file_info.duration(f"{self.path}/{filename}.mp3") + try: + self.length += MP3(f"{self.path}/{filename}.mp3").info.length + except (MutagenError, HeaderNotFoundError): + self.length += sox.file_info.duration(f"{self.path}/{filename}.mp3") + except Exception: # last resort backup + clip = AudioFileClip(f"{self.path}/{filename}.mp3") + self.length += clip.duration def process_text(text: str): lang = getenv("POSTLANG", "")