
    sg                     *    d Z ddlmZ  G d de      Zy)z
Processor class for CLVP
   )ProcessorMixinc                   D     e Zd ZdZdZdZg dZ fdZd Zd Z	d Z
 xZS )	ClvpProcessoras  
    Constructs a CLVP processor which wraps a CLVP Feature Extractor and a CLVP Tokenizer into a single processor.

    [`ClvpProcessor`] offers all the functionalities of [`ClvpFeatureExtractor`] and [`ClvpTokenizer`]. See the
    [`~ClvpProcessor.__call__`], [`~ClvpProcessor.decode`] and [`~ClvpProcessor.batch_decode`] for more information.

    Args:
        feature_extractor (`ClvpFeatureExtractor`):
            An instance of [`ClvpFeatureExtractor`]. The feature extractor is a required input.
        tokenizer (`ClvpTokenizer`):
            An instance of [`ClvpTokenizer`]. The tokenizer is a required input.
    ClvpFeatureExtractorClvpTokenizer)	input_idsinput_featuresattention_maskc                 &    t         |   ||       y )N)super__init__)selffeature_extractor	tokenizer	__class__s      [/var/www/html/venv/lib/python3.12/site-packages/transformers/models/clvp/processing_clvp.pyr   zClvpProcessor.__init__-   s    *I6    c                    |j                  dd      }|j                  dd      }|j                  dd      }||t        d      | | j                  |fd|i|}| | j                  |fi |}|S |S d   d<   |d   |d<   |S )z
        Forwards the `audio` and `sampling_rate` arguments to [`~ClvpFeatureExtractor.__call__`] and the `text`
        argument to [`~ClvpTokenizer.__call__`]. Please refer to the doctsring of the above two methods for more
        information.
        
raw_speechNsampling_ratetextzFYou need to specify either an `raw_speech` or `text` input to process.r   r
   )pop
ValueErrorr   r   )r   argskwargsr   r   r   inputs	encodingss           r   __call__zClvpProcessor.__call__0   s     ZZd3


?D9zz&$'$,eff!+T++J^m^W]^F&t6v6I<M"+K"8F;'01A'BF#$Mr   c                 :     | j                   j                  |i |S )z
        This method forwards all its arguments to ClvpTokenizer's [`~PreTrainedTokenizer.batch_decode`]. Please
        refer to the docstring of this method for more information.
        )r   batch_decoder   r   r   s      r   r    zClvpProcessor.batch_decodeM   s     
 +t~~**D;F;;r   c                 :     | j                   j                  |i |S )z
        This method forwards all its arguments to ClvpTokenizer's [`~PreTrainedTokenizer.decode`]. Please refer to
        the docstring of this method for more information.
        )r   decoder!   s      r   r#   zClvpProcessor.decodeU   s     
 %t~~$$d5f55r   )__name__
__module____qualname____doc__feature_extractor_classtokenizer_classmodel_input_namesr   r   r    r#   __classcell__)r   s   @r   r   r      s1     5%O7:<6r   r   N)r'   processing_utilsr   r    r   r   <module>r.      s     /C6N C6r   