Spaces:
Sleeping
Sleeping
''' | |
item: one piece of data | |
item_name: data id | |
wavfn: wave file path | |
txt: lyrics | |
ph: phoneme | |
tgfn: text grid file path (unused) | |
spk: dataset name | |
wdb: word boundary | |
ph_durs: phoneme durations | |
midi: pitch as midi notes | |
midi_dur: midi duration | |
is_slur: keep singing upon note changes | |
''' | |
from copy import deepcopy | |
import logging | |
from preprocessing.process_pipeline import File2Batch | |
from utils.hparams import hparams | |
from preprocessing.base_binarizer import BaseBinarizer | |
SVCSINGING_ITEM_ATTRIBUTES = ['wav_fn', 'spk_id'] | |
class SVCBinarizer(BaseBinarizer): | |
def __init__(self, item_attributes=SVCSINGING_ITEM_ATTRIBUTES): | |
super().__init__(item_attributes) | |
print('spkers: ', set(item['spk_id'] for item in self.items.values())) | |
self.item_names = sorted(list(self.items.keys())) | |
self._train_item_names, self._test_item_names = self.split_train_test_set(self.item_names) | |
# self._valid_item_names=[] | |
def split_train_test_set(self, item_names): | |
item_names = deepcopy(item_names) | |
if hparams['choose_test_manually']: | |
test_item_names = [x for x in item_names if any([x.startswith(ts) for ts in hparams['test_prefixes']])] | |
else: | |
test_item_names = item_names[-5:] | |
train_item_names = [x for x in item_names if x not in set(test_item_names)] | |
logging.info("train {}".format(len(train_item_names))) | |
logging.info("test {}".format(len(test_item_names))) | |
return train_item_names, test_item_names | |
def train_item_names(self): | |
return self._train_item_names | |
def valid_item_names(self): | |
return self._test_item_names | |
def test_item_names(self): | |
return self._test_item_names | |
def load_meta_data(self): | |
self.items = File2Batch.file2temporary_dict() | |
def _phone_encoder(self): | |
from preprocessing.hubertinfer import Hubertencoder | |
return Hubertencoder(hparams['hubert_path']) |