
    Nj                     \   d Z ddlmZ ddlZddlmZmZ  ee      j                  j                  dz  Z	 G d de      Z
 G d d	e
      Z G d
 de
      Z G d de
      Z G d de
      Z G d de
      Z G d de
      Z G d de
      Z G d de
      Z G d de
      Zdeez  defdZy)z3Configuration models for loading YAML config files.    )PathN)	BaseModel
ConfigDictconfigc                       e Zd Z ed      Zy)StrictModelforbid)extraN)__name__
__module____qualname__r   model_config     h/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/pocket_tts/utils/config.pyr   r      s    H-Lr   r   c                   "    e Zd ZU eed<   eed<   y)
FlowConfigdimdepthNr   r   r   int__annotations__r   r   r   r   r      s    	HJr   r   c                   @    e Zd ZU eed<   eed<   eed<   eed<   eed<   y)FlowLMTransformerConfighidden_scale
max_periodd_model	num_heads
num_layersNr   r   r   r   r   r      s    OLNOr   r   c                   6    e Zd ZU eed<   eed<   eed<   eed<   y)LookupTabler   n_bins	tokenizertokenizer_pathN)r   r   r   r   r   strr   r   r   r!   r!      s    	HKNr   r!   c                   \    e Zd ZU dZeed<   eed<   eed<   eed<   dZ	edz  ed<   dZ
eed	<   y)
FlowLMConfigz/Root configuration model for YAML config files.dtypeflowtransformerlookup_tableNweights_pathFinsert_bos_before_voice)r   r   r   __doc__r%   r   r   r   r!   r,   r-   boolr   r   r   r'   r'   &   s9    9J (( #L#*#$)T)r   r'   c                       e Zd ZU eed<   eed<   eed<   eed<   ee   ed<   eed<   eed<   eed<   eed	<   eed
<   eed<   y)SEANetConfig	dimensionchannels	n_filtersn_residual_layersratioskernel_sizeresidual_kernel_sizelast_kernel_sizedilation_basepad_modecompressN)r   r   r   r   r   listr%   r   r   r   r1   r1   6   sC    NMNIMMr   r1   c                   v    e Zd ZU eed<   eed<   eedf   ed<   eed<   eed<   eed<   eed<   d	Zeed
<   eed<   y)MimiTransformerConfigr   input_dimension.output_dimensionsr   r   layer_scalecontextg     @r   dim_feedforwardN)r   r   r   r   r   tuplefloatr   r   r   r   r?   r?   E   s@    LS#X&NOLJr   r?   c                   "    e Zd ZU eed<   eed<   y)QuantizerConfigr2   output_dimensionNr   r   r   r   rH   rH   R   s    Nr   rH   c                       e Zd ZU dZeed<   eed<   eed<   eed<   eed<   e	ed<   e
ed<   d	Zed	z  ed
<   d	Zed	z  ed<   d	Zed	z  ed<   y	)
MimiConfigz4Root configuration model for Mimi YAML config files.r(   sample_rater3   
frame_rateseanetr*   	quantizerNr,   	inner_dim	outer_dim)r   r   r   r.   r%   r   r   rF   r1   r?   rH   r,   rP   rQ   r   r   r   rK   rK   X   s_    >J M  '& #L#*# IsTz  IsTz r   rK   c                   z    e Zd ZU eed<   eed<   dZedz  ed<   dZedz  ed<   dZ	e
ed<   dZe
ed<   dZedz  ed	<   y)
Configflow_lmmimiNr,   "weights_path_without_voice_cloningF pad_with_spaces_for_short_inputsremove_semicolons"model_recommended_frames_after_eos)r   r   r   r'   r   rK   r,   r%   rV   rW   r/   rX   rY   r   r   r   r   rS   rS   o   sP    
#L#*#59&d
9-2$d2#t#59&d
9r   rS   	yaml_pathreturnc           	         t        |       } | j                         s`| j                  t              r<t	        d|  dt        j                  d      D cg c]  }|j                   c}       t	        d|  d      t        | d      5 }t        j                  |      }d d d        t        di S c c}w # 1 sw Y   xY w)NzConfig file not found: z,. Did you make a typo? Available languages: z*.yamlz. Did you make a typo?rr   )r   existsis_relative_toCONFIGS_DIRFileNotFoundErrorglobstemopenyaml	safe_loadrS   )rZ   pfconfig_dicts       r   load_configrj   y   s    YI##K0#)) 5=NYN^N^_gNh=iNhaffNh=i<jl   "9)DZ [\\	i	nnQ' 
  K   >j 
	s   B1B66B?)r.   pathlibr   re   pydanticr   r   __file__parentr`   r   r   r   r!   r'   r1   r?   rH   rK   rS   r%   rj   r   r   r   <module>ro      s    9   *8n##**X5.) .
 k + *; * ; 	K 	k ! !.:[ :!3: !& !r   