| | |
| |
|
| | import soundfile as sf |
| | import sys |
| | import os |
| | from glob import glob |
| | from joblib import Parallel, delayed |
| | from tqdm import tqdm |
| |
|
| |
|
| | def get_duration(fpath): |
| | w = sf.SoundFile(fpath) |
| | sr = w.samplerate |
| | assert 22050 == sr, "Sample rate is not 22050" |
| | return len(w) / sr |
| |
|
| |
|
| | def main(folder, ext="wav"): |
| | file_list = glob(folder + "/**/*." + ext, recursive=True) |
| | print(f"\n\tTotal number of wav files {len(file_list)}") |
| | duration_list = Parallel(n_jobs=1)( |
| | delayed(get_duration)(i) for i in tqdm(file_list) |
| | ) |
| | print( |
| | f"\n\tMin Duration {min(duration_list):.2f} Max Duration {max(duration_list):.2f} in secs" |
| | ) |
| | print(f"\n\tTotal Duration {sum(duration_list)/3600:.2f} in hours") |
| |
|
| |
|
| | if __name__ == "__main__": |
| | folder = sys.argv[1] |
| | folder = os.path.abspath(folder) |
| | main(folder) |
| |
|