





# 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 			UpperCamelCase_		(  _lowerCamelCase					):
					lowerCAmelCase_							=	'''openai/whisper-base'''
					lowerCAmelCase_							=	(
					    '''This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the '''
					    '''transcribed text.'''
					)
					lowerCAmelCase_							=	'''transcriber'''
					lowerCAmelCase_							=	WhisperProcessor
					lowerCAmelCase_							=	WhisperForConditionalGeneration

					lowerCAmelCase_							=	['''audio''']
					lowerCAmelCase_							=	['''text''']




					def 	lowerCAmelCase			(		self				,						lowerCAmelCase_  )		->							Union[str, Any]:
										return self.pre_processor(lowerCAmelCase_				,						return_tensors='pt'  ).input_features




					def 	lowerCAmelCase			(		self				,						lowerCAmelCase_  )		->							List[Any]:
										return self.model.generate(inputs=lowerCAmelCase_  )






					def 	lowerCAmelCase			(		self				,						lowerCAmelCase_  )		->							List[Any]:
										return self.pre_processor.batch_decode(lowerCAmelCase_				,						skip_special_tokens=lowerCAmelCase_  )[0]










from cva import destroyAllWindows, imread, imshow, waitKey





def 						lowerCamelCase__     (     UpperCamelCase__			:       Optional[int]						)			-> Optional[int]:



					'''simple docstring'''




					_snake_case							,     _snake_case									=				img.shape[0], img.shape[1]

					# converting each pixel's color to its negative
					for i in range(UpperCamelCase__						):
										for j in range(UpperCamelCase__						):
															_snake_case									=				[255, 255, 255] - img[i][j]

					return img


if __name__ == "__main__":
					# read original image
					UpperCAmelCase_      							=     imread("""image_data/lena.jpg""", 1)

					# convert to its negative
					UpperCAmelCase_      							=     convert_to_negative(img)

					# show result image
					imshow("""negative of original image""", img)
					waitKey(0)
					destroyAllWindows()



