o
    ZAkj
                     @  sj   d Z ddlmZ ddlZddlmZmZ ddlmZ ddl	m
Z
mZ eeZddddZddddZdS )uQ   Factory STT/TTS según Settings (cambio cloud↔local = una variable de entorno).    )annotationsN)Settingsget_settings)configure_google_credentials)SpeechToTextTextToSpeechsettingsSettings | Nonereturnr   c                 C  s   | pt  }|jp	d  }|dkr+t| ddlm} td|j	 ||j	|j
dS |dkr=ddlm} td | S td	|d
)Ngoogler   )GoogleSpeechToTextzSTT provider=google lang=%s)language_codemodellocal)LocalSpeechToTextz STT provider=local (placeholder)zSTT_PROVIDER desconocido: u   . Usá 'google' o 'local'.)r   stt_providerstriplowerr   voice.stt.google_sttr   loggerinfogoogle_stt_languagegoogle_stt_modelvoice.stt.local_sttr   
ValueError)r   cfgproviderr   r    r   7/var/www/html/bot-asterisk-ari/backend/voice/factory.pycreate_speech_to_text   s"   


r   r   c                 C  s   | pt  }|jp	d  }|dkr/t| ddlm} td|j	|j
 ||j
|j	|jdS |dkrLddlm} td|j|j ||j|j|jd	S |d
kr^ddlm} td | S td|d)Nr   r   )GoogleTextToSpeechz$TTS provider=google voice=%s lang=%s)r   
voice_namespeaking_rate
elevenlabs)ElevenLabsTextToSpeechz,TTS provider=elevenlabs voice_id=%s model=%s)api_keyvoice_idmodel_idr   )LocalTextToSpeechz TTS provider=local (placeholder)zTTS_PROVIDER desconocido: u(   . Usá 'google', 'elevenlabs' o 'local'.)r   tts_providerr   r   r   voice.tts.google_ttsr    r   r   google_tts_voicegoogle_tts_languagegoogle_tts_speaking_ratevoice.tts.elevenlabs_ttsr$   elevenlabs_voice_idelevenlabs_model_idelevenlabs_api_keyvoice.tts.local_ttsr(   r   )r   r   r   r    r$   r(   r   r   r   create_text_to_speech'   sD   


r3   )N)r   r	   r
   r   )r   r	   r
   r   )__doc__
__future__r   loggingconfigr   r   voice.google_credentialsr   voice.protocolsr   r   	getLogger__name__r   r   r3   r   r   r   r   <module>   s    
