



# 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   _A   ( _lowercase	):


						'''simple docstring'''





						_snake_case			:     Dict      							=      """openai/whisper-base"""
						_snake_case			:     Union[str, Any]      							=      (
						    """This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the """
						    """transcribed text."""
						)
						_snake_case			:     Any      							=      """transcriber"""
						_snake_case			:     Any      							=      WhisperProcessor
						_snake_case			:     Optional[int]      							=      WhisperForConditionalGeneration

						_snake_case			:     str      							=      ["""audio"""]
						_snake_case			:     Optional[int]      							=      ["""text"""]



						def     _snake_case	(	self	:							List[str]							,      lowerCamelCase	:							Optional[int]	):






							'''simple docstring'''



							return self.pre_processor(lowerCamelCase							,      return_tensors="pt"	).input_features



						def     _snake_case	(	self	:							str							,      lowerCamelCase	:							List[Any]	):






							'''simple docstring'''



							return self.model.generate(inputs=lowerCamelCase	)



						def     _snake_case	(	self	:							List[str]							,      lowerCamelCase	:							Optional[Any]	):






							'''simple docstring'''



							return self.pre_processor.batch_decode(lowerCamelCase							,      skip_special_tokens=lowerCamelCase	)[0]








import numpy as np

snake_case__					:     Tuple    		=   [
    ["""a""", """b""", """c""", """d""", """e"""],
    ["""f""", """g""", """h""", """i""", """k"""],
    ["""l""", """m""", """n""", """o""", """p"""],
    ["""q""", """r""", """s""", """t""", """u"""],
    ["""v""", """w""", """x""", """y""", """z"""],
]

class   _A   :


						'''simple docstring'''





						def __init__(	self	:							Dict	):






							'''simple docstring'''



							__lowercase		       =			np.array(lowerCamelCase	)



						def     _snake_case	(	self	:							Union[str, Any]							,      lowerCamelCase	:							str	):






							'''simple docstring'''



							__lowercase       ,    __lowercase		       =			np.where(letter == self.SQUARE	)
							__lowercase		       =			np.concatenate([indexa + 1, indexa + 1]	)
							return indexes



						def     _snake_case	(	self	:							List[Any]							,      lowerCamelCase	:							int							,      lowerCamelCase	:							int	):






							'''simple docstring'''



							__lowercase		       =			self.SQUARE[indexa - 1, indexa - 1]
							return letter



						def     _snake_case	(	self	:							int							,      lowerCamelCase	:							str	):






							'''simple docstring'''



							__lowercase		       =			message.lower()
							__lowercase		       =			message.replace(" "							,      ""	)
							__lowercase		       =			message.replace("j"							,      "i"	)

							__lowercase		       =			np.empty((2, len(lowerCamelCase	))	)
							for letter_index in range(len(lowerCamelCase	)	):
								__lowercase		       =			self.letter_to_numbers(message[letter_index]	)

								__lowercase		       =			numbers[0]
								__lowercase		       =			numbers[1]

							__lowercase		       =			first_step.reshape(2 * len(lowerCamelCase	)	)
							__lowercase		       =			""
							for numbers_index in range(len(lowerCamelCase	)	):
								__lowercase		       =			int(second_step[numbers_index * 2]	)
								__lowercase		       =			int(second_step[(numbers_index * 2) + 1]	)
								__lowercase		       =			self.numbers_to_letter(lowerCamelCase							,      lowerCamelCase	)
								__lowercase		       =			encoded_message + letter

							return encoded_message



						def     _snake_case	(	self	:							Optional[Any]							,      lowerCamelCase	:							str	):






							'''simple docstring'''



							__lowercase		       =			message.lower()
							message.replace(" "							,      ""	)
							__lowercase		       =			np.empty(2 * len(lowerCamelCase	)	)
							for letter_index in range(len(lowerCamelCase	)	):
								__lowercase		       =			self.letter_to_numbers(message[letter_index]	)
								__lowercase		       =			numbers[0]
								__lowercase		       =			numbers[1]

							__lowercase		       =			first_step.reshape((2, len(lowerCamelCase	))	)
							__lowercase		       =			""
							for numbers_index in range(len(lowerCamelCase	)	):
								__lowercase		       =			int(second_step[0, numbers_index]	)
								__lowercase		       =			int(second_step[1, numbers_index]	)
								__lowercase		       =			self.numbers_to_letter(lowerCamelCase							,      lowerCamelCase	)
								__lowercase		       =			decoded_message + letter

							return decoded_message



