from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
  from ...feature_extraction_utils import FeatureExtractionMixin
  from ...tokenization_utils_base import PreTrainedTokenizerBase
  from ...utils import TensorType

__UpperCAmelCase												=logging.get_logger(__name__)

__UpperCAmelCase												={
    'openai/whisper-base': 'https://huggingface.co/openai/whisper-base/resolve/main/config.json',
}

# fmt: off
__UpperCAmelCase												=[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_7, 3_6_6, 4_3_8, 5_3_2, 6_8_5,
    7_0_5, 7_9_6, 9_3_0, 1_0_5_8, 1_2_2_0, 1_2_6_7, 1_2_7_9, 1_3_0_3, 1_3_4_3, 1_3_7_7,
    1_3_9_1, 1_6_3_5, 1_7_8_2, 1_8_7_5, 2_1_6_2, 2_3_6_1, 2_4_8_8, 3_4_6_7, 4_0_0_8, 4_2_1_1,
    4_6_0_0, 4_8_0_8, 5_2_9_9, 5_8_5_5, 6_3_2_9, 7_2_0_3, 9_6_0_9, 9_9_5_9, 1_0_5_6_3, 1_0_7_8_6,
    1_1_4_2_0, 1_1_7_0_9, 1_1_9_0_7, 1_3_1_6_3, 1_3_6_9_7, 1_3_7_0_0, 1_4_8_0_8, 1_5_3_0_6, 1_6_4_1_0, 1_6_7_9_1,
    1_7_9_9_2, 1_9_2_0_3, 1_9_5_1_0, 2_0_7_2_4, 2_2_3_0_5, 2_2_9_3_5, 2_7_0_0_7, 3_0_1_0_9, 3_0_4_2_0, 3_3_4_0_9,
    3_4_9_4_9, 4_0_2_8_3, 4_0_4_9_3, 4_0_5_4_9, 4_7_2_8_2, 4_9_1_4_6, 5_0_2_5_7, 5_0_3_5_9, 5_0_3_6_0, 5_0_3_6_1
]
__UpperCAmelCase												=[
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_9, 5_0_3, 5_2_2, 5_4_2, 8_7_3,
    8_9_3, 9_0_2, 9_1_8, 9_2_2, 9_3_1, 1_3_5_0, 1_8_5_3, 1_9_8_2, 2_4_6_0, 2_6_2_7,
    3_2_4_6, 3_2_5_3, 3_2_6_8, 3_5_3_6, 3_8_4_6, 3_9_6_1, 4_1_8_3, 4_6_6_7, 6_5_8_5, 6_6_4_7,
    7_2_7_3, 9_0_6_1, 9_3_8_3, 1_0_4_2_8, 1_0_9_2_9, 1_1_9_3_8, 1_2_0_3_3, 1_2_3_3_1, 1_2_5_6_2, 1_3_7_9_3,
    1_4_1_5_7, 1_4_6_3_5, 1_5_2_6_5, 1_5_6_1_8, 1_6_5_5_3, 1_6_6_0_4, 1_8_3_6_2, 1_8_9_5_6, 2_0_0_7_5, 2_1_6_7_5,
    2_2_5_2_0, 2_6_1_3_0, 2_6_1_6_1, 2_6_4_3_5, 2_8_2_7_9, 2_9_4_6_4, 3_1_6_5_0, 3_2_3_0_2, 3_2_4_7_0, 3_6_8_6_5,
    4_2_8_6_3, 4_7_4_2_5, 4_9_8_7_0, 5_0_2_5_4, 5_0_2_5_8, 5_0_3_6_0, 5_0_3_6_1, 5_0_3_6_2
]




class    a__				(       _A			):
     lowerCamelCase  :					List[str]							="whisper"
     lowerCamelCase  :					Any							=["past_key_values"]
     lowerCamelCase  :					Tuple							={"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"}






     def __init__(			self		:		Optional[Any]  ,    a		:		Optional[Any]=5_18_65  ,    a		:		Tuple=80  ,    a		:		Optional[Any]=6  ,    a		:		Dict=4  ,    a		:		List[Any]=6  ,    a		:		Tuple=4  ,    a		:		Any=15_36  ,    a		:		Optional[int]=15_36  ,    a		:		Any=0.0  ,    a		:		List[str]=0.0  ,    a		:		List[str]=5_02_57  ,    a		:		Optional[int]=True  ,    a		:		int=True  ,    a		:		List[Any]="gelu"  ,    a		:		List[Any]=2_56  ,    a		:		List[Any]=0.0  ,    a		:		int=0.0  ,    a		:		Any=0.0  ,    a		:		Any=0.02  ,    a		:		Dict=False  ,    a		:		int=15_00  ,    a		:		Optional[Any]=4_48  ,    a		:		Tuple=5_02_56  ,    a		:		Optional[int]=5_02_56  ,    a		:		Any=5_02_56  ,    a		:		Optional[Any]=None  ,    a		:		int=[2_20, 5_02_56]  ,    a		:		Tuple=False  ,    a		:		Dict=2_56  ,    a		:		List[Any]=False  ,    a		:		Optional[Any]=0.05  ,    a		:		List[str]=10  ,    a		:		List[Any]=2  ,    a		:		Union[str, Any]=0.0  ,    a		:		Optional[int]=10  ,    a		:		str=0  ,    a		:		Any=7  ,    **a		:		List[Any]  ,    ):





         """simple docstring"""



         __lowerCamelCase          =  vocab_size
         __lowerCamelCase          =  num_mel_bins
         __lowerCamelCase          =  d_model
         __lowerCamelCase          =  encoder_layers
         __lowerCamelCase          =  encoder_attention_heads
         __lowerCamelCase          =  decoder_layers
         __lowerCamelCase          =  decoder_attention_heads
         __lowerCamelCase          =  decoder_ffn_dim
         __lowerCamelCase          =  encoder_ffn_dim
         __lowerCamelCase          =  dropout
         __lowerCamelCase          =  attention_dropout
         __lowerCamelCase          =  activation_dropout
         __lowerCamelCase          =  activation_function
         __lowerCamelCase          =  init_std
         __lowerCamelCase          =  encoder_layerdrop
         __lowerCamelCase          =  decoder_layerdrop
         __lowerCamelCase          =  use_cache
         __lowerCamelCase          =  encoder_layers
         __lowerCamelCase          =  scale_embedding  # scale factor will be sqrt(d_model) if True
         __lowerCamelCase          =  max_source_positions
         __lowerCamelCase          =  max_target_positions

         # Audio Classification-specific parameters. Feel free to ignore for other classes.
         __lowerCamelCase          =  classifier_proj_size
         __lowerCamelCase          =  use_weighted_layer_sum

         # fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
         __lowerCamelCase          =  apply_spec_augment
         __lowerCamelCase          =  mask_time_prob
         __lowerCamelCase          =  mask_time_length
         __lowerCamelCase          =  mask_time_min_masks
         __lowerCamelCase          =  mask_feature_prob
         __lowerCamelCase          =  mask_feature_length
         __lowerCamelCase          =  mask_feature_min_masks

         __lowerCamelCase          =  median_filter_width

         super().__init__(
             pad_token_id=__SCREAMING_SNAKE_CASE  ,    bos_token_id=__SCREAMING_SNAKE_CASE  ,    eos_token_id=__SCREAMING_SNAKE_CASE  ,    is_encoder_decoder=__SCREAMING_SNAKE_CASE  ,    decoder_start_token_id=__SCREAMING_SNAKE_CASE  ,    suppress_tokens=__SCREAMING_SNAKE_CASE  ,    begin_suppress_tokens=__SCREAMING_SNAKE_CASE  ,    **__SCREAMING_SNAKE_CASE  ,    )




class    a__				(       _A			):






     @property
     def        SCREAMING_SNAKE_CASE__       (			self		:		Union[str, Any]   ):





         """simple docstring"""



         __lowerCamelCase          =  OrderedDict(
             [
                 ('''input_features''', {0: '''batch''', 1: '''feature_size''', 2: '''encoder_sequence'''}),
             ]   )
         if self.use_past:
             __lowerCamelCase          =  {0: '''batch'''}
         else:
             __lowerCamelCase          =  {0: '''batch''', 1: '''decoder_sequence'''}

         if self.use_past:
             self.fill_with_past_key_values_(__SCREAMING_SNAKE_CASE  ,    direction='''inputs'''   )

         return common_inputs






     def        SCREAMING_SNAKE_CASE__       (			self		:		List[Any]  ,    a		:		Union["PreTrainedTokenizerBase", "FeatureExtractionMixin"]  ,    a		:		int = -1  ,    a		:		int = -1  ,    a		:		bool = False  ,    a		:		Optional["TensorType"] = None  ,    a		:		int = 2_20_50  ,    a		:		float = 5.0  ,    a		:		int = 2_20  ,    ):





         """simple docstring"""



         __lowerCamelCase          =  OrderedDict()
         __lowerCamelCase          =  OnnxConfig.generate_dummy_inputs(
             self  ,    preprocessor=preprocessor.feature_extractor  ,    batch_size=__SCREAMING_SNAKE_CASE  ,    framework=__SCREAMING_SNAKE_CASE  ,    sampling_rate=__SCREAMING_SNAKE_CASE  ,    time_duration=__SCREAMING_SNAKE_CASE  ,    frequency=__SCREAMING_SNAKE_CASE  ,    )
         __lowerCamelCase          =  encoder_inputs['''input_features'''].shape[2]
         __lowerCamelCase          =  encoder_sequence_length // 2 if self.use_past else seq_length

         __lowerCamelCase          =  super().generate_dummy_inputs(
             preprocessor.tokenizer  ,    __SCREAMING_SNAKE_CASE  ,    __SCREAMING_SNAKE_CASE  ,    __SCREAMING_SNAKE_CASE  ,    __SCREAMING_SNAKE_CASE   )

         __lowerCamelCase          =  encoder_inputs.pop('''input_features'''   )
         __lowerCamelCase          =  decoder_inputs.pop('''decoder_input_ids'''   )

         if "past_key_values" in decoder_inputs:
             __lowerCamelCase          =  decoder_inputs.pop('''past_key_values'''   )

         return dummy_inputs






     @property
     def        SCREAMING_SNAKE_CASE__       (			self		:		str   ):





         """simple docstring"""



         return 1e-3

'''simple docstring'''




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


__UpperCAmelCase												={
    "configuration_whisper": ["WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP", "WhisperConfig", "WhisperOnnxConfig"],
    "feature_extraction_whisper": ["WhisperFeatureExtractor"],
    "processing_whisper": ["WhisperProcessor"],
    "tokenization_whisper": ["WhisperTokenizer"],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase												=["WhisperTokenizerFast"]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase												=[
      "WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "WhisperForConditionalGeneration",
      "WhisperModel",
      "WhisperPreTrainedModel",
      "WhisperForAudioClassification",
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase												=[
      "TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TFWhisperForConditionalGeneration",
      "TFWhisperModel",
      "TFWhisperPreTrainedModel",
  ]

try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __UpperCAmelCase												=[
      "FlaxWhisperForConditionalGeneration",
      "FlaxWhisperModel",
      "FlaxWhisperPreTrainedModel",
      "FlaxWhisperForAudioClassification",
  ]


if TYPE_CHECKING:
  from .configuration_whisper import WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP, WhisperConfig, WhisperOnnxConfig
  from .feature_extraction_whisper import WhisperFeatureExtractor
  from .processing_whisper import WhisperProcessor
  from .tokenization_whisper import WhisperTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_whisper_fast import WhisperTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_whisper import (
        WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
        WhisperForAudioClassification,
        WhisperForConditionalGeneration,
        WhisperModel,
        WhisperPreTrainedModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_whisper import (
        TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFWhisperForConditionalGeneration,
        TFWhisperModel,
        TFWhisperPreTrainedModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_whisper import (
        FlaxWhisperForAudioClassification,
        FlaxWhisperForConditionalGeneration,
        FlaxWhisperModel,
        FlaxWhisperPreTrainedModel,
    )

else:
  import sys

  __UpperCAmelCase												=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)
