
    Nj                        d dl Z d dlZd dlZd dlZd dlmZ d dlZd dlZd dlm	Z	 d dlm
Z
  ee      j                  j                  j                  Zej                  j                  dd      dk(  Zi dd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3	Zd4ed5ed6efd7Zd6efd8Zd9e
j*                  d:efd;Zd<ed6efd=Z G d> d?      Zd@ed6efdAZy)B    N)Path)hf_hub_download)nn
DEBUG_MIMI01cosettezHhf://kyutai/tts-voices/expresso/ex04-ex02_confused_001_channel1_499s.wavmariusz1hf://kyutai/tts-voices/voice-donations/Selfie.wavjavertz1hf://kyutai/tts-voices/voice-donations/Butter.wavalbaz/hf://kyutai/tts-voices/alba-mackenna/casual.wavjeanz@hf://kyutai/tts-voices/ears/p010/freeform_speech_01_enhanced.wavannaz1hf://kyutai/tts-voices/vctk/p228_023_enhanced.wavveraz1hf://kyutai/tts-voices/vctk/p229_023_enhanced.wavfantinez1hf://kyutai/tts-voices/vctk/p244_023_enhanced.wavcharlesz1hf://kyutai/tts-voices/vctk/p254_023_enhanced.wavpaulz1hf://kyutai/tts-voices/vctk/p259_023_enhanced.waveponinez1hf://kyutai/tts-voices/vctk/p262_023_enhanced.wavazelmaz1hf://kyutai/tts-voices/vctk/p303_023_enhanced.wavgeorgez1hf://kyutai/tts-voices/vctk/p315_023_enhanced.wavmaryz1hf://kyutai/tts-voices/vctk/p333_023_enhanced.wavjanez1hf://kyutai/tts-voices/vctk/p339_023_enhanced.wavmichaelz1hf://kyutai/tts-voices/vctk/p360_023_enhanced.wavevez1hf://kyutai/tts-voices/vctk/p361_023_enhanced.wavz1hf://kyutai/tts-voices/voice-zero/bill_boerst.wavz4hf://kyutai/tts-voices/voice-zero/peter_yearsley.wavz1hf://kyutai/tts-voices/voice-zero/stuart_bell.wavz/hf://kyutai/tts-voices/voice-zero/caro_davy.wavzhhf://kyutai/pocket-tts/common_voice_it_36520747-enhanced-v2.mp3@64ab7d24c479d736a83b8cc666c4a776fca30fdazhhf://kyutai/pocket-tts/common_voice_es_19762977-enhanced-v2.mp3@64ab7d24c479d736a83b8cc666c4a776fca30fdazQhf://kyutai/pocket-tts/de-DE-juergen.mp3@64ab7d24c479d736a83b8cc666c4a776fca30fdaz[hf://kyutai/pocket-tts/g-Vi8PgmSY0-enhanced-v2.wav@64ab7d24c479d736a83b8cc666c4a776fca30fdazfhf://kyutai/tts-voices/unmute-prod-website/developpeuse-3.wav@1fc7395b7e012e2bbebfca14b942a4ef62ccc899)	bill_boerstpeter_yearsleystuart_bell	caro_davygiovannilolajuergenrafaelestellelanguagenamereturnc                     d|  d| dS )Nz7hf://kyutai/pocket-tts-without-voice-cloning/languages/z/embeddings/z5.safetensors@e041936c75475d350b405bc870bcf7c22da4e9e6 )r#   r$   s     g/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/pocket_tts/utils/utils.pyget_predefined_voicer)   -   s$    DXJl[_Z`  aV  W  W    c                  `    t        j                         dz  dz  } | j                  dd       | S )Nz.cache
pocket_ttsT)parentsexist_ok)r   homemkdir)	cache_dirs    r(   make_cache_directoryr2   1   s-    		h&5IOOD4O0r*   model
model_namec                    t        j                  t              }| j                         }d}|j	                         D ]9  \  }}|j                  d||j                                ||j                         z  }; |j                  d||       y )Nr   z%s: %,dz%Total number of parameters in %s: %,d)logging	getLogger__name__
state_dictitemsinfonumel)r3   r4   loggerr9   totalkeyvalues          r(   print_nb_parametersrA   7   su    x(F!!#JE &&(
UIsEKKM2 ) KK7UKr*   r9   c                     d}| j                         D ]`  }t        |t        j                        r%||j	                         |j                         z  z  }Bt        |t              sS|t        |      z  }b |S )Nr   )values
isinstancetorchTensorr<   element_sizedictsize_of_dict)r9   
total_sizer@   s      r(   rI   rI   A   sg    J""$eU\\*%++-%*<*<*>>>Jt$,u--J	 %
 r*   c                   *    e Zd ZddedefdZd Zd Zy)display_execution_time	task_nameprint_outputc                 x    || _         || _        d | _        d | _        t	        j
                  t              | _        y N)rM   rN   
start_timeelapsed_time_msr6   r7   r8   r=   )selfrM   rN   s      r(   __init__zdisplay_execution_time.__init__L   s2    "(#''1r*   c                 8    t        j                         | _        | S rP   )time	monotonicrQ   )rS   s    r(   	__enter__z display_execution_time.__enter__S   s    ..*r*   c                     t        j                         }t        || j                  z
  dz        | _        | j
                  r1| j                  j                  d| j                  | j                         y)Ni  z%s took %d msF)	rV   rW   intrQ   rR   rN   r=   r;   rM   )rS   exc_typeexc_valexc_tbend_times        r(   __exit__zdisplay_execution_time.__exit__W   sU    >>#"Ht$>$#FGKK_dnnd>R>RSr*   N)T)r8   
__module____qualname__strboolrT   rX   r_   r'   r*   r(   rL   rL   K   s    2# 2T 2r*   rL   	file_pathc                    | j                  d      s| j                  d      rt               }|t        j                  | j	                               j                         dz   | j                  d      d   z   z  }|j                         sWt        j                  |       }|j                          t        |d      5 }|j                  |j                         d d d        |S |S | j                  d      r~| j                  d      } | j                  d      }dj                  |d d       }dj                  |dd        }d	|v r|j                  d	      \  }}nd }t!        |||
      }t#        |      S t#        |       S # 1 sw Y   |S xY w)Nzhttp://zhttps://.wbzhf:///   @)repo_idfilenamerevision)
startswithr2   hashlibsha256encode	hexdigestsplitexistsrequestsgetraise_for_statusopenwritecontentremoveprefixjoinr   r   )	rd   r1   cached_fileresponsefsplittedrl   rm   rn   s	            r(   download_if_necessaryr   _   s`   I&)*>*>z*J(*	NN9++-.88:S@9??SVCWXZC[[
 !!#||I.H%%'k4(A(() ){			g	&**73	??3'((8BQ<(88HQRL)(?!)!4HhH%gS[\K  I )s   :E<<F)rp   r6   osrV   pathlibr   rv   rE   huggingface_hubr   r   __file__parentPROJECT_ROOTenvironrw   r   _ORIGINS_OF_PREDEFINED_VOICESrb   r)   r2   ModulerA   rH   rZ   rI   rL   r   r'   r*   r(   <module>r      s     	     + H~$$++22ZZ^^L#.#5
!Y!A! A! =	!
 N! ?! ?! B! B! ?! B! A! A! ?! ?!  B!!" 
>#!$ GLFBzvbkw5! <W3 Wc Wc Wd Lryy Lc LT c  (S T r*   