"""simple docstring"""






import warnings
from contextlib import contextmanager

from ...processing_utils import ProcessorMixin
class     snake_case	(			__UpperCAmelCase    ):




					"""simple docstring"""

					snake_case__       =			"AutoFeatureExtractor"
					snake_case__       =			"Speech2Text2Tokenizer"







					def __init__(    self       :     str   ,lowerCamelCase__       :     Optional[Any]   ,lowerCamelCase__       :     Optional[int]      ):
									super().__init__(lowerCamelCase__   ,lowerCamelCase__      )
									UpperCAmelCase__					=							self.feature_extractor
									UpperCAmelCase__					=							False







					def __call__(    self       :     List[str]   ,*lowerCamelCase__       :     str   ,**lowerCamelCase__       :     List[Any]      ):
									# For backward compatibility
									if self._in_target_context_manager:
													return self.current_processor(*lowerCamelCase__   ,**lowerCamelCase__      )

									if "raw_speech" in kwargs:
													warnings.warn('Using `raw_speech` as a keyword argument is deprecated. Use `audio` instead.'      )
													UpperCAmelCase__					=							kwargs.pop('raw_speech'      )
									else:
													UpperCAmelCase__					=							kwargs.pop('audio'   ,lowerCamelCase__      )
									UpperCAmelCase__					=							kwargs.pop('sampling_rate'   ,lowerCamelCase__      )
									UpperCAmelCase__					=							kwargs.pop('text'   ,lowerCamelCase__      )
									if len(lowerCamelCase__      ) > 0:
													UpperCAmelCase__					=							args[0]
													UpperCAmelCase__					=							args[1:]

									if audio is None and text is None:
													raise ValueError('You need to specify either an `audio` or `text` input to process.'      )

									if audio is not None:
													UpperCAmelCase__					=							self.feature_extractor(lowerCamelCase__   ,*lowerCamelCase__   ,sampling_rate=lowerCamelCase__   ,**lowerCamelCase__      )
									if text is not None:
													UpperCAmelCase__					=							self.tokenizer(lowerCamelCase__   ,**lowerCamelCase__      )

									if text is None:
													return inputs
									elif audio is None:
													return encodings
									else:
													UpperCAmelCase__					=							encodings['input_ids']
													return inputs







					def 		__lowerCAmelCase						(    self       :     Dict   ,*lowerCamelCase__       :     Optional[Any]   ,**lowerCamelCase__       :     Optional[Any]      ):
									return self.tokenizer.batch_decode(*lowerCamelCase__   ,**lowerCamelCase__      )







					def 		__lowerCAmelCase						(    self       :     str   ,*lowerCamelCase__       :     List[Any]   ,**lowerCamelCase__       :     List[str]      ):
									return self.tokenizer.decode(*lowerCamelCase__   ,**lowerCamelCase__      )







					@contextmanager
					def 		__lowerCAmelCase						(    self       :     int      ):
									warnings.warn(
									    '`as_target_processor` is deprecated and will be removed in v5 of Transformers. You can process your '
									    'labels by using the argument `text` of the regular `__call__` method (either in the same call as '
									    'your audio inputs, or in a separate call.'      )
									UpperCAmelCase__					=							True
									UpperCAmelCase__					=							self.tokenizer
									yield
									UpperCAmelCase__					=							self.feature_extractor
									UpperCAmelCase__					=							False




"""simple docstring"""






from sklearn.metrics import accuracy_score

import datasets


lowerCAmelCase__  :  List[str]											=     '\nAccuracy is the proportion of correct predictions among the total number of cases processed. It can be computed with:\nAccuracy = (TP + TN) / (TP + TN + FP + FN)\n Where:\nTP: True positive\nTN: True negative\nFP: False positive\nFN: False negative\n'


lowerCAmelCase__  :  List[str]											=     '\nArgs:\n    predictions (`list` of `int`): Predicted labels.\n    references (`list` of `int`): Ground truth labels.\n    normalize (`boolean`): If set to False, returns the number of correctly classified samples. Otherwise, returns the fraction of correctly classified samples. Defaults to True.\n    sample_weight (`list` of `float`): Sample weights Defaults to None.\n\nReturns:\n    accuracy (`float` or `int`): Accuracy score. Minimum possible value is 0. Maximum possible value is 1.0, or the number of examples input, if `normalize` is set to `True`.. A higher score means higher accuracy.\n\nExamples:\n\n    Example 1-A simple example\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0])\n        >>> print(results)\n        {\'accuracy\': 0.5}\n\n    Example 2-The same as Example 1, except with `normalize` set to `False`.\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], normalize=False)\n        >>> print(results)\n        {\'accuracy\': 3.0}\n\n    Example 3-The same as Example 1, except with `sample_weight` set.\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], sample_weight=[0.5, 2, 0.7, 0.5, 9, 0.4])\n        >>> print(results)\n        {\'accuracy\': 0.8778625954198473}\n'


lowerCAmelCase__  :  Dict											=     '\n@article{scikit-learn,\n  title={Scikit-learn: Machine Learning in {P}ython},\n  author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V.\n         and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P.\n         and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and\n         Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.},\n  journal={Journal of Machine Learning Research},\n  volume={12},\n  pages={2825--2830},\n  year={2011}\n}\n'
@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION				,   _KWARGS_DESCRIPTION    )
class     snake_case	(			datasets.Metric    ):




					"""simple docstring"""

					def 		__lowerCAmelCase						(    self       :     List[Any]      ):
									return datasets.MetricInfo(
									    description=_DESCRIPTION   ,citation=_CITATION   ,inputs_description=_KWARGS_DESCRIPTION   ,features=datasets.Features(
									        {
									            'predictions': datasets.Sequence(datasets.Value('int32'      )      ),
									            'references': datasets.Sequence(datasets.Value('int32'      )      ),
									        }
									        if self.config_name == 'multilabel'
									        else {
									            'predictions': datasets.Value('int32'      ),
									            'references': datasets.Value('int32'      ),
									        }      )   ,reference_urls=['https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html']   ,)







					def 		__lowerCAmelCase						(    self       :     int   ,lowerCamelCase__       :     Any   ,lowerCamelCase__       :     List[str]   ,lowerCamelCase__       :     Dict=True   ,lowerCamelCase__       :     Tuple=None      ):
									return {
									    "accuracy": float(
									        accuracy_score(lowerCamelCase__   ,lowerCamelCase__   ,normalize=lowerCamelCase__   ,sample_weight=lowerCamelCase__      )      )
									}



