
    h                        d dl mZ d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ erd dlmZ dd	Zdd
Z eddd       G d de             Zy)    )annotationsN)TYPE_CHECKINGAnyOptional)
deprecated)CallbackManagerForToolRun)BaseTool)get_client_infotexttospeechc                 N    	 ddl m}  | S # t        $ r}t        d      |d }~ww xY w)Nr   r   z`Cannot import google.cloud.texttospeech, please install `pip install google-cloud-texttospeech`.)google.cloudr   ImportError)r   es     q/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/langchain_community/tools/google_cloud/texttospeech.py!_import_google_cloud_texttospeechr      s;    -   7
 	s   
 	$$c           
        t               }|j                  j                  d|j                  j                  d|j                  j                  d|j                  j
                  d|j                  j                  di}|j                  |       S )Nz.wavz.mp3z.ogg)r   AudioEncodingLINEAR16MP3OGG_OPUSMULAWALAWget)encodingr   ENCODING_FILE_EXTENSION_MAPs      r   _encoding_file_extension_mapr      s|    46L 	""++V""&&""++V""((&""''# '**844    z0.0.33z1.0z+langchain_google_community.TextToSpeechTool)sinceremovalalternative_importc                  t     e Zd ZU dZdZded<   dZded<   ded<   d fd	Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd
Z xZ	S )GoogleCloudTextToSpeechToolzTool that queries the Google Cloud Text to Speech API.

    In order to set this up, follow instructions at:
    https://cloud.google.com/text-to-speech/docs/before-you-begin
    google_cloud_texttospeechstrnamezA wrapper around Google Cloud Text-to-Speech. Useful for when you need to synthesize audio from text. It supports multiple languages, including English, German, Polish, Spanish, Italian, French, Portuguese, and Hindi. descriptionr   _clientc                |    t               }t        |   di |  |j                  t	        d            | _        y)zInitializes private fields.ztext-to-speech)module)client_infoN )r   super__init__TextToSpeechClientr
   r(   )selfkwargsr   	__class__s      r   r.   z$GoogleCloudTextToSpeechTool.__init__>   s8    8:"6"6|66'/?@
r   c                   t               }|xs |j                  j                  }|xs |j                  j                  }| j
                  j                   |j                  |       |j                  ||       |j                  |            }t        |      }t        j                  d|d      5 }	|	j                  |j                         ddd       |	j                  S # 1 sw Y   	j                  S xY w)	zUse the tool.)text)language_codessml_gender)audio_encoding)inputvoiceaudio_configbxF)modesuffixdeleteN)r   SsmlVoiceGenderNEUTRALr   r   r(   synthesize_speechSynthesisInputVoiceSelectionParamsAudioConfigr   tempfileNamedTemporaryFilewriteaudio_contentr&   )
r0   
input_textr5   r6   r7   run_managerr   responser=   fs
             r   _runz GoogleCloudTextToSpeechTool._runH   s     9:!I\%A%A%I%I'I<+E+E+I+I<<11-,--:>3,33+ 211P 2 
 .n=((d6%P 	,TUGGH**+	,vv	,vvs   4C$$C8)r1   r   returnNone)zen-USNNN)rI   r%   r5   r%   r6   z&Optional[texttospeech.SsmlVoiceGender]r7   z$Optional[texttospeech.AudioEncoding]rJ   z#Optional[CallbackManagerForToolRun]rN   r%   )
__name__
__module____qualname____doc__r&   __annotations__r'   r.   rM   __classcell__)r2   s   @r   r#   r#   (   s~     ,D#+	<   L
 %>B?C;?  <	
 = 9 
r   r#   )rN   r   )r   ztexttospeech.AudioEncodingrN   zOptional[str])
__future__r   rE   typingr   r   r   langchain_core._api.deprecationr   langchain_core.callbacksr   langchain_core.toolsr	   &langchain_community.utilities.vertexair
   r   r   r   r   r#   r,   r   r   <module>r\      sV    "  / / 6 > ) B)
5 
D
4( 4
4r   