§
    šŠtj\  ã                   ó¬   — d dl Z d dlmZ d dlmZmZ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 defd	„Z G d
„ dee¦  «        Z G d„ de¦  «        ZdS )é    N)ÚEnum)ÚAnyÚDictÚIteratorÚOptionalÚUnion)ÚCallbackManagerForToolRun)ÚBaseTool©Úget_from_dict_or_env)Úmodel_validatorÚreturnc                  óV   — 	 dd l } n"# t          $ r}t          d¦  «        |‚d }~ww xY w| S )Nr   zBCannot import elevenlabs, please install `pip install elevenlabs`.)Ú
elevenlabsÚImportError)r   Úes     úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/tools/eleven_labs/text2speech.pyÚ_import_elevenlabsr      sU   € ðØÐÐÐÐøÝð ð ð ÝØPñ
ô 
àð	øøøøðøøøð Ðs   ‚ ‡
&‘!¡&c                   ó   — e Zd ZdZdZdZdZdS )ÚElevenLabsModelz-Models available for Eleven Labs Text2Speech.Úeleven_multilingual_v2Úeleven_flash_v2_5Úeleven_flash_v2N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚMULTI_LINGUALÚMULTI_LINGUAL_FLASHÚMONO_LINGUAL© ó    r   r   r      s$   € € € € € Ø7Ð7à,€MØ-ÐØ$€L€L€Lr"   r   c                   óî   — e Zd ZU dZej        Zeeef         e	d<   dZ
ee	d<   dZee	d<   dZee	d<    ed	¬
¦  «        ededefd„¦   «         ¦   «         Z	 ddedee         defd„Zdeddfd„Zdeddfd„ZdS )ÚElevenLabsText2SpeechToolzŒTool that queries the Eleven Labs Text2Speech API.

    In order to set this up, follow instructions at:
    https://elevenlabs.io/docs
    ÚmodelÚJBFqnCBsd6RMkjVDRZzbÚvoiceÚeleven_labs_text2speechÚnamezÖA wrapper around Eleven Labs Text2Speech. Useful for when you need to convert text to speech. It supports more than 30 languages, including English, German, Polish, Spanish, Italian, French, Portuguese, and Hindi. ÚdescriptionÚbefore©ÚmodeÚvaluesr   c                 ó(   — t          |dd¦  «        }|S )z,Validate that api key exists in environment.Úelevenlabs_api_keyÚELEVENLABS_API_KEYr   )Úclsr.   Ú_s      r   Úvalidate_environmentz.ElevenLabsText2SpeechTool.validate_environment/   s   € õ ! Ð)=Ð?SÑTÔTˆàˆr"   NÚqueryÚrun_managerc                 óÔ  — t          ¦   «         }|j                             ¦   «         }	 |j                             || j        | j        d¬¦  «        }t          |t          ¦  «        rd 	                    |¦  «        }t          j        ddd¬¦  «        5 }|                     |¦  «         ddd¦  «         n# 1 swxY w Y   |j        S # t          $ r}t          d	|› �¦  «        ‚d}~ww xY w)
zUse the tool.Úmp3_44100_128)ÚtextÚmodel_idÚvoice_idÚoutput_formatr"   Úbxz.mp3F)r-   ÚsuffixÚdeleteNz/Error while running ElevenLabsText2SpeechTool: )r   ÚclientÚ
ElevenLabsÚtext_to_speechÚconvertr%   r'   Ú
isinstancer   ÚjoinÚtempfileÚNamedTemporaryFileÚwriter)   Ú	ExceptionÚRuntimeError)Úselfr5   r6   r   r@   ÚspeechÚfr   s           r   Ú_runzElevenLabsText2SpeechTool._run7   s@  € õ (Ñ)Ô)ˆ
ØÔ"×-Ò-Ñ/Ô/ˆð	VØÔ*×2Ò2ØØœØœØ-ð	 3ñ ô ˆFõ ˜&¥(Ñ+Ô+ð *ØŸš &Ñ)Ô)�ÝÔ,Ø &°ðñ ô ð  àØ—’˜‘”�ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð ”6ˆMøÝð 	Vð 	Vð 	VÝÐTÐQRÐTÐTÑUÔUÐUøøøøð	Vøøøs<   ©A)C ÂB4Â(C Â4B8Â8C Â;B8Â<	C Ã
C'ÃC"Ã"C'Úspeech_filec                 óÆ   — t          ¦   «         }t          |d¬¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   |                     |¦  «         dS )zPlay the text as speech.Úrbr,   N)r   ÚopenÚreadÚplay)rK   rO   r   rM   rL   s        r   rT   zElevenLabsText2SpeechTool.playN   s™   € å'Ñ)Ô)ˆ
Ý�+ DÐ)Ñ)Ô)ð 	¨QØ—V’V‘X”XˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š˜ÑÔÐÐÐs    AÁAÁAc                 óÌ   — t          ¦   «         }|j                             ¦   «         }|j                             || j        | j        ¬¦  «        }|                     |¦  «         dS )zUStream the text as speech as it is generated.
        Play the text in your speakers.)r9   r:   r;   N)r   r@   rA   rB   Ústreamr%   r'   )rK   r5   r   r@   Úspeech_streams        r   Ústream_speechz'ElevenLabsText2SpeechTool.stream_speechV   sg   € õ (Ñ)Ô)ˆ
ØÔ"×-Ò-Ñ/Ô/ˆØÔ-×4Ò4Ø ¤°d´jð 5ñ 
ô 
ˆð 	×Ò˜-Ñ(Ô(Ð(Ð(Ð(r"   )N)r   r   r   r   r   r   r%   r   ÚstrÚ__annotations__r'   r)   r*   r   Úclassmethodr   r   r4   r   r	   rN   rT   rX   r!   r"   r   r$   r$      sJ  € € € € € € ðð ð *9Ô)F€Eˆ5� #Ð%Ô&ÐFÐFÑFØ'€Eˆ3Ð'Ð'Ñ'à)€Dˆ#Ð)Ð)Ñ)ð	<ð �ð ð ñ ð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð NRðVð VØðVØ'/Ð0IÔ'JðVà	ðVð Vð Vð Vð.  ð  ¨ð  ð  ð  ð  ð) 3ð )¨4ð )ð )ð )ð )ð )ð )r"   r$   )rF   Úenumr   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   Úlangchain_core.toolsr
   Úlangchain_core.utilsr   Úpydanticr   r   rY   r   r$   r!   r"   r   ú<module>rb      s  ðØ €€€Ø Ð Ð Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à >Ð >Ð >Ð >Ð >Ð >Ø )Ð )Ð )Ð )Ð )Ð )Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø $Ð $Ð $Ð $Ð $Ð $ð˜Cð ð ð ð ð%ð %ð %ð %ð %�c˜4ñ %ô %ð %ðA)ð A)ð A)ð A)ð A) ñ A)ô A)ð A)ð A)ð A)r"   