
    3fi                        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 erd dlmZ ddZdd	Z G d
 de
      Zy)    )annotationsN)TYPE_CHECKINGAnyOptional)CallbackManagerForToolRun)BaseTool)get_client_infotexttospeechc                 N    	 ddl m}  | S # t        $ r}t        d      |d }~ww xY w)Nr   r
   zCould not import google-cloud-texttospeech python package. Please, install texttospeech dependency group: `pip install langchain-google-community[texttospeech]`)google.cloudr   ImportError)r   es     e/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_google_community/texttospeech.py!_import_google_cloud_texttospeechr      s<    -   E
 		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    c                  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 )TextToSpeechToola.  Tool that queries the Google Cloud Text-to-Speech API.

    Inherits from [`BaseTool`][langchain_core.tools.BaseTool].

    Synthesizes audio from text with support for multiple languages and voice options.

    !!! note "Installation"

        Requires additional dependencies:

        ```bash
        pip install langchain-google-community[texttospeech]
        ```

    !!! note "Setup Required"

        Follow [setup instructions](https://cloud.google.com/text-to-speech/docs/before-you-begin)
        to configure Google Cloud Text-to-Speech API.
    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TextToSpeechTool.__init__G   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)	aS  Synthesize speech from text.

        Args:
            language_code: Language code (e.g., `'en-US'`, `'de-DE'`).
            ssml_gender: Voice gender.
            audio_encoding: Audio format.
            run_manager: Optional callback manager.

        Returns:
            Path to temporary file containing synthesized audio.
        )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"   )
r,   
input_textr1   r2   r3   run_managerr   responser9   fs
             r   _runzTextToSpeechTool._runQ   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)r-   r   returnNone)zen-USNNN)rE   r!   r1   r!   r2   z&Optional[texttospeech.SsmlVoiceGender]r3   z$Optional[texttospeech.AudioEncoding]rF   z#Optional[CallbackManagerForToolRun]rJ   r!   )
__name__
__module____qualname____doc__r"   __annotations__r#   r*   rI   __classcell__)r.   s   @r   r   r   (   s~    ( ,D#+	<   L
 %>B?C;?## # <	#
 =# 9# 
#r   r   )rJ   r   )r   ztexttospeech.AudioEncodingrJ   zOptional[str])
__future__r   rA   typingr   r   r   langchain_core.callbacksr   langchain_core.toolsr   !langchain_google_community._utilsr	   r   r   r   r   r   r(   r   r   <module>rW      s8    "  / / > ) =)	
5Lx Lr   