diff options
| author | Hiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp> | 2018-01-10 23:26:52 +0900 |
|---|---|---|
| committer | Hiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp> | 2018-01-10 23:26:52 +0900 |
| commit | f0d5136fc22f1ed0b076b237584b2b822a7a0ca0 (patch) | |
| tree | 3893eb9b771a060fb0eaac61f5a513b1c4c15636 /become_yukarin/voice_changer.py | |
| parent | f8af475646b812804bdbaddc5eed7df715ca3b9e (diff) | |
特徴量に変換する関数追加
Diffstat (limited to 'become_yukarin/voice_changer.py')
| -rw-r--r-- | become_yukarin/voice_changer.py | 25 |
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): |
