
import functools
import operator

from ...configuration_utils import PretrainedConfig
from ...utils import logging


_UpperCAmelCase					: Dict      =       logging.get_logger(__name__)

_UpperCAmelCase					: int      =       {
    "microsoft/unispeech-large-1500h-cv": (
        "https://huggingface.co/microsoft/unispeech-large-1500h-cv/resolve/main/config.json"
    ),
    # See all UniSpeech models at https://huggingface.co/models?filter=unispeech
}


class 				lowercase					(		_SCREAMING_SNAKE_CASE   ):
		__lowercase       :       List[Any]	     =				"unispeech"



		def __init__( self				,      A_=32				,      A_=768				,      A_=12				,      A_=12				,      A_=3_072				,      A_="gelu"				,      A_=0.1				,      A_=0.1				,      A_=0.1				,      A_=0.0				,      A_=0.0				,      A_=0.1				,      A_=0.1				,      A_=0.02				,      A_=1e-5				,      A_="group"				,      A_="gelu"				,      A_=(512, 512, 512, 512, 512, 512, 512)				,      A_=(5, 2, 2, 2, 2, 2, 2)				,      A_=(10, 3, 3, 3, 3, 2, 2)				,      A_=False				,      A_=128				,      A_=16				,      A_=False				,      A_=True				,      A_=0.05				,      A_=10				,      A_=2				,      A_=0.0				,      A_=10				,      A_=0				,      A_=320				,      A_=2				,      A_=0.1				,      A_=100				,      A_=256				,      A_=256				,      A_=0.1				,      A_="mean"				,      A_=False				,      A_=False				,      A_=256				,      A_=80				,      A_=0				,      A_=1				,      A_=2				,      A_=0.5				,      **A_				,      )  ->					Optional[Any]:
				"""simple docstring"""
				super().__init__(**A_				,      pad_token_id=A_				,      bos_token_id=A_				,      eos_token_id=A_       )
				UpperCamelCase		=     hidden_size
				UpperCamelCase		=     feat_extract_norm
				UpperCamelCase		=     feat_extract_activation
				UpperCamelCase		=     list(A_       )
				UpperCamelCase		=     list(A_       )
				UpperCamelCase		=     list(A_       )
				UpperCamelCase		=     conv_bias
				UpperCamelCase		=     num_conv_pos_embeddings
				UpperCamelCase		=     num_conv_pos_embedding_groups
				UpperCamelCase		=     len(self.conv_dim       )
				UpperCamelCase		=     num_hidden_layers
				UpperCamelCase		=     intermediate_size
				UpperCamelCase		=     hidden_act
				UpperCamelCase		=     num_attention_heads
				UpperCamelCase		=     hidden_dropout
				UpperCamelCase		=     attention_dropout
				UpperCamelCase		=     activation_dropout
				UpperCamelCase		=     feat_proj_dropout
				UpperCamelCase		=     final_dropout
				UpperCamelCase		=     layerdrop
				UpperCamelCase		=     layer_norm_eps
				UpperCamelCase		=     initializer_range
				UpperCamelCase		=     num_ctc_classes
				UpperCamelCase		=     vocab_size
				UpperCamelCase		=     do_stable_layer_norm
				UpperCamelCase		=     use_weighted_layer_sum
				UpperCamelCase		=     classifier_proj_size

				if (
				    (len(self.conv_stride       ) != self.num_feat_extract_layers)
				    or (len(self.conv_kernel       ) != self.num_feat_extract_layers)
				    or (len(self.conv_dim       ) != self.num_feat_extract_layers)
				):
						raise ValueError(
						    'Configuration for convolutional layers is incorrect. It is required that `len(config.conv_dim)` =='
						    ' `len(config.conv_stride)` == `len(config.conv_kernel)`, but is `len(config.conv_dim) ='
						    F''' {len(self.conv_dim       )}`, `len(config.conv_stride) = {len(self.conv_stride       )}`,'''
						    F''' `len(config.conv_kernel) = {len(self.conv_kernel       )}`.'''       )

				# 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

				# parameters for pretraining with codevector quantized representations
				UpperCamelCase		=     num_codevectors_per_group
				UpperCamelCase		=     num_codevector_groups
				UpperCamelCase		=     contrastive_logits_temperature
				UpperCamelCase		=     feat_quantizer_dropout
				UpperCamelCase		=     num_negatives
				UpperCamelCase		=     codevector_dim
				UpperCamelCase		=     proj_codevector_dim
				UpperCamelCase		=     diversity_loss_weight

				# ctc loss
				UpperCamelCase		=     ctc_loss_reduction
				UpperCamelCase		=     ctc_zero_infinity

				# pretraining loss
				UpperCamelCase		=     replace_prob



		@property
		def __UpperCamelCase ( self       )  ->					List[Any]:
				"""simple docstring"""
				return functools.reduce(operator.mul				,      self.conv_stride				,      1       )


import requests


def       A       (					lowercase    ,       lowercase )   ->  None:
		'''simple docstring'''

		UpperCamelCase		=     {'Content-Type': 'application/json'}
		UpperCamelCase		=     requests.post(lowercase    ,       json={'text': message_body}    ,       headers=lowercase )
		if response.status_code != 200:
				UpperCamelCase		=     (
				    'Request to slack returned an error '
				    f'''{response.status_code}, the response is:\n{response.text}'''
				)
				raise ValueError(lowercase )


if __name__ == "__main__":
					# Set the slack url to the one provided by Slack when you create the webhook at
					# https://my.slack.com/services/new/incoming-webhook/
					send_slack_message("<YOUR MESSAGE BODY>", "<SLACK CHANNEL URL>")
