
'''simple docstring'''







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

_lowercase			:  Dict   							=	logging.get_logger(__name__)

_lowercase			:  Optional[Any]   							=	{
    "openai/whisper-base": "https://huggingface.co/openai/whisper-base/resolve/main/config.json",
}

# fmt: off
_lowercase			:  Optional[int]   							=	[
    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
]
_lowercase			:  Optional[int]   							=	[
    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 			lowerCAmelCase__       (  lowerCamelCase_					):
					lowerCAmelCase_					       =					'''whisper'''
					lowerCAmelCase_					       =					['''past_key_values''']
					lowerCAmelCase_					       =					{'''num_attention_heads''': '''encoder_attention_heads''', '''hidden_size''': '''d_model'''}






					def __init__(       self    ,							__SCREAMING_SNAKE_CASE=5_18_65    ,							__SCREAMING_SNAKE_CASE=80    ,							__SCREAMING_SNAKE_CASE=6    ,							__SCREAMING_SNAKE_CASE=4    ,							__SCREAMING_SNAKE_CASE=6    ,							__SCREAMING_SNAKE_CASE=4    ,							__SCREAMING_SNAKE_CASE=15_36    ,							__SCREAMING_SNAKE_CASE=15_36    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=5_02_57    ,							__SCREAMING_SNAKE_CASE=True    ,							__SCREAMING_SNAKE_CASE=True    ,							__SCREAMING_SNAKE_CASE="gelu"    ,							__SCREAMING_SNAKE_CASE=2_56    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=0.02    ,							__SCREAMING_SNAKE_CASE=False    ,							__SCREAMING_SNAKE_CASE=15_00    ,							__SCREAMING_SNAKE_CASE=4_48    ,							__SCREAMING_SNAKE_CASE=5_02_56    ,							__SCREAMING_SNAKE_CASE=5_02_56    ,							__SCREAMING_SNAKE_CASE=5_02_56    ,							__SCREAMING_SNAKE_CASE=None    ,							__SCREAMING_SNAKE_CASE=[2_20, 5_02_56]    ,							__SCREAMING_SNAKE_CASE=False    ,							__SCREAMING_SNAKE_CASE=2_56    ,							__SCREAMING_SNAKE_CASE=False    ,							__SCREAMING_SNAKE_CASE=0.05    ,							__SCREAMING_SNAKE_CASE=10    ,							__SCREAMING_SNAKE_CASE=2    ,							__SCREAMING_SNAKE_CASE=0.0    ,							__SCREAMING_SNAKE_CASE=10    ,							__SCREAMING_SNAKE_CASE=0    ,							__SCREAMING_SNAKE_CASE=7    ,							**__SCREAMING_SNAKE_CASE    ,							):


											"""simple docstring"""





											lowercase_     :					List[Any]													=	vocab_size
											lowercase_     :					Union[str, Any]													=	num_mel_bins
											lowercase_     :					Union[str, Any]													=	d_model
											lowercase_     :					Dict													=	encoder_layers
											lowercase_     :					Any													=	encoder_attention_heads
											lowercase_     :					int													=	decoder_layers
											lowercase_     :					Any													=	decoder_attention_heads
											lowercase_     :					Dict													=	decoder_ffn_dim
											lowercase_     :					Optional[int]													=	encoder_ffn_dim
											lowercase_     :					Any													=	dropout
											lowercase_     :					List[str]													=	attention_dropout
											lowercase_     :					List[str]													=	activation_dropout
											lowercase_     :					Union[str, Any]													=	activation_function
											lowercase_     :					Any													=	init_std
											lowercase_     :					Optional[int]													=	encoder_layerdrop
											lowercase_     :					Union[str, Any]													=	decoder_layerdrop
											lowercase_     :					List[str]													=	use_cache
											lowercase_     :					List[Any]													=	encoder_layers
											lowercase_     :					Any													=	scale_embedding  # scale factor will be sqrt(d_model) if True
											lowercase_     :					List[str]													=	max_source_positions
											lowercase_     :					Dict													=	max_target_positions

											# Audio Classification-specific parameters. Feel free to ignore for other classes.
											lowercase_     :					List[str]													=	classifier_proj_size
											lowercase_     :					Union[str, Any]													=	use_weighted_layer_sum

											# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
											lowercase_     :					Dict													=	apply_spec_augment
											lowercase_     :					str													=	mask_time_prob
											lowercase_     :					List[str]													=	mask_time_length
											lowercase_     :					Union[str, Any]													=	mask_time_min_masks
											lowercase_     :					int													=	mask_feature_prob
											lowercase_     :					Any													=	mask_feature_length
											lowercase_     :					int													=	mask_feature_min_masks

											lowercase_     :					List[Any]													=	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 			lowerCAmelCase__       (  lowerCamelCase_					):






					@property
					def      _snake_case   (       self		):


											"""simple docstring"""





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

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

											return common_inputs






					def      _snake_case   (       self    ,							__SCREAMING_SNAKE_CASE    ,							__SCREAMING_SNAKE_CASE = -1    ,							__SCREAMING_SNAKE_CASE = -1    ,							__SCREAMING_SNAKE_CASE = False    ,							__SCREAMING_SNAKE_CASE = None    ,							__SCREAMING_SNAKE_CASE = 2_20_50    ,							__SCREAMING_SNAKE_CASE = 5.0    ,							__SCREAMING_SNAKE_CASE = 2_20    ,							):


											"""simple docstring"""





											lowercase_     :					List[Any]													=	OrderedDict()
											lowercase_     :					List[Any]													=	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    ,							)
											lowercase_     :					Union[str, Any]													=	encoder_inputs['''input_features'''].shape[2]
											lowercase_     :					List[str]													=	encoder_sequence_length // 2 if self.use_past else seq_length

											lowercase_     :					str													=	super().generate_dummy_inputs(
											    preprocessor.tokenizer    ,							__SCREAMING_SNAKE_CASE    ,							__SCREAMING_SNAKE_CASE    ,							__SCREAMING_SNAKE_CASE    ,							__SCREAMING_SNAKE_CASE		)

											lowercase_     :					List[Any]													=	encoder_inputs.pop('''input_features'''		)
											lowercase_     :					Optional[int]													=	decoder_inputs.pop('''decoder_input_ids'''		)

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

											return dummy_inputs






					@property
					def      _snake_case   (       self		):


											"""simple docstring"""





											return 1E-3





'''simple docstring'''







from typing import Optional
from urllib.parse import quote

import huggingface_hub as hfh
from packaging import version
def  snake_case_		(    __SCREAMING_SNAKE_CASE :			str				,				__SCREAMING_SNAKE_CASE :			str				,				__SCREAMING_SNAKE_CASE :			Optional[str] = None							):



						"""simple docstring"""





						if version.parse(hfh.__version__							).release < version.parse('''0.11.0'''							).release:
												# old versions of hfh don't url-encode the file path
												lowercase_     :					int													=	quote(__SCREAMING_SNAKE_CASE							)
						return hfh.hf_hub_url(__SCREAMING_SNAKE_CASE				,				__SCREAMING_SNAKE_CASE				,				repo_type='''dataset'''				,				revision=__SCREAMING_SNAKE_CASE							)



