summaryrefslogtreecommitdiff
path: root/become_yukarin/dataset/dataset.py
diff options
context:
space:
mode:
Diffstat (limited to 'become_yukarin/dataset/dataset.py')
-rw-r--r--become_yukarin/dataset/dataset.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/become_yukarin/dataset/dataset.py b/become_yukarin/dataset/dataset.py
index 7e3acbf..b584e44 100644
--- a/become_yukarin/dataset/dataset.py
+++ b/become_yukarin/dataset/dataset.py
@@ -8,6 +8,7 @@ from typing import Any
from typing import Callable
from typing import Dict
from typing import List
+import scipy.ndimage
import chainer
import librosa
@@ -418,6 +419,19 @@ class AddNoiseProcess(BaseDataProcess):
return data + g + l
+class RandomBlurProcess(BaseDataProcess):
+ def __init__(self, blur_size_factor: float, time_axis: int = 1) -> None:
+ assert time_axis == 1
+ self._blur_size_factor = blur_size_factor
+ self._time_axis = time_axis
+
+ def __call__(self, data: numpy.ndarray, test=None):
+ assert not test
+
+ blur_size = numpy.abs(numpy.random.randn()) * self._blur_size_factor
+ return scipy.ndimage.gaussian_filter(data, (0, blur_size))
+
+
class DataProcessDataset(chainer.dataset.DatasetMixin):
def __init__(self, data: typing.List, data_process: BaseDataProcess) -> None:
self._data = data
@@ -559,6 +573,17 @@ def create_sr(config: SRDatasetConfig):
data_process_train = copy.deepcopy(data_process_base)
+ # blur
+ data_process_train.append(SplitProcess(dict(
+ input=ChainProcess([
+ LambdaProcess(lambda d, test: d['input']),
+ RandomBlurProcess(blur_size_factor=config.blur_size_factor),
+ ]),
+ target=ChainProcess([
+ LambdaProcess(lambda d, test: d['target']),
+ ]),
+ )))
+
# cropping
if config.train_crop_size is not None:
def add_seed():