
    Sܶi
                         d Z ddlZddlZddlmZ ddlmZ e G d d                      Z G d dej                  Z	dS )	zData models for edge-tts.    N)	dataclass)Literalc            	           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d
edefd            ZddZ	dS )	TTSConfigzU
    Represents the internal TTS configuration for edge-tts's Communicate class.
    voiceratevolumepitch)WordBoundarySentenceBoundaryboundary
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 strNzInvalid z 'z'.)
isinstancestr	TypeErrorrematch
ValueError)r   r   r   s      X/root/projects/openclaw-proxy/venv/lib/python3.11/site-packages/edge_tts/data_classes.pyvalidate_string_paramzTTSConfig.validate_string_param   sg     +s++ 	9z7778888G[))1E
EEkEEEFFF    Nc                    t          | j        t                    st          d          t	          j        d| j                  }||                    d          }|                    d          }|                    d          }|                    d          dk    rB| d|d|                    d                    }||                    d          dz   d         }d	d
| d| d| dz   | _        |                     d| j        d           |                     d| j	        d           |                     d| j
        d           |                     d| j        d           dS )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__+   sp    $*c** 	1/000@$*MM;;q>>D[[^^F;;q>>Dyy~~##"<<T/499S>>/%:<<DIIcNNQ.001>/t//f/////0 J 	""JG	
 	
 	

 	""649mDDD""8T[-HHH""7DJGGGGGr   )r   N)
__name__
__module____qualname____doc__r   __annotations__r   staticmethodr   r)    r   r   r   r      s           JJJ
IIIKKKJJJ89999# C # RU    \$!H !H !H !H !H !Hr   r   c                   x    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<   dS )UtilArgszCLI arguments.textfiler   list_voicesr   r	   r
   write_mediawrite_subtitlesproxyN)r*   r+   r,   r-   r   r.   boolr0   r   r   r2   r2   O   sy         
III
IIIJJJ
IIIKKKJJJJJJJJr   r2   )
r-   argparser   dataclassesr   typing_extensionsr   r   	Namespacer2   r0   r   r   <module>r>      s       				 ! ! ! ! ! ! % % % % % % ?H ?H ?H ?H ?H ?H ?H ?HD    x!     r   