from pathlib import Path import argbind import audiotools as at import tqdm @argbind.bind(without_prefix=True) def split_long_audio_file( file: str = None, max_chunk_size_s: int = 60*10 ): file = Path(file) output_dir = file.parent / file.stem output_dir.mkdir() sig = at.AudioSignal(file) # split into chunks for i, sig in tqdm.tqdm(enumerate(sig.windows( window_duration=max_chunk_size_s, hop_duration=max_chunk_size_s/2, preprocess=True)) ): sig.write(output_dir / f"{i}.wav") print(f"wrote {len(list(output_dir.glob('*.wav')))} files to {output_dir}") return output_dir if __name__ == "__main__": args = argbind.parse_args() with argbind.scope(args): split_long_audio_file()