def run_eval(args, checkpoint_path, output_dir, hparams, sentences):
    eval_dir = os.path.join(output_dir, 'eval')
    log_dir = os.path.join(output_dir, 'logs-eval')

    if args.model == 'Tacotron-2':
        assert os.path.normpath(eval_dir) == os.path.normpath(
            args.mels_dir)  #mels_dir = wavenet_input_dir

    #Create output path if it doesn't exist
    os.makedirs(eval_dir, exist_ok=True)
    os.makedirs(log_dir, exist_ok=True)
    os.makedirs(os.path.join(log_dir, 'wavs'), exist_ok=True)
    os.makedirs(os.path.join(log_dir, 'plots'), exist_ok=True)

    log(hparams_debug_string())
    synth = Synthesizer()
    synth.load(checkpoint_path, hparams)

    delta_size = hparams.tacotron_synthesis_batch_size if hparams.tacotron_synthesis_batch_size < len(
        sentences) else len(sentences)
    batch_sentences = [
        sentences[i:i + hparams.tacotron_synthesis_batch_size]
        for i in range(0, len(sentences), delta_size)
    ]
    start = time.time()
    for i, batch in enumerate(tqdm(batch_sentences)):
        audio.save_wav(
            synth.eval(batch),
            os.path.join(log_dir, 'wavs', 'eval_batch_{:03}.wav'.format(i)),
            hparams)
    log('\nGenerated total batch of {} in {:.3f} sec'.format(
        delta_size,
        time.time() - start))

    return eval_dir
Example #2
0
def run_eval(args):
  print(hparams_debug_string())
  synth = Synthesizer()
  modified_hp = hparams.parse(args.hparams)
  synth.load(args.checkpoint, modified_hp)

  base_path = get_output_base_path(args.checkpoint)
  for i, text in enumerate(sentences):
    path = '%s-%d.wav' % (base_path, i)
    print('Synthesizing: %s' % path)
    with open(path, 'wb') as f:
        data,wav = synth.eval(text)
        f.write(data)