
    ;3h
                     l    d Z ddlZddlZddlmZ e G d d             Z G d dej                        Zy)zData models for edge-tts.    N)	dataclassc            	       d    e Zd ZU dZeed<   eed<   eed<   eed<   edededed	efd
       ZddZy)	TTSConfigzU
    Represents the internal TTS configuration for edge-tts's Communicate class.
    voiceratevolumepitch
param_nameparam_valuepatternreturnc                     t        |t              st        |  d      t        j                  ||      t        d|  d| d      |S )aZ  
        Validates the given string parameter based on type and pattern.

        Args:
            param_name (str): The name of the parameter.
            param_value (str): The value of the parameter.
            pattern (str): The pattern to validate the parameter against.

        Returns:
            str: The validated parameter.
        z must be strzInvalid z 'z'.)
isinstancestr	TypeErrorrematch
ValueError)r
   r   r   s      U/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/edge_tts/data_classes.pyvalidate_string_paramzTTSConfig.validate_string_param   sQ     +s+zl,78888G[)1x
|2k]"EFF    Nc                    t        | j                  t              st        d      t	        j
                  d| j                        }||j                  d      }|j                  d      }|j                  d      }|j                  d      dk7  r1|dz   |d|j                  d       z   }||j                  d      dz   d }d	d
| d| d| dz   | _        | j                  d| j                  d       | j                  d| j                  d       | j                  d| j                  d       | j                  d| j                  d       y)zF
        Validates the TTSConfig object after initialization.
        zvoice must be strz$^([a-z]{2,})-([A-Z]{2,})-(.+Neural)$N         -z,Microsoft Server Speech Text to Speech Voicez (z, )r   z8^Microsoft Server Speech Text to Speech Voice \(.+,.+\)$r   z
^[+-]\d+%$r   r	   z^[+-]\d+Hz$)r   r   r   r   r   r   groupfindr   r   r   r	   )selfr   langregionnames        r   __post_init__zTTSConfig.__post_init__(   s0    $**c*/00@$**M;;q>D[[^F;;q>Dyy~##-=tyy~(>>DIIcNQ.01>tfAfXRvQ/0 J 	""JJG	

 	""6499mD""8T[[-H""7DJJGr   )r   N)	__name__
__module____qualname____doc__r   __annotations__staticmethodr   r%    r   r   r   r   
   sR     J
IKJ# C # RU  $!Hr   r   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<   eed	<   eed
<   eed<   eed<   y)UtilArgszCLI arguments.textfiler   list_voicesr   r   r	   words_in_cuewrite_mediawrite_subtitlesproxyN)r&   r'   r(   r)   r   r*   boolintr,   r   r   r.   r.   L   s@    
I
IJ
IKJJr   r.   )r)   argparser   dataclassesr   r   	Namespacer.   r,   r   r   <module>r;      sB      	 ! >H >H >HBx!! r   