



"""simple docstring"""






import warnings
from contextlib import contextmanager

from ...processing_utils import ProcessorMixin






class        __snake_case       (	_lowercase):
  snake_case__				:   List[Any]  			=						"Speech2TextFeatureExtractor"
  snake_case__				:   Union[str, Any]  			=						"Speech2TextTokenizer"




  def __init__( self     :						int						,					__lowerCAmelCase     :						Union[str, Any]						,					__lowerCAmelCase     :						Union[str, Any]		):






         """simple docstring"""






         super().__init__(__lowerCAmelCase						,					__lowerCAmelCase		)
         _lowerCamelCase						:				List[str]    			= self.feature_extractor
         _lowerCamelCase						:				str    			= False




  def __call__( self     :						List[Any]						,					*__lowerCAmelCase     :						int						,					**__lowerCAmelCase     :						List[str]		):






         """simple docstring"""






         if self._in_target_context_manager:
                return self.current_processor(*__lowerCAmelCase						,					**__lowerCAmelCase		)

         if "raw_speech" in kwargs:
                warnings.warn('''Using `raw_speech` as a keyword argument is deprecated. Use `audio` instead.'''		)
                _lowerCamelCase						:				str    			= kwargs.pop('''raw_speech'''		)
         else:
                _lowerCamelCase						:				Tuple    			= kwargs.pop('''audio'''						,					__lowerCAmelCase		)
         _lowerCamelCase						:				Optional[Any]    			= kwargs.pop('''sampling_rate'''						,					__lowerCAmelCase		)
         _lowerCamelCase						:				Union[str, Any]    			= kwargs.pop('''text'''						,					__lowerCAmelCase		)
         if len(__lowerCAmelCase		) > 0:
                _lowerCamelCase						:				List[Any]    			= args[0]
                _lowerCamelCase						:				int    			= args[1:]

         if audio is None and text is None:
                raise ValueError('''You need to specify either an `audio` or `text` input to process.'''		)

         if audio is not None:
                _lowerCamelCase						:				List[Any]    			= self.feature_extractor(__lowerCAmelCase						,					*__lowerCAmelCase						,					sampling_rate=__lowerCAmelCase						,					**__lowerCAmelCase		)
         if text is not None:
                _lowerCamelCase						:				List[Any]    			= self.tokenizer(__lowerCAmelCase						,					**__lowerCAmelCase		)

         if text is None:
                return inputs
         elif audio is None:
                return encodings
         else:
                _lowerCamelCase						:				List[str]    			= encodings['''input_ids''']
                return inputs




  def 						SCREAMING_SNAKE_CASE				( self     :						Any						,					*__lowerCAmelCase     :						List[Any]						,					**__lowerCAmelCase     :						Tuple		):






         """simple docstring"""






         return self.tokenizer.batch_decode(*__lowerCAmelCase						,					**__lowerCAmelCase		)




  def 						SCREAMING_SNAKE_CASE				( self     :						Any						,					*__lowerCAmelCase     :						List[str]						,					**__lowerCAmelCase     :						int		):






         """simple docstring"""






         return self.tokenizer.decode(*__lowerCAmelCase						,					**__lowerCAmelCase		)




  @contextmanager
  def 						SCREAMING_SNAKE_CASE				( self     :						str		):






         """simple docstring"""






         warnings.warn(
             '''`as_target_processor` is deprecated and will be removed in v5 of Transformers. You can process your '''
             '''labels by using the argument `text` of the regular `__call__` method (either in the same call as '''
             '''your audio inputs, or in a separate call.'''		)
         _lowerCamelCase						:				Union[str, Any]    			= True
         _lowerCamelCase						:				Any    			= self.tokenizer
         yield
         _lowerCamelCase						:				List[str]    			= self.feature_extractor
         _lowerCamelCase						:				Tuple    			= False









__UpperCAmelCase       :   int				       =							[
    "Audio",
    "Array2D",
    "Array3D",
    "Array4D",
    "Array5D",
    "ClassLabel",
    "Features",
    "Sequence",
    "Value",
    "Image",
    "Translation",
    "TranslationVariableLanguages",
]
from .audio import Audio
from .features import ArrayaD, ArrayaD, ArrayaD, ArrayaD, ClassLabel, Features, Sequence, Value
from .image import Image
from .translation import Translation, TranslationVariableLanguages






