Example #1
0
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~'
Example #2
0
    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))
Example #3
0
    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()
Example #4
0
    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))
Example #5
0
 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
Example #6
0
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]
Example #7
0
def round_trip(x):
  return to_string(to_sequence(x, force_lowercase=False, expand_abbreviations=True))