mirror of https://github.com/coqui-ai/TTS.git
Improve runtime of __parse_items() from O(|speakers|*|items|) to O(|items|)
This commit is contained in:
parent
e732db76f1
commit
d733b90255
|
@ -51,21 +51,37 @@ class MyDataset(Dataset):
|
||||||
return sample
|
return sample
|
||||||
|
|
||||||
def __parse_items(self):
|
def __parse_items(self):
|
||||||
"""
|
|
||||||
Find unique speaker ids and create a dict mapping utterances from speaker id
|
|
||||||
"""
|
|
||||||
speakers = list({item[-1] for item in self.items})
|
|
||||||
self.speaker_to_utters = {}
|
self.speaker_to_utters = {}
|
||||||
self.speakers = []
|
for i in self.items:
|
||||||
for speaker in speakers:
|
path_ = i[1]
|
||||||
speaker_utters = [item[1] for item in self.items if item[2] == speaker]
|
speaker_ = i[2]
|
||||||
if len(speaker_utters) < self.num_utter_per_speaker and self.skip_speakers:
|
if speaker_ in self.speaker_to_utters.keys():
|
||||||
print(
|
self.speaker_to_utters[speaker_].append(path_)
|
||||||
f" [!] Skipped speaker {speaker}. Not enough utterances {self.num_utter_per_speaker} vs {len(speaker_utters)}."
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
self.speakers.append(speaker)
|
self.speaker_to_utters[speaker_] = [path_, ]
|
||||||
self.speaker_to_utters[speaker] = speaker_utters
|
|
||||||
|
if self.skip_speakers:
|
||||||
|
self.speaker_to_utters = {k: v for (k, v) in self.speaker_to_utters.items() if
|
||||||
|
len(v) >= self.num_utter_per_speaker}
|
||||||
|
|
||||||
|
self.speakers = [k for (k, v) in self.speaker_to_utters]
|
||||||
|
|
||||||
|
# def __parse_items(self):
|
||||||
|
# """
|
||||||
|
# Find unique speaker ids and create a dict mapping utterances from speaker id
|
||||||
|
# """
|
||||||
|
# speakers = list({item[-1] for item in self.items})
|
||||||
|
# self.speaker_to_utters = {}
|
||||||
|
# self.speakers = []
|
||||||
|
# for speaker in speakers:
|
||||||
|
# speaker_utters = [item[1] for item in self.items if item[2] == speaker]
|
||||||
|
# if len(speaker_utters) < self.num_utter_per_speaker and self.skip_speakers:
|
||||||
|
# print(
|
||||||
|
# f" [!] Skipped speaker {speaker}. Not enough utterances {self.num_utter_per_speaker} vs {len(speaker_utters)}."
|
||||||
|
# )
|
||||||
|
# else:
|
||||||
|
# self.speakers.append(speaker)
|
||||||
|
# self.speaker_to_utters[speaker] = speaker_utters
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
return int(1e10)
|
return int(1e10)
|
||||||
|
|
Loading…
Reference in New Issue