summaryrefslogtreecommitdiff
path: root/become_yukarin/voice_changer.py
diff options
context:
space:
mode:
authorHiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp>2018-01-10 23:26:52 +0900
committerHiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp>2018-01-10 23:26:52 +0900
commitf0d5136fc22f1ed0b076b237584b2b822a7a0ca0 (patch)
tree3893eb9b771a060fb0eaac61f5a513b1c4c15636 /become_yukarin/voice_changer.py
parentf8af475646b812804bdbaddc5eed7df715ca3b9e (diff)
特徴量に変換する関数追加
Diffstat (limited to 'become_yukarin/voice_changer.py')
-rw-r--r--become_yukarin/voice_changer.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/become_yukarin/voice_changer.py b/become_yukarin/voice_changer.py
index a765dd6..140a2a0 100644
--- a/become_yukarin/voice_changer.py
+++ b/become_yukarin/voice_changer.py
@@ -61,16 +61,7 @@ class VoiceChanger(object):
self._encode_feature = EncodeFeatureProcess(config.dataset.features)
self._decode_feature = DecodeFeatureProcess(config.dataset.features, feature_sizes)
- def convert_from_audio_path(self, input: Path, out_sampling_rate: Optional[int] = None):
- input = self._wave_process(str(input), test=True)
- input = self._feature_process(input, test=True)
- return self.convert_from_feature(input, out_sampling_rate)
-
- def convert_from_feature_path(self, input: Path, out_sampling_rate: Optional[int] = None):
- input = self._acoustic_feature_load_process(input, test=True)
- return self.convert_from_feature(input, out_sampling_rate)
-
- def convert_from_feature(self, input: AcousticFeature, out_sampling_rate: Optional[int] = None):
+ def convert_to_feature(self, input: AcousticFeature, out_sampling_rate: Optional[int] = None):
if out_sampling_rate is None:
out_sampling_rate = self.config.dataset.param.voice_param.sample_rate
@@ -115,6 +106,19 @@ class VoiceChanger(object):
mfcc=out.mfcc,
voiced=out.voiced,
).astype(numpy.float64)
+ return out
+
+ def convert_from_audio_path(self, input: Path, out_sampling_rate: Optional[int] = None):
+ input = self._wave_process(str(input), test=True)
+ input = self._feature_process(input, test=True)
+ return self.convert_from_feature(input, out_sampling_rate)
+
+ def convert_from_feature_path(self, input: Path, out_sampling_rate: Optional[int] = None):
+ input = self._acoustic_feature_load_process(input, test=True)
+ return self.convert_from_feature(input, out_sampling_rate)
+
+ def convert_from_feature(self, input: AcousticFeature, out_sampling_rate: Optional[int] = None):
+ out = self.convert_to_feature(input=input, out_sampling_rate=out_sampling_rate)
out = pyworld.synthesize(
f0=out.f0.ravel(),
spectrogram=out.spectrogram,
@@ -122,7 +126,6 @@ class VoiceChanger(object):
fs=out_sampling_rate,
frame_period=self._param.acoustic_feature_param.frame_period,
)
-
return Wave(out, sampling_rate=out_sampling_rate)
def __call__(self, voice_path: Path, out_sampling_rate: Optional[int] = None):