
    mi.                        d dl Z d dl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  e        d dlmZ d dlmZ d dlmZ  ed	
      Zej+                  e	dgddgdg        e j,                  dd      Zdaej3                  d      d        Zej7                  d      d        Zej;                  d       ed       ed       ed       ed       ed       ed      fdededededededefd       Z ej;                  d        ed      fd!efd"       Z!ej;                  d#       ed       ed       ed       ed       ed       ed       ed      fdededededededed$efd%       Z"ej7                  d&      d'        Z#e$d(k(  rFd dl%Z% e j,                  d)d*      Z& e' e j,                  d+d,            Z( e%jR                  ee&e(-       yy).    N)FastAPIFile
UploadFileFormBackgroundTasks)CORSMiddleware)WhisperModel)load_dotenvtts_service)transcription_serviceavatar_servicezGLMA Optimized Media API)title*T)allow_originsallow_credentialsallow_methodsallow_headersWHISPER_MODEL_SIZEsmallstartupc                     K   t        d       t        dt         d       t        d       	 t        t        dddd	      at        d
       t        d       y # t        $ r} t        d|         Y d } ~ (d } ~ ww xY ww)Nz3
==================================================zLOADING WHISPER MODEL (z)... PLEASE WAITz2==================================================cpuint8      )devicecompute_typecpu_threadsnum_workersz(SUCCESS: Whisper model loaded and ready!zERROR loading model: z3==================================================
)print
MODEL_SIZEr	   model	Exception)es    "/var/www/html/speakWrite/server.pystartup_eventr(      s      
-	#J</?
@A	&M+
 	89 
-  +%aS)**+s.   *A<A A<	A9!A4/A<4A99A</c                     K   dddS w)NonlinezAPI is running successfully.)statusmessage r.       r'   rootr0   3   s     +IJJs   z/speak/.AutoFbackground_taskstextvoiceratepitchvolumetashkeelc           	      @   K   t        | ||||||       d {   S 7 wNr   )r2   r3   r4   r5   r6   r7   r8   s          r'   text_to_speechr;   7   s'      -tUD%QYZZZZs   z/transcribe/filec                 >   K   t        | t               d {   S 7 wr:   )r   r$   )r<   s    r'   transcribe_audior>   C   s     &tU3333s   z/generate_avatar/avatar_promptc           
      B   K   t        | |||||||       d {   S 7 wr:   r   )r2   r3   r4   r5   r6   r7   r8   r?   s           r'   generate_avatarrA   G   s*        0$tUFT\^klllls   z/available_voices/c                     K   t        j                          d {   } t        | D cg c]  }|d   	 c}      S 7  c c}w w)N	ShortName)edge_ttslist_voicessorted)voicesvs     r'   get_available_voicesrI   T   s9     ''))F62a1[>233 *2s   A;A=AA__main__APP_HOSTz0.0.0.0APP_PORTi  )hostport)*osrD   fastapir   r   r   r   r   fastapi.middleware.corsr   faster_whisperr	   dotenvr
   services.tts_servicer   services.transcription_servicer   services.avatar_servicer   appadd_middlewaregetenvr#   r$   on_eventr(   getr0   poststrboolr;   r>   rA   rI   __name__uvicornrM   intrN   runr.   r/   r'   <module>rc      s   	  D D 2 '   - @ 2./   %%%   RYY+W5
i & K K ) S	fVfv,%[	[%	[
	[ 	[ 		[
 	[ 	[ 	[ 	[ ..23i 4 4 4 
 S	fVfv,%[d
m%
m

m 
m 	
m
 
m 
m 
m 
m 
m 	4 4 z299Z+DyryyT*+DGKK$T*	 r/   