diff options
| author | Hiroshiba Kazuyuki <hihokaruta@gmail.com> | 2018-02-04 09:39:39 +0900 |
|---|---|---|
| committer | Hiroshiba Kazuyuki <hihokaruta@gmail.com> | 2018-02-04 09:39:39 +0900 |
| commit | 29f0994ea34f3df7dd5eea0b330d429b2e492211 (patch) | |
| tree | 4c6827c3983ad7463f582c619db937e9f7e9f561 /become_yukarin/voice_changer.py | |
| parent | 48addd22a87f248bb8041bca47e9c209a16175a4 (diff) | |
リアルタイム変換が可能
Diffstat (limited to 'become_yukarin/voice_changer.py')
| -rw-r--r-- | become_yukarin/voice_changer.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/become_yukarin/voice_changer.py b/become_yukarin/voice_changer.py index 05f5a96..5e0eac0 100644 --- a/become_yukarin/voice_changer.py +++ b/become_yukarin/voice_changer.py @@ -83,7 +83,7 @@ class VoiceChangerStream(object): def remove_wave(self, end_time: float): self._data_stream = list(filter(lambda s: s.end_time > end_time, self._data_stream)) - def convert(self, start_time: float, time_length: float): + def convert_to_feature(self, start_time: float, time_length: float): end_time = start_time + time_length buffer_list = [] stream = filter(lambda s: not (end_time < s.start_time or s.end_time < start_time), self._data_stream) @@ -121,12 +121,18 @@ class VoiceChangerStream(object): buffer_list.append(pad) buffer = numpy.concatenate(buffer_list) - print('buffer', len(buffer), flush=True) in_wave = Wave(wave=buffer, sampling_rate=self.sampling_rate) in_feature = self.vocoder.encode(in_wave) out_feature = self.voice_changer.convert_from_acoustic_feature(in_feature) return out_feature + def convert(self, start_time: float, time_length: float): + feature = self.convert_to_feature(start_time=start_time, time_length=time_length) + out_wave = self.vocoder.decode( + acoustic_feature=feature, + ) + return out_wave + def convert_with_extra_time(self, start_time: float, time_length: float, extra_time: float): """ :param extra_time: 音声変換時に余分に使うデータの時間長。ゼロパディングを防ぐ。 @@ -136,7 +142,7 @@ class VoiceChangerStream(object): start_time -= extra_time time_length += extra_time * 2 - extra_feature = self.convert(start_time=start_time, time_length=time_length) + extra_feature = self.convert_to_feature(start_time=start_time, time_length=time_length) pad = int(extra_time / (frame_period / 1000)) feature = AcousticFeature( |
