





import math
import sys

def       __A (     a_  :int)						->						Optional[Any]:


				if number != int(__UpperCamelCase):
								raise ValueError('''the value of input must be a natural number''')
				if number < 0:
								raise ValueError('''the value of input must not be a negative number''')
				if number == 0:
								return 1
				__a	:  Any         =					[-1] * (number + 1)
				__a	:  str         =					0
				for i in range(1				,    number + 1):
								__a	:  Optional[int]         =					sys.maxsize
								__a	:  List[str]         =					int(math.sqrt(__UpperCamelCase))
								for j in range(1				,    root + 1):
												__a	:  int         =					1 + answers[i - (j**2)]
												__a	:  Any         =					min(__UpperCamelCase				,    __UpperCamelCase)
								__a	:  Tuple         =					answer
				return answers[number]


if __name__ == "__main__":
		import doctest

		doctest.testmod()






"""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 			__lowercase     (     _UpperCamelCase							):







					'''simple docstring'''




					__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		,     _UpperCAmelCase       ):
									return self.pre_processor(_UpperCAmelCase		,     return_tensors='''pt'''       ).input_features







					def 	_lowerCamelCase						(  self		,     _UpperCAmelCase       ):
									return self.model.generate(inputs=_UpperCAmelCase       )







					def 	_lowerCamelCase						(  self		,     _UpperCAmelCase       ):
									return self.pre_processor.batch_decode(_UpperCAmelCase		,     skip_special_tokens=_UpperCAmelCase       )[0]