
    7rh                     .   d dl mZ d dlmZ d dlmZ d dlmZ d dlZ eej                  j                  ej                  j                  ej                  j                  ej                  j                  e                  dd              G d	 d
      Zy)    )BytesIO)
ElevenLabs)load_dotenv)ELEVENLABS_MODEL_IDNconfigz.env)dotenv_pathc                       e Zd Zd Zd Zy)ElevenLabsTTSc                    t         j                  j                  d      | _        | j                  st	        d      	 t        | j                        | _        y # t        $ r}t        dt        |             d }~ww xY w)NELEVENLABS_API_KEYz6ELEVENLABS_API_KEY not found in environment variables.)api_keyz(Failed to initialize ElevenLabs client: )
osenvirongetr   
ValueErrorr   client	ExceptionRuntimeErrorstr)selfes     =E:\xampp\htdocs\new-grp\engine\services\tts\elevenlabs_tts.py__init__zElevenLabsTTS.__init__
   si    zz~~&:;||UVV	T$T\\:DK 	T!I#a&RSS	Ts   A 	A>"A99A>c                    t        |t              st        d      |j                  d      }|j                  d      }|r|st	        d      	 | j
                  j                  j                  ||t        d      }t               }|D ]  }|j                  |        |j                  d       |S # t        $ r}t        dt        |             d }~ww xY w)	Nz9Input must be a dictionary containing 'text' and 'voice'.textvoicez7Missing required 'text' or 'voice' field in input data.mp3_44100_128)r   voice_idmodel_idoutput_formatr   z"Text-to-Speech conversion failed: )
isinstancedict	TypeErrorr   r   r   text_to_speechconvertr   r   writeseekr   r   r   )r   datar   r   audio_generatorbufferchunkr   s           r   r$   zElevenLabsTTS.text_to_speech   s    $%WXXxx!5VWW	N"kk88@@,-	 A O YF(U# )KKNM 	N!CCF8LMM	Ns   A!B0 0	C9CCN)__name__
__module____qualname__r   r$        r   r
   r
   	   s    TNr0   r
   )ior   elevenlabs.clientr   dotenvr   config.constantsr   r   pathjoindirname__file__r
   r/   r0   r   <module>r9      sc     (  0 	 RWW__RWW__RWW__U]E^5_%`bjlrs t#N #Nr0   