
    9i                        S SK r S SKrS SKrS SK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r\" 5       rS	\SS
SSS SS4	S jr\S:X  Ga  \ R&                  " 5       r\R+                  SS	SS9  \R+                  S\\S9  \R+                  S\SSS9  \R+                  SSS9  \R+                  SSS9  \R+                  SS
SS9  \R+                  S\SS9  \R+                  S \SS!S9  \R+                  S"\SS#S9  \R+                  S$S%S&S'S(9  \R+                  S)S%S*S+S(9  \R+                  S,S-S&S.S(9  \R+                  S/S-S*S0S(9  \R1                  S1S29  \R1                  SS39  \R3                  5       r\R7                  \R8                  5        \" \R:                  \R<                  \R>                  \R@                  \RB                  \RD                  \RF                  \RH                  \RJ                  \RL                  \R8                  5      u  r'r(\R7                  S4\' 35        \R7                  S5\( 35        gg! \ a	    \" S5      ef = f)6    N)check_local_model_is_latest)snapshot_download)
ThirdParty)
get_logger)AutoLabelingzpls install tts-autolabel with                       "pip install tts-autolabel -f                       https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html"zdamo/speech_ptts_autolabel_16kallfemale      Fc                    [         R                  R                  U 5      (       d  [        SU  S35      e[         R                  R                  U5      (       d  [        SU S35      eSS jnU" UU5      n[	        [         R                  R                  U 5      US[         R                  R                  U5      UUU	UUUU
S9nUR                  5       u  pX4$ )Nzinput_wav:  not existsz
work_dir: c                    [         R                  R                  U 5      (       a`  [         R                  R                  U 5      (       a  U O[         R                  R	                  U 5      n[        U[        R                  S0S9  O[        U U[        R                  S0S9n[         R                  R                  U5      (       d  [        SU S35      e[         R                  R                  US5      n[         R                  R                  U5      (       d  [        SU S35      e[        R                  " U5      nUR                  U5        [         R                  R                  US5      nU$ )	Nspeech_tts_autolabel)
user_agent)revisionr   zmodel_cache_dir: r   z	model.zipz
zip_file: model)ospathexistsisdirdirnamer   r   KEYr   
ValueErrorjoinzipfileZipFile
extractall)r   model_revisionmodel_cache_dirzip_fileztarget_resources         e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/tools/speech_tts_autolabel.py_download_and_unzip_resource4run_auto_label.<locals>._download_and_unzip_resource*   s   77>>%  ')ww}}( (eGGOOE2 '&NN,BCE 0'&NN,BCEO ww~~o..00AMNN77<<=ww~~h''z(;?@@OOH%	_%'',,@    F
enable_enh)N)r   r   r   r   r   abspathrun)	input_wavwork_dirpara_idsresource_model_idresource_revisiongenderstageprocess_numdevelop_modehas_parar(   r$   model_resourceauto_labelingret_codereports                   r#   run_auto_labelr9      s     77>>)$$;yk=>>77>>(##:hZ{;<<, 22C2CEN 
	"
!M %((*Hr&   __main__z
--para_idszyou can use this variable to config your auto labeling paragraph ids,         all means all in the dir, none means no paragraph 1 means 1 para only,         1 2 means 1 and 2, transcipt/prosody/wav should be named exactly the same!!!)defaulthelpz
--resource)typer;   z--resource_revisionzresource directory)r=   r;   r<   z--input_wavzpersonal user input wav dir)r<   z
--work_dirzautolabel work dirz--genderzpersonal user genderz--develop_modez--stagez?auto labeling stage, 0 means qualification and 1 means labelingz--process_numz+kaldi bin parallel execution process numberz
--has_parar4   
store_true	paragraph)destactionr<   z	--no_parastore_falsezno paragraphz--enable_enhr(   zenable audio enhancementz--disable_enhzdisable audio enhancementT)r4   r'   z	ret_code=zreport=))argparser   sysr   modelscope.hub.check_modelr    modelscope.hub.snapshot_downloadr   modelscope.utils.constantr   modelscope.utils.loggerr   tts_autolabelr   ImportErrorDEFAULT_RESOURCE_MODEL_IDloggerr9   __name__ArgumentParserparseradd_argumentstrintset_defaults
parse_argsargsinfor(   r+   r,   r-   resourcer/   r0   r1   r2   r3   r4   r7   r8    r&   r#   <module>rY      s    	 
  B > 0 .* = 	 "%>%)"  !!#5p z$$&F
	V	   3(A  C
!	  #
 ,IJ
+?@
H+A  C
(sA>
N	  P
 :	  <
 :l  N
	  
 '	  )
 (	  *
 &
5)D
KK %dnndmm&*mmT]]&*&<&<dkk&*jj$2B2B&*&7&7&*oo7Hf KK)H:&'
KK'&"#y K  
 Z  s   H7 7I