



'''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 							a__( snake_case__     ):
			a_	: List[Any]									=      '''openai/whisper-base'''
			a_	: Optional[int]									=      (
			    '''This is a tool that transcribes an audio into text. It takes an input named `audio` and returns the '''
			    '''transcribed text.'''
			)
			a_	: int									=      '''transcriber'''
			a_	: str									=      WhisperProcessor
			a_	: List[str]									=      WhisperForConditionalGeneration

			a_	: Any									=      ['''audio''']
			a_	: str									=      ['''text''']






			def 						_lowercase  (     self					,   _UpperCAmelCase						)							->							List[str]:
					return self.pre_processor(_UpperCAmelCase					,   return_tensors='pt'						).input_features






			def 						_lowercase  (     self					,   _UpperCAmelCase						)							->							Optional[Any]:
					return self.model.generate(inputs=_UpperCAmelCase						)






			def 						_lowercase  (     self					,   _UpperCAmelCase						)							->							Dict:
					return self.pre_processor.batch_decode(_UpperCAmelCase					,   skip_special_tokens=_UpperCAmelCase						)[0]









'''simple docstring'''

from __future__ import annotations






def 				a  (     UpperCamelCase_    :    list[int]      ,					UpperCamelCase_    :    list[int]      ,					UpperCamelCase_    :    int			)       ->	tuple[float, list[float]]:
		snake_case__	     =list(range(len(UpperCamelCase_			)			)			)
		snake_case__	     =[v / w for v, w in zip(UpperCamelCase_      ,					UpperCamelCase_			)]
		index.sort(key=lambda UpperCamelCase_			: ratio[i]      ,					reverse=UpperCamelCase_			)

		snake_case__	     =0
		snake_case__	     =[0] * len(UpperCamelCase_			)
		for i in index:
				if weight[i] <= capacity:
						snake_case__	     =1
						max_value += value[i]
						capacity -= weight[i]
				else:
						snake_case__	     =capacity / weight[i]
						max_value += value[i] * capacity / weight[i]
						break

		return max_value, fractions


if __name__ == "__main__":
			import doctest

			doctest.testmod()




