We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
ParallelWaveGAN config should be adjusted
Hi,

I have tried training with the current default config and it drops the learning rate too fast and the model converges to generate noise. Because when `scheduler_after_epoch=False`, `ExponentialLR` with `gamma=0.999` will cause the learning rate to reach 0.000 in 10k steps.

Config from the original paper are:
 ```
    batch_size=8,
    stft_loss_weight=1.0,
    mse_G_loss_weight=4.0,
    steps_to_start_discriminator=100000,
    lr_gen=0.0001,
    lr_disc=0.00005,
    lr_scheduler_gen="StepLR",
    lr_scheduler_gen_params={"gamma": 0.5, "step_size": 200000, "last_epoch": -1},
    lr_scheduler_disc="StepLR",
    lr_scheduler_disc_params={"gamma": 0.5, "step_size": 200000, "last_epoch": -1},
    scheduler_after_epoch=False,
```

It is also possible to use ExponentialLR with some float rounding error:
```
    lr_scheduler_gen="ExponentialLR",  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
    lr_scheduler_gen_params={"gamma": 0.5**(1/200000), "last_epoch": -1},
    lr_scheduler_disc="ExponentialLR",  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
    lr_scheduler_disc_params={"gamma": 0.5**(1/200000), "last_epoch": -1},
```

With more GPU memory the batch_size can be increased and steps reduced.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `TTS/vocoder/configs/parallel_wavegan_config.py`
Content:
```
1 from dataclasses import dataclass, field
2 
3 from .shared_configs import BaseGANVocoderConfig
4 
5 
6 @dataclass
7 class ParallelWaveganConfig(BaseGANVocoderConfig):
8     """Defines parameters for ParallelWavegan vocoder.
9 
10     Args:
11         model (str):
12             Model name used for selecting the right configuration at initialization. Defaults to `gan`.
13         discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to
14             'parallel_wavegan_discriminator`.
15         discriminator_model_params (dict): The discriminator model kwargs. Defaults to
16             '{"num_layers": 10}`
17         generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is
18             considered as a generator too. Defaults to `parallel_wavegan_generator`.
19         generator_model_param (dict):
20             The generator model kwargs. Defaults to `{"upsample_factors": [4, 4, 4, 4], "stacks": 3, "num_res_blocks": 30}`.
21         batch_size (int):
22             Batch size used at training. Larger values use more memory. Defaults to 16.
23         seq_len (int):
24             Audio segment length used at training. Larger values use more memory. Defaults to 8192.
25         pad_short (int):
26             Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0.
27         use_noise_augment (bool):
28             enable / disable random noise added to the input waveform. The noise is added after computing the
29             features. Defaults to True.
30         use_cache (bool):
31             enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is
32             not large enough. Defaults to True.
33         steps_to_start_discriminator (int):
34             Number of steps required to start training the discriminator. Defaults to 0.
35         use_stft_loss (bool):`
36             enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True.
37         use_subband_stft (bool):
38             enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True.
39         use_mse_gan_loss (bool):
40             enable / disable using Mean Squeare Error GAN loss. Defaults to True.
41         use_hinge_gan_loss (bool):
42             enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models.
43             Defaults to False.
44         use_feat_match_loss (bool):
45             enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True.
46         use_l1_spec_loss (bool):
47             enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False.
48         stft_loss_params (dict): STFT loss parameters. Default to
49             `{"n_ffts": [1024, 2048, 512], "hop_lengths": [120, 240, 50], "win_lengths": [600, 1200, 240]}`
50         stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total
51             model loss. Defaults to 0.5.
52         subband_stft_loss_weight (float):
53             Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.
54         mse_G_loss_weight (float):
55             MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5.
56         hinge_G_loss_weight (float):
57             Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.
58         feat_match_loss_weight (float):
59             Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 0.
60         l1_spec_loss_weight (float):
61             L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.
62         lr_gen (float):
63             Generator model initial learning rate. Defaults to 0.0002.
64         lr_disc (float):
65             Discriminator model initial learning rate. Defaults to 0.0002.
66         optimizer (torch.optim.Optimizer):
67             Optimizer used for the training. Defaults to `AdamW`.
68         optimizer_params (dict):
69             Optimizer kwargs. Defaults to `{"betas": [0.8, 0.99], "weight_decay": 0.0}`
70         lr_scheduler_gen (torch.optim.Scheduler):
71             Learning rate scheduler for the generator. Defaults to `ExponentialLR`.
72         lr_scheduler_gen_params (dict):
73             Parameters for the generator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`.
74         lr_scheduler_disc (torch.optim.Scheduler):
75             Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`.
76         lr_scheduler_dict_params (dict):
77             Parameters for the discriminator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`.
78     """
79 
80     model: str = "parallel_wavegan"
81 
82     # Model specific params
83     discriminator_model: str = "parallel_wavegan_discriminator"
84     discriminator_model_params: dict = field(default_factory=lambda: {"num_layers": 10})
85     generator_model: str = "parallel_wavegan_generator"
86     generator_model_params: dict = field(
87         default_factory=lambda: {"upsample_factors": [4, 4, 4, 4], "stacks": 3, "num_res_blocks": 30}
88     )
89 
90     # Training - overrides
91     batch_size: int = 6
92     seq_len: int = 25600
93     pad_short: int = 2000
94     use_noise_augment: bool = False
95     use_cache: bool = True
96     steps_to_start_discriminator: int = 200000
97 
98     # LOSS PARAMETERS - overrides
99     use_stft_loss: bool = True
100     use_subband_stft_loss: bool = False
101     use_mse_gan_loss: bool = True
102     use_hinge_gan_loss: bool = False
103     use_feat_match_loss: bool = False  # requires MelGAN Discriminators (MelGAN and HifiGAN)
104     use_l1_spec_loss: bool = False
105 
106     stft_loss_params: dict = field(
107         default_factory=lambda: {
108             "n_ffts": [1024, 2048, 512],
109             "hop_lengths": [120, 240, 50],
110             "win_lengths": [600, 1200, 240],
111         }
112     )
113 
114     # loss weights - overrides
115     stft_loss_weight: float = 0.5
116     subband_stft_loss_weight: float = 0
117     mse_G_loss_weight: float = 2.5
118     hinge_G_loss_weight: float = 0
119     feat_match_loss_weight: float = 0
120     l1_spec_loss_weight: float = 0
121 
122     # optimizer overrides
123     lr_gen: float = 0.0002  # Initial learning rate.
124     lr_disc: float = 0.0002  # Initial learning rate.
125     optimizer: str = "AdamW"
126     optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "weight_decay": 0.0})
127     lr_scheduler_gen: str = "ExponentialLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
128     lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1})
129     lr_scheduler_disc: str = "ExponentialLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
130     lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1})
131
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/TTS/vocoder/configs/parallel_wavegan_config.py b/TTS/vocoder/configs/parallel_wavegan_config.py
--- a/TTS/vocoder/configs/parallel_wavegan_config.py
+++ b/TTS/vocoder/configs/parallel_wavegan_config.py
@@ -70,11 +70,11 @@
         lr_scheduler_gen (torch.optim.Scheduler):
             Learning rate scheduler for the generator. Defaults to `ExponentialLR`.
         lr_scheduler_gen_params (dict):
-            Parameters for the generator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`.
+            Parameters for the generator learning rate scheduler. Defaults to `{"gamma": 0.5, "step_size": 200000, "last_epoch": -1}`.
         lr_scheduler_disc (torch.optim.Scheduler):
             Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`.
         lr_scheduler_dict_params (dict):
-            Parameters for the discriminator learning rate scheduler. Defaults to `{"gamma": 0.999, "last_epoch": -1}`.
+            Parameters for the discriminator learning rate scheduler. Defaults to `{"gamma": 0.5, "step_size": 200000, "last_epoch": -1}`.
     """
 
     model: str = "parallel_wavegan"
@@ -124,7 +124,8 @@
     lr_disc: float = 0.0002  # Initial learning rate.
     optimizer: str = "AdamW"
     optimizer_params: dict = field(default_factory=lambda: {"betas": [0.8, 0.99], "weight_decay": 0.0})
-    lr_scheduler_gen: str = "ExponentialLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
-    lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1})
-    lr_scheduler_disc: str = "ExponentialLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
-    lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.999, "last_epoch": -1})
+    lr_scheduler_gen: str = "StepLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
+    lr_scheduler_gen_params: dict = field(default_factory=lambda: {"gamma": 0.5, "step_size": 200000, "last_epoch": -1})
+    lr_scheduler_disc: str = "StepLR"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html
+    lr_scheduler_disc_params: dict = field(default_factory=lambda: {"gamma": 0.5, "step_size": 200000, "last_epoch": -1})
+    scheduler_after_epoch: bool = False

{"golden_diff": "diff --git a/TTS/vocoder/configs/parallel_wavegan_config.py b/TTS/vocoder/configs/parallel_wavegan_config.py\n--- a/TTS/vocoder/configs/parallel_wavegan_config.py\n+++ b/TTS/vocoder/configs/parallel_wavegan_config.py\n@@ -70,11 +70,11 @@\n         lr_scheduler_gen (torch.optim.Scheduler):\n             Learning rate scheduler for the generator. Defaults to `ExponentialLR`.\n         lr_scheduler_gen_params (dict):\n-            Parameters for the generator learning rate scheduler. Defaults to `{\"gamma\": 0.999, \"last_epoch\": -1}`.\n+            Parameters for the generator learning rate scheduler. Defaults to `{\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1}`.\n         lr_scheduler_disc (torch.optim.Scheduler):\n             Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`.\n         lr_scheduler_dict_params (dict):\n-            Parameters for the discriminator learning rate scheduler. Defaults to `{\"gamma\": 0.999, \"last_epoch\": -1}`.\n+            Parameters for the discriminator learning rate scheduler. Defaults to `{\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1}`.\n     \"\"\"\n \n     model: str = \"parallel_wavegan\"\n@@ -124,7 +124,8 @@\n     lr_disc: float = 0.0002  # Initial learning rate.\n     optimizer: str = \"AdamW\"\n     optimizer_params: dict = field(default_factory=lambda: {\"betas\": [0.8, 0.99], \"weight_decay\": 0.0})\n-    lr_scheduler_gen: str = \"ExponentialLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n-    lr_scheduler_gen_params: dict = field(default_factory=lambda: {\"gamma\": 0.999, \"last_epoch\": -1})\n-    lr_scheduler_disc: str = \"ExponentialLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n-    lr_scheduler_disc_params: dict = field(default_factory=lambda: {\"gamma\": 0.999, \"last_epoch\": -1})\n+    lr_scheduler_gen: str = \"StepLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n+    lr_scheduler_gen_params: dict = field(default_factory=lambda: {\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1})\n+    lr_scheduler_disc: str = \"StepLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n+    lr_scheduler_disc_params: dict = field(default_factory=lambda: {\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1})\n+    scheduler_after_epoch: bool = False\n", "issue": "ParallelWaveGAN config should be adjusted\nHi,\r\n\r\nI have tried training with the current default config and it drops the learning rate too fast and the model converges to generate noise. Because when `scheduler_after_epoch=False`, `ExponentialLR` with `gamma=0.999` will cause the learning rate to reach 0.000 in 10k steps.\r\n\r\nConfig from the original paper are:\r\n ```\r\n    batch_size=8,\r\n    stft_loss_weight=1.0,\r\n    mse_G_loss_weight=4.0,\r\n    steps_to_start_discriminator=100000,\r\n    lr_gen=0.0001,\r\n    lr_disc=0.00005,\r\n    lr_scheduler_gen=\"StepLR\",\r\n    lr_scheduler_gen_params={\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1},\r\n    lr_scheduler_disc=\"StepLR\",\r\n    lr_scheduler_disc_params={\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1},\r\n    scheduler_after_epoch=False,\r\n```\r\n\r\nIt is also possible to use ExponentialLR with some float rounding error:\r\n```\r\n    lr_scheduler_gen=\"ExponentialLR\",  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\r\n    lr_scheduler_gen_params={\"gamma\": 0.5**(1/200000), \"last_epoch\": -1},\r\n    lr_scheduler_disc=\"ExponentialLR\",  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\r\n    lr_scheduler_disc_params={\"gamma\": 0.5**(1/200000), \"last_epoch\": -1},\r\n```\r\n\r\nWith more GPU memory the batch_size can be increased and steps reduced.\n", "before_files": [{"content": "from dataclasses import dataclass, field\n\nfrom .shared_configs import BaseGANVocoderConfig\n\n\n@dataclass\nclass ParallelWaveganConfig(BaseGANVocoderConfig):\n    \"\"\"Defines parameters for ParallelWavegan vocoder.\n\n    Args:\n        model (str):\n            Model name used for selecting the right configuration at initialization. Defaults to `gan`.\n        discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to\n            'parallel_wavegan_discriminator`.\n        discriminator_model_params (dict): The discriminator model kwargs. Defaults to\n            '{\"num_layers\": 10}`\n        generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is\n            considered as a generator too. Defaults to `parallel_wavegan_generator`.\n        generator_model_param (dict):\n            The generator model kwargs. Defaults to `{\"upsample_factors\": [4, 4, 4, 4], \"stacks\": 3, \"num_res_blocks\": 30}`.\n        batch_size (int):\n            Batch size used at training. Larger values use more memory. Defaults to 16.\n        seq_len (int):\n            Audio segment length used at training. Larger values use more memory. Defaults to 8192.\n        pad_short (int):\n            Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0.\n        use_noise_augment (bool):\n            enable / disable random noise added to the input waveform. The noise is added after computing the\n            features. Defaults to True.\n        use_cache (bool):\n            enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is\n            not large enough. Defaults to True.\n        steps_to_start_discriminator (int):\n            Number of steps required to start training the discriminator. Defaults to 0.\n        use_stft_loss (bool):`\n            enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True.\n        use_subband_stft (bool):\n            enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True.\n        use_mse_gan_loss (bool):\n            enable / disable using Mean Squeare Error GAN loss. Defaults to True.\n        use_hinge_gan_loss (bool):\n            enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models.\n            Defaults to False.\n        use_feat_match_loss (bool):\n            enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True.\n        use_l1_spec_loss (bool):\n            enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False.\n        stft_loss_params (dict): STFT loss parameters. Default to\n            `{\"n_ffts\": [1024, 2048, 512], \"hop_lengths\": [120, 240, 50], \"win_lengths\": [600, 1200, 240]}`\n        stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total\n            model loss. Defaults to 0.5.\n        subband_stft_loss_weight (float):\n            Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        mse_G_loss_weight (float):\n            MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5.\n        hinge_G_loss_weight (float):\n            Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        feat_match_loss_weight (float):\n            Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 0.\n        l1_spec_loss_weight (float):\n            L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        lr_gen (float):\n            Generator model initial learning rate. Defaults to 0.0002.\n        lr_disc (float):\n            Discriminator model initial learning rate. Defaults to 0.0002.\n        optimizer (torch.optim.Optimizer):\n            Optimizer used for the training. Defaults to `AdamW`.\n        optimizer_params (dict):\n            Optimizer kwargs. Defaults to `{\"betas\": [0.8, 0.99], \"weight_decay\": 0.0}`\n        lr_scheduler_gen (torch.optim.Scheduler):\n            Learning rate scheduler for the generator. Defaults to `ExponentialLR`.\n        lr_scheduler_gen_params (dict):\n            Parameters for the generator learning rate scheduler. Defaults to `{\"gamma\": 0.999, \"last_epoch\": -1}`.\n        lr_scheduler_disc (torch.optim.Scheduler):\n            Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`.\n        lr_scheduler_dict_params (dict):\n            Parameters for the discriminator learning rate scheduler. Defaults to `{\"gamma\": 0.999, \"last_epoch\": -1}`.\n    \"\"\"\n\n    model: str = \"parallel_wavegan\"\n\n    # Model specific params\n    discriminator_model: str = \"parallel_wavegan_discriminator\"\n    discriminator_model_params: dict = field(default_factory=lambda: {\"num_layers\": 10})\n    generator_model: str = \"parallel_wavegan_generator\"\n    generator_model_params: dict = field(\n        default_factory=lambda: {\"upsample_factors\": [4, 4, 4, 4], \"stacks\": 3, \"num_res_blocks\": 30}\n    )\n\n    # Training - overrides\n    batch_size: int = 6\n    seq_len: int = 25600\n    pad_short: int = 2000\n    use_noise_augment: bool = False\n    use_cache: bool = True\n    steps_to_start_discriminator: int = 200000\n\n    # LOSS PARAMETERS - overrides\n    use_stft_loss: bool = True\n    use_subband_stft_loss: bool = False\n    use_mse_gan_loss: bool = True\n    use_hinge_gan_loss: bool = False\n    use_feat_match_loss: bool = False  # requires MelGAN Discriminators (MelGAN and HifiGAN)\n    use_l1_spec_loss: bool = False\n\n    stft_loss_params: dict = field(\n        default_factory=lambda: {\n            \"n_ffts\": [1024, 2048, 512],\n            \"hop_lengths\": [120, 240, 50],\n            \"win_lengths\": [600, 1200, 240],\n        }\n    )\n\n    # loss weights - overrides\n    stft_loss_weight: float = 0.5\n    subband_stft_loss_weight: float = 0\n    mse_G_loss_weight: float = 2.5\n    hinge_G_loss_weight: float = 0\n    feat_match_loss_weight: float = 0\n    l1_spec_loss_weight: float = 0\n\n    # optimizer overrides\n    lr_gen: float = 0.0002  # Initial learning rate.\n    lr_disc: float = 0.0002  # Initial learning rate.\n    optimizer: str = \"AdamW\"\n    optimizer_params: dict = field(default_factory=lambda: {\"betas\": [0.8, 0.99], \"weight_decay\": 0.0})\n    lr_scheduler_gen: str = \"ExponentialLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n    lr_scheduler_gen_params: dict = field(default_factory=lambda: {\"gamma\": 0.999, \"last_epoch\": -1})\n    lr_scheduler_disc: str = \"ExponentialLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n    lr_scheduler_disc_params: dict = field(default_factory=lambda: {\"gamma\": 0.999, \"last_epoch\": -1})\n", "path": "TTS/vocoder/configs/parallel_wavegan_config.py"}], "after_files": [{"content": "from dataclasses import dataclass, field\n\nfrom .shared_configs import BaseGANVocoderConfig\n\n\n@dataclass\nclass ParallelWaveganConfig(BaseGANVocoderConfig):\n    \"\"\"Defines parameters for ParallelWavegan vocoder.\n\n    Args:\n        model (str):\n            Model name used for selecting the right configuration at initialization. Defaults to `gan`.\n        discriminator_model (str): One of the discriminators from `TTS.vocoder.models.*_discriminator`. Defaults to\n            'parallel_wavegan_discriminator`.\n        discriminator_model_params (dict): The discriminator model kwargs. Defaults to\n            '{\"num_layers\": 10}`\n        generator_model (str): One of the generators from TTS.vocoder.models.*`. Every other non-GAN vocoder model is\n            considered as a generator too. Defaults to `parallel_wavegan_generator`.\n        generator_model_param (dict):\n            The generator model kwargs. Defaults to `{\"upsample_factors\": [4, 4, 4, 4], \"stacks\": 3, \"num_res_blocks\": 30}`.\n        batch_size (int):\n            Batch size used at training. Larger values use more memory. Defaults to 16.\n        seq_len (int):\n            Audio segment length used at training. Larger values use more memory. Defaults to 8192.\n        pad_short (int):\n            Additional padding applied to the audio samples shorter than `seq_len`. Defaults to 0.\n        use_noise_augment (bool):\n            enable / disable random noise added to the input waveform. The noise is added after computing the\n            features. Defaults to True.\n        use_cache (bool):\n            enable / disable in memory caching of the computed features. It can cause OOM error if the system RAM is\n            not large enough. Defaults to True.\n        steps_to_start_discriminator (int):\n            Number of steps required to start training the discriminator. Defaults to 0.\n        use_stft_loss (bool):`\n            enable / disable use of STFT loss originally used by ParallelWaveGAN model. Defaults to True.\n        use_subband_stft (bool):\n            enable / disable use of subband loss computation originally used by MultiBandMelgan model. Defaults to True.\n        use_mse_gan_loss (bool):\n            enable / disable using Mean Squeare Error GAN loss. Defaults to True.\n        use_hinge_gan_loss (bool):\n            enable / disable using Hinge GAN loss. You should choose either Hinge or MSE loss for training GAN models.\n            Defaults to False.\n        use_feat_match_loss (bool):\n            enable / disable using Feature Matching loss originally used by MelGAN model. Defaults to True.\n        use_l1_spec_loss (bool):\n            enable / disable using L1 spectrogram loss originally used by HifiGAN model. Defaults to False.\n        stft_loss_params (dict): STFT loss parameters. Default to\n            `{\"n_ffts\": [1024, 2048, 512], \"hop_lengths\": [120, 240, 50], \"win_lengths\": [600, 1200, 240]}`\n        stft_loss_weight (float): STFT loss weight that multiplies the computed loss before summing up the total\n            model loss. Defaults to 0.5.\n        subband_stft_loss_weight (float):\n            Subband STFT loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        mse_G_loss_weight (float):\n            MSE generator loss weight that multiplies the computed loss before summing up the total loss. faults to 2.5.\n        hinge_G_loss_weight (float):\n            Hinge generator loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        feat_match_loss_weight (float):\n            Feature matching loss weight that multiplies the computed loss before summing up the total loss. faults to 0.\n        l1_spec_loss_weight (float):\n            L1 spectrogram loss weight that multiplies the computed loss before summing up the total loss. Defaults to 0.\n        lr_gen (float):\n            Generator model initial learning rate. Defaults to 0.0002.\n        lr_disc (float):\n            Discriminator model initial learning rate. Defaults to 0.0002.\n        optimizer (torch.optim.Optimizer):\n            Optimizer used for the training. Defaults to `AdamW`.\n        optimizer_params (dict):\n            Optimizer kwargs. Defaults to `{\"betas\": [0.8, 0.99], \"weight_decay\": 0.0}`\n        lr_scheduler_gen (torch.optim.Scheduler):\n            Learning rate scheduler for the generator. Defaults to `ExponentialLR`.\n        lr_scheduler_gen_params (dict):\n            Parameters for the generator learning rate scheduler. Defaults to `{\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1}`.\n        lr_scheduler_disc (torch.optim.Scheduler):\n            Learning rate scheduler for the discriminator. Defaults to `ExponentialLR`.\n        lr_scheduler_dict_params (dict):\n            Parameters for the discriminator learning rate scheduler. Defaults to `{\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1}`.\n    \"\"\"\n\n    model: str = \"parallel_wavegan\"\n\n    # Model specific params\n    discriminator_model: str = \"parallel_wavegan_discriminator\"\n    discriminator_model_params: dict = field(default_factory=lambda: {\"num_layers\": 10})\n    generator_model: str = \"parallel_wavegan_generator\"\n    generator_model_params: dict = field(\n        default_factory=lambda: {\"upsample_factors\": [4, 4, 4, 4], \"stacks\": 3, \"num_res_blocks\": 30}\n    )\n\n    # Training - overrides\n    batch_size: int = 6\n    seq_len: int = 25600\n    pad_short: int = 2000\n    use_noise_augment: bool = False\n    use_cache: bool = True\n    steps_to_start_discriminator: int = 200000\n\n    # LOSS PARAMETERS - overrides\n    use_stft_loss: bool = True\n    use_subband_stft_loss: bool = False\n    use_mse_gan_loss: bool = True\n    use_hinge_gan_loss: bool = False\n    use_feat_match_loss: bool = False  # requires MelGAN Discriminators (MelGAN and HifiGAN)\n    use_l1_spec_loss: bool = False\n\n    stft_loss_params: dict = field(\n        default_factory=lambda: {\n            \"n_ffts\": [1024, 2048, 512],\n            \"hop_lengths\": [120, 240, 50],\n            \"win_lengths\": [600, 1200, 240],\n        }\n    )\n\n    # loss weights - overrides\n    stft_loss_weight: float = 0.5\n    subband_stft_loss_weight: float = 0\n    mse_G_loss_weight: float = 2.5\n    hinge_G_loss_weight: float = 0\n    feat_match_loss_weight: float = 0\n    l1_spec_loss_weight: float = 0\n\n    # optimizer overrides\n    lr_gen: float = 0.0002  # Initial learning rate.\n    lr_disc: float = 0.0002  # Initial learning rate.\n    optimizer: str = \"AdamW\"\n    optimizer_params: dict = field(default_factory=lambda: {\"betas\": [0.8, 0.99], \"weight_decay\": 0.0})\n    lr_scheduler_gen: str = \"StepLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n    lr_scheduler_gen_params: dict = field(default_factory=lambda: {\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1})\n    lr_scheduler_disc: str = \"StepLR\"  # one of the schedulers from https:#pytorch.org/docs/stable/optim.html\n    lr_scheduler_disc_params: dict = field(default_factory=lambda: {\"gamma\": 0.5, \"step_size\": 200000, \"last_epoch\": -1})\n    scheduler_after_epoch: bool = False\n", "path": "TTS/vocoder/configs/parallel_wavegan_config.py"}]}