
    h`j                     
   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Z
 ed          ZdZdZdZedz  Zedz  Zed	z  Ze                    d
           e                    d
           d Zd Zd Z ee          ek    sJ e                                Zd  ej        de          D             Zg ZdZeD ]TZ ee           ee          z   dz   dk    redz   ez                                   Z;ere                     e           eZUere                     e           ddeddee ee          g d	Z!edz  Z"e"#                                r" ej$        e"                                          Z!d e!%                    dg           D             Z& e'ed          D ]e\  Z(Z)ede(ddz  Z ej*        e)+                                          ,                                Z-e(e&v rBe#                                r.e&e(         d          e-k    r ee          e&e(         d!         k    rddee(d"eee-d#d$d%d&ej        .                    ej/        j0                  1                                d'
Z2 eed(e(dd)z  e2           e
j3        4                    e)d#d$d%d*          +                                Z5e
j6        7                    ee5d+d,d-i.          Z8e9                    d/          Z:e
j6        ;                    e8d01          5 Z<e:=                    e<>                                           ddd           n# 1 swxY w Y   e:?                    e            ee          Z@e(d2e- eAeB                    e                    eC                                jD         ee          e@d3ZEeEe&e(<   d4  eFe&          D             e!d<    ee"e!           e2G                    d2eEd!         d5            eed(e(dd)z  e2           ged6z  ZHeHI                    d7dJ                    d8  eKd ee          dz             D                       z              ed9z  ZL ejM        d:d;d<d=d>d?d@dAdB eAeH          dCdD eAeL          gd
E            eeL          Z@e!G                    d2d
dFeLC                                jD         eeL          e@ej        .                    ej/        j0                  1                                dG            ee"e!            eedHz  e!            eN ejO        d2 ee          eLC                                jD        e!dI         e@dJ         dK         dL                     dS )M    )PathNzX/data/video-pipeline/HaTramAudio/project/027-Nguoi-Thua-Ke-Khong-Nhan-Chiec-Ghe-Danh-Sanzrun-20260722T063859Z-aa8eca81z0http://192.168.40.32:7861/voice/ngoc-huyen-clone@4db101987ecb4d1447cb9c898eba5785db54d614f0c32b16a6b7bdb6cbfbd306zscript/spoken-narration.txtaudiozwork/ttsT)exist_okc                    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   work/tts/run_tts.py<lambda>zsha.<locals>.<lambda>	   s    qvve}}     r   )hashlibsha256openiterupdate	hexdigest)phbr   s      @r   shar      s    
>ffTll 6a$$$$S))55a!((1++++56 6 6 6 6 6 6 6 6 6 6 6 6 6 6	s   ,A##A'*A'c                     |                      | j        dz             }|                    t          j        |dd          dz              |                    |            d S )Nz.tmpF   )ensure_asciiindent
)with_suffixsuffix
write_textjsondumpsreplace)r   oqs      r   atomicr&      s]    ==&!!!,,tz!VW/X/X/XY]/]"^"^"^_`_h_hij_k_k_k_k_kr   c                 |    t          j        t          j        dddddddt	          |           g                    }|S )Nffprobe-verrorz-show_entrieszAformat=duration:stream=codec_type,codec_name,sample_rate,channelsz-ofr!   )r!   loads
subprocesscheck_outputstr)r   xs     r   prober0      ss    :j%ygo  OR  SX  Y_  `c  de  `f  `f  'g  h  h  i  i  qr  jrr   c                 ^    g | ]*}|                                 |                                 +S  )strip.0r/   s     r   
<listcomp>r6      s-    VVV!AGGIIVAGGIIVVVr   z\n\s*\n r   i
  z

   027runningF)	schema_version
project_idrun_idstatusverifiedsource_canon_sha256spoken_narration_sha256planned_segmentssegmentszhot-manifest.jsonc                 R    i | ]$}|                     d           dk    |d         |%S )r>   	completedindex)getr4   s     r   
<dictcomp>rH      s3    
]
]
]AhQ\@\@\1W:a@\@\@\r   rC   segment-04d.wavtext_sha256artifact_sha256creating
doc_truyenz1.0true)stylespeeddenoise)
r;   r<   r=   rF   r>   r@   rA   rL   config
created_atzattempt-z.json)textrQ   rR   rS   POSTzContent-Typez!application/x-www-form-urlencoded)datamethodheadersz.wav.tmpiX  )timeoutrE   )rF   r>   rL   pathsizerM   r0   c                 (    g | ]}t           |         S r2   )rE   )r5   ks     r   r6   r6   "   sH      U~  U~  U~  gh  V_  `a  Vb  U~  U~  U~r   )r>   rM   zsegments.ffconcatzffconcat version 1.0
c              #      K   | ]I}d t          t          d|ddz                                                                dd          z  V  JdS )z
file '%s'
rI   rJ   rK   'z'\''N)r.   OUTresolver#   )r5   is     r   	<genexpr>re   $   s        M}  M}  ab][^`cdzopdzdzdzdz`z  `D  `D  `F  `F  \G  \G  \O  \O  PS  T[  \\  \\  N\  M}  M}  M}  M}  M}  M}r   zstory-full.wavffmpegz-yr)   r*   z-fconcatz-safe0z-iz-ccopy)checkzaudio/story-full.wav)r>   r?   output_pathoutput_sizeoutput_sha256output_probecompleted_atzscript/tts-manifest.jsonrm   formatduration)r>   rC   bytesr   rq   )Ppathlibr   r   r!   r,   datetimerewave
contextliburllib.parseurlliburllib.requestROOTRUNENDCANONSRCrb   WORKmkdirr   r&   r0   	read_textrV   splitparaschunkscurr   lenr3   appendmanifesthotexistsr+   rG   rE   	enumeraterd   chr   encoder   thnowtimezoneutc	isoformatattemptparse	urlencoderX   requestRequestreqr   tmpurlopenrwrite_bytesr
   r#   prr.   relative_tostatst_sizesegsortedr   lstr    joinrangefullrunprintr"   r2   r   r   <module>r      s
         V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V	T
dee  lKgj  QC  MP  KM  EJ	&&DLtJ$PSPYPYcgPYPhPhPhimisis  ~Bis  jC  jC  jC  
l l lr r r
s3xx]]__VVxrx
4/H/HVVVU^`W]egad	  ACHHSSVVOAtVA 4 4 6 6CCs			## v}}S%i[`w|  X]  qt  qt  u{  q|  q|  HJ  
K  
K	::<< 4CMMOO44
]
]j!<!<
]
]
]	IfQ P PDAb!		!<!<!F!F!H!HbNNqxxzzNil=&A2&E&E##a&&R[\]R^_pRqJqJqrz%QPZqv  RW  fh  {G  PU  `f  rg  rg  u}  uF  uJ  uJ  KS  K\  K`  ua  ua  uk  uk  um  um  
n  
n  ou  ou  vz  {R  FG  {R  {R  {R  {R  vR  SZ  o[  o[  o[lRUU[\\]]ddffkqky  lB  lB  CF  LP  X^  hv  wZ  g[  lB  l\  l\gj]]:nS--L3??166883L3L3LLLLLLLLLLLLLLLLQ5588KbX[X[\]\i\ijn\o\oXpXpxyx~x~  yA  yA  yI  \_  \_  `a  \b  \b  km  !n  !nC  |  ox  yz  o{  U~  U~  lr  lr  s|  l}  l}  U~  U~  U~  @H  IS  @T  E  E  FI  JR  S  S  S  T[  Tb  Tb  mx  KN  O`  Ka  cb  cb  Tc  Tc  Tc  dj  dj  ko  pG  {|  pG  pG  pG  pG  kG  HO  dP  dP  dP  dP	S^^,DRWW  M}  M}  fk  fk  lm  nq  nq  rx  ny  ny  z{  n{  f|  f|  M}  M}  M}  F}  F}  -}  ~  ~  ~	.*.(4WT(SZ[^_cdgdghkdldlmqrxy|y|  ~B  zC  zC  *D  KO  P  P  P  P5;;xSix|  yB  yB  yD  yD  yL  ]`  ]`  ae  ]f  ]f  vx  HP  HY  H]  H]  ^f  ^o  ^s  Ht  Ht  H~  H~  H@  H@   A   A  B  B  B  CI  CI  JM  NV  CW  CW  CW  X^  X^  _c  d~  _~  G  XH  XH  XH  IN  IN  OY  OS  OY  do  {~  {~  E  {F  {F  OS  OX  OX  OZ  OZ  Ob  lt  uD  lE  QS  T\  Q]  ^h  Qi  Zj  Zj  Ok  Ok  Il  Il  Il  Il  Ils   (MM	M	