def main(unused_args=None):
    ''' NOTE: The input is rescaled to [-1, 1] '''
    #module = import_module(args.model_module, package=None)
    #MODEL = getattr(module, args.model)
    #print("=== ",MODEL,"")
    #module = import_module(args.trainer_module, package=None)
    #TRAINER = getattr(module, args.trainer)

    dirs = validate_log_dirs(args)

    try:
        os.makedirs(dirs['logdir'])
    except OSError as e:
        if e.errno != errno.EEXIST:
            raise

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/{}_xmax.npf'.format(args.corpus_name)),
        xmin=np.fromfile('./etc/{}_xmin.npf'.format(args.corpus_name)),
    )

    s_x_y = read(
        file_pattern=arch['training']['src_dir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
        data_format='NHWC',
    )

    t_x_y = read(
        file_pattern=arch['training']['trg_dir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
        data_format='NHWC',
    )

    machine = Trainer()

    machine.load_data(s_x_y, t_x_y)
    machine.train()
Пример #2
0
def main(unused_args=None):
    ''' NOTE: The input is rescaled to [-1, 1] '''
    module = import_module(args.model_module, package=None)
    MODEL = getattr(module, args.model)

    module = import_module(args.trainer_module, package=None)
    TRAINER = getattr(module, args.trainer)


    dirs = validate_log_dirs(args)
    tf.gfile.MakeDirs(dirs['logdir'])

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/{}_xmax.npf'.format(args.corpus_name)),
        xmin=np.fromfile('./etc/{}_xmin.npf'.format(args.corpus_name)),
    )

    x_s, y_s, f0_s = read(
        file_pattern=arch['training']['src_dir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
        data_format='NHWC',
    )

    x_t, y_t, f0_t = read(
        file_pattern=arch['training']['trg_dir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
        data_format='NHWC',
    )

    machine = MODEL(arch, is_training=True)
   # y_s_new = tf.stack([y_s,f0_s],axis=1)
   # y_t_new = tf.stack([y_t,f0_t],axis=1)

    loss = machine.loss(x_s, y_s, f0_s, x_t, y_t, f0_t)
    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], machine=machine)
Пример #3
0
def test():
    # ==== Test: batch mixer (conclusion: capacity should be larger to make sure good mixing) ====
    x, y = read('./dataset/vcc2016/bin/*/*/1*001.bin', 32, min_after_dequeue=1024, capacity=2048)
    sv = tf.train.Supervisor()
    with sv.managed_session() as sess:
        for _ in range(200):
            x_, y_ = sess.run([x, y])
            print(y_)


    # ===== Read binary ====
    features = read_whole_features('./dataset/vcc2016/bin/Training Set/SF1/*001.bin')

    sv = tf.train.Supervisor()
    with sv.managed_session() as sess:
        features = sess.run(features)

    y = pw2wav(features)
    librosa.output.write_wav('test1.wav', y, 16000)  # TODO fs should be specified externally.


    # ==== Direct read =====
    f = './dataset/vcc2016/bin/Training Set/SF1/100001.bin'
    features = np.fromfile(f, np.float32)
    features = np.reshape(features, [-1, 513*2 + 1 + 1 + 1]) # f0, en, spk

    y = pw2wav(features)
    librosa.output.write_wav('test2.wav', y, 16000)
Пример #4
0
def main():
    ''' NOTE: The input is rescaled to [-1, 1] '''

    dirs = validate_log_dirs(args)
    tf.gfile.MakeDirs(dirs['logdir'])

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/xmax.npf'),
        xmin=np.fromfile('./etc/xmin.npf'),
    )

    image, label = read(
        file_pattern=arch['training']['datadir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
    )

    machine = MODEL(arch)

    loss = machine.loss(image, label)
    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], machine=machine)
Пример #5
0
def main():
    ''' NOTE: The input is rescaled to [-1, 1] '''

    dirs = validate_log_dirs(args)
    if args.restore_from is None:
        tf.gfile.MakeDirs(dirs['logdir'])

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/xmax.npf'),
        xmin=np.fromfile('./etc/xmin.npf'),
    )

    image, label = read(
        file_pattern=arch['training']['datadir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
    )  #image format NHWC

    print "image shape:",image
    print "label shape:",label
    machine = MODEL(arch, args, True, False)
    loss = machine.loss(image, label, True)
    #sample = machine.sample()#np.asarray([SPEAKERS.index(args.trg)]))
    # sample,
    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], n_unroll=arch['training']['n_unroll'], machine=machine)
Пример #6
0
def main():
    ''' NOTE: The input is rescaled to [-1, 1] '''

    dirs = validate_log_dirs(args)
    tf.gfile.MakeDirs(dirs['logdir'])

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/xmax.npf'),
        xmin=np.fromfile('./etc/xmin.npf'),
    )

    image, label = read(
        file_pattern=arch['training']['datadir'],
        batch_size=arch['training']['batch_size'],
        capacity=2048,
        min_after_dequeue=1024,
        normalizer=normalizer,
    )

    machine = MODEL(arch)

    loss = machine.loss(image, label)
    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], machine=machine)
Пример #7
0
def main():
    """ NOTE: The input is rescaled to [-1, 1] """

    dirs = validate_log_dirs(args)
    tf.gfile.MakeDirs(dirs['logdir'])
    # dirs = dict()
    # dirs['logdir'] = '.'
    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/xmax.npf'),
        xmin=np.fromfile('./etc/xmin.npf'),
    )

    machine = MODEL(arch)
    if args.model in ['VAWGAN_I']:
        image, label, i_vec = read_i_all(
            file_pattern=arch['training']['datadir'],
            file_pattern2=arch['training']['ivectordir'],
            batch_size=arch['training']['batch_size'],
            capacity=2048,
            min_after_dequeue=1024,
            normalizer=normalizer,
        )

        # loss = machine.loss(image, label, text_emb)
        loss = machine.loss(image, label, i_vec)
    elif args.model in ['VAWGAN_S', 'SentWGAN']:
        image, label, text_emb = read_all(
            file_pattern=arch['training']['datadir'],
            file_pattern2=arch['training']['textdir'],
            batch_size=arch['training']['batch_size'],
            capacity=2048,
            min_after_dequeue=1024,
            normalizer=normalizer,
        )

        loss = machine.loss(image, label, text_emb)
    else:
        image, label = read(
            file_pattern=arch['training']['datadir'],
            batch_size=arch['training']['batch_size'],
            capacity=2048,
            min_after_dequeue=1024,
            normalizer=normalizer,
        )

        loss = machine.loss(image, label)

    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], machine=machine)
Пример #8
0
def main(unused_args):
    ''' NOTE: The input is rescaled to [-1, 1] '''

    if args.model is None or args.trainer is None:
        raise ValueError(
            '\n  Both `model` and `trainer` should be assigned.' +\
            '\n  Use `python main.py --help` to see applicable options.'
        )

    module = import_module(args.model_module, package=None)
    MODEL = getattr(module, args.model)

    module = import_module(args.trainer_module, package=None)
    TRAINER = getattr(module, args.trainer)

    dirs = validate_log_dirs(args)
    tf.gfile.MakeDirs(dirs['logdir'])

    with open(args.architecture) as f:
        arch = json.load(f)

    with open(os.path.join(dirs['logdir'], args.architecture), 'w') as f:
        json.dump(arch, f, indent=4)

    normalizer = Tanhize(
        xmax=np.fromfile('./etc/xmax.npf'),
        xmin=np.fromfile('./etc/xmin.npf'),
    )

    x, y = read(
        file_pattern=arch['training']['datadir'],
        batch_size=arch['training']['batch_size'],
        capacity=4096,
        min_after_dequeue=3000,
        normalizer=normalizer,
    )

    machine = MODEL(arch, is_training=True)

    loss = machine.loss(x, y)
    trainer = TRAINER(loss, arch, args, dirs)
    trainer.train(nIter=arch['training']['max_iter'], machine=machine)