B Vk_)2@stddlZddlZddlZddlZddlTddZddZddZd d Zd d Z d dZ ddZ ddZ ddZ dS)N)*cCs ddgdS)N) start_timeend_timewordsrrrC/Users/afif/Project/aws-transcribe-captioning-tools/src/srtUtils.py newPhrase+sr cCsPt|dd}t|}t|ddd}t|d}tdd|t||fS)Ni<z%02d:%02d:%02d,%03dr)intfloatstr)secondsZt_hundZ t_secondsZt_secsZt_minsrrr getTimeCode7s  rcCstdt|}t||dS)Nz ==> Creating SRT from transcript)printgetPhrasesFromTranscriptwriteSRT) transcriptsourceLangCode srtFileNamephrasesrrrwriteTranscriptToSRTGsrcCsFtd|d|t||||}t|d}t||}t||dS)Nz ==> Translating from z to ZTranslatedText)rtranslateTranscriptZunicodegetPhrasesFromTranslationr)rrtargetLangCoderregion translationZtextToTranslaterrrrwriteTranslationToSRTZs   rc Cs|}t}g}d}d}d}d}tdx|D]} |dkrTt||d<d}|d7}|d| |d7}|dkrtt||d t|d } || 7}t||d <||t}d}d}|d kr0Pq0W|S) NTrz(==> Creating phrases from translation...rFr r Z phraseAudioz.mp3r)splitr rrappendZgetSecondsFromTranslation getPhraseTextr) rrrphrasernPhrasexcrZwordZpsecsrrrrps4    rc Cst|}|dd}t}g}d}d}d}tdx|D]}|dkrt|ddkrjtt|d|d<d }|d 7}n |ddkrtt|d |d <|d |d dd|d 7}|dkr:||t}d}d}q:Wt|d dkr|||S)NresultsitemsTrz'==> Creating phrases from transcript...typeZ pronunciationrFr rrZ alternativesZcontentr)jsonloadsr rrr r"len) rtsr)r$rr%r&r'itemrrrrs4        rcCsBt|}|dddd}tjd|dd}|j|||d}|S) Nr(Z transcriptsrr translateT)Z service_nameZ region_nameZuse_ssl)ZTextZSourceLanguageCodeZTargetLanguageCode)r+r,boto3ZclientZtranslate_text)rrrrr.Ztxtr0rrrrrs  rcCstdt|dd}d}xf|D]^}t|d}|t|d|d7}||dd|d dt|}||d q W|dS) Nz==> Writing phrases to disk...zw+zutf-8r r rz --> rz )rcodecsopenr-writerr#close)rfilenameer&r$lengthoutrrrr s  rcCs|t|d}d}xftd|D]X}td|d|rd|dkrR|d|d|7}qt||d|7}q||d|7}qW|S)Nrrrz [a-zA-Z0-9] )r-rangerematch)r$r9r:irrrr#1s r#)r+r1r=r3Z audioUtilsr rrrrrrrr#rrrrs  >A&