
    9ij*                     n   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	J
r
  S SKrS SKJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJrJrJ r J!r!J"r"  S SK#J$r$  S SK%J&r&J'r'J(r(J)r)J*r*J+r+  S SK,J-r-  S SK.J/r/  \/" 5       r0\Rb                  " \Rd                  S9 " S S\5      5       r3g)    N)CallableDictListOptionalTupleUnion)PreprocessorsTrainers)Model)SambertHifigan)	MsDataset)build_preprocessor)BaseTrainer)TRAINERS)TtsTrainType) TtsTrainingCfgNotExistsException"TtsTrainingDatasetInvalidException"TtsTrainingHparamsInvalidException TtsTrainingInvalidModelException$TtsTrainingWorkDirNotExistsException)Config)DEFAULT_DATASET_NAMESPACEDEFAULT_DATASET_REVISIONDEFAULT_MODEL_REVISION	ModelFileTasksTrainerStages)	to_device)
get_logger)module_namec                       \ rS rSrSrSrSrSrSSSSS\\	\
R                  0 \
R                  0 0S	\4
S
\\\4   S\S\S\S\S\\\4   S\S\S\S\\   4S jjrS rS\4S jrS rS rS rS rS\S\\\4   4S jrSrg) KanttsTrainer!   datatmp_amtmp_voc
orig_modelNF7PinYinFmodelwork_dirspeaker	lang_typecfg_filetrain_datasettrain_dataset_namespacetrain_dataset_revision
train_typemodel_revisionc                    U(       ds  [         R                  " 5       R                  U l        [        R
                  R                  U R                  5      (       d   [        R                  " U R                  5        OX l        [        R
                  R                  U R                  5      (       d  [        U R                   S35      e[        5       U l
        [        U	[        5      (       ae  U	R                  5        HQ  u  pU[        R                  :X  d*  U[        R                  :X  d  U[        R                   :X  d  MC  XR                  U'   MS     [#        U R                  5      S:X  aO  [$        R'                  S5        0 U R                  [        R                  '   0 U R                  [        R                  '   [$        R'                  SU R                   35        [        R
                  R)                  U R                  U R*                  5      U l        [        R
                  R)                  U R                  U R.                  5      U l        [        R
                  R)                  U R                  U R2                  5      U l        [        R
                  R)                  U R                  U R6                  5      U l        SU l        Xl        SU l        SU l         SU l!        [D        RF                  " U R,                  SS9  [D        RF                  " U R0                  SS9  [D        RF                  " U R4                  SS9  [D        RF                  " U R8                  SS9  [        R                  " U R,                  5        [        R                  " U R0                  5        [        R                  " U R4                  5        U(       a  [        U[H        5      (       a  [        R
                  R                  U5      (       a  [$        R'                  SU 35        X`l        O[$        R'                  SU S	U 35        [J        RL                  " UUUS
9n[$        R'                  SURN                   35        U RQ                  U5      U l        OU RQ                  U5      U l        U(       d  [S        S5      e[        U[H        5      (       a  U RU                  X5      nOURV                  n[D        RX                  " XR8                  5        U R8                  U l+        U(       d8  [        R
                  R)                  U RV                  [Z        R\                  5      nU R_                  U5        [        R
                  R                  U R:                  5      (       d  [a        S5      eSU l1        X0l2        S U l3        URi                  SS5      U l5        U Rm                  U RV                  U Rd                  5      U l3        U Rf                  Rn                  U l7        [        R                  U R                  ;   d  [        R                  U R                  ;   a5  [q        [        [r        Rt                  S9[v        Rx                  5      U l=        g g )Nz not existsr   z,train type empty, default to sambert and voczSet workdir to  T)ignore_errorszload /dataset_name	namespaceversionztrain dataset:zmodel param is nonezdataset raw path not existsFdevicegpu)type)>tempfileTemporaryDirectorynamer+   ospathexistsmakedirsr   dictr2   
isinstanceitemsr   TRAIN_TYPE_SAMBERTTRAIN_TYPE_VOCTRAIN_TYPE_BERTlenloggerinfojoinDATA_DIRdata_dir
AM_TMP_DIR
am_tmp_dirVOC_TMP_DIRvoc_tmp_dirORIG_MODEL_DIRorig_model_dirraw_dataset_pathskip_scriptaudio_config_patham_config_pathvoc_config_pathshutilrmtreestrr   loadconfig_kwargsload_dataset_raw_pathr   get_or_download_model_dir	model_dircopytreer   CONFIGURATION	parse_cfgr   finetune_from_pretrainr,   r*   getr<   	get_modelr-   r   r	   kantts_data_preprocessorr   text_to_speechaudio_data_preprocessor)selfr*   r+   r,   r-   r.   r/   r0   r1   r2   preprocess_skip_scriptr3   kwargskvrd   s                   e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/trainers/audio/tts_trainer.py__init__KanttsTrainer.__init__(   sl   " $779>>DM77>>$--00DMM*$Mww~~dmm,,6==/-/ / &j$''"((*888 ; ;; < <<)*OOA&	 + t1$KKFG?ADOOL;;<;=DOOL778odmm_56T]]DMMB'',,t}}dooF77<<t7G7GH ggll4==$:M:MN "1!# !dmm48dooT:d&&d;d))>
DMM"
DOO$
D$$%---77>>-00KK% 78,9)KK 78-IK$-NN%2"9 6%8M KK.1L1L0M NO,0,F,F%-'D) )-(B(B!)#% 23HIIeS!!66uMII	#6#67,,ww||DNNI4K4KLHx ww~~d33444-/ / ',#
jj51^^DNNDLLA
--**doo=A\A\`d`o`oAo+=-@@A$$,&D( Bp    c                 l   [         R                  R                  U5      n[        USSS9 n[        R
                  " U5      nSU;  a  [        S5      eSUS   ;   aP  [         R                  R                  UUS   S   5      n[         R                  R                  U5      (       a  XPl	        SUS   ;   aO  [         R                  R                  X$S   S   5      n[         R                  R                  U5      (       a  X`l
        SUS   ;   aP  [         R                  R                  UUS   S   5      n[         R                  R                  U5      (       a  Xpl        U R                  (       d  S	US   ;   a  US   S	   n[         R                  R                  U5      (       a  Xl        OrS
U;   a\  UR                  S[        5      n	UR                  S[        5      n
[         R
                  " US
   U	U
S9nU R#                  U5      U l        OSU;   a
  US   U l        S S S 5        g ! , (       d  f       g = f)Nrzutf-8)encodingtrainzmodel not support finetuneaudio_config	am_config
voc_configr/   idr:   revisionr8   rC   )rB   rC   dirnameopenjsonr`   r   rO   rD   rZ   r[   r\   rX   ri   r   r   r   rb   )rn   r.   cur_dirfconfigr{   r|   r}   datasetr:   r   mss               rs   rg   KanttsTrainer.parse_cfg   s   ''//(+(C'2aYYq\Ff$602 20!ww||G,27ON,K M77>>,//-9*fWo-GGLL/+2NO	77>>),,*3'vg.WW\\'*0/,*GI
77>>*--+5((("fWo5$Woo>Gww~~g..07-7?(/K4M)OI'.{{:3K(MH!*-4T]*3(0"2B 594N4N "5$D1#w.4;FOD1K 322s   G1H%%
H3r   c                     SUR                   ;  a  [        S5      eSUR                   S   ;  a  [        S5      eUR                   S   S   $ )Nsplit_configz'split_config not found in config_kwargsrz   zno train split in split_config)ra   r   )rn   r   s     rs   rb   #KanttsTrainer.load_dataset_raw_path   sY    !6!6649; ;'//??402 2$$^4W==rv   c           	         U R                   (       a  U R                  nU(       a$  [        R                  R	                  U5      (       d%  U R
                  R                  U R                  5      nU R
                  R                  U R                  5      nU R                  U R                  U R                  XR                  U R                  U R                  U5        g g N)rm   rZ   rB   rC   rD   r*   get_voice_audio_config_pathr,   get_voice_se_model_pathrX   rQ   r-   rY   )rn   r{   se_models      rs   prepare_dataKanttsTrainer.prepare_data   s    ''11Lrww~~l'C'C#zzEELL "zz99$,,GH(()>)>)5||)-9I9I)13 (rv   c                     g r    )rn   s    rs   prepare_textKanttsTrainer.prepare_text   s    rv   c                     [         R                  " [        R                  R	                  U R
                  [        R                  5      5      nUR                  S0 5      n[        SU R
                  SS.UD6nU$ )Nr*   T)rd   is_trainr   )
r   	from_filerB   rC   rO   rd   r   rf   ri   r   )rn   rd   r,   cfg	model_cfgr*   s         rs   rj   KanttsTrainer.get_model   sg    GGLL)@)@ACGGGR(	 BnntB7@Brv   c                 >   U R                   (       d  [        S5      eSnSU;   a  US   n[        R                  U R                  ;   d  [        R
                  U R                  ;   a  U R                  5         [        R                  U R                  ;   a  U R                  5         U R                  U R                  U R                  U R                  S.nU R                  U R                  S.nU R                   R                  U R                   X@R                  UU5        g )Nzmodel is noneFignore_pretrain)r+   rS   rU   rQ   )r|   r}   )r*   r   r   rI   r2   rJ   r   rK   r   r+   rS   rU   rQ   r[   r\   rz   r,   )rn   argsrp   r   dir_dictconfig_dicts         rs   rz   KanttsTrainer.train   s    zz2?CC&$%67O**doo=A\A\`d`o`oAo''4??://++	
 ,,..
 	

x+(	*rv   checkpoint_pathreturnc                     0 $ r   r   )rn   r   r   rp   s       rs   evaluateKanttsTrainer.evaluate   s    	rv   )r[   rS   rZ   rm   rQ   r<   rh   r-   r*   rd   rW   rX   rY   r,   r2   r\   rU   r+   )__name__
__module____qualname____firstlineno__rP   rR   rT   rV   r   r   r   rI   rJ   r   r   r   r_   r   rF   r   rt   rg   rb   r   r   rj   rz   r   floatr   __static_attributes__r   rv   rs   r"   r"   !   s   HJK!N "& $"*!%8<0I/G!44b!00"% ).1Gj&eSj)j&j& j&  	j&
 j& !&in 5j& +.j& *-j& "j& "*#j&X'DR>Y >
3*0 "3:.rv   r"   )4rB   r]   r?   zipfiletypingr   r   r   r   r   r   r   modelscope.metainfor	   r
   modelscope.modelsr   modelscope.models.audio.ttsr   modelscope.msdatasetsr    modelscope.preprocessors.builderr   modelscope.trainers.baser   modelscope.trainers.builderr   "modelscope.utils.audio.audio_utilsr   %modelscope.utils.audio.tts_exceptionsr   r   r   r   r   modelscope.utils.configr   modelscope.utils.constantr   r   r   r   r   r   modelscope.utils.data_utilsr   modelscope.utils.loggerr   rM   register_modulespeech_kantts_trainerr"   r   rv   rs   <module>r      s    	    ? ?  7 # 6 + ? 0 0 ;* * += = 2 .	 
h&D&DEUK U FUrv   