
"""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

a					:	Tuple							=		logging.get_logger(__name__)

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

# fmt: off
a					:	Any							=		[
    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
]
a					:	Tuple							=		[
    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_						( _UpperCAmelCase	):
    a      :				Optional[Any]     =				'whisper'
    a      :				List[str]     =				['past_key_values']
    a      :				str     =				{'num_attention_heads': 'encoder_attention_heads', 'hidden_size': 'd_model'}







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






        '''simple docstring'''






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

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

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

        _UpperCAmelCase          =   median_filter_width

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







class 		a_						( _UpperCAmelCase	):







    @property
    def      _snake_case					(			self			:       Union[str, Any]     )		->Mapping[str, Mapping[int, str]]:






        '''simple docstring'''






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

        if self.use_past:
            self.fill_with_past_key_values_(__UpperCamelCase     ,					direction="""inputs"""     )

        return common_inputs







    def      _snake_case					(			self			:       Tuple     ,					__UpperCamelCase			:       Union["PreTrainedTokenizerBase", "FeatureExtractionMixin"]     ,					__UpperCamelCase			:       int = -1     ,					__UpperCamelCase			:       int = -1     ,					__UpperCamelCase			:       bool = False     ,					__UpperCamelCase			:       Optional["TensorType"] = None     ,					__UpperCamelCase			:       int = 2_20_50     ,					__UpperCamelCase			:       float = 5.0     ,					__UpperCamelCase			:       int = 2_20     ,					)		->Mapping[str, Any]:






        '''simple docstring'''






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

        _UpperCAmelCase          =   super().generate_dummy_inputs(
            preprocessor.tokenizer     ,					__UpperCamelCase     ,					__UpperCamelCase     ,					__UpperCamelCase     ,					__UpperCamelCase     )

        _UpperCAmelCase          =   encoder_inputs.pop("""input_features"""     )
        _UpperCAmelCase          =   decoder_inputs.pop("""decoder_input_ids"""     )

        if "past_key_values" in decoder_inputs:
            _UpperCAmelCase          =   decoder_inputs.pop("""past_key_values"""     )

        return dummy_inputs







    @property
    def      _snake_case					(			self			:       Union[str, Any]     )		->float:






        '''simple docstring'''






        return 1e-3

"""simple docstring"""



from collections.abc import Callable

import numpy as np


def  _UpperCamelCase	(						_A					,      _A					,      _A					,      _A					,      _A      )    ->  np.array:





    """simple docstring"""

    _UpperCAmelCase          =   int(np.ceil((x_end - xa) / step_size      )      )
    _UpperCAmelCase          =   np.zeros((n + 1,)      )
    _UpperCAmelCase          =   ya
    _UpperCAmelCase          =   xa

    for k in range(_A      ):
        _UpperCAmelCase          =   y[k] + step_size * ode_func(_A					,      y[k]      )
        _UpperCAmelCase          =   y[k] + (
            (step_size / 2) * (ode_func(_A					,      y[k]      ) + ode_func(x + step_size					,      _A      ))
        )
        x += step_size

    return y


if __name__ == "__main__":
 import doctest

 doctest.testmod()