

from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


UpperCAmelCase_							:					Any		 =   {
    '''configuration_data2vec_audio''': ['''DATA2VEC_AUDIO_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''Data2VecAudioConfig'''],
    '''configuration_data2vec_text''': [
        '''DATA2VEC_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''Data2VecTextConfig''',
        '''Data2VecTextOnnxConfig''',
    ],
    '''configuration_data2vec_vision''': [
        '''DATA2VEC_VISION_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''Data2VecVisionConfig''',
        '''Data2VecVisionOnnxConfig''',
    ],
}

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			UpperCAmelCase_							:					List[str]		 =   [
			    '''DATA2VEC_AUDIO_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''Data2VecAudioForAudioFrameClassification''',
			    '''Data2VecAudioForCTC''',
			    '''Data2VecAudioForSequenceClassification''',
			    '''Data2VecAudioForXVector''',
			    '''Data2VecAudioModel''',
			    '''Data2VecAudioPreTrainedModel''',
			]
			UpperCAmelCase_							:					List[Any]		 =   [
			    '''DATA2VEC_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''Data2VecTextForCausalLM''',
			    '''Data2VecTextForMaskedLM''',
			    '''Data2VecTextForMultipleChoice''',
			    '''Data2VecTextForQuestionAnswering''',
			    '''Data2VecTextForSequenceClassification''',
			    '''Data2VecTextForTokenClassification''',
			    '''Data2VecTextModel''',
			    '''Data2VecTextPreTrainedModel''',
			]
			UpperCAmelCase_							:					List[str]		 =   [
			    '''DATA2VEC_VISION_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''Data2VecVisionForImageClassification''',
			    '''Data2VecVisionForMaskedImageModeling''',
			    '''Data2VecVisionForSemanticSegmentation''',
			    '''Data2VecVisionModel''',
			    '''Data2VecVisionPreTrainedModel''',
			]

if is_tf_available():
			UpperCAmelCase_							:					int		 =   [
			    '''TFData2VecVisionForImageClassification''',
			    '''TFData2VecVisionForSemanticSegmentation''',
			    '''TFData2VecVisionModel''',
			    '''TFData2VecVisionPreTrainedModel''',
			]

if TYPE_CHECKING:
			from .configuration_dataavec_audio import DATA2VEC_AUDIO_PRETRAINED_CONFIG_ARCHIVE_MAP, DataaVecAudioConfig
			from .configuration_dataavec_text import (
			    DATA2VEC_TEXT_PRETRAINED_CONFIG_ARCHIVE_MAP,
			    DataaVecTextConfig,
			    DataaVecTextOnnxConfig,
			)
			from .configuration_dataavec_vision import (
			    DATA2VEC_VISION_PRETRAINED_CONFIG_ARCHIVE_MAP,
			    DataaVecVisionConfig,
			    DataaVecVisionOnnxConfig,
			)

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_dataavec_audio import (
						    DATA2VEC_AUDIO_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DataaVecAudioForAudioFrameClassification,
						    DataaVecAudioForCTC,
						    DataaVecAudioForSequenceClassification,
						    DataaVecAudioForXVector,
						    DataaVecAudioModel,
						    DataaVecAudioPreTrainedModel,
						)
						from .modeling_dataavec_text import (
						    DATA2VEC_TEXT_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DataaVecTextForCausalLM,
						    DataaVecTextForMaskedLM,
						    DataaVecTextForMultipleChoice,
						    DataaVecTextForQuestionAnswering,
						    DataaVecTextForSequenceClassification,
						    DataaVecTextForTokenClassification,
						    DataaVecTextModel,
						    DataaVecTextPreTrainedModel,
						)
						from .modeling_dataavec_vision import (
						    DATA2VEC_VISION_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DataaVecVisionForImageClassification,
						    DataaVecVisionForMaskedImageModeling,
						    DataaVecVisionForSemanticSegmentation,
						    DataaVecVisionModel,
						    DataaVecVisionPreTrainedModel,
						)
			if is_tf_available():
						from .modeling_tf_dataavec_vision import (
						    TFDataaVecVisionForImageClassification,
						    TFDataaVecVisionForSemanticSegmentation,
						    TFDataaVecVisionModel,
						    TFDataaVecVisionPreTrainedModel,
						)

else:
			import sys

			UpperCAmelCase_							:					str		 =   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ..models.whisper import WhisperForConditionalGeneration, WhisperProcessor
from .base import PipelineTool
class       _lowerCAmelCase  (		__magic_name__							):

 """simple docstring"""
 SCREAMING_SNAKE_CASE_				:					Tuple       						="openai/whisper-base"
 SCREAMING_SNAKE_CASE_				:					List[str]       						=(
     "This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the "
     "transcribed text."
 )
 SCREAMING_SNAKE_CASE_				:					int       						="transcriber"
 SCREAMING_SNAKE_CASE_				:					Tuple       						=WhisperProcessor
 SCREAMING_SNAKE_CASE_				:					List[Any]       						=WhisperForConditionalGeneration

 SCREAMING_SNAKE_CASE_				:					Union[str, Any]       						=["audio"]
 SCREAMING_SNAKE_CASE_				:					Any       						=["text"]

 def      __lowerCAmelCase  (						self			:			List[Any]					, SCREAMING_SNAKE_CASE__			:			List[Any]   ):






      """simple docstring"""



      return self.pre_processor(SCREAMING_SNAKE_CASE__					, return_tensors='pt'   ).input_features

 def      __lowerCAmelCase  (						self			:			Tuple					, SCREAMING_SNAKE_CASE__			:			Union[str, Any]   ):






      """simple docstring"""



      return self.model.generate(inputs=SCREAMING_SNAKE_CASE__   )






 def      __lowerCAmelCase  (						self			:			List[str]					, SCREAMING_SNAKE_CASE__			:			List[str]   ):






      """simple docstring"""



      return self.pre_processor.batch_decode(SCREAMING_SNAKE_CASE__					, skip_special_tokens=SCREAMING_SNAKE_CASE__   )[0]


