print('===' * 10, outdir) audio = Audio(config_loader.config) if args.checkpoint is not None: all_weights = [args.checkpoint] elif args.all_weights: all_weights = [(config_loader.weights_dir / x.stem).as_posix() for x in config_loader.weights_dir.iterdir() if x.suffix == '.index'] else: all_weights = [None] # default if args.verbose: print(f'\nWeights list: \n{all_weights}\n') for weights in all_weights: model = config_loader.load_model(weights) file_name = f'{fname}_ttsstep{model.step}' print(f'Output wav under {outdir}') wavs = [] for i, text_line in enumerate(text): out = model.predict(text_line, spk_emb=spk_emb, encode=True, phoneme_max_duration=None, speed_regulator=0.8) mel = out['mel'].numpy().T wav = audio.reconstruct_waveform(mel) wavs.append(wav) if args.store_mel: np.save((outdir / (file_name + f'_{i}')).with_suffix('.mel'), out['mel'].numpy())
fill_gaps = args.fill_mode_max or args.fill_mode_next fix_jumps = args.fix_jumps fill_mode = f"{f'max' * args.fill_mode_max}{f'next' * args.fill_mode_next}" filling_tag = f"{f'(max)' * args.fill_mode_max}{f'(next)' * args.fill_mode_next}" tag_description = ''.join([ f'{"_weighted" * weighted}{"_best" * (not weighted)}', f'{"_binary" * binary}', f'{"_filled" * fill_gaps}{filling_tag}', f'{"_fix_jumps" * fix_jumps}', f'_layer{args.extract_layer}' ]) writer_tag = f'DurationExtraction{tag_description}' print(writer_tag) config_manager = Config(config_path=args.config, model_kind='autoregressive') config = config_manager.config config_manager.print_config() if args.autoregressive_weights != '': model = config_manager.load_model(args.autoregressive_weights) else: model = config_manager.load_model() if model.r != 1: print( f"ERROR: model's reduction factor is greater than 1, check config. (r={model.r}" ) data_prep = AutoregressivePreprocessor.from_config( config=config_manager, tokenizer=model.text_pipeline.tokenizer) data_handler = TextMelDataset.from_config(config_manager, preprocessor=data_prep, kind='phonemized') target_dir = config_manager.data_dir / f'durations' target_dir.mkdir(exist_ok=True)