summaryrefslogtreecommitdiff
path: root/become_yukarin/dataset
diff options
context:
space:
mode:
authorHiroshiba Kazuyuki <hihokaruta@gmail.com>2017-12-04 06:19:49 +0900
committerHiroshiba Kazuyuki <hihokaruta@gmail.com>2017-12-04 06:19:49 +0900
commit26b794150ac8b6c1abe4fb20b420fd6bf11bc4c6 (patch)
tree4d60ceadf337f459e01e3135502da4521f29dd61 /become_yukarin/dataset
parentf5683ac7cf8225841dbb4a83a014ca742205a9a8 (diff)
align without eliminate
Diffstat (limited to 'become_yukarin/dataset')
-rw-r--r--become_yukarin/dataset/dataset.py3
-rw-r--r--become_yukarin/dataset/utility.py19
2 files changed, 19 insertions, 3 deletions
diff --git a/become_yukarin/dataset/dataset.py b/become_yukarin/dataset/dataset.py
index b049ed8..0ca35df 100644
--- a/become_yukarin/dataset/dataset.py
+++ b/become_yukarin/dataset/dataset.py
@@ -73,7 +73,8 @@ class WaveFileLoadProcess(BaseDataProcess):
def __call__(self, data: str, test):
wave = librosa.core.load(data, sr=self._sample_rate, dtype=self._dtype)[0]
- wave = librosa.effects.remix(wave, intervals=librosa.effects.split(wave, top_db=self._top_db))
+ if self._top_db is not None:
+ wave = librosa.effects.remix(wave, intervals=librosa.effects.split(wave, top_db=self._top_db))
return Wave(wave, self._sample_rate)
diff --git a/become_yukarin/dataset/utility.py b/become_yukarin/dataset/utility.py
index b2f5480..c28b1df 100644
--- a/become_yukarin/dataset/utility.py
+++ b/become_yukarin/dataset/utility.py
@@ -42,5 +42,20 @@ class DTWAligner(object):
class MFCCAligner(DTWAligner):
- def __init__(self, *args, **kwargs):
- super().__init__(*args, dist=nnmnkwii.metrics.melcd, **kwargs)
+ def __init__(self, x, y, *args, **kwargs):
+ x = self._calc_aligner_feature(x)
+ y = self._calc_aligner_feature(y)
+ super().__init__(x, y, *args, dist=nnmnkwii.metrics.melcd, **kwargs)
+
+ @classmethod
+ def _calc_delta(cls, x):
+ x = numpy.zeros_like(x, x.dtype)
+ x[:-1] = x[:-1] - x[1:]
+ x[-1] = 0
+ return x
+
+ @classmethod
+ def _calc_aligner_feature(cls, x):
+ d = cls._calc_delta(x)
+ feature = numpy.concatenate((x, d), axis=1)[:, 1:]
+ return feature