def split_audio()

in voxpopuli/segmentation/get_segment_pyannote_speaker.py [0:0]


    def split_audio(self, audio_path: Path):

        found = 0
        lang = audio_path.stem.split("_")[-1]
        id_ = audio_path.stem.split("_")[0]
        if not audio_path.exists():
            return False
        segments = get_segments(audio_path, self.pyannote_cfg, self.min_duration)
        if segments is None:
            return False

        out_root = self.get_out_root(id_, lang)

        pyannote_suffix = f".pyannote.{self.pyannote_cfg}"
        out_audio = split_audio(audio_path, segments, out_root, pyannote_suffix)

        if not self.split_vad:
            return True

        for audio_path in out_audio:
            dir_out = audio_path.parent / audio_path.stem
            dir_out.mkdir()
            path_timestamp_audio = get_path_timestamp(audio_path, pyannote_suffix)
            shift = load_timestamp(path_timestamp_audio)[0]
            vad_seq = split_vad_non_wav(
                audio_path,
                dir_out,
                min_dur=self.min_dur_vad,
                max_dur=self.max_dur_vad,
                max_silence=self.max_silence_vad,
                strict_min_dur=self.strict_min_dur_vad,
                shift=shift,
            )
            os.remove(audio_path)
            if len(vad_seq) == 0:
                shutil.rmtree(dir_out)
                os.remove(audio_path.with_suffix(f".pyannote.{self.pyannote_cfg}"))

        return True