def test_arpabet(): assert to_sequence('{AE0 D}') == [70, 91, 1] assert round_trip('{AE0 D V ER1 S}') == '{AE0 D V ER1 S}~' assert round_trip('{AE0 D V ER1 S} circumstances') == '{AE0 D V ER1 S} circumstances~' assert round_trip('In {AE0 D V ER1 S} circumstances') == 'In {AE0 D V ER1 S} circumstances~' assert round_trip('{AE0 D V ER1 S} {AE0 D S}') == '{AE0 D V ER1 S} {AE0 D S}~' assert round_trip('X {AE0 D} Y {AE0 D} Z') == 'X {AE0 D} Y {AE0 D} Z~'
def _get_next_example(self): '''Loads a single example (input, mel_target, linear_target, cost) from disk''' if self._offset >= len(self._metadata): self._offset = 0 random.shuffle(self._metadata) meta = self._metadata[self._offset] self._offset += 1 text = meta[3] if self._cmudict and random.random() < _p_cmudict: text = ' '.join( [self._maybe_get_arpabet(word) for word in text.split(' ')]) input_data = np.asarray(textinput.to_sequence(text), dtype=np.int32) if self.cache_targets: if (meta[0] in self._cached_spec_targets) and ( meta[1] in self._cached_mel_targets): linear_target = self._cached_spec_targets[meta[0]] mel_target = self._cached_mel_targets[meta[1]] else: linear_target = np.load(os.path.join(self._datadir, meta[0])) mel_target = np.load(os.path.join(self._datadir, meta[1])) if len( self._cached_spec_targets ) < self.n_cache_audio_targets and len( self._cached_mel_targets) < self.n_cache_audio_targets: self._cached_spec_targets[meta[0]] = linear_target self._cached_mel_targets[meta[1]] = mel_target else: linear_target = np.load(os.path.join(self._datadir, meta[0])) mel_target = np.load(os.path.join(self._datadir, meta[1])) return (input_data, mel_target, linear_target, len(linear_target))
def synthesize(self, text): with chainer.using_config('train', False): seq = textinput.to_sequence( text, force_lowercase=hparams.force_lowercase, expand_abbreviations=hparams.expand_abbreviations) spec = self.model.output(seq) out = io.BytesIO() audio.save_wav(audio.inv_spectrogram(spec.T), out) return out.getvalue()
def _get_next_example(self, offset): '''Loads a single example (input, mel_target, linear_target, cost) from disk''' meta = self._metadata[offset] text = meta[3] if self._cmudict and random.random() < _p_cmudict: text = ' '.join( [self._maybe_get_arpabet(word) for word in text.split(' ')]) input_data = np.asarray(textinput.to_sequence(text), dtype=np.int32) linear_target = np.load(os.path.join(self._datadir, meta[0])) mel_target = np.load(os.path.join(self._datadir, meta[1])) return (input_data, mel_target, linear_target, len(linear_target))
def synthesize(self, text): seq = textinput.to_sequence( text, force_lowercase=hparams.force_lowercase, expand_abbreviations=hparams.expand_abbreviations) feed_dict = { self.model.inputs: [np.asarray(seq, dtype=np.int32)], self.model.input_lengths: np.asarray([len(seq)], dtype=np.int32) } spec, alignments = self.session.run( [self.model.linear_outputs[0], self.model.alignments[0]], feed_dict=feed_dict) out = io.BytesIO() audio.save_wav(audio.inv_spectrogram(spec.T), out) return out.getvalue(), alignments
def test_to_sequence(): assert to_sequence('') == [1] assert to_sequence('H', force_lowercase=False) == [9, 1] assert to_sequence('H', force_lowercase=True) == [35, 1] assert to_sequence('Hi.', force_lowercase=False) == [9, 36, 60, 1]
def round_trip(x): return to_string(to_sequence(x, force_lowercase=False, expand_abbreviations=True))