harveen
Code
6a14a14
raw
history blame contribute delete
878 Bytes
# Usage -> python duration.py /src/folder/path
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)