Ë
    DkÛjy	  ã                   ó0   — d Z ddlZddlmZ d„ Z	 	 	 dd„Zy)uŒ   ASR å°�è£…ï¼šfaster-whisper è½¬å†™ï¼Œå¸¦è¯�çº§æ—¶é—´æˆ³ã€‚

faster-whisper å†…éƒ¨ç”¨ PyAV ç›´æŽ¥è§£è§†é¢‘æŠ½éŸ³é¢‘ï¼Œæ— éœ€ç³»ç»Ÿ ffmpegã€‚
é    N)ÚWhisperModelc                 ó°   — 	 t        j                  | «      5 }t        d„ |j                  D «       «      cddd«       S # 1 sw Y   yxY w# t        $ r Y yw xY w)uN   æ£€æŸ¥è¾“å…¥æ˜¯å�¦å�«éŸ³é¢‘æµ�ï¼Œç»™å‡ºå�‹å¥½æŠ¥é”™è€Œé�ž PyAV åº•å±‚å¼‚å¸¸ã€‚c              3   ó:   K  — | ]  }|j                   d k(  –— Œ y­w)ÚaudioN)Útype)Ú.0Úss     ú$/home/luojun/meeting-live-mvp/asr.pyú	<genexpr>z_has_audio.<locals>.<genexpr>   s   è ø€ Ò<¨Q�q—v‘v Õ(Ñ<ùs   ‚NT)ÚavÚopenÚanyÚstreamsÚ	Exception)ÚpathÚcs     r
   Ú
_has_audior   	   sL   € ðÜ�W‰W�T‹]ð 	=˜aÜÑ<°!·)±)Ô<Ó<÷	=÷ 	=ò 	=ûäò Ùðús+   ‚A	 —=³	A	 ½AÁA	 ÁA	 Á		AÁAc                 ó4  — t        | «      st        d| › �«      ‚t        |||¬«      }|j                  | |d|ddt	        |¬«      ¬«      \  }}	g }
|D ]ð  }|
j                  t        |j                  d«      t        |j                  d«      |j                  j                  «       |j                  xs g D �cg c]:  }|j                  t        |j                  d«      t        |j                  d«      dœ‘Œ< c}|j                  �t        |j                  d«      nd	|j                  �t        |j                  d«      nd	d
œ«       Œò |	j                  t        |	j                   d«      t        |	j"                  d«      t        |	j$                  d«      dœ}|
|fS c c}w )u  è½¬å†™è§†é¢‘/éŸ³é¢‘ï¼Œè¿”å›ž (segments, info)ã€‚

    segments: list[dict]ï¼Œæ¯�ä¸ªå�« start/end/text/words/avg_logprob/no_speech_prob
    words:    list[dict]ï¼Œæ¯�ä¸ªå�« word/start/endï¼ˆè¯�çº§æ—¶é—´æˆ³ï¼Œå­—å¹•å¯¹é½�çš„å…³é”®ï¼‰
    info:     è¯­è¨€ã€�ç½®ä¿¡åº¦ã€�éŸ³é¢‘æ€»æ—¶é•¿
    u   è¾“å…¥æ–‡ä»¶æ²¡æœ‰éŸ³é¢‘æµ�ï¼š)ÚdeviceÚcompute_typeÚ
transcribeT)Úmin_silence_duration_ms)ÚlanguageÚtaskÚ	beam_sizeÚword_timestampsÚ
vad_filterÚvad_parametersé   )ÚwordÚstartÚendN)r!   r"   ÚtextÚwordsÚavg_logprobÚno_speech_probé   )r   Úlanguage_probabilityÚdurationÚduration_after_vad)r   Ú
ValueErrorr   r   ÚdictÚappendÚroundr!   r"   r#   Ústripr$   r    r%   r&   r   r(   r)   r*   )Ú
video_pathÚ
model_sizer   r   r   r   Úvad_min_silence_msÚmodelÚsegments_iterÚinfoÚsegmentsÚsegÚwÚmetas                 r
   r   r      s‚  € ô �jÔ!ÜÐ9¸*¸ÐFÓGÐGä˜¨FÀÔN€Eà×*Ñ*ØØØØØØÜÐ4FÔGð +ó Ñ€M�4ð €HØò ˆØ�‰Ü˜3Ÿ9™9 aÓ(Ü˜Ÿ™ !Ó$Ø—H‘H—N‘NÓ$ð Ÿ)™)š/ röð ð	 ŸF™FÜ" 1§7¡7¨AÓ.Ü  §¡¨›?óòð 9<¿¹Ð8Sœ5 §¡°!Ô4ÐY]Ø>A×>PÑ>PÐ>\œe C×$6Ñ$6¸Ô:Ðbfñ
õ 	ðð$ —M‘MÜ % d×&?Ñ&?ÀÓ CÜ˜$Ÿ-™-¨Ó+Ü# D×$;Ñ$;¸QÓ?ñ	€Dð �Tˆ>Ðùò%s   Â4?F)ÚsmallÚcpuÚint8Úzhé   iô  )Ú__doc__r   Úfaster_whisperr   r   r   © ó    r
   ú<module>rC      s'   ðñó 
Ý 'òð 7<Ø=>Ø"%ô0rB   