





from __future__ import annotations

import matplotlib.pyplot as plt  # type: ignore
import numpy

# initial triangle of Koch snowflake
lowerCAmelCase_				= numpy.array([0, 0])
lowerCAmelCase_				= numpy.array([0.5, 0.8_6_6_0_2_5_4])
lowerCAmelCase_				= numpy.array([1, 0])
lowerCAmelCase_				= [VECTOR_1, VECTOR_2, VECTOR_3, VECTOR_1]




def     A_      (	lowercase_   ,		lowercase_	)      ->    Union[str, Any]:
       _snake_case   :				List[Any]  					=    initial_vectors
       for _ in range(__A	):
              _snake_case   :				Optional[Any]  					=    iteration_step(__A	)
       return vectors




def     A_      (	lowercase_	)      ->    Dict:
       _snake_case   :				str  					=    []
       for i, start_vector in enumerate(vectors[:-1]	):
              _snake_case   :				List[str]  					=    vectors[i + 1]
              new_vectors.append(__A	)
              _snake_case   :				Optional[Any]  					=    end_vector - start_vector
              new_vectors.append(start_vector + difference_vector / 3	)
              new_vectors.append(
                  start_vector + difference_vector / 3 + rotate(difference_vector / 3   ,		60	)	)
              new_vectors.append(start_vector + difference_vector * 2 / 3	)
       new_vectors.append(vectors[-1]	)
       return new_vectors




def     A_      (	lowercase_   ,		lowercase_	)      ->    Tuple:
       _snake_case   :				List[str]  					=    numpy.radians(__A	)
       _snake_case   :				str  					=    numpy.cos(__A	), numpy.sin(__A	)
       _snake_case   :				List[Any]  					=    numpy.array(((c, -s), (s, c))	)
       return numpy.dot(__A   ,		__A	)




def     A_      (	lowercase_	)      ->    Union[str, Any]:
       _snake_case   :				str  					=    plt.gca()
       axes.set_aspect('''equal'''	)

       # matplotlib.pyplot.plot takes a list of all x-coordinates and a list of all
       # y-coordinates as inputs, which are constructed from the vector-list using
       # zip()
       _snake_case   :				Any  					=    zip(*__A	)
       plt.plot(__A   ,		__A	)
       plt.show()


if __name__ == "__main__":
   import doctest

   doctest.testmod()

   lowerCAmelCase_				= iterate(INITIAL_VECTORS, 5)
   plot(processed_vectors)














'''simple docstring'''







# Copyright 2023 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ..models.whisper import WhisperForConditionalGeneration, WhisperProcessor
from .base import PipelineTool





class 						SCREAMING_SNAKE_CASE       (       SCREAMING_SNAKE_CASE_							):
			snake_case__	=					"openai/whisper-base"
			snake_case__	=					(
			    "This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the "
			    "transcribed text."
			)
			snake_case__	=					"transcriber"
			snake_case__	=					WhisperProcessor
			snake_case__	=					WhisperForConditionalGeneration

			snake_case__	=					["audio"]
			snake_case__	=					["text"]






			def       SCREAMING_SNAKE_CASE   (			self   :      str	,    __SCREAMING_SNAKE_CASE   :      Tuple       )      ->      str:
							return self.pre_processor(__SCREAMING_SNAKE_CASE	,    return_tensors='''pt'''       ).input_features






			def       SCREAMING_SNAKE_CASE   (			self   :      List[Any]	,    __SCREAMING_SNAKE_CASE   :      Optional[Any]       )      ->      List[str]:
							return self.model.generate(inputs=__SCREAMING_SNAKE_CASE       )







			def       SCREAMING_SNAKE_CASE   (			self   :      Dict	,    __SCREAMING_SNAKE_CASE   :      Optional[int]       )      ->      Optional[Any]:
							return self.pre_processor.batch_decode(__SCREAMING_SNAKE_CASE	,    skip_special_tokens=__SCREAMING_SNAKE_CASE       )[0]




