-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathget_dur.py
38 lines (27 loc) · 850 Bytes
/
get_dur.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import json
import os
from train.config import WAV_DIR
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--utts', type=str)
args = parser.parse_args()
def get_audio_duration(path: str):
import librosa
return librosa.get_duration(filename=path)
def main():
utts = json.load(open(args.utts))
utt2dur = {}
for spk in os.scandir(WAV_DIR):
if spk.is_dir() and spk.name.startswith('SSB'):
for file in os.scandir(spk.path):
if file.is_file():
utt = file.name.replace('.wav', '')
utt2dur[utt] = get_audio_duration(file.path)
res = 0
for utt, dur in utt2dur.items():
if utt in utts:
res += dur
json.dump(res, open('durations.json', 'w'))
print(res / 3600)
if __name__ == '__main__':
main()