
    g	                     v    d dl Z ddlmZmZmZ ddlmZ ddlmZ  e            rd dl	m
Z
  G d d	e          ZdS )
    N   )SpeechT5ForTextToSpeechSpeechT5HifiGanSpeechT5Processor)is_datasets_available   )PipelineTool)load_datasetc                   \     e Zd ZdZdZdZeZeZ	e
ZddddiZdZ fd	ZddZd Zd Z xZS )TextToSpeechToolzmicrosoft/speecht5_ttszfThis is a tool that reads an English text out loud. It returns a waveform object containing the sound.text_to_speechtextstringz&The text to read out loud (in English))typedescriptionaudioc                 d    | j         d| _         t                                                       d S )Nzmicrosoft/speecht5_hifigan)post_processorsupersetup)self	__class__s    ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/agents/text_to_speech.pyr   zTextToSpeechTool.setup*   s)    &">D    Nc                    |                      |dd          }|bt                      st          d          t          ddd          }t	          j        |d         d	                                       d
          }|d         |dS )NptT)r   return_tensors
truncationzADatasets needs to be installed if not passing speaker embeddings.zMatthijs/cmu-arctic-xvectors
validation)splittrust_remote_codei  xvectorr   	input_ids)r#   speaker_embeddings)pre_processorr   ImportErrorr
   torchtensor	unsqueeze)r   r   r$   inputsembeddings_datasets        r   encodezTextToSpeechTool.encode/   s    ##dt#TT%(** g!"efff!-.lVZ" " " "'.@.Fy.Q!R!R!\!\]^!_!_#K0HZ[[[r   c                     t          j                    5   | j        j        di |cd d d            S # 1 swxY w Y   d S )N )r'   no_gradmodelgenerate_speech)r   r*   s     r   forwardzTextToSpeechTool.forward=   s    ]__ 	8 	8-4:-7777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   377c                     t          j                    5  |                     |                                                                          cd d d            S # 1 swxY w Y   d S N)r'   r/   r   cpudetach)r   outputss     r   decodezTextToSpeechTool.decodeA   s    ]__ 	? 	?&&w//3355<<>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   9AA!Ar4   )__name__
__module____qualname__default_checkpointr   namer   pre_processor_classr   model_classr   post_processor_classr*   output_typer   r,   r2   r8   __classcell__)r   s   @r   r   r      s        1p  D+)K*x8`aabFK    
\ \ \ \8 8 8? ? ? ? ? ? ?r   r   )r'   models.speecht5r   r   r   utilsr   toolsr	   datasetsr
   r   r.   r   r   <module>rG      s   $  Y Y Y Y Y Y Y Y Y Y ) ) ) ) ) )        &%%%%%%&? &? &? &? &?| &? &? &? &? &?r   