ó
    æ8ƒjŒ  ã                   ó´  • S SK r S SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
JrJr  \R                  R                  \R                  R                  \R                  R!                  \5      5      S5      r\R                  R                  \S5      rSr\R*                  rSrSrSrS	rS
rSrS\S\4S jrS\S\ \   4S jr!S\S\RD                  S\4S jr#S r$S\%S\S\S\4S jr&S\S\S\'\\RD                  4   4S jr(S\S\RD                  4S jr)S\RD                  S\RD                  4S jr*S \RD                  S!\RD                  S\+4S" jr,S#\S$\S\+4S% jr-g)&é    N)ÚFRAMES_PER_WINÚH_DIMÚLATENT_CHANNELSÚbuild_windowÚframe_latent_startsz..ÚcheckpointsÚcudai{P i @  i   i   i   g      à@ÚcaptionÚlyricsc           	      ó8  • SSK Jn  UR                   UR                   UR	                  U5       UR
                   UR                   UR                  U5       UR                   UR                   UR                   3	nU " USS9S   R                  [        5      $ )Nr   )ÚencodersÚpt)Úreturn_tensorsÚ	input_ids)Ú*diffusers.modular_pipelines.minimax_music3r   Ú	_IM_STARTÚ_CAPTION_STARTÚ_clean_captionÚ_CAPTION_ENDÚ_LYRICS_STARTÚ_normalize_lyricsÚ_LYRICS_ENDÚ_IM_ENDÚ_AUDIO_STARTÚtoÚDEVICE)Ú	tokenizerr
   r   ÚencÚtexts        Útraining/e2e.pyÚ
prompt_idsr!       s“   € ÝJà�}‰}ˆo˜c×0Ñ0Ð1°#×2DÑ2DÀWÓ2MÐ1NÈs×O_ÑO_ÐN`Ø× Ñ Ð! #×"7Ñ"7¸Ó"?Ð!@ÀÇÁÐ@QØ�{‰{ˆm˜C×,Ñ,Ð-ð/€Dñ �T¨$Ñ/°Ñ<×?Ñ?ÄÓGÐGó    Ún_framesÚreturnc                 óÒ   • U [         :  a  [        SU  S[          35      e[        [        SU [         -
  S-   [         5      5      nU [         -
  nUS   U:w  a  UR	                  U5        U$ )Nz
track has z frames, need at least r   é   éÿÿÿÿ)r   Ú
ValueErrorÚlistÚrangeÚappend)r#   ÚstartsÚlasts      r    Úprediction_startsr.   )   sh   € Ø”.Ó Ü˜: h ZÐ/FÄ~ÐFVÐWÓXÐXÜ”%˜˜8¤nÑ4°qÑ8¼.ÓIÓJ€FØ”nÑ$€DØˆb�z�TÓØ�‰�dÔØ€Mr"   Úvae_pathr,   c                 ó4  • [         R                  " U[        4[        [         R                  S9nSn[         R
                  " 5          [        U5       H¢  n[        XU5      u  pxU " UR                  S5      R                  [        5      UR                  S5      R                  [        5      5      S   R                  5       n	[        XV5      n
[        X6[        -   5      nXšU-
  X¶-
   XJU& [        X[5      nM¤     S S S 5        XS:X  d   eU$ ! , (       d  f       N= f)N)ÚdeviceÚdtyper   )ÚtorchÚemptyr   r   Úfloat32Úno_gradr.   r   Ú	unsqueezer   ÚfloatÚmaxÚminr   )Úmodelr/   r,   r#   ÚoutÚfilledÚt0ÚlatentsÚpoolÚhÚloÚhis               r    Ú	predict_hrD   3   sä   € ô �+Š+�x¤Ð'´¼e¿m¹mÑ
L€CØ€FÜ	�Š�Ü# HÖ-ˆBÜ(¨¸2Ó>‰MˆGÙ�g×'Ñ'¨Ó*×-Ñ-¬fÓ5°t·~±~ÀaÓ7H×7KÑ7KÌFÓ7SÓTÐUVÑW×]Ñ]Ó_ˆAÜ�V“ˆBÜ�X¤NÑ2Ó3ˆBØ ™7 R¡WÐ-ˆC�2ˆJÜ˜“_ŠFñ .÷ 
ð ÓÐÐØ€J÷ 
�ús   ÁB2D	Ä	
Dc           	      ó8  • U R                  5       R                  nUR                  R                  R                  S[        S5      n[
        R                  " 5          U R                  UR                  [        5      5      R                  5       S S 2[        [        [        -   24   R                  S5      nUR                  UR                  [        5      5      R                  S5      UR                  X5[        -      R                  [        5      5      R                  S5      /n/ n[!        S5       H·  nU" [
        R"                  " USS95      S S 2S4   n	UR$                  U   " U	5      R                  5       R                  S5      n
UR'                  U
5        US:  d  Mp  UR'                  UR                  XH   U
   R                  [        5      5      R                  S5      5        M¹     S S S 5        W[
        R(                  " WSS94$ ! , (       d  f       N%= f)Né   r'   r&   )Údimé   )Úget_input_embeddingsÚweightÚaudio_embeddingsÚviewÚAC_Nr3   r6   Úlm_headr   ÚDTYPEr8   ÚSEM_OFFÚSEM_NÚargmaxÚ
projectionr7   r*   ÚcatÚaudio_headsr+   Ústack)ÚlmÚdepthrA   Ú	sem_tableÚac_tableÚsemÚseqÚacÚkÚdÚcodes              r    Údecode_codesra   E   s™  € ð ×'Ñ'Ó)×0Ñ0€IØ×&Ñ&×-Ñ-×2Ñ2°1´d¸BÓ?€HÜ	�Š�Ø�j‰j˜Ÿ™œe›Ó%×+Ñ+Ó-ªa´¼7ÄU¹?Ð1JÐ.JÑK×RÑRÐSUÓVˆØ×Ñ §¡¤U£Ó,×6Ñ6°qÓ9Ø×Ñ 	´©-Ñ 8× ;Ñ ;¼EÓ BÓC×MÑMÈaÓPðRˆàˆÜ�q–ˆAÙ”e—i’i ¨Ñ+Ó,ªQ°¨UÑ3ˆAØ×$Ñ$ QÒ'¨Ó*×0Ñ0Ó2×9Ñ9¸"Ó=ˆDØ�I‰I�dŒOØ�1�uØ—
‘
˜5×+Ñ+¨H©K¸Ñ,=×,@Ñ,@ÄÓ,GÓH×RÑRÐSTÓUÖVñ ÷ 
ð ”—’˜B AÑ&Ð&Ð&÷ 
�ús   ÁEHÆ!AHÈ
HÚrequestÚmm_synthÚ
models_dirÚwork_dirc           	      ó¶  • [         R                  " USS9  [        U 5      nUR                  SS 5        SUS'   SUS'   SUS'   S	US
'   [         R                  R                  US5      n[         R                  R                  US5      n[         R                  R                  U5      S   S-   n[        US5       n[        R                  " XH5        S S S 5        [        R                  " USUSUSU/SS9  [        U5       n[        R                  " [        R                  " U5      S   R                  S5      [        R                   S9n	S S S 5        W	R"                  S:  d  U	R"                  S-  (       a  [%        S5      e[&        R(                  " U	S S R+                  5       5      R-                  [.        5      $ ! , (       d  f       Nð= f! , (       d  f       Nˆ= f)NT)Úexist_okÚaudio_codesg{®Gáz¤?Údurationr&   Úlm_batch_sizeÚsynth_batch_sizeÚwav16Úoutput_formatzrequest.jsonz
warmup.wavr   z.jsonÚwz--modelsz	--requestz--out)ÚcheckÚ,©r2   é   é   z>public warm-up replay did not contain two complete code frames)ÚosÚmakedirsÚdictÚpopÚpathÚjoinÚsplitextÚopenÚjsonÚdumpÚ
subprocessÚrunÚnpÚarrayÚloadÚsplitÚint64ÚsizeÚRuntimeErrorr3   Ú
from_numpyÚcopyr   r   )
rb   rc   rd   re   Úwarmup_requestÚrequest_pathÚwav_pathÚreplay_pathÚfÚvaluess
             r    Úpublic_warmupr�   X   sr  € ô ‡K‚K� 4Ò(Ü˜'“]€NØ×Ñ�} dÔ+Ø!+€N�:ÑØ&'€N�?Ñ#Ø)*€NÐ%Ñ&Ø&-€N�?Ñ#Ü—7‘7—<‘< ¨.Ó9€LÜ�w‰w�|‰|˜H lÓ3€HÜ—'‘'×"Ñ" 8Ó,¨QÑ/°'Ñ9€KÜ	ˆl˜CÔ	  AÜ�	Š	�.Ô$÷ 
!ä‡N‚NØ	�:˜z¨;¸ÀgÈxÐXØòô 
ˆkÔ	˜aÜ—’œ$Ÿ)š) A›, }Ñ5×;Ñ;¸CÓ@ÌÏÉÑQˆ÷ 
à‡{�{�RÓ˜6Ÿ;™;¨Ÿ?ÜÐ[Ó\Ð\Ü×Ò˜F 2 A˜JŸO™OÓ-Ó.×1Ñ1´&Ó9Ð9÷ 
!Õ	 ú÷ 
Õ	ús   Â8F9Ã>A
G
Æ9
GÇ

Gc                 ó¼   • [         R                  R                  U 5      [        S-  -  nUS:”  a#  [	        U5      nX1   U::  a  X4$ US-  nUS:”  a  M#  [        S5      e)Né   r   r&   z1VAE latent file does not cover one rendered frame)rt   rx   Úgetsizer   r   r(   )r/   r#   Ún_latr,   s       r    Ún_render_framesr”   u   sc   € Ü�G‰G�O‰O˜HÓ%¬/¸AÑ*=Ñ>€EØ
�Q‹,Ü$ XÓ.ˆØÑ˜uÓ$ØÐ#Ð#Ø�A‰ˆð	 �Q�,ô
 ÐHÓ
IÐIr"   rx   c                 ó|  • [         R                  " U S5       n[        R                  " UR	                  UR                  5       5      [        R                  S9nUR                  SUR                  5       5      S S 2S4   R                  [        R                  5      [        -  sS S S 5        $ ! , (       d  f       g = f)NÚrbrq   r'   r   )Úwaver{   r€   Ú
frombufferÚ
readframesÚ
getnframesÚint16ÚreshapeÚgetnchannelsÚastyper5   Ú	S16_SCALE)rx   rn   Údatas      r    Úread_wav_leftr¡      ss   € Ü	�Š�4˜Ô	 !Ü�}Š}˜QŸ\™\¨!¯,©,«.Ó9ÄÇÁÑJˆØ�|‰|˜B §¡Ó 0Ó1²!°Q°$Ñ7×>Ñ>¼r¿z¹zÓJÌYÑV÷ 
×	×	ús   ˜BB-Â-
B;Úxc           	      óp  • [         R                  " [        5      n[        U 5      [        -
  [        -  S-   n[         R
                  " [        U5       Vs/ s H  o0U[        -  U[        -  [        -    U-  PM!     sn5      n[         R                  " [         R                  R                  USS95      $ s  snf )Nr&   )Úaxis)
r€   ÚhanningÚSTFT_WINDOWÚlenÚSTFT_HOPrV   r*   ÚabsÚfftÚrfft)r¢   ÚwinÚnÚiÚframess        r    Ústft_magr°   …   s‹   € Ü
�*Š*”[Ó
!€CÜ	ˆQ‹”+Ñ	¤(Ñ*¨QÑ.€AÜ�XŠXÔSXÐYZÔS[Ó\ÒS[Èa˜œX™¨¬H©´{Ñ(BÐCÀcÔIÑS[Ñ\Ó]€FÜ�6Š6”"—&‘&—+‘+˜f¨1�+Ð-Ó.Ð.ùò ]s   Á&B3ÚaÚbc                 óþ   • U R                  5       UR                  5       p[        [        R                  " X5      [        R                  R                  U 5      [        R                  R                  U5      -  -  5      $ ©N)Úflattenr8   r€   ÚdotÚlinalgÚnorm)r±   r²   s     r    Úcossimr¹   Œ   sL   € Ø�9‰9‹;˜Ÿ	™	›€qÜ”—’˜“¤§¡§¡°Ó!2´R·Y±Y·^±^ÀAÓ5FÑ!FÑGÓHÐHr"   Úref_pathÚ	pred_pathc                 ó°   • [        U 5      [        U5      p2[        [        U5      [        U5      5      n[        [	        US U 5      [	        US U 5      5      $ r´   )r¡   r:   r§   r¹   r°   )rº   r»   ÚrefÚpredr­   s        r    Úwav_stft_cossimr¿   ‘   sJ   € Ü˜hÓ'¬°yÓ)AˆÜŒC�‹H”c˜$“iÓ €AÜ”(˜3˜r ˜7Ó#¤X¨d°2°A¨hÓ%7Ó8Ð8r"   ).r|   rt   r~   r—   Únumpyr€   r3   Údatasetr   r   r   r   r   rx   ry   ÚdirnameÚabspathÚ__file__ÚROOTÚCKPTr   Úbfloat16rO   rP   rQ   rM   r¦   r¨   rŸ   Ústrr!   Úintr)   r.   ÚndarrayrD   ra   rv   r�   Útupler”   r¡   r°   r8   r¹   r¿   © r"   r    Ú<module>rÍ      s¤  ðó Û 	Û Û ã Û ÷*õ *ð �w‰w�|‰|˜BŸG™GŸO™O¨B¯G©G¯O©O¸HÓ,EÓFÈÓM€Ø�w‰w�|‰|˜D -Ó0€Ø€Ø�~‰~€Ø€Ø€Ø€Ø€Ø€Ø€	ðH 3ð H°ô Hð ð ¨¨S©	ô ð˜sð ¨B¯J©Jð À#ô ò$'ð&:˜4ð :¨3ð :¸Cð :È3ô :ð:J˜cð J¨Sð J°U¸3ÀÇ
Á
¸?Ñ5Kô JðW˜ð W §
¡
ô Wð/�—
‘
ð /˜rŸz™zô /ðIˆb�j‰jð I˜RŸZ™Zð I¨Eô Ið
9˜cð 9¨cð 9°eõ 9r"   