예제 #1
0
def log_audio(model: Tacotron2, iteration: int, logger: Tacotron2Logger, waveglow):
    text = "Does it work yet?"
    sequence = array(text_to_sequence(text, ['english_cleaners']))[None, :]
    sequence = torch.autograd.Variable(
        torch.from_numpy(sequence)).cuda().long()

    mel_outputs, mel_outputs_postnet, _, alignments = model.inference(sequence)
    with torch.no_grad():
        audio = waveglow.infer(mel_outputs_postnet, sigma=0.666)

    logger.add_audio(text, audio[0].data.cpu(), global_step=iteration, sample_rate=hparams.sampling_rate)
예제 #2
0
def prepare_directories_and_logger(hparams, args):
    if args.rank == 0:
        if not os.path.isdir(args.output_directory):
            os.makedirs(args.output_directory)
            os.chmod(args.output_directory, 0o775)
        logger = Tacotron2Logger(os.path.join(args.output_directory, args.log_directory), hparams)
    else:
        logger = None
    return logger
예제 #3
0
def prepare_directories_and_logger(output_directory, log_directory, rank):
    if rank == 0:
        # print("Is this getting executed?")
        if not os.path.isdir(output_directory):
            os.makedirs(output_directory)
            os.chmod(output_directory, 0o775)
        logger = Tacotron2Logger(log_directory)
    else:
        logger = None
    return logger
예제 #4
0
def prepare_directories_and_logger(haparms, output_directory, log_directory,
                                   rank):
    if rank == 0:
        if not os.path.isdir(output_directory):
            os.makedirs(output_directory)
            os.chmod(output_directory, 0o775)
        logger = Tacotron2Logger(os.path.join(output_directory, log_directory), \
            hparams.use_mmi, hparams.use_guided_attn_loss)
    else:
        logger = None
    return logger
예제 #5
0
def prepare_directories_and_logger(output_directory, log_directory, rank,
                                   run_name, prj_name, resume):
    if rank == 0:
        if not os.path.isdir(os.path.join(output_directory, prj_name,
                                          run_name)):
            os.makedirs(os.path.join(output_directory, prj_name, run_name))
            os.chmod(os.path.join(output_directory, prj_name, run_name), 0o775)
        logger = Tacotron2Logger(
            run_name, prj_name, os.path.join(log_directory, prj_name,
                                             run_name), resume)
    else:
        logger = None
    return logger
예제 #6
0
def prepare_directories_and_logger(output_directory, log_directory, rank):
    if rank == 0:
        log_path = os.path.join(output_directory, log_directory)
        try:
            shutil.rmtree(log_path)
        except:
            pass
        if not os.path.isdir(output_directory):
            os.makedirs(output_directory)
            os.chmod(output_directory, 0o777)
        logger = Tacotron2Logger(log_path)
    else:
        logger = None
    return logger
예제 #7
0
def log_audio(model: Tacotron2, iteration: int, logger: Tacotron2Logger,
              waveglow, inference_batch, text_encoded, mel):
    # load source data to obtain rhythm using tacotron 2 as a forced aligner
    x, y = model.parse_batch(inference_batch)

    with torch.no_grad():
        # get rhythm (alignment map) using tacotron 2
        mel_outputs, mel_outputs_postnet, gate_outputs, rhythm = model.forward(
            x)
        rhythm = rhythm.permute(1, 0, 2)

    for emotion in range(4):
        emotion_id = torch.LongTensor([emotion]).cuda()

        with torch.no_grad():
            mel_outputs, mel_outputs_postnet, gate_outputs, _ = model.inference_noattention(
                (text_encoded, mel, emotion_id, rhythm))
            audio = waveglow.infer(mel_outputs_postnet, sigma=0.8)

        logger.add_audio(f"Emotion {str(emotion)}",
                         audio[0].data.cpu(),
                         global_step=iteration,
                         sample_rate=hparams.sampling_rate)
예제 #8
0
def prepare_directories_and_logger(output_directory, log_directory):
    if not os.path.isdir(output_directory):
        os.makedirs(output_directory)
        # os.chmod(output_directory, 0o775)
    logger = Tacotron2Logger(os.path.join(output_directory, log_directory))
    return logger