code: def main():
      # init args and config
      model_args = GPTArgs(
          max_conditioning_length=132300,  # 6 secs
          min_conditioning_length=66150,  # 3 secs
          debug_loading_failures=False,
          max_wav_length=255995,  # ~11.6 seconds
          max_text_length=200,
          mel_norm_file=MEL_NORM_FILE,
          dvae_checkpoint=DVAE_CHECKPOINT,
          xtts_checkpoint=XTTS_CHECKPOINT,  # checkpoint path of the model that you want to fine-tune
          tokenizer_file=TOKENIZER_FILE,
          gpt_num_audio_tokens=1026,
          gpt_start_audio_token=1024,
          gpt_stop_audio_token=1025,
          gpt_use_masking_gt_prompt_approach=True,
          gpt_use_perceiver_resampler=True,
      )
      # define audio config
      audio_config = XttsAudioConfig(
          sample_rate=22050,
          dvae_sample_rate=22050,
          output_sample_rate=24000,
      )
      # training parameters config
      config = GPTTrainerConfig(
          output_path=OUT_PATH,
          model_args=model_args,
          run_name=RUN_NAME,
          project_name=PROJECT_NAME,
          run_description="""
              GPT XTTS training
              """,
          dashboard_logger=DASHBOARD_LOGGER,
          logger_uri=LOGGER_URI,
          audio=audio_config,
          batch_size=BATCH_SIZE,
          batch_group_size=48,
          eval_batch_size=BATCH_SIZE,
          num_loader_workers=8,
          eval_split_max_size=256,
          print_step=50,
          plot_step=100,
          log_model_step=1000,
          save_step=10000,
          save_n_checkpoints=1,
          save_checkpoints=True,
          # target_loss="loss",
          print_eval=False,
          # Optimizer values like tortoise, pytorch implementation with modifications to not apply WD to non-weight parameters.
          optimizer="AdamW",
          optimizer_wd_only_on_weights=OPTIMIZER_WD_ONLY_ON_WEIGHTS,
          optimizer_params={
              "betas": [0.9, 0.96],
              "eps": 1e-8,
              "weight_decay": 1e-2,
          },
          lr=5e-06,  # learning rate
          lr_scheduler="MultiStepLR",
          # it was adjusted accordly for the new step scheme
          lr_scheduler_params={
              "milestones": [50000 * 18, 150000 * 18, 300000 * 18],
              "gamma": 0.5,
              "last_epoch": -1,
          },
          test_sentences=[
              {
                  "text": "It took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.",
                  "speaker_wav": SPEAKER_REFERENCE,
                  "language": LANGUAGE,
              },
              {
                  "text": "This cake is great. It's so delicious and moist.",
                  "speaker_wav": SPEAKER_REFERENCE,
                  "language": LANGUAGE,
              },
          ],
      )
  
      # init the model from config
      model = GPTTrainer.init_from_config(config)
  
      # load training samples
      train_samples, eval_samples = load_tts_samples(
          DATASETS_CONFIG_LIST,
          eval_split=True,
          eval_split_max_size=config.eval_split_max_size,
          eval_split_size=config.eval_split_size,
      )
  
      # init the trainer and 🚀
      trainer = Trainer(
          TrainerArgs(
              restore_path=None,  # xtts checkpoint is restored via xtts_checkpoint key so no need of restore it using Trainer restore_path parameter
              skip_train_epoch=False,
              start_with_eval=START_WITH_EVAL,
              grad_accum_steps=GRAD_ACUMM_STEPS,
          ),
          config,
          output_path=OUT_PATH,
          model=model,
          train_samples=train_samples,
          eval_samples=eval_samples,
      )
      trainer.fit()
  
imports: import os
  from trainer import Trainer, TrainerArgs
  from TTS.config.shared_configs import BaseDatasetConfig
  from TTS.tts.datasets import load_tts_samples
  from TTS.tts.layers.xtts.trainer.gpt_trainer import GPTArgs, GPTTrainer, GPTTrainerConfig, XttsAudioConfig
  from TTS.utils.manage import ModelManager
label_desc: Use image node_id 1 for calling a global function with example usage: main() without return types