§
    nF§jöv  ã                   óJ  — d dl Z d dlZd dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZ dZdZdZd	Zd
ZdZdZdZdZdZdZdZdZeZeZdZdZdZ dZ!dZ"dZ#e#Z$dZ%dZ&dZ'dZ(dZ)ddgZ*g d ¢Z+g d!¢Z,ed"ddd#œed$d%d&d#œed'd(d&d#œiZ-d)e.e/z  dz  d*e.fd+„Z0d)e.e/z  dz  d*e/fd,„Z1efd)e.e/z  dz  d*e.fd-„Z2efd)e.e/z  dz  d*e3fd.„Z4dXd/e5d*e/fd0„Z6dXd/e5d*e/fd1„Z7ee#fd)e.e/z  dz  d2e/d*e8e/         fd3„Z9ee#fd)e.e/z  dz  d2e/d*e8e:         fd4„Z;ee#fd)e.e/z  dz  d2e/d*e8e:         fd5„Z<ee#fd)e.e/z  dz  d2e/d*e:e/e/f         fd6„Z=d*e8ej>        j?                 fd7„Z@d8ejA        d*ejA        fd9„ZBd8ejA        d*ejC        fd:„ZDe dfd;e/d8ejA        d<e.d=e.d>e3dz  d*dfd?„ZEdYd@„ZFdAej>        j?        d*ejG        fdB„ZHdCe:e/ej>        j?        f         d*ejG        fdD„ZIdEejC        d*ejC        fdF„ZJdGeKe.ejC        f         dHe.d*ejA        fdI„ZLdJ„ ZMdYdK„ZNdL„ ZOdM„ ZP G dN„ dO¦  «        ZQ G dP„ dQeQ¦  «        ZR G dR„ dS¦  «        ZSejT        e#efdTejU        d2e/d)e.e/z  dz  fdU„ZVdejT        e#defdTejU        d2e/d)e.e/z  dz  d*e:e/ej>        j?        f         fdV„ZWdCe:e/ej>        j?        f         d*e:e/e8e/         f         fdW„ZXdS )Zé    N)Ú	Namespace)ÚPath)Úfiles_locator)Úprocess_download_defsé   é   é   zcampplus_cn_common.binz9DiT_seed_v2_uvit_whisper_small_wavenet_bigvgan_pruned.pthz2config_dit_mel_seed_uvit_whisper_small_wavenet.ymlzADiT_seed_v2_uvit_whisper_base_f0_44k_bigvgan_pruned_ft_ema_v2.pthz0config_dit_mel_seed_uvit_whisper_base_f0_44k.ymlzrmvpe.ptzv2/ar_base.pthzv2/cfm_small.pthzbsq32/bsq32_light.pthzbsq2048/bsq2048_light.pthé   ç      à?é"V  g      9@zDeepBeepMeep/LTX-2zseed-vcFÚbigvgan_v2_22khz_80band_256xÚbigvgan_v2_44khz_128band_512xzwhisper-smallzhubert-large-ll60kúconfig.jsonzbigvgan_generator.pt)zadded_tokens.jsonr   zgeneration_config.jsonz
merges.txtzmodel.safetensorsznormalizer.jsonúpreprocessor_config.jsonzspecial_tokens_map.jsonztokenizer.jsonztokenizer_config.jsonz
vocab.json)r   r   zpytorch_model.binzv1.0 Speech)ÚlabelÚstepsÚcfg_ratezv1.0 Singing / F0 44ké
   çffffffæ?z	v2 Speeché   ÚmodeÚreturnc                 ó’   — 	 t          | pt          ¦  «        } n# t          t          f$ r
 t          } Y nw xY w| t          v r| nt          S ©N)ÚintÚSEEDVC_MODE_SPEECHÚ	TypeErrorÚ
ValueErrorÚ_MODE_DEFAULTS©r   s    ú7C:\Users\johnn\Wan2GP\postprocessing\seedvc\__init__.pyÚnormalize_moder"   C   sZ   € ð"Ý�4Ð-Õ-Ñ.Ô.ˆˆøÝ•zÐ"ð "ð "ð "Ý!ˆˆˆð"øøøà�>Ð)Ð)ˆ4ˆ4Õ/AÐAs   ‚ ™4³4c                 óB   — t           t          | ¦  «                 d         S )Nr   )r   r"   r    s    r!   Ú
mode_labelr$   K   s   € Ý�.¨Ñ.Ô.Ô/°Ô8Ð8ó    c                 ó\   — t          t          t          | ¦  «                 d         ¦  «        S )Nr   )r   r   r"   r    s    r!   Úget_default_stepsr'   O   s"   € Ý�~�n¨TÑ2Ô2Ô3°GÔ<Ñ=Ô=Ð=r%   c                 ó\   — t          t          t          | ¦  «                 d         ¦  «        S )Nr   )Úfloatr   r"   r    s    r!   Úget_default_cfg_rater*   S   s"   € Ý•¥¨tÑ 4Ô 4Ô5°jÔAÑBÔBÐBr%   Úenabledc                ó&   — |sdS |€dS | dv r|€dS dS )NzBSeedVC Voice Replacement is disabled in Configuration > Extensionsz&You must provide a SeedVC Voice Sample)Úseedvc2Úseedvc_two_speakersz-You must provide a second SeedVC Voice SampleÚ © )Úpostprocess_audioÚreplace_voice_sampleÚreplace_voice_sample2r+   s       r!   Úvalidate_seedvc_audio_requestr4   W   s:   € Øð TØSÐSØÐ#Ø7Ð7ØÐ>Ð>Ð>ÐCXÐC`Ø>Ð>Øˆ2r%   c                óf   — t          ||||¬¦  «        }|r|S ddlm}  || d¬¦  «        dk    rdndS )N)r+   r   )Úextract_audio_tracksT)Ú
query_onlyr/   z0The selected video has no audio track to replace)r4   Úshared.utils.audio_videor6   )Úvideo_sourcer1   r2   r3   r+   Úerrorr6   s          r!   Úvalidate_seedvc_remux_requestr;   a   sg   € Ý)Ð*;Ð=QÐShÐryÐzÑzÔz€EØð ØˆØ=Ð=Ð=Ð=Ð=Ð=Ø%Ð% l¸tÐDÑDÔDÀqÒHÐHˆ2ˆ2ð  OAð  Ar%   Úrootc                 ó¦  — t          | ¦  «        } | t          k    r´t          j                             |t
          ¦  «        t          j                             |t          ¦  «        t          j                             |t          ¦  «        t          j                             |t          ¦  «        gd„ t          D ¦   «         ¢d„ t          D ¦   «         ¢S | t          k    rét          j                             |t          ¦  «        t          j                             |t          ¦  «        t          j                             |t          ¦  «        t          j                             |t          ¦  «        t          j                             |t          ¦  «        gd„ t          D ¦   «         ¢d„ t          D ¦   «         ¢d„ t           D ¦   «         ¢S t          j                             |t"          ¦  «        t          j                             |t$          ¦  «        t          j                             |t          ¦  «        gd„ t          D ¦   «         ¢d„ t          D ¦   «         ¢S )Nc                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   )ÚosÚpathÚjoinÚSEEDVC_BIGVGAN_44K_DIR©Ú.0Úfilenames     r!   ú
<listcomp>z(query_required_files.<locals>.<listcomp>q   s)   € ÐbÐbÐbÀ�bŒg�lŠlÕ1°8Ñ<Ô<ÐbÐbÐbr%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   ©r?   r@   rA   ÚSEEDVC_WHISPER_DIRrC   s     r!   rF   z(query_required_files.<locals>.<listcomp>r   ó)   € Ð^Ð^Ð^¸X�bŒg�lŠlÕ-¨xÑ8Ô8Ð^Ð^Ð^r%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   ©r?   r@   rA   ÚSEEDVC_BIGVGAN_DIRrC   s     r!   rF   z(query_required_files.<locals>.<listcomp>{   rJ   r%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   rH   rC   s     r!   rF   z(query_required_files.<locals>.<listcomp>|   rJ   r%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   )r?   r@   rA   ÚSEEDVC_HUBERT_DIRrC   s     r!   rF   z(query_required_files.<locals>.<listcomp>}   s)   € Ð\Ð\Ð\¸H�bŒg�lŠlÕ,¨hÑ7Ô7Ð\Ð\Ð\r%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   rL   rC   s     r!   rF   z(query_required_files.<locals>.<listcomp>ƒ   ó)   € Ð	ZÐ	ZÐ	Z¸�"Œ'�,Š,Õ)¨8Ñ
4Ô
4Ð	ZÐ	ZÐ	Zr%   c                 óX   — g | ]'}t           j                             t          |¦  «        ‘Œ(S r0   rH   rC   s     r!   rF   z(query_required_files.<locals>.<listcomp>„   rR   r%   )r"   ÚSEEDVC_MODE_SINGINGr?   r@   rA   Ú"SEEDVC_SINGING_CHECKPOINT_FILENAMEÚSEEDVC_SINGING_CONFIG_FILENAMEÚSEEDVC_CAMPPLUS_FILENAMEÚSEEDVC_RMVPE_FILENAMEÚSEEDVC_BIGVGAN_FILESÚSEEDVC_WHISPER_FILESÚSEEDVC_MODE_ACCENTÚ SEEDVC_V2_AR_CHECKPOINT_FILENAMEÚ!SEEDVC_V2_CFM_CHECKPOINT_FILENAMEÚ$SEEDVC_V2_NARROW_CHECKPOINT_FILENAMEÚ"SEEDVC_V2_WIDE_CHECKPOINT_FILENAMEÚSEEDVC_HUBERT_FILESÚ!SEEDVC_SPEECH_CHECKPOINT_FILENAMEÚSEEDVC_SPEECH_CONFIG_FILENAME)r   r<   s     r!   Úquery_required_filesrc   i   sï  € Ý˜$ÑÔ€DØÕ"Ò"Ð"åŒG�LŠL˜ÕAÑBÔBÝŒG�LŠL˜Õ=Ñ>Ô>ÝŒG�LŠL˜Õ7Ñ8Ô8ÝŒG�LŠL˜Õ4Ñ5Ô5ð	
ð
 cÐbÕMaÐbÑbÔbð
ð _Ð^ÕI]Ð^Ñ^Ô^ð
ð 	
ð Õ!Ò!Ð!åŒG�LŠL˜Õ?Ñ@Ô@ÝŒG�LŠL˜Õ@ÑAÔAÝŒG�LŠL˜ÕCÑDÔDÝŒG�LŠL˜ÕAÑBÔBÝŒG�LŠL˜Õ7Ñ8Ô8ð	
ð _Ð^ÕI]Ð^Ñ^Ô^ð	
ð _Ð^ÕI]Ð^Ñ^Ô^ð	
ð ]Ð\ÕH[Ð\Ñ\Ô\ð	
ð 		
õ 	Œ�Š�TÕ<Ñ=Ô=Ý
Œ�Š�TÕ8Ñ9Ô9Ý
Œ�Š�TÕ3Ñ4Ô4ðð 
[Ð	ZÕEYÐ	ZÑ	ZÔ	Zð	ð
 
[Ð	ZÕEYÐ	ZÑ	ZÔ	Zðð r%   c                 óì  — t          | ¦  «        } t          g}| t          k    r|t          t          t
          gz  }t          }nH| t          k    r%|t          t          t          t          gz  }t          }n|t          t          gz  }t          }t          |g|gdœt          |gt           gdœt          t"          gt$          gdœg}| t          k    r*|                     t          t(          gt*          gdœ¦  «         |S )N)ÚrepoIdÚsourceFolderListÚfileList)r"   rW   rT   rU   rV   rX   rB   r[   r\   r]   r^   r_   rM   ra   rb   ÚSEEDVC_REPO_IDrY   rI   rZ   ÚappendrP   r`   )r   r<   Ú
root_filesÚbigvgan_dirÚdownload_defs        r!   Úquery_download_defrm   ˆ   s  € Ý˜$ÑÔ€DÝ*Ð+€JØÕ"Ò"Ð"ØÕ9Õ;YÕ[pÐqÑqˆ
Ý,ˆˆØ	Õ#Ò	#Ð	#ØÝ,Ý-Ý0Ý.ð	
ñ 	
ˆ
õ )ˆˆàÕ8Õ:WÐXÑXˆ
Ý(ˆõ "¸°vÈJÈ<ÐXÐXÝ!¸°}ÕSgÐRhÐiÐiÝ!Õ8JÐ7KÕZnÐYoÐpÐpð€Lð
 Õ!Ò!Ð!Ø×Ò¥~ÕL]ÐK^õ  nAð  mBð  Cð  Cñ  	Dô  	Dð  	DØÐr%   c                 óD   — t          | |¦  «        }t          |¦  «         |S r   )rm   r   )r   r<   rl   s      r!   Údownload_assetsro   ¤   s%   € Ý% d¨DÑ1Ô1€LÝ˜,Ñ'Ô'Ð'ØÐr%   c           
      ó¦  — t          | ¦  «        } t          j        t          j                             |t          ¦  «        ¦  «        t          j        t          ¦  «        dœ}| t          k    rÁi |¥t          j        t          j                             |t          ¦  «        ¦  «        t          j        t          j                             |t          ¦  «        ¦  «        t          j        t          j                             |t          ¦  «        ¦  «        t          j        t          ¦  «        dœ¥S | t          k    �ri |¥t          j        t          j                             |t          ¦  «        ¦  «        t          j        t          j                             |t           ¦  «        ¦  «        t          j        t          j                             |t"          ¦  «        ¦  «        t          j        t          j                             |t$          ¦  «        ¦  «        t          j        t&          ¦  «        t          j        t(          ¦  «        dœ¥S i |¥t          j        t          j                             |t*          ¦  «        ¦  «        t          j        t          j                             |t,          ¦  «        ¦  «        t          j        t&          ¦  «        dœ¥S )N)Úcampplus_pathÚwhisper_folder)Úcheckpoint_pathÚconfig_pathÚ
rmvpe_pathÚbigvgan_folder)Úar_checkpoint_pathÚcfm_checkpoint_pathÚnarrow_checkpoint_pathÚwide_checkpoint_pathrv   Úhubert_folder)rs   rt   rv   )r"   ÚflÚlocate_filer?   r@   rA   rW   Úlocate_folderrI   rT   rU   rV   rX   rB   r[   r\   r]   r^   r_   rM   rP   ra   rb   )r   r<   Úcommons      r!   Ú_asset_pathsr€   ª   s  € Ý˜$ÑÔ€Dåœ­¬¯ª°TÕ;SÑ(TÔ(TÑUÔUÝÔ*Õ+=Ñ>Ô>ðð €Fð Õ"Ò"Ð"ð
Øð
å!œ~­b¬g¯lªl¸4ÕAcÑ.dÔ.dÑeÔeÝœ>­"¬'¯,ª,°tÕ=[Ñ*\Ô*\Ñ]Ô]Ýœ.­¬¯ª°dÕ<QÑ)RÔ)RÑSÔSÝ Ô.Õ/EÑFÔFð
ð 
ð 
ð 	
ð Õ!Ò!Ñ!ð
Øð
å"$¤.µ´·²¸dÕDdÑ1eÔ1eÑ"fÔ"fÝ#%¤>µ"´'·,²,¸tÕEfÑ2gÔ2gÑ#hÔ#hÝ&(¤nµR´W·\²\À$ÕHlÑ5mÔ5mÑ&nÔ&nÝ$&¤Nµ2´7·<²<ÀÕFhÑ3iÔ3iÑ$jÔ$jÝ Ô.Õ/AÑBÔBÝÔ-Õ.?Ñ@Ô@ð
ð 
ð 
ð 	
ðØ
ðåœ>­"¬'¯,ª,°tÕ=^Ñ*_Ô*_Ñ`Ô`Ý”~¥b¤g§l¢l°4Õ9VÑ&WÔ&WÑXÔXÝÔ*Õ+=Ñ>Ô>ð	ð ð ð r%   c                 ó¼   — g }| j         pg D ]O}	 |j        }n# t          $ r Y Œw xY wt          |t          j        j        ¦  «        r|                     |¦  «         ŒP|S r   )Ú__closure__Úcell_contentsr   Ú
isinstanceÚtorchÚnnÚModuleri   )ÚfnÚmodulesÚcellÚvalues       r!   Ú_closure_modulesrŒ   Ê   sz   € Ø€GØ”Ð$ "ð "ð "ˆð	ØÔ&ˆEˆEøÝð 	ð 	ð 	ØˆHð	øøøå�e�UœXœ_Ñ-Ô-ð 	"Ø�NŠN˜5Ñ!Ô!Ð!øØ€Ns   �—
$£$Úwaveformc                 óà   — |                       ¦   «                              ¦   «                              ¦   «         } | j        dk    r|                      d¦  «        S |                      dd¬¦  «        S )Nr   r   T)ÚdimÚkeepdim)ÚdetachÚcpur)   ÚndimÚ	unsqueezeÚmean©r�   s    r!   Ú
_make_monor—   Ö   s`   € Ø�ŠÑ Ô ×$Ò$Ñ&Ô&×,Ò,Ñ.Ô.€HØ„}˜ÒÐØ×!Ò! !Ñ$Ô$Ð$Ø�=Š=˜Q¨ˆ=Ñ-Ô-Ð-r%   c                 ó¨   — t          | ¦  «                             d¦  «                             ¦   «                              t          j        d¬¦  «        S )Nr   F)Úcopy)r—   ÚsqueezeÚnumpyÚastypeÚnpÚfloat32r–   s    r!   Ú_torch_mono_to_numpyrŸ   Ý   s?   € Ý�hÑÔ×'Ò'¨Ñ*Ô*×0Ò0Ñ2Ô2×9Ò9½"¼*È5Ð9ÑQÔQÐQr%   r@   Úsource_rateÚtarget_rateÚmax_secondsc                 ó*  — dd l }t          |¦  «        }t          |¦  «        t          |¦  «        k    r;t          j                             |t          |¦  «        t          |¦  «        ¦  «        }|�E|d d …d t          t          t          |¦  «        t          |¦  «        z  ¦  «        ¦  «        …f         }|                     | | 	                    d¦  «         
                    dd¦  «                             ¦   «         t          |¦  «        ¦  «         d S )Nr   g      ð¿ç      ð?)Ú	soundfiler—   r   Ú
torchaudioÚ
functionalÚresampleÚroundr)   Úwriterš   Úclamp_r›   )r@   r�   r    r¡   r¢   Úsfs         r!   Ú_save_mono_resampledr­   á   só   € ØÐÐÐå˜(Ñ#Ô#€HÝ
ˆ;ÑÔ�3˜{Ñ+Ô+Ò+Ð+ÝÔ(×1Ò1°(½CÀÑ<LÔ<LÍcÐR]ÑN^ÔN^Ñ_Ô_ˆØÐØ˜A˜A˜AÐR¥¥U­5°Ñ+=Ô+=ÅÀKÑ@PÔ@PÑ+PÑ%QÔ%QÑ!RÔ!RÐRÐRÔSˆØ‡H‚HˆT�8×#Ò# AÑ&Ô&×-Ò-¨d°CÑ8Ô8×>Ò>Ñ@Ô@Å#ÀkÑBRÔBRÑSÔSÐSÐSÐSr%   c                 ó   — | D ]z}|                      ¦   «         D ]c}dD ]^}t          ||d ¦  «        }t          |t          j        ¦  «        r1||j        vr(t          ||¦  «         |                     ||d¬¦  «         Œ_ŒdŒ{d S )N)Ú	freqs_cisÚcausal_maskÚ
mask_cacheÚ	input_posF)Ú
persistent)r‰   Úgetattrr„   r…   ÚTensorÚ_buffersÚdelattrÚregister_buffer)r‰   ÚmoduleÚ	submoduleÚattrr‹   s        r!   Ú"_register_unmanaged_seedvc_tensorsr¼   ì   s¶   € Øð Mð MˆØŸšÑ)Ô)ð 	Mð 	MˆIØOð Mð M�Ý 	¨4°Ñ6Ô6�Ý˜e¥U¤\Ñ2Ô2ð M°tÀ9ÔCUÐ7UÐ7UÝ˜I tÑ,Ô,Ð,Ø×-Ò-¨d°EÀeÐ-ÑLÔLÐLøð	Mð	MðMð Mr%   r¹   c                 óÎ   — t          |                      d¬¦  «        ¦  «        t          |                      d¬¦  «        ¦  «        z   D ]
}|j        c S t	          j        d¦  «        S )NT)Úrecurser’   )ÚlistÚ
parametersÚbuffersÚdevicer…   )r¹   Útensors     r!   Ú_module_devicerÄ   ö   sd   € Ý�v×(Ò(°Ð(Ñ6Ô6Ñ7Ô7½$¸v¿~º~ÐVZ¸~Ñ?[Ô?[Ñ:\Ô:\Ñ\ð ð ˆØŒ}ÐÐÐÝŒ<˜ÑÔÐr%   Úpipec                 ód  — |                       ¦   «         D ]a}|                     ¦   «         D ]J}t          |d¦  «        r8t          j        t          j                             ¦   «         rdnd¦  «        c c S ŒKŒb|                       ¦   «         D ]}t          |¦  «        c S t          j        d¦  «        S )NÚ_mm_managerÚcudar’   )Úvaluesr‰   Úhasattrr…   rÂ   rÈ   Úis_availablerÄ   )rÅ   r¹   rº   s      r!   Ú_runtime_devicerÌ   ü   sÅ   € Ø—+’+‘-”-ð Tð TˆØŸšÑ)Ô)ð 	Tð 	TˆIÝ�y -Ñ0Ô0ð TÝ”|­e¬j×.EÒ.EÑ.GÔ.GÐ$R F FÈUÑSÔSÐSÐSÐSÐSÐSðTð	Tð —+’+‘-”-ð &ð &ˆÝ˜fÑ%Ô%Ð%Ð%Ð%ÝŒ<˜ÑÔÐr%   Úsamplesc                 óD  — | j         t          j        k    r#|                      t          j        ¦  «        dz  } n4| j         t          j        k    r|                      t          j        ¦  «        } t          j        | ¦  «                             d¬¦  «        }|dk    r| |z  n| S )Ng      à@g        )Úinitialr¤   )Údtyper�   Úint16rœ   rž   ÚabsÚmax)rÍ   Úpeaks     r!   Ú_normalise_outputrÕ     s�   € Ø„}�œÒ Ð Ø—.’.¥¤Ñ,Ô,¨wÑ6ˆˆØ	Œ�"œ*Ò	$Ð	$Ø—.’.¥¤Ñ,Ô,ˆÝŒ6�'‰?Œ?×Ò sÐÑ+Ô+€DØ! CšZ˜Zˆ7�T‰>ˆ>¨WÐ4r%   Úaudio_tupleÚoutput_ratec                 óz  — | \  }}t          j        t          |¦  «        ¦  «                             ¦   «                              d¦  «        }t          |¦  «        t          |¦  «        k    r;t          j                             |t          |¦  «        t          |¦  «        ¦  «        }| 	                    dd¦  «        S )Nr   r   r   )
r…   Ú
from_numpyrÕ   r)   r”   r   r¦   r§   r¨   Úrepeat)rÖ   r×   Úconverted_raterÍ   Úconverted_tensors        r!   Ú_audio_tuple_to_stereo_tensorrÝ     s¡   € Ø)Ñ€N�GÝÔ'Õ(9¸'Ñ(BÔ(BÑCÔC×IÒIÑKÔK×UÒUÐVWÑXÔXÐÝ
ˆ>ÑÔ�c +Ñ.Ô.Ò.Ð.Ý%Ô0×9Ò9Ð:JÍCÐP^ÑL_ÔL_ÕadÐepÑaqÔaqÑrÔrÐØ×"Ò" 1 aÑ(Ô(Ð(r%   c                 ób   — 	 	 t          | ¦  «         Œ# t          $ r}|j        cY d }~S d }~ww xY wr   )ÚnextÚStopIterationr‹   )Ú	generatorÚstops     r!   Ú_consume_generator_returnrã     sR   € ðð	Ý�‰OŒOˆOð	øåð ð ð ØŒzÐÐÐÐÐÐøøøøðøøøs   ‚ “
.�)£.©.c                  óš  — ddl m}   | d¦  «        } | d¦  «        }|r’t          j                             t          j        |¦  «        ¦  «        }|r_|t          j                             dd¦  «        vr=|t          j        z   t          j                             dd¦  «        z   t          j        d<   ddl	m
} |r||_        |r	||_        d S d S )Nr   )Úresolve_media_binaryÚffmpegÚffprobeÚPATHr/   )ÚAudioSegment)Úshared.utils.video_decoderå   r?   r@   ÚdirnameÚfspathÚenvironÚgetÚpathsepÚpydubré   Ú	converterrç   )rå   Úffmpeg_pathÚffprobe_pathÚ
ffmpeg_dirré   s        r!   Ú_configure_pydub_ffmpegrõ     sè   € Ø>Ð>Ð>Ð>Ð>Ð>à&Ð& xÑ0Ô0€KØ'Ð'¨	Ñ2Ô2€LØð VÝ”W—_’_¥R¤Y¨{Ñ%;Ô%;Ñ<Ô<ˆ
Øð 	V˜*­B¬J¯NªN¸6À2Ñ,FÔ,FÐFÐFØ!+­b¬jÑ!8½2¼:¿>º>È&ÐRTÑ;UÔ;UÑ!U�BŒJ�vÑØ"Ð"Ð"Ð"Ð"Ð"àð -Ø!,ˆÔØð ,Ø+ˆÔÐÐð,ð ,r%   c                  óZ   — 	 ddl m}  n"# t          $ r}t          d¦  «        |‚d }~ww xY w| S )Nr   )Úapp_vczJSeedVC support requires the bundled `postprocessing/seedvc` package files.)r/   r÷   ÚImportError)r÷   Úexcs     r!   Ú_load_seedvc_apprú   0  sW   € ðqØÐÐÐÐÐÐøÝð qð qð qÝÐfÑgÔgÐmpÐpøøøøðqøøøà€Mó   ‚	 ‰
(“#£(c                  óZ   — 	 ddl m}  n"# t          $ r}t          d¦  «        |‚d }~ww xY w| S )Nr   )Úapp_svczRSeedVC singing support requires the bundled `postprocessing/seedvc` package files.)r/   rý   rø   )rý   rù   s     r!   Ú_load_seedvc_svc_apprþ   8  sW   € ðyØÐÐÐÐÐÐøÝð yð yð yÝÐnÑoÔoÐuxÐxøøøøðyøøøà€Nrû   c                   óF  — e Zd ZeZdZdZdZej	        fde
de
de
de
de
d	ej        d
dfd„Zd
e
fd„Zdd„Zd
ee
ej        j        f         fd„Zdd„Z	 	 dde
de
dedz  dedz  d
eej        ef         f
d„Z	 	 ddej        dedej        dedededz  dedz  d
ej        fd„ZdS )ÚSeedVCVoiceConverterr
   r   r   rs   rt   rq   rv   rr   rÐ   r   Nc                 óR  — t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        || _        d | _        d | _	        |  
                    ¦   «          d S r   )r?   rì   rs   rt   rq   rv   rr   rÐ   Ú_app_vcÚ_patched_config_pathÚ_load)Úselfrs   rt   rq   rv   rr   rÐ   s          r!   Ú__init__zSeedVCVoiceConverter.__init__F  s…   € õ  "œy¨Ñ9Ô9ˆÔÝœ9 [Ñ1Ô1ˆÔÝœY }Ñ5Ô5ˆÔÝ œi¨Ñ7Ô7ˆÔÝ œi¨Ñ7Ô7ˆÔØˆŒ
ØˆŒØ$(ˆÔ!Ø�
Š
‰Œˆˆˆr%   c                 ó¤  — dd l }t          | j        dd¬¦  «        5 }|                     |¦  «        }d d d ¦  «         n# 1 swxY w Y   | j        |d         d         d<   | j        |d         d         d<   t          j        d	d
dd¬¦  «        }|5  |                     ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |j	        | _
        |j	        S )Nr   Úrúutf-8©ÚencodingÚmodel_paramsÚvocoderÚnameÚspeech_tokenizerÚwz.ymlF©Úsuffixr  Údelete©Ú	sort_keys)ÚyamlÚopenrt   Ú	safe_loadrv   rr   ÚtempfileÚNamedTemporaryFileÚ	safe_dumpr  r  )r  r  ÚreaderÚconfigÚtmps        r!   Ú_build_local_configz(SeedVCVoiceConverter._build_local_configY  sS  € Øˆˆˆå�$Ô" C°'Ð:Ñ:Ô:ð 	,¸fØ—^’^ FÑ+Ô+ˆFð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à48Ô4Gˆˆ~Ô˜yÔ)¨&Ñ1Ø=AÔ=Pˆˆ~ÔÐ1Ô2°6Ñ:ÝÔ)¨#°fÀwÐW\Ð]Ñ]Ô]ˆØð 	9ð 	9Ø�NŠN˜6 3°%ˆNÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9à$'¤HˆÔ!ØŒxˆs!   œ>¾AÁAÂB4Â4B8Â;B8c                 ó‚  — t          ¦   «          t          ¦   «         }t          j        d¦  «        |_        | j        |_        t          j                             dt          t          | j        ¦  «        j        dz  ¦  «        ¦  «         t          | j        |                      ¦   «         | j        t          j        k    d¬¦  «        }|                     |¦  «        \  |_        |_        |_        |_        |_        |_        |j        |j        z  dz  |_        |j        |j        z  |_        || _        t          j                              d„ |j         !                    ¦   «         D ¦   «         ¦  «        | _"        t          j         #                    tI          |j        ¦  «        ¦  «        | _%        |j        | _        |j        | _        tM          |  '                    ¦   «          (                    ¦   «         ¦  «         |  '                    ¦   «          (                    ¦   «         D ] }| )                    ¦   «         D ]	}d |_*        Œ
Œ!d S )Nr’   ÚHF_HUB_CACHEÚhf_cacher   ©Ú
checkpointr  Úfp16Úgpur   c                 ór   — i | ]4\  }}t          |t          j        j        ¦  «        ¯$t	          |¦  «        |“Œ5S r0   ©r„   r…   r†   r‡   Ústr©rD   r  r¹   s      r!   ú
<dictcomp>z.SeedVCVoiceConverter._load.<locals>.<dictcomp>y  si   € ð  1Tð  1Tð  1TÁ|ÀtÈVÕoyð  {Aõ  CHô  CKô  CRñ  pSô  pSð  1Tµ°T±´¸Fð  1Tð  1Tð  1Tr%   )+rõ   rú   r…   rÂ   Ú$_load_custom_model_from_local_assetsÚload_custom_model_from_hfr?   rí   Ú
setdefaultr)  r   rq   Úparentr   rs   r  rÐ   Úfloat16Úload_modelsÚmodelÚsemantic_fnÚ
vocoder_fnÚcampplus_modelÚto_melÚmel_fn_argsÚsrÚ
hop_lengthÚmax_context_windowÚoverlap_frame_lenÚoverlap_wave_lenr  r†   Ú
ModuleDictÚitemsÚseedvc_modelÚ
ModuleListrŒ   Úsemantic_modulesr¼   Úpipe_modulesrÉ   r‰   Ú_lock_dtype)r  r÷   Úargsr¹   rº   s        r!   r  zSeedVCVoiceConverter._loadf  s  € ÝÑ!Ô!Ð!Ý!Ñ#Ô#ˆÝœ UÑ+Ô+ˆŒØ+/Ô+TˆÔ(Ý
Œ
×Ò˜n­cµ$°tÔ7IÑ2JÔ2JÔ2QÐT^Ñ2^Ñ._Ô._Ñ`Ô`Ð`Ý DÔ$8À×AYÒAYÑA[ÔA[ÐbfÔblÕpuÔp}Òb}ð  DEð  Fñ  Fô  Fˆð ×Ò˜tÑ$Ô$ñ	
ØŒLØÔØÔØÔ!ØŒMØÔà$*¤I°Ô1BÑ$BÀRÑ$GˆÔ!Ø"(Ô":¸VÔ=NÑ"NˆÔØˆŒå!œH×/Ò/ð  1Tð  1TÐW]ÔWc×WiÒWiÑWkÔWkð  1Tñ  1Tô  1Tñ  Uô  UˆÔÝ %¤× 3Ò 3Õ4DÀVÔEWÑ4XÔ4XÑ YÔ YˆÔØ$Ô3ˆÔØ Ô+ˆŒÝ*¨4×+<Ò+<Ñ+>Ô+>×+EÒ+EÑ+GÔ+GÑHÔHÐHØ×'Ò'Ñ)Ô)×0Ò0Ñ2Ô2ð 	-ð 	-ˆFØ#Ÿ^š^Ñ-Ô-ð -ð -�	Ø(,�	Ô%Ð%ð-ð	-ð 	-r%   c                 ó¸  — d„ | j                              ¦   «         D ¦   «         }t          | j        ¦  «        dk    r| j        d         |d<   n1|                     d„ t          | j        ¦  «        D ¦   «         ¦  «         t          | j        t          j	        j
        ¦  «        r
| j        |d<   t          | j        t          j	        j
        ¦  «        r
| j        |d<   |S )Nc                 ó    — i | ]\  }}d |› �|“ŒS ©Úseedvc_r0   r*  s      r!   r+  z5SeedVCVoiceConverter.pipe_modules.<locals>.<dictcomp>ƒ  s'   € ÐWÐWÐW©\¨T°6Ð ˜$Ð Ð  &ÐWÐWÐWr%   r   r   Úseedvc_whisper_smallc                 ó&   — i | ]\  }}d |dz   › �|“ŒS )Úseedvc_speech_tokenizer_r   r0   )rD   Úidxr¹   s      r!   r+  z5SeedVCVoiceConverter.pipe_modules.<locals>.<dictcomp>‡  s+   € ÐzÐzÐzÉ+È#ÈvÐ=°C¸!±GÐ=Ð=¸vÐzÐzÐzr%   Úseedvc_campplusÚseedvc_bigvgan)r?  r>  ÚlenrA  ÚupdateÚ	enumerater„   r5  r…   r†   r‡   r4  )r  rÅ   s     r!   rB  z!SeedVCVoiceConverter.pipe_modules‚  sÏ   € ØWÐW¸TÔ=N×=TÒ=TÑ=VÔ=VÐWÑWÔWˆÝˆtÔ$Ñ%Ô%¨Ò*Ð*Ø+/Ô+@ÀÔ+CˆDÐ'Ñ(Ð(à�KŠKÐzÐzÕYbÐcgÔcxÑYyÔYyÐzÑzÔzÑ{Ô{Ð{Ý�dÔ)­5¬8¬?Ñ;Ô;ð 	:Ø&*Ô&9ˆDÐ"Ñ#Ý�d”o¥u¤x¤Ñ7Ô7ð 	5Ø%)¤_ˆDÐ!Ñ"Øˆr%   c                 ó\   — |dk    r|t           k    r| j        S t          d|› d|› �¦  «        ‚)Núfunasr/campplusz0SeedVC asset is not declared for local loading: ú/)rW   rq   ÚFileNotFoundError©r  Úrepo_idÚmodel_filenameÚconfig_filenames       r!   r,  z9SeedVCVoiceConverter._load_custom_model_from_local_assetsŽ  sC   € ØÐ'Ò'Ð'¨NÕ>VÒ,VÐ,VØÔ%Ð%ÝÐ mÐSZÐ mÐ mÐ]kÐ mÐ mÑnÔnÐnr%   Úsource_wav_pathÚtarget_wav_pathÚdiffusion_stepsr   c           	      ó  — | j         €t          d¦  «        ‚t          ¦   «          t          |                      ¦   «         ¦  «        | j         _        d }| j                              |||€| j        nt          |¦  «        d|€| j	        nt          |¦  «        ¬¦  «        D ]/}t          |t          ¦  «        rt          |¦  «        dk    r|\  }}Œ0|€t          d¦  «        ‚|\  }}	t          |¦  «        t          |	¦  «        fS )NzSeedVC is not loaded.r¤   )ÚsourceÚtargetr\  Úlength_adjustÚinference_cfg_rater   zSeedVC produced no output.)r  ÚRuntimeErrorrõ   rÌ   rB  rÂ   Úvoice_conversionÚdefault_stepsr   Údefault_cfg_rater)   r„   ÚtuplerO  rÕ   ©
r  rZ  r[  r\  r   rÖ   ÚresultÚ_Úsample_raterÍ   s
             r!   ÚforwardzSeedVCVoiceConverter.forward“  s  € ð Œ<ÐÝÐ6Ñ7Ô7Ð7ÝÑ!Ô!Ð!Ý-¨d×.?Ò.?Ñ.AÔ.AÑBÔBˆŒÔØˆØ”l×3Ò3Ø"Ø"Ø2AÐ2I˜DÔ.Ð.ÍsÐSbÑOcÔOcØØ8@Ð8H˜tÔ4Ð4ÍeÐT\ÉoÌoð 4ñ 
ô 
ð 	(ð 	(ˆFõ ˜&¥%Ñ(Ô(ð (­S°©[¬[¸AÒ-=Ð-=Ø!'‘��;øØÐÝÐ;Ñ<Ô<Ð<Ø*Ñˆ�WÝ�;ÑÔÕ!2°7Ñ!;Ô!;Ð;Ð;r%   Úsource_audior    Úreference_audioÚreference_rater×   c                 ó–  — t          j        ¦   «         5 }t          j                             |d¦  «        }	t          j                             |d¦  «        }
t          |	||| j        ¬¦  «         t          |
||| j        t          ¬¦  «         |                      |	|
||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          ||¦  «        S )Nzsource_22k.wavztarget_22k.wav)r¡   )r¡   r¢   )r\  r   )
r  ÚTemporaryDirectoryr?   r@   rA   r­   rj  ÚSEEDVC_MAX_REFERENCE_SECONDSrk  rÝ   )r  rl  r    rm  rn  r×   r\  r   ÚtmpdirÚsource_pathÚtarget_pathÚ	converteds               r!   Úconvert_tensorz#SeedVCVoiceConverter.convert_tensor­  s  € õ Ô(Ñ*Ô*ð 	s¨fÝœ'Ÿ,š, vÐ/?Ñ@Ô@ˆKÝœ'Ÿ,š, vÐ/?Ñ@Ô@ˆKÝ  ¨l¸KÐUYÔUeÐfÑfÔfÐfÝ  ¨o¸~Ð[_Ô[kõ  zVð  Wñ  Wô  Wð  WØŸš [°+ÈÐiq˜ÑrÔrˆIð	sð 	sð 	sñ 	sô 	sð 	sð 	sð 	sð 	sð 	sð 	søøøð 	sð 	sð 	sð 	sõ -¨Y¸ÑDÔDÐDs   ”BB0Â0B4Â7B4©r   Nr   ©NN)Ú__name__Ú
__module__Ú__qualname__r   r   rd  re  rj  r…   r0  r)  rÐ   r  r  r  Údictr†   r‡   rB  r,  r   r)   rf  r�   Úndarrayrk  rµ   rv  r0   r%   r!   r   r   @  sð  € € € € € Ø€DØ€MØÐØ€Kð #œ]ðð àðð ðð ð	ð
 ðð ðð Œ{ðð 
ðð ð ð ð& Sð ð ð ð ð-ð -ð -ð -ð8
˜d 3¨¬¬Ð#7Ô8ð 
ð 
ð 
ð 
ðoð oð oð oð '+Ø!%ð<ð <àð<ð ð<ð ˜t™ð	<ð
 ˜$‘,ð<ð 
ˆrŒz˜3ˆÔ	ð<ð <ð <ð <ðB '+Ø!%ðEð Eà”lðEð ðEð œð	Eð
 ðEð ðEð ˜t™ðEð ˜$‘,ðEð 
ŒðEð Eð Eð Eð Eð Er%   r   c                   óô   ‡ — e Zd ZeZdZdZdZej	        fde
de
de
de
de
d	e
d
ej        ddfˆ fd„Zdd„Zdd„Zdee
ej        j        f         fˆ fd„Z	 	 dde
de
dedz  dedz  deej        ef         f
d„Zˆ xZS )ÚSeedVCSingingConverterr   r   iD¬  rs   rt   rq   ru   rv   rr   rÐ   r   Nc                 óˆ   •— t          j        |¦  «        | _        t          ¦   «                              ||||||¬¦  «         d S )N)rÐ   )r?   rì   ru   Úsuperr  )	r  rs   rt   rq   ru   rv   rr   rÐ   Ú	__class__s	           €r!   r  zSeedVCSingingConverter.__init__Æ  sC   ø€ õ œ) JÑ/Ô/ˆŒÝ‰Œ×Ò˜¨+°}ÀnÐVdÐlqÐÑrÔrÐrÐrÐrr%   c                 óÄ  — t          ¦   «          t          ¦   «         }t          j        d¦  «        |_        | j        |_        t          j                             dt          t          | j        ¦  «        j        dz  ¦  «        ¦  «         t          | j        |                      ¦   «         | j        t          j        k    d¬¦  «        }|                     |¦  «        \  |_        |_        |_        |_        |_        |_        |_        |j        |j        z  dz  |_        |j        |j        z  |_        || _        t          j          !                    d„ |j         "                    ¦   «         D ¦   «         ¦  «        | _#        t          j          $                    tK          |j        ¦  «        ¦  «        | _&        |j        | _        |j        | _        tO          |j        dd ¦  «        | _(        tS          |  *                    ¦   «          +                    ¦   «         ¦  «         |  *                    ¦   «          +                    ¦   «         D ] }| ,                    ¦   «         D ]	}d |_-        Œ
Œ!d S )	Nr’   r!  r"  r   r#  r   c                 ór   — i | ]4\  }}t          |t          j        j        ¦  «        ¯$t	          |¦  «        |“Œ5S r0   r(  r*  s      r!   r+  z0SeedVCSingingConverter._load.<locals>.<dictcomp>ç  si   € ð  1Xð  1Xð  1XÁ|ÀtÈVÕs}ð  Eõ  GLô  GOô  GVñ  tWô  tWð  1Xµ°T±´¸Fð  1Xð  1Xð  1Xr%   Ú__self__).rõ   rþ   r…   rÂ   r,  r-  r?   rí   r.  r)  r   rq   r/  r   rs   r  rÐ   r0  r1  Úmodel_f0r3  r4  r5  Ú	to_mel_f0r7  Úf0_fnr8  r9  r:  r;  r<  r  r†   r=  r>  r?  r@  rŒ   rA  r´   Úf0_extractorr¼   rB  rÉ   r‰   rC  )r  rý   rD  r¹   rº   s        r!   r  zSeedVCSingingConverter._loadÓ  s6  € ÝÑ!Ô!Ð!Ý&Ñ(Ô(ˆÝœ eÑ,Ô,ˆŒØ,0Ô,UˆÔ)Ý
Œ
×Ò˜n­cµ$°tÔ7IÑ2JÔ2JÔ2QÐT^Ñ2^Ñ._Ô._Ñ`Ô`Ð`Ý DÔ$8À×AYÒAYÑA[ÔA[ÐbfÔblÕpuÔp}Òb}ð  DEð  Fñ  Fô  Fˆð ×Ò Ñ%Ô%ñ	
ØÔØÔØÔØÔ"ØÔØÔØŒMà%,¤Z°7Ô3EÑ%EÈÑ%JˆÔ"Ø#*Ô#<¸wÔ?QÑ#QˆÔ ØˆŒå!œH×/Ò/ð  1Xð  1XÐW^ÔWg×WmÒWmÑWoÔWoð  1Xñ  1Xô  1Xñ  Yô  YˆÔÝ %¤× 3Ò 3Õ4DÀWÔEXÑ4YÔ4YÑ ZÔ ZˆÔØ%Ô4ˆÔØ!Ô,ˆŒÝ# G¤M°:¸tÑDÔDˆÔÝ*¨4×+<Ò+<Ñ+>Ô+>×+EÒ+EÑ+GÔ+GÑHÔHÐHØ×'Ò'Ñ)Ô)×0Ò0Ñ2Ô2ð 	-ð 	-ˆFØ#Ÿ^š^Ñ-Ô-ð -ð -�	Ø(,�	Ô%Ð%ð-ð	-ð 	-r%   c                 óŒ   — |dk    r|t           k    r| j        S |dk    r|t          k    r| j        S t	          d|› d|› �¦  «        ‚)NrS  zlj1995/VoiceConversionWebUIz8SeedVC singing asset is not declared for local loading: rT  )rW   rq   rX   ru   rU  rV  s       r!   r,  z;SeedVCSingingConverter._load_custom_model_from_local_assetsñ  sb   € ØÐ'Ò'Ð'¨NÕ>VÒ,VÐ,VØÔ%Ð%ØÐ3Ò3Ð3¸ÕJ_Ò8_Ð8_Ø”?Ð"ÝÐ uÐ[bÐ uÐ uÐesÐ uÐ uÑvÔvÐvr%   c                 óÚ   •— t          ¦   «                              ¦   «         }| j        �BdD ]?}t          | j        |d ¦  «        }t	          |t
          j        j        ¦  «        r||d|› �<   Œ@|S )N)Úmel_extractorr2  Ú
seedvc_f0_)r�  rB  r‰  r´   r„   r…   r†   r‡   )r  rÅ   r»   r¹   r‚  s       €r!   rB  z#SeedVCSingingConverter.pipe_modulesø  ss   ø€ Ý‰wŒw×#Ò#Ñ%Ô%ˆØÔÐ(Ø2ð 7ð 7�Ý  Ô!2°D¸$Ñ?Ô?�Ý˜f¥e¤h¤oÑ6Ô6ð 7Ø06�DÐ, dÐ,Ð,Ñ-øØˆr%   rZ  r[  r\  r   c           	      ó@  — | j         €t          d¦  «        ‚t          ¦   «          t          |                      ¦   «         ¦  «        | j         _        | j        �| j         j        | j        _        d }| j                              |||€| j        nt          |¦  «        d|€| j
        nt          |¦  «        dd¬¦  «        D ]/}t          |t          ¦  «        rt          |¦  «        dk    r|\  }}Œ0|€t          d¦  «        ‚|\  }}	t          |¦  «        t          |	¦  «        fS )Nz#SeedVC singing model is not loaded.r¤   Tr   )r^  r_  r\  r`  ra  Úauto_f0_adjustÚpitch_shiftr   z(SeedVC singing model produced no output.)r  rb  rõ   rÌ   rB  rÂ   r‰  rc  rd  r   re  r)   r„   rf  rO  rÕ   rg  s
             r!   rk  zSeedVCSingingConverter.forward  s1  € ð Œ<ÐÝÐDÑEÔEÐEÝÑ!Ô!Ð!Ý-¨d×.?Ò.?Ñ.AÔ.AÑBÔBˆŒÔØÔÐ(Ø'+¤|Ô':ˆDÔÔ$ØˆØ”l×3Ò3Ø"Ø"Ø2AÐ2I˜DÔ.Ð.ÍsÐSbÑOcÔOcØØ8@Ð8H˜tÔ4Ð4ÍeÐT\ÉoÌoØØð 4ñ 
ô 
ð 
	(ð 
	(ˆFõ ˜&¥%Ñ(Ô(ð (­S°©[¬[¸AÒ-=Ð-=Ø!'‘��;øØÐÝÐIÑJÔJÐJØ*Ñˆ�WÝ�;ÑÔÕ!2°7Ñ!;Ô!;Ð;Ð;r%   rw  r   rx  )ry  rz  r{  rT   r   rd  re  rj  r…   r0  r)  rÐ   r  r  r,  r|  r†   r‡   rB  r   r)   rf  r�   r}  rk  Ú__classcell__)r‚  s   @r!   r  r  À  s€  ø€ € € € € Ø€DØ€MØÐØ€Kð #œ]ðsð sàðsð ðsð ð	sð
 ðsð ðsð ðsð Œ{ðsð 
ðsð sð sð sð sð sð-ð -ð -ð -ð<wð wð wð wð˜d 3¨¬¬Ð#7Ô8ð ð ð ð ð ð ð '+Ø!%ð<ð <àð<ð ð<ð ˜t™ð	<ð
 ˜$‘,ð<ð 
ˆrŒz˜3ˆÔ	ð<ð <ð <ð <ð <ð <ð <ð <r%   r  c                   ó
  — e Zd ZeZdZdZdZej	        fde
de
de
de
de
d	e
d
e
de
dej        ddfd„Zde
fd„Zdd„Zdd„Zdee
ej        j        f         fd„Z	 	 ddej        dedej        dedededz  dedz  dej        fd„ZdS )ÚSeedVCAccentConverterr   r   r   rw   rx   ry   rz   rq   rv   rr   r{   rÐ   r   Nc
                 óè  — t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _        t          j        |¦  «        | _	        |	| _
        d | _        d | _        |                      ¦   «          d S r   )r?   rì   rw   rx   ry   rz   rq   rv   rr   r{   rÐ   Ú
vc_wrapperr  r  )
r  rw   rx   ry   rz   rq   rv   rr   r{   rÐ   s
             r!   r  zSeedVCAccentConverter.__init__&  s¿   € õ #%¤)Ð,>Ñ"?Ô"?ˆÔÝ#%¤9Ð-@Ñ#AÔ#AˆÔ Ý&(¤iÐ0FÑ&GÔ&GˆÔ#Ý$&¤IÐ.BÑ$CÔ$CˆÔ!ÝœY }Ñ5Ô5ˆÔÝ œi¨Ñ7Ô7ˆÔÝ œi¨Ñ7Ô7ˆÔÝœY }Ñ5Ô5ˆÔØˆŒ
ØˆŒØ$(ˆÔ!Ø�
Š
‰Œˆˆˆr%   c                 ó  — dd l }t          t          ¦  «                             ¦   «         j        dz  dz  dz  }t          |dd¬¦  «        5 }|                     |¦  «        }d d d ¦  «         n# 1 swxY w Y   | j        |d         d	<   d
D ]"}| j        ||         d<   | j	        ||         d<   Œ#t          j        dddd¬¦  «        }|5  |                     ||d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |j        | _        |j        S )Nr   ÚconfigsÚv2zvc_wrapper.yamlr  r	  r
  r  Úpretrained_model_name_or_path)Úcontent_extractor_narrowÚcontent_extractor_wideÚtokenizer_nameÚssl_model_namer  z.yamlFr  r  )r  r   Ú__file__Úresolver/  r  r  rv   rr   r{   r  r  r  r  r  )r  r  rt   r  r  Úkeyr  s          r!   r  z)SeedVCAccentConverter._build_local_config?  s”  € Øˆˆˆå�8‘n”n×,Ò,Ñ.Ô.Ô5¸	ÑAÀDÑHÐK\Ñ\ˆÝ�+˜s¨WÐ5Ñ5Ô5ð 	,¸Ø—^’^ FÑ+Ô+ˆFð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à=AÔ=PˆˆyÔÐ9Ñ:ØIð 	?ð 	?ˆCØ,0Ô,?ˆF�3ŒKÐ(Ñ)Ø,0Ô,>ˆF�3ŒKÐ(Ñ)Ð)ÝÔ)¨#°gÈÐX]Ð^Ñ^Ô^ˆØð 	9ð 	9Ø�NŠN˜6 3°%ˆNÑ8Ô8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9à$'¤HˆÔ!ØŒxˆs$   ÁA-Á-A1Á4A1ÃC,Ã,C0Ã3C0c                 óü  — dd l }ddlm} ddlm} t          ¦   «          ddlm} | j        |_	        t          j                             dt          t          | j        ¦  «        j        dz  ¦  «        ¦  «         t#          |                      ¦   «         dd	¬
¦  «        5 } ||                     |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y    ||¦  «        | _        | j                             | j        | j        ¬¦  «         | j                             t1          j        d¦  «        ¦  «         | j                             ¦   «          | j                             dd| j        t1          j        d¦  «        ¬¦  «         t;          |                      ¦   «                              ¦   «         ¦  «         |                      ¦   «                              ¦   «         D ] }|                      ¦   «         D ]	}d |_!        Œ
Œ!d S )Nr   )Úinstantiate)Ú
DictConfigr   )r•  r!  r"  r  r	  r
  )rw   rx   r’   i   )Úmax_batch_sizeÚmax_seq_lenrÐ   rÂ   )"r  Úhydra.utilsr¢  Ú	omegaconfr£  rõ   Ú
modules.v2r•  r,  r-  r?   rí   r.  r)  r   rq   r/  r  r  r  Úload_checkpointsrw   rx   Útor…   rÂ   ÚevalÚsetup_ar_cachesrÐ   r¼   rB  rÉ   r‰   rC  )	r  r  r¢  r£  Úvc_wrapper_moduler  Úcfgr¹   rº   s	            r!   r  zSeedVCAccentConverter._loadO  s?  € ØˆˆˆØ+Ð+Ð+Ð+Ð+Ð+Ø(Ð(Ð(Ð(Ð(Ð(åÑ!Ô!Ð!Ø?Ð?Ð?Ð?Ð?Ð?à6:Ô6_ÐÔ3Ý
Œ
×Ò˜n­cµ$°tÔ7IÑ2JÔ2JÔ2QÐT^Ñ2^Ñ._Ô._Ñ`Ô`Ð`Ý�$×*Ò*Ñ,Ô,¨c¸GÐDÑDÔDð 	5ÈØ�*˜TŸ^š^¨FÑ3Ô3Ñ4Ô4ˆCð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5à%˜+ cÑ*Ô*ˆŒØŒ×(Ò(¸DÔ<SÐimô  jBÐ(ñ  	Cô  	Cð  	CØŒ×Ò�5œ<¨Ñ.Ô.Ñ/Ô/Ð/ØŒ×ÒÑÔÐØŒ×'Ò'°qÀdÐRVÔR\ÕejÔeqÐrwÑexÔexÐ'ÑyÔyÐyÝ*¨4×+<Ò+<Ñ+>Ô+>×+EÒ+EÑ+GÔ+GÑHÔHÐHØ×'Ò'Ñ)Ô)×0Ò0Ñ2Ô2ð 	-ð 	-ˆFØ#Ÿ^š^Ñ-Ô-ð -ð -�	Ø(,�	Ô%Ð%ð-ð	-ð 	-s   ÂCÃCÃCc                 ó¼   — |dk    r|t           k    r| j        S |dk    r|t          k    r| j        S |dk    r|t          k    r| j        S t          d|› d|› �¦  «        ‚)NzPlachta/ASTRAL-quantizationrS  z3SeedVC v2 asset is not declared for local loading: rT  )r^   ry   r_   rz   rW   rq   rU  rV  s       r!   r,  z:SeedVCAccentConverter._load_custom_model_from_local_assetse  sƒ   € ØÐ3Ò3Ð3¸ÕJnÒ8nÐ8nØÔ.Ð.ØÐ3Ò3Ð3¸ÕJlÒ8lÐ8lØÔ,Ð,ØÐ'Ò'Ð'¨NÕ>VÒ,VÐ,VØÔ%Ð%ÝÐ pÐV]Ð pÐ pÐ`nÐ pÐ pÑqÔqÐqr%   c                 óZ   — | j         €i S d„ | j                              ¦   «         D ¦   «         S )Nc                 ó^   — i | ]*\  }}t          |t          j        j        ¦  «        ¯$d |› �|“Œ+S )Ú
seedvc_v2_)r„   r…   r†   r‡   r*  s      r!   r+  z6SeedVCAccentConverter.pipe_modules.<locals>.<dictcomp>q  s`   € ð  Ið  Ið  I±°°fÕdnÐouÕw|Ôwô  xGñ  eHô  eHð  IÐ#˜TÐ#Ð# Vð  Ið  Ið  Ir%   )r•  Únamed_children)r  s    r!   rB  z"SeedVCAccentConverter.pipe_modulesn  sC   € ØŒ?Ð"ØˆIð Ið  IÀÄ×@^Ò@^Ñ@`Ô@`ð  Iñ  Iô  Ið  	Ir%   rl  r    rm  rn  r×   r\  r   c                 óT  — | j         €t          d¦  «        ‚t          |                      ¦   «         ¦  «        }|j        dk    r| j        nt          j        }	| j                              t          |¦  «        t          |¦  «        t          |¦  «        t          |¦  «        |€| j        nt          |¦  «        d|€| j        nt          |¦  «        |€| j        nt          |¦  «        dddt          d||	¬¦  «        }
t          |
¦  «        }|€t          d¦  «        ‚t!          ||¦  «        S )NzSeedVC v2 model is not loaded.rÈ   r¤   gÍÌÌÌÌÌì?F)Úsource_waveÚtarget_waveÚ	source_srÚ	target_srr\  r`  Úintelligebility_cfg_rateÚsimilarity_cfg_rateÚtop_pÚtemperatureÚrepetition_penaltyÚconvert_styleÚanonymization_onlyrÂ   rÐ   zSeedVC v2 produced no output.)r•  rb  rÌ   rB  ÚtyperÐ   r…   rž   Úconvert_voice_arraysrŸ   r   rd  re  r)   ÚSEEDVC_V2_CONVERT_STYLErã   rÝ   )r  rl  r    rm  rn  r×   r\  r   rÂ   rÐ   rá   rÖ   s               r!   rv  z$SeedVCAccentConverter.convert_tensors  s+  € ð Œ?Ð"ÝÐ?Ñ@Ô@Ð@Ý  ×!2Ò!2Ñ!4Ô!4Ñ5Ô5ˆØ$œk¨VÒ3Ð3�”
�
½¼ˆØ”O×8Ò8Ý,¨\Ñ:Ô:Ý,¨_Ñ=Ô=Ý˜+Ñ&Ô&Ý˜.Ñ)Ô)Ø2AÐ2I˜DÔ.Ð.ÍsÐSbÑOcÔOcØØ>FÐ>N TÔ%:Ð%:ÕTYÐZbÑTcÔTcØ9AÐ9I Ô 5Ð 5ÍuÐU]ÉÌØØØ"Ý1Ø$ØØð 9ñ 
ô 
ˆ	õ" 0°	Ñ:Ô:ˆØÐÝÐ>Ñ?Ô?Ð?Ý,¨[¸+ÑFÔFÐFr%   rw  r   rx  )ry  rz  r{  r[   r   rd  re  rj  r…   r0  r)  rÐ   r  r  r  r,  r|  r†   r‡   rB  rµ   r   r)   rv  r0   r%   r!   r“  r“     s®  € € € € € Ø€DØ€MØÐØ€Kð #œ]ðð àðð !ðð !$ð	ð
 "ðð ðð ðð ðð ðð Œ{ðð 
ðð ð ð ð2 Sð ð ð ð ð -ð -ð -ð -ð,rð rð rð rðI˜d 3¨¬¬Ð#7Ô8ð Ið Ið Ið Ið '+Ø!%ð"Gð "Gà”lð"Gð ð"Gð œð	"Gð
 ð"Gð ð"Gð ˜t™ð"Gð ˜$‘,ð"Gð 
Œð"Gð "Gð "Gð "Gð "Gð "Gr%   r“  rÐ   c                 ó¬   — t          |¦  «        }t          t          t          t          t
          t          i|         } |di t          ||¦  «        ¤d| i¤ŽS )NrÐ   r0   )r"   r   r   rT   r  r[   r“  r€   )rÐ   r<   r   Úconverter_clss       r!   Ú	get_modelrÅ  ˜  s_   € Ý˜$ÑÔ€DåÕ0ÝÕ3ÝÕ1ðð ô	€Mð
 ˆ=ÐAÐA�<¨¨dÑ3Ô3ÐAÐA¸5ÐAÐAÐAÐAr%   c                 óV   — |€t          |||¬¦  «        n|}|                     ¦   «         S )N)rÐ   r<   r   )rÅ  rB  )Ú
profile_norÐ   r<   r2  r   r?  s         r!   Úget_piperÈ  ¢  s2   € ØCHÀ=•9 5¨t¸$Ð?Ñ?Ô?Ð?ÐV[€LØ×$Ò$Ñ&Ô&Ð&r%   c                 ó8   ‡— d„ | D ¦   «         Šˆfd„‰D ¦   «         S )Nc                 óV   — g | ]&}t          |¦  «                             d ¦  «        ¯$|‘Œ'S rG  )r)  Ú
startswith)rD   r   s     r!   rF   z%get_cotenants_map.<locals>.<listcomp>¨  s1   € ÐIÐIÐI˜3­#¨c©(¬(×*=Ò*=¸iÑ*HÔ*HÐI�3ÐIÐIÐIr%   c                 ó0   •— i | ]}|t          ‰¦  «        “ŒS r0   )r¿   )rD   r   Úseedvc_keyss     €r!   r+  z%get_cotenants_map.<locals>.<dictcomp>©  s#   ø€ Ð:Ð:Ð: sˆC•�kÑ"Ô"Ð:Ð:Ð:r%   r0   )rÅ   rÍ  s    @r!   Úget_cotenants_maprÎ  §  s0   ø€ ØIÐI $ÐIÑIÔI€KØ:Ð:Ð:Ð:¨kÐ:Ñ:Ô:Ð:r%   r   rw  )Yr?   r  Úargparser   Úpathlibr   r›   r�   r…   r¦   Úshared.utilsr   r|   Úshared.utils.downloadr   r   rT   r[   rW   ra   rb   rU   rV   rX   r\   r]   r^   r_   ÚSEEDVC_CHECKPOINT_FILENAMEÚSEEDVC_CONFIG_FILENAMEÚSEEDVC_DEFAULT_STEPSÚSEEDVC_DEFAULT_CFG_RATEÚSEEDVC_SAMPLE_RATErq  rh   ÚSEEDVC_ROOTÚSEEDVC_CHECKPOINT_DIRrÂ  rM   rB   rI   rP   rY   rZ   r`   r   r   r)  r"   r$   r'   r)   r*   Úboolr4   r;   r¿   rc   r|  rm   ro   r€   r†   r‡   rŒ   rµ   r—   r}  rŸ   r­   r¼   rÂ   rÄ   rÌ   rÕ   rf  rÝ   rã   rõ   rú   rþ   r   r  r“  r0  rÐ   rÅ  rÈ  rÎ  r0   r%   r!   ú<module>rÛ     sœ  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð Ð ØÐ ØÐ à3Ð Ø$_Ð !Ø TÐ Ø%hÐ "Ø!SÐ Ø"Ð Ø#3Ð  Ø$6Ð !Ø'>Ð $Ø%@Ð "à>Ð Ø6Ð ØÐ ØÐ ØÐ Ø#Ð Ø%€Ø€Ø#Ð àÐ Ø3Ð Ø8Ð Ø$Ð Ø(Ð Ø%Ð'=Ð>Ð ðð ð Ð ð WÐVÐVÐ ð  -¸"È#ÐNÐNØÐ#:ÀRÐUXÐYÐYØ +¸ÈÐLÐLð€ðB˜˜s™ TÑ)ð B¨cð Bð Bð Bð Bð9�S˜3‘Y Ñ%ð 9¨#ð 9ð 9ð 9ð 9ð 0Bð >ð >˜C #™I¨Ñ,ð >Àcð >ð >ð >ð >ð 3Eð Cð C˜s S™y¨4Ñ/ð CÈð Cð Cð Cð Cðð Ðswð Ð|ð ð ð ð ðAð Að  BFð Að  KNð Að Að Að Að 3EÐR]ð ð ˜s S™y¨4Ñ/ð ÈCð ÐbfÐgjÔbkð ð ð ð ð> 1CÐP[ð ð ˜S 3™Y¨Ñ-ð È#ð Ð`dÐeiÔ`jð ð ð ð ð8 .@È[ð ð ˜# ™) dÑ*ð Àsð Ð]aÐbfÔ]gð ð ð ð ð +=È+ð ð �s˜S‘y 4Ñ'ð ÀCð ÐZ^Ð_bÐdgÐ_gÔZhð ð ð ð ð@	˜D ¤¤Ô1ð 	ð 	ð 	ð 	ð.˜œð .¨%¬,ð .ð .ð .ð .ðR 5¤<ð R°B´Jð Rð Rð Rð Rð btð  RVð Tð T˜sð T¨e¬lð TÈð TÐ[^ð Tð  CHð  KOñ  COð Tð  [_ð Tð Tð Tð TðMð Mð Mð Mð˜5œ8œ?ð ¨u¬|ð ð ð ð ð˜$˜s E¤H¤OÐ3Ô4ð ¸¼ð ð ð ð ð5˜rœzð 5¨b¬jð 5ð 5ð 5ð 5ð)¨u°S¸"¼*°_Ô/Eð )ÐTWð )Ð\aÔ\hð )ð )ð )ð )ðð ð ð,ð ,ð ,ð ,ð"ð ð ðð ð ð}Eð }Eð }Eð }Eð }Eñ }Eô }Eð }Eð@]<ð ]<ð ]<ð ]<ð ]<Ð1ñ ]<ô ]<ð ]<ð@uGð uGð uGð uGð uGñ uGô uGð uGðp $)¤=¸kÐdvð Bð B�U”[ð B¸ð BÐQTÐWZÑQZÐ]aÑQað Bð Bð Bð Bð °5´=ÈkÐaeð  ASð 'ð ' U¤[ð 'Èð 'ÐmpÐsvÑmvÐy}Ñm}ð 'ð  X\ð  ]`ð  bgô  bjô  bqð  ]qô  Xrð 'ð 'ð 'ð 'ð
;˜D  e¤h¤oÐ!5Ô6ð ;¸4ÀÀTÈ#ÄYÀÔ;Oð ;ð ;ð ;ð ;ð ;ð ;r%   