o
    
j                     @   sL   d dl mZmZ d dlmZ d dlmZ d dlmZ eG dd deZ	dS )    )	dataclassfield)List)BaseTTSConfig)ForwardTTSArgsc                   @   s  e Zd ZU dZdZeed< dZeed< ee	dZ
e	ed< dZeed	< d
Zeed< dZeed< dZeed< dZeed< dZeed< dZeed< edd dZeed< dZeed< edd dZeed< dZeed< dZeed< dZeed< dZeed < d!Zeed"< d#Zeed$< d#Zeed%< d#Z eed&< d'Z!eed(< d'Z"eed)< d'Z#eed*< d+Z$eed,< d-Z%eed.< d/Z&eed0< d1Z'eed2< d!Z(eed3< d
Z)eed4< ed5d dZ*e+e ed6< d7d8 Z,d
S )9FastPitchConfigu  Configure `ForwardTTS` as FastPitch model.

    Example:

        >>> from TTS.tts.configs.fast_pitch_config import FastPitchConfig
        >>> config = FastPitchConfig()

    Args:
        model (str):
            Model name used for selecting the right model at initialization. Defaults to `fast_pitch`.

        base_model (str):
            Name of the base model being configured as this model so that 🐸 TTS knows it needs to initiate
            the base model rather than searching for the `model` implementation. Defaults to `forward_tts`.

        model_args (Coqpit):
            Model class arguments. Check `FastPitchArgs` for more details. Defaults to `FastPitchArgs()`.

        data_dep_init_steps (int):
            Number of steps used for computing normalization parameters at the beginning of the training. GlowTTS uses
            Activation Normalization that pre-computes normalization stats at the beginning and use the same values
            for the rest. Defaults to 10.

        speakers_file (str):
            Path to the file containing the list of speakers. Needed at inference for loading matching speaker ids to
            speaker names. Defaults to `None`.

        use_speaker_embedding (bool):
            enable / disable using speaker embeddings for multi-speaker models. If set True, the model is
            in the multi-speaker mode. Defaults to False.

        use_d_vector_file (bool):
            enable /disable using external speaker embeddings in place of the learned embeddings. Defaults to False.

        d_vector_file (str):
            Path to the file including pre-computed speaker embeddings. Defaults to None.

        d_vector_dim (int):
            Dimension of the external speaker embeddings. Defaults to 0.

        optimizer (str):
            Name of the model optimizer. Defaults to `Adam`.

        optimizer_params (dict):
            Arguments of the model optimizer. Defaults to `{"betas": [0.9, 0.998], "weight_decay": 1e-6}`.

        lr_scheduler (str):
            Name of the learning rate scheduler. Defaults to `Noam`.

        lr_scheduler_params (dict):
            Arguments of the learning rate scheduler. Defaults to `{"warmup_steps": 4000}`.

        lr (float):
            Initial learning rate. Defaults to `1e-3`.

        grad_clip (float):
            Gradient norm clipping value. Defaults to `5.0`.

        spec_loss_type (str):
            Type of the spectrogram loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`.

        duration_loss_type (str):
            Type of the duration loss. Check `ForwardTTSLoss` for possible values. Defaults to `mse`.

        use_ssim_loss (bool):
            Enable/disable the use of SSIM (Structural Similarity) loss. Defaults to True.

        wd (float):
            Weight decay coefficient. Defaults to `1e-7`.

        ssim_loss_alpha (float):
            Weight for the SSIM loss. If set 0, disables the SSIM loss. Defaults to 1.0.

        dur_loss_alpha (float):
            Weight for the duration predictor's loss. If set 0, disables the huber loss. Defaults to 1.0.

        spec_loss_alpha (float):
            Weight for the L1 spectrogram loss. If set 0, disables the L1 loss. Defaults to 1.0.

        pitch_loss_alpha (float):
            Weight for the pitch predictor's loss. If set 0, disables the pitch predictor. Defaults to 1.0.

        binary_align_loss_alpha (float):
            Weight for the binary loss. If set 0, disables the binary loss. Defaults to 1.0.

        binary_loss_warmup_epochs (float):
            Number of epochs to gradually increase the binary loss impact. Defaults to 150.

        min_seq_len (int):
            Minimum input sequence length to be used at training.

        max_seq_len (int):
            Maximum input sequence length to be used at training. Larger values result in more VRAM usage.

        # dataset configs
        compute_f0(bool):
            Compute pitch. defaults to True

        f0_cache_path(str):
            pith cache path. defaults to None
    
fast_pitchmodelforward_tts
base_model)default_factory
model_argsr   num_speakersNspeakers_fileFuse_speaker_embeddinguse_d_vector_filed_vector_filed_vector_dimAdam	optimizerc                   C   s   ddgddS )Ng?gV-?gư>)betasweight_decay r   r   r   T/home/kuhnn/.local/lib/python3.10/site-packages/TTS/tts/configs/fast_pitch_config.py<lambda>   s    zFastPitchConfig.<lambda>optimizer_paramsNoamLRlr_schedulerc                   C   s   ddiS )Nwarmup_stepsi  r   r   r   r   r   r          lr_scheduler_paramsg-C6?lrg      @	grad_clipmsespec_loss_typeduration_loss_typeTuse_ssim_lossg      ?ssim_loss_alphaspec_loss_alphaaligner_loss_alphag?pitch_loss_alphadur_loss_alphabinary_align_loss_alpha   binary_loss_warmup_epochs   min_seq_len   max_seq_len   r
compute_f0f0_cache_pathc                   C   s   g dS )N)zcIt took me quite a long time to develop a voice, and now that I have it I'm not going to be silent.zBe a voice, not an echo.z+I'm sorry Dave. I'm afraid I can't do that.z0This cake is great. It's so delicious and moist.zPrior to November 22, 1963.r   r   r   r   r   r      r   test_sentencesc                 C   sv   | j dkr
| j | j_ | jrd| j_| jr| j| j_| jr d| j_| jd ur/| jdkr/| j| j_| jr9| j| j_d S d S )Nr   T)r   r   r   r   r   r   r   )selfr   r   r   __post_init__   s   



zFastPitchConfig.__post_init__)-__name__
__module____qualname____doc__r	   str__annotations__r   r   r   r   r   intr   r   boolr   r   r   r   r   dictr   r    r!   floatr"   r$   r%   r&   r'   r(   r)   r*   r+   r,   r.   r0   r2   r4   r5   r6   r7   r   r9   r   r   r   r   r      sH   
 f
r   N)
dataclassesr   r   typingr   TTS.tts.configs.shared_configsr   TTS.tts.models.forward_ttsr   r   r   r   r   r   <module>   s    