
    Ngn                        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dS )    )annotationsN)TYPE_CHECKINGAnyOptional)
deprecated)CallbackManagerForToolRun)BaseTool)get_client_infotexttospeechreturnr   c                 Z    	 ddl m}  n"# t          $ r}t          d          |d }~ww xY w| S )Nr   r   z`Cannot import google.cloud.texttospeech, please install `pip install google-cloud-texttospeech`.)google.cloudr   ImportError)r   es     o/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/tools/google_cloud/texttospeech.py!_import_google_cloud_texttospeechr      s_    -------   7
 
 	
 s   	 
(#(encodingtexttospeech.AudioEncodingOptional[str]c           
         t                      }|j        j        d|j        j        d|j        j        d|j        j        d|j        j        di}|                    |           S )Nz.wavz.mp3z.ogg)r   AudioEncodingLINEAR16MP3OGG_OPUSMULAWALAWget)r   r   ENCODING_FILE_EXTENSION_MAPs      r   _encoding_file_extension_mapr       sd    466L 	"+V"&"+V"(&"'# '**8444    z0.0.33z1.0z+langchain_google_community.TextToSpeechTool)sinceremovalalternative_importc                  ^     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   _clientkwargsr   Nonec                    t                      } t                      j        di |  |j        t	          d                    | _        dS )zInitializes private fields.ztext-to-speech)module)client_infoN )r   super__init__TextToSpeechClientr
   r+   )selfr,   r   	__class__s      r   r3   z$GoogleCloudTextToSpeechTool.__init__>   sY    8::""6"""6|6'/?@@@
 
 
r!   en-USN
input_textlanguage_codessml_gender&Optional[texttospeech.SsmlVoiceGender]audio_encoding$Optional[texttospeech.AudioEncoding]run_manager#Optional[CallbackManagerForToolRun]c                   t                      }|p|j        j        }|p|j        j        }| j                             |j        |           |j        ||           |j	        |                    }t          |          }t          j        d|d          5 }	|	                    |j                   ddd           n# 1 swxY w Y   |	j        S )	zUse the tool.)text)r9   r:   )r<   )inputvoiceaudio_configbxF)modesuffixdeleteN)r   SsmlVoiceGenderNEUTRALr   r   r+   synthesize_speechSynthesisInputVoiceSelectionParamsAudioConfigr    tempfileNamedTemporaryFilewriteaudio_contentr)   )
r5   r8   r9   r:   r<   r>   r   responserG   fs
             r   _runz GoogleCloudTextToSpeechTool._runH   s%    9::!I\%A%I'I<+E+I<11-,-:>>>3,3+   21PPP 2 
 
 .n==(d6%PPP 	,TUGGH*+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,vs   CC
C)r,   r   r   r-   )r7   NNN)r8   r(   r9   r(   r:   r;   r<   r=   r>   r?   r   r(   )
__name__
__module____qualname____doc__r)   __annotations__r*   r3   rU   __classcell__)r6   s   @r   r&   r&   (   s           ,D++++	<      LLL
 
 
 
 
 
 %>B?C;?        r!   r&   )r   r   )r   r   r   r   )
__future__r   rO   typingr   r   r   langchain_core._api.deprecationr   langchain_core.callbacksr   langchain_core.toolsr	   &langchain_community.utilities.vertexair
   r   r   r   r    r&   r1   r!   r   <module>rb      s%   " " " " " "  / / / / / / / / / / 6 6 6 6 6 6 > > > > > > ) ) ) ) ) ) B B B B B B *))))))   
5 
5 
5 
5 
D  
4 4 4 4 4( 4 4 
4 4 4r!   