
    ^j                    2   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z
d dlZ
d dlmZ  ed          Zej        ZdZdZdZdZed	z  Zed
z  Zedz  Zedz  Zedz  Zedz  ZddddZd Zd dZd dZd Zd dZ d!d"dZ!d Z"e#dk    r e"             dS dS )#    )annotationsN)PathzH/data/video-pipeline/HaTramAudio/project/018-Hon-Uoc-Khong-Duoc-Phep-Yeuzrun-20260721T040505Z-cd9f944azoro@d12e1733f81bf173b5db789b0028a0be478d0d2e565c05a91e236c95cd33bd78z0http://192.168.40.32:7861/voice/ngoc-huyen-clonezstory/spoken-narration.txtzaudio/chunkszlog/tts-attemptszwork/tts/hot-manifest.jsonzscript/tts-manifest.jsonzaudio/story-full.wav
doc_truyenz1.0true)stylespeeddenoisec                     t           j                            t           j        j                                                                      dd          S )Nz+00:00Z)dtdatetimenowtimezoneutc	isoformatreplace     work/tts/run_tts.pyr   r      s6    "+//"+/22<<>>FFxPSTTTr   pr   c                   t          j                    }|                     d          5 t          fdd          D ]}|                    |           	 d d d            n# 1 swxY w Y   |                                S )Nrbc                 .                          d          S )Ni   )read)fs   r   <lambda>zsha.<locals>.<lambda>   s    qvvk** r   r   )hashlibsha256openiterupdate	hexdigest)r   hbr   s      @r   shar'      s    
>ffTll =a****3//<<a!<= = = = = = = = = = = = = = =	s   ,A##A'*A'c                    | j                             dd           |                     | j        dz             }|                    t          j        |dd          dz   d	           t          j        ||            d S )
NTparentsexist_okz.tmpF   )ensure_asciiindent
utf-8encoding)	parentmkdirwith_suffixsuffix
write_textjsondumpsosr   )r   vqs      r   atomicr=      s    d+++ammAHVO.L.LAQ\\Z^Zdefty  BC  [D  [D  [D  EI  [I  SZ\  N[  N[  N[  \^  \f  gh  ij  \k  \k  \k  \k  \kr   c                    t          j        t          dz                                            } | d         | d         | d         | d         ft          t
          t          dfk    sJ t          t                    t          k    sJ d S )Nz.ownership-lock.json
project_idrun_idownerstatusmain_session_pipeline)
r8   loadsROOT	read_textPROJECTRUNOWNERr'   NARRCANON)xs    r   guardrM      s    :t**557788<QRS[Q\]^_f]ghijrhs@tw~  @C  DI  Ja  wb  Ab  Ab  Ab  Ab  jm  nr  js  js  uz  jz  jz  jz  jz  jz  jzr   c                "   t          j        t          j        dddddddt	          |           gd	                    }t          |d
         d                   }d |d         D             }|dk    rt          |          dk    sJ ||d         dS )Nffprobe-verrorz-show_entrieszAformat=duration:stream=codec_type,codec_name,sample_rate,channelsz-ofr8   T)textformatdurationc                *    g | ]}|d          dk    |S )
codec_typeaudior   ).0ss     r   
<listcomp>zprobe.<locals>.<listcomp>   sd      WL  WL  WL  ^_  st  uA  sB  DK  sK  sK  XY  sK  sK  sKr   streamsr      )rT   stream)r8   rD   
subprocesscheck_outputstrfloatlen)r   rL   das       r   probere      s|   :j%ygo  OR  SX  Y_  `c  de  `f  `f  'g  mq  r  r  r  s  s  v{  |}  ~F  |G  HR  |S  vT  vT  tu  WL  WL  cd  en  co  WL  WL  WL  UV  TU  VW  TW  TW  \_  `a  \b  \b  de  \e  \e  \e  \e  yz  DE  FG  DH  mI  mI  fIr   (
  rR   r`   c                d   d |                      d          D             }g }d}|D ]}t          |          |k    rg }d}|                     d          D ]Z}t          |          t          |          z   dz   |k    r|                    |           |}@|dz   |z                                   }[|r|                    |           n|g}|D ]K}	|dz   |	z                                   }
|r+t          |
          |k    r|                    |           |	}I|
}L|r|                    |           |S )Nc                ^    g | ]*}|                                 |                                 +S r   )strip)rX   r   s     r   rZ   zplan.<locals>.<listcomp>   s-    ;;;a;		;;;r   z

  r\   )splitrb   appendri   )rR   	max_charsparasoutcurr   	sentencesbuftokenunittests              r   planrw      s\   ;;4::f--;;;Cr3
  QVVI9B & &u
3xxE

1Y&&	(8(8(=(=(=%cc3wu}##%%##	 9C   #	  d	VD!!4	 c$ii	!!3::c???t33 Cr   c                    t                       t                              dd           t                              dd           t                              d          } t          |           }d                    d |D                       d                    |                                           k    sJ t          
                                r+t          j        t                                                    n>dt          t          dt          t          t           t#          |          g t%                      d	
}|d
         t          k    r*|d         t#          |          k    r|d         t           k    sJ d |                    dg           D             }g }t)          |d          D ]\  }}t                       t+          j        |                                                                          }t          d|ddz  }|                    |          }	|	r|	                    d          |k    r|
                                r~t3          |          }
t5          |          }|	                    d          |k    rGt7          |	                    dd          |
d         z
            dk     r|                    |	           dt          t          d|ddt;          t=          j                               d|t          t          |t           t?          |          t%                      d}tA          t          d|ddz  |           tB          j"        #                    d|it                                                     }tB          j$        %                    tL          |ddid           }|'                    d!          }	 tB          j$        (                    |d"#          5 }|)                    d$          5 }|j*        d%k    sJ 	 |+                    d&          }|sn|,                    |           .	 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t[          j.        ||           t3          |          }
||t?          |          |
d         |/                                j0        t5          |          |
d'dt%                      d(
}|                    |           |1                    d'|d         |d         |d)         t%                      d*           tA          t          d|ddz  |           |1                    d|t%                      d+           tA          t          |           # td          $ r}|
                                r|3                                 |1                    d,ti          |          j5        t?          |          d d-         t%                      d.           tA          t          d|ddz  |           |1                    d,d/|ti          |          j5        t%                      d0           tA          t          |            d }~ww xY wt#          |          t#          |          k    sJ tl          d1z  }|7                    d                    d2 |D                       d           tp          9                    d3          }tu          j;        d4d5d6d7d8d9d:d;d<t?          |          d=d>t?          |          gd?           t[          j.        |tp                     t3          tp                    }
i d@ddAt          dBt          dCd'dDdd
t          dEt          dFdGdt           dt#          |          d|dHt?          tp                    dI|
d         dJtp          /                                j0        dKt5          tp                    dL|
dMdNdOt%                      dP}tA          tx          |           |1                    d'd|t?          tp                    |dK         t%                      dQ           tA          t          |           t{          t          j>        d't#          |          |
d         tp          /                                j0        |dK         dR                     d S )SNTr)   r0   r1   rj   c              3  d   K   | ]+}d                      |                                          V  ,dS )rj   N)joinrl   rX   rL   s     r   	<genexpr>zmain.<locals>.<genexpr>*   s<      GkGk_`PQPWPWPYPYHZHZGkGkGkGkGkGkr   r\   running)
schema_versionr?   r@   rB   source_canon_sha256spoken_narration_sha256request_configsegment_countsegments
created_atr   r   r   c                     i | ]}|d          |S )indexr   r{   s     r   
<dictcomp>zmain.<locals>.<dictcomp>-   s    444qz!444r   r   zsegment-04dz.wavtext_sha256audio_sha256rT   r   g{Gz?ztts--
submitting)r~   r?   r@   
attempt_idrB   r   r   r   r   r   output_pathr   z.jsonrR   zContent-Typez!application/x-www-form-urlencodedPOST)dataheadersmethodz	.wav.parti  )timeoutwb   i   	completed)
r   r   r   rT   bytesr   re   rB   verifiedcompleted_atr   )rB   r   rT   r   r   )rB   r   
updated_atfailedi  )rB   
error_typerQ   	failed_atF)rB   r   failed_segment_indexr   r   zwork/tts/concat.txtc              3     K   | ]@}d t          t          |d                                                 dd          z   dz   V  AdS )zfile 'r   'z'\''z'
N)r`   r   r   r{   s     r   r|   zmain.<locals>.<genexpr>D   sr        =P  =P  BCXc$qQ^O_J`J`FaFaFiFijmnuFvFv=vw|=|  =P  =P  =P  =P  =P  =Pr   zstory-full.tmp.wavffmpegz-yrP   rQ   z-fconcatz-safe0z-iz-ccopy)checkr~   r?   r@   rB   r   r   tts_words_per_minute   outputoutput_durationoutput_bytesoutput_sha256output_probehash_methodsha256_stream_8MiBnot_run_forbidden)
voice_testr   )rB   r   r   r   r   r   )rB   r   rT   r   r    )?rM   CHUNKSr4   ATTEMPTSrJ   rF   rw   rz   rl   HOTexistsr8   rD   rG   rH   rK   CFGrb   r   get	enumerater   r    encoder$   re   r'   absrm   inttimer`   r=   urllibparse	urlencoderequestRequestENDPOINTr5   urlopenr!   rB   r   writer:   r   statst_sizer#   	Exceptionunlinktype__name__rE   r7   OUTPUT	with_namer^   runFINALprintr9   )rR   chunkshotdoner   i
text_chunkthr   oldprahattemptr   reqtmprr   r&   seger   finals                          r   mainr   (   s   dD	1	1	1(..W[.2\2\2\
nngn&&d4jjvGkGkdjGkGkGk@k@kmomtmtuyuu  vB  vB  nC  nC  AC  AC  AC  AC$'JJLL  NTZ   W^hku~  V[  v{  MP  ad  ek  al  al  xz  HK  HM  HM  7N  7N!"E))c/.BCKK.O.OTWXhTiknTnTnTnTn44SWWZ33444
va(( n n\Qz'''W^J--//00::<<"vF\QRF\F\F\F\?\Q
hhqkk# tSWW]##R''AHHJJ'Ahh2#a&&r	ggnr!!c#''*Q*?*?:*N&O&OPT&T&TV^VeVefiVjVjVjks7CMnTUMnMnMn\_`d`i`k`k\l\lMnMn  yE  NO  fk  FK  Z\  nq  @C  DE  @F  @F  TW  TY  TY  Z  Z'  [a  bj  kB  vw  kB  kB  kB  kB  bB  CJ  [K  [K  [K|vj73788??AA$fnF\F\]eko  zH  Il  ym  u{F\  G|  G|#  AB  AN  AN  OZ  A[  A[  }@ns400 Asxx~~ 8S====vviQ^eWWQZZZ	                              :c!aRabsSTvvacdnaoxyx~x~  yA  yA  yI  Y\  ]^  Y_  Y_  hj  t  KO  _b  _d  _d  &e  &e  fn  fu  fu  vy  fz  fz  fz  {B  {I  {I  T_  or  sA  oB  NQ  R\  N]  fi  jq  fr  BE  BG  BG  JH  JH  {I  {I  {I  JP  QY  Zq  ef  Zq  Zq  Zq  Zq  Qq  ry  Jz  Jz  Jz::	X355IIJJJ6RUVY????	 n n n	jjll3::<<<
>>H$q''2B3q66RVSVRV<dgdidijjkkklrs{  }T  HI  }T  }T  }T  }T  tT  U\  m]  m]  m]  ^a  ^h  ^h  s{  GL  de  sw  xy  sz  sz  sC  QT  QV  QV  iW  iW  ^X  ^X  ^X  Y_  `c  dg  Yh  Yh  Yh  inn 	Hs6{{""""""6#4#4RWW  =P  =P  GO  =P  =P  =P  6P  6P  Za#4  $b  $b  $b*++JNHT$wW[\delmpquvy  {A  wB  wB  CG  HN  OR  SV  OW  OW  <X  _c  -d  -d  -d  -d  eg  eo  ps  tz  e{  e{  e{  D  EK  L  L  |~ c  c<  c  cXk  cR\]a  cbwx}  c  X  Y^  c  _u  vy  c  zJ  KN  c  O^  _b  ck  _l  _l  c  mw  x@  c  AI  JM  NT  JU  JU  c  Vg  hj  ku  hv  c  wE  FL  FQ  FQ  FS  FS  F[  c  \k  lo  pv  lw  lw  c  xF  GI  c  JW  Xl  c  zM  ]`  ]b  ]b  c  c  c  dj  kp  qv  dw  dw  dw  x{  xB  xB  MX  dh  t|  F	I	  J	P	  F	Q	  F	Q	  b	g	  h	w	  b	x	  H
K
  H
M
  H
M
  CN
  CN
  xO
  xO
  xO
  P
V
  W
Z
  [
^
  P
_
  P
_
  P
_
  `
e
  f
j
  f
p
  {
F  RU  V^  R_  R_  km  nx  ky  BH  BM  BM  BO  BO  BW  af  gv  aw  q
x  q
x  f
y  f
y  `
z  `
z  `
z  `
z  `
zsb   !V(Q>=Q<QQQQQVQ#	#V&Q#	'DV
Y5C!Y00Y5__main__)r   r   )rf   )rR   r`   )$
__future__r   r   r   r   r8   r:   r^   r   urllib.parser   urllib.requestpathlibr   rE   namerG   rH   rI   rK   r   rJ   r   r   r   r   r   r   r   r'   r=   rM   re   rw   r   r   r   r   r   <module>r      s   " " " " " " X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X      	T
TUU	63fH	;	
&&tN/BTRdMdH	%%T2L-LuUYZpUpf%&99 T T T   
k k k kz z zI I I I     z z z> Zr   