summaryrefslogtreecommitdiff
path: root/become_yukarin
diff options
context:
space:
mode:
Diffstat (limited to 'become_yukarin')
-rw-r--r--become_yukarin/data_struct.py11
-rw-r--r--become_yukarin/dataset/dataset.py13
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):