diff options
Diffstat (limited to 'become_yukarin')
| -rw-r--r-- | become_yukarin/data_struct.py | 11 | ||||
| -rw-r--r-- | become_yukarin/dataset/dataset.py | 13 |
2 files changed, 20 insertions, 4 deletions
diff --git a/become_yukarin/data_struct.py b/become_yukarin/data_struct.py index 786dd7e..73b9b3b 100644 --- a/become_yukarin/data_struct.py +++ b/become_yukarin/data_struct.py @@ -23,7 +23,16 @@ class AcousticFeature(NamedTuple): spectrogram=self.spectrogram.astype(dtype), aperiodicity=self.aperiodicity.astype(dtype), mfcc=self.mfcc.astype(dtype), - voiced=self.mfcc.astype(dtype), + voiced=self.voiced.astype(dtype), + ) + + def astype_only_float(self, dtype): + return AcousticFeature( + f0=self.f0.astype(dtype), + spectrogram=self.spectrogram.astype(dtype), + aperiodicity=self.aperiodicity.astype(dtype), + mfcc=self.mfcc.astype(dtype), + voiced=self.voiced, ) def validate(self): diff --git a/become_yukarin/dataset/dataset.py b/become_yukarin/dataset/dataset.py index 329226c..dae2324 100644 --- a/become_yukarin/dataset/dataset.py +++ b/become_yukarin/dataset/dataset.py @@ -126,21 +126,28 @@ class AcousticFeatureLoadProcess(BaseDataProcess): class AcousticFeatureSaveProcess(BaseDataProcess): - def __init__(self, validate=False): + def __init__(self, validate=False, ignore: List[str] = None): self._validate = validate + self._ignore = ignore if ignore is not None else [] def __call__(self, data: Dict[str, any], test=None): path = data['path'] # type: Path feature = data['feature'] # type: AcousticFeature if self._validate: feature.validate() - numpy.save(path.absolute(), dict( + + d = dict( f0=feature.f0, spectrogram=feature.spectrogram, aperiodicity=feature.aperiodicity, mfcc=feature.mfcc, voiced=feature.voiced, - )) + ) + for k in self._ignore: + assert k in d + d[k] = numpy.nan + + numpy.save(path.absolute(), d) class DistillateUsingFeatureProcess(BaseDataProcess): |
