
    `j                        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	m
Z
 d dlmZ  ee                                          j        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edz  Zedz  ZdZdZd Zd Zd Zd Zd Ze dk    r\	  ej!         e                       dS # e"$ r9Z# e$d e%e#          z   ej&                    ej!        d           Y dZ#[#dS dZ#[#ww xY wdS )    N)datetimetimezone)Path   zstory/promotion-report.jsonzaudio/intro-voice-source.txtz#audio/intro-voice-pronunciation.txtz log/intro-tts-pronunciation.jsonz!script/pronunciation-lexicon.jsonzaudio/intro-voice.wavzaudio/intro-full.wavzlog/intro-voice.jsonzhttp://192.168.40.33:7862zngoc-huyen-vbeec                    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)handles   script/render-intro-voice.py<lambda>zsha.<locals>.<lambda>   s    &++o">">     r   )hashlibsha256openiterupdate	hexdigest)pathdigestblockr   s      @r   shar      s    ^F	4 !F>>>>DD 	! 	!EMM%    	!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! s   ,A##A'*A'c           	         t          j        t          |           d          5 }|                                |                                |                                |                                |                                |                                |                                z  dcd d d            S # 1 swxY w Y   d S )Nr   )channelssample_widthsample_rateframescompressionduration_seconds)waver   strgetnchannelsgetsampwidthgetframerate
getnframesgetcomptype)r   r   s     r   wav_infor'   "   sY   	3t99d	#	# Ev"//116CVCVCXCXioi|i|i~i~  KQ  K\  K\  K^  K^  ou  oA  oA  oC  oC  Y_  Yj  Yj  Yl  Yl  ou  oB  oB  oD  oD  YD  E  EE E E E E E E E E E E E E E E E E Es   B
B::B>B>c                     t           j                            t          | z   d          5 }t	          j        |          cd d d            S # 1 swxY w Y   d S )N   timeout)urllibrequesturlopenBASEjsonload)r   responses     r   get_jsonr3   '   s    			tR		8	8 #Hy""# # # # # # # # # # # # # # # # # #s   AAAc                     |                      | j        dz             }|                    t          j        |dd          dz   d           t          j        ||            d S )Nz.partF   )ensure_asciiindent
utf-8encoding)	with_namename
write_textr0   dumpsosreplace)r   valuetemps      r   atomic_jsonrD   ,   s_    >>$)g-..DOODJu5CCCdJU\O]]]JtTr   c                  v   t           t          t          t          t          fD ](} |                                 st          d|            )t          j        t           	                    d                    }t          j        t          	                    d                    }|
                    d          }|
                    d          du |
                    d          du |
                    d          dk    |
                    d	          |k    |
                    d
          t          t                    k    |
                    d          t          t                    k    |
                    d          t          t                    k    |
                    d          du |
                    d          du |
                    d           f
}t          |          st          d          t                                          r`t                                          rFt                                           r,t          j        t          	                    d                    }|
                    d          du r|
                    d          dk    r|
                    d	          |k    r|
                    d          t          t                    k    r|
                    d          t          t                    k    r`|
                    d          t          t                     k    r5t#          t          j        dd|d         d         dd                     dS t'          d          }t'          d          
                    dg           }t)          d |D             d           }|
                    d          dk    s0|r.|
                    d           dus|
                    d!          durt          d"          t*          j                            t          	                    d          t0          d#                              d          }	t*          j                            t8          d$z   |	d%d&id'(          }
t*          j                            |
d)*          5 }|                                }d d d            n# 1 swxY w Y   t?          |          d+k     s|d d,         d-k    s|d.d/         d0k    rt          d1          t          j         !                    dd2           t          "                    d3          }|#                    |           tI          |          }|d         dk    s|d4         d5k    r%|%                    d6           t          d7          tM          j'        |t                     tQ          j)        tU          t                    d8          5 }|+                                }|,                    |-                                          }d d d            n# 1 swxY w Y   t           "                    d3          }d9t]          |j/        d:z            z  |j0        z  |j1        z  }tQ          j)        tU          |          d;          5 }|2                    |           |3                    |           |3                    |           d d d            n# 1 swxY w Y   tM          j'        |t                      tI          t                     }i d<d=ddddd	|d>tU          t          4                    tj                              d
t          t                    d?tU          t          4                    tj                              dt          t                    d@tU          t          4                    tj                              dAt          t                    dBt          t                    dCt0          dDt8          dEtU          t          4                    tj                              dt          t                    dF|dGtU          t           4                    tj                              t          t                     |d:tm          j7        tp          j9                  :                                dH}tw          t          |           t#          t          j        d|d         |d         |d         dId                     dS )JNzmissing r9   r:   canon_sha256verifiedTkindintrosource_canon_sha256source_sha256projection_sha256lexicon_sha256reverse_verifiedsemantic_content_changedFunresolved_requiredz&intro pronunciation authority mismatchstatus	completedoutput_sha256full_output_sha256full_wavr   )rG   reusedr   )r6   r   z/healthz/voicesvoicesc              3   V   K   | ]$}|                     d           t          k     |V  %dS )idN)get
VOICE_NAME).0items     r   	<genexpr>zmain.<locals>.<genexpr>N   s6      HH488D>>Z+G+G+G+G+G+GHHr   okmodel_existsconfig_existsz intro TTS capability gate failed)textvoicez/ttszContent-Typez!application/x-www-form-urlencodedPOST)dataheadersmethodi,  r*   ,      s   RIFF      s   WAVEzintro TTS response is not WAV)parentsexist_okz	.part.wavr   NONE)
missing_okz#intro voice WAV verification failedr       g       @wbversionr   source_pathprojection_pathpronunciation_receiptpronunciation_receipt_sha256pronunciation_lexicon_sha256rc   base_urloutputwavfull_output)rT   rU   silence_seconds
checked_at)rG   r   rS   rT   )<	PROMOTIONSOURCE
PROJECTIONPRONUNCIATIONLEXICONis_fileRuntimeErrorr0   loads	read_textrZ   r   allRECEIPTexistsVOICEFULLprintr?   r3   nextr,   parse	urlencoder[   encoder-   Requestr/   r.   r
   lenparentmkdirwith_suffixwrite_bytesr'   unlinkr@   rA   r    r   r!   	getparams
readframesr%   int	framerate	nchannels	sampwidth	setparamswriteframesrelative_toPROJECTr   nowr   utc	isoformatrD   )r   	promotionpronunciationcanonchecksoldhealthrW   rowbodyr-   r2   re   rC   infosourceparamsr   	full_tempsilencetarget	full_inforeceipts                          r   mainr   2   sR   FJwG 2 2||~~ 	20$00111	2
9...@@AAIJ}666HHIIMMM.))Ej!!T)*%%-&!!W,/00E9/**c&kk9-..#j//A*++s7||;,--5455>3444F v;; ECDDD~~ ELLNN t{{}} j**G*<<==77:$&&3778+<+<+K+KPSPWPWXmPnPnrwPwPw|  }D  }D  EX  }Y  }Y  ]`  ak  ]l  ]l  }l  }l  qt  qx  qx  yH  qI  qI  MP  QV  MW  MW  qW  qW  \_  \c  \c  dx  \y  \y  }@  AE  }F  }F  \F  \F$*$$TWXbTcdvTwxx  HM  N  N  N  O  O  O1i  Fi  $$Xr22F
HHHHH$
O
OCzz(t##3##''.2I2IQU2U2UY\Y`Y`apYqYqy}Y}Y}=>>><!!:+?+?+?+Q+Q\f"g"ghhoopwxxDn$$TF]X{G|  FL$  M  MG					5	5 }}              
4yy2~~bqbW,,QrT
g0E0E:;;;	Ltd333[))DTD>>D1$$](;v(E(Et$$$@AAAJtU	3u::t	$	$ 8!!##""6#4#4#6#6778 8 8 8 8 8 8 8 8 8 8 8 8 8 8   --IF,s2333f6FFIYYG	3y>>4	(	( $F   6"""7###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ Jy$I gy!  gZ  gx  gF[]b  gdqsvw}  xJ  xJ  KR  xS  xS  tT  tT  g  Ve  gj  kq  gr  gr  g  tE  GJ  KU  Ka  Ka  bi  Kj  Kj  Gk  Gk  g  m@  BE  FP  BQ  BQ  g  Sj  lo  p}  pI  pI  JQ  pR  pR  lS  lS  g  Us  ux  yF  uG  uG  g  Ig  il  mt  iu  iu  g  w~  @J  g  LV  X\  g  ^f  hk  lq  l}  l}  ~E  lF  lF  hG  hG  g  IX  Z]  ^c  Zd  Zd  g  fk  mq  g  s@	  B	E	  F	J	  F	V	  F	V	  W	^	  F	_	  F	_	  B	`	  B	`	  g  x	{	  |	@
  x	A
  x	A
  O
X
  m
p
  @H  @L  MU  MY  @Z  @Z  @d  @d  @f  @f  g  g  gG!!!	$*$IFX<Yls  uD  mE  ]d  ey  ]z  {  {  JO  P  P  P  Q  Q  Q1s7   3SSS:<YY	Y3A [??\\__main__zIntro voice blocked: )file)'r   r0   r@   
subprocesssysurllib.parser,   urllib.requestr    r   r   pathlibr   __file__resolverl   r   r~   r   r   r   r   r   r   r   r/   r[   r   r'   r3   rD   r   __name__exit	Exceptionexcr   r!   stderr r   r   <module>r      s     				     



          ' ' ' ' ' ' ' '      
$x..
 
 
"
"
*1
-33		1	1<<
<<
7
7))''
*
*"
  E E E
# # #
  ; ; ;| z   %C0szBBBB s   B3 3C18.C,,C1