
    Zj                         S SK r S SKrS SKrS SKJr  S rS r\S:X  a	   \" 5         gg! \ a  r	\
" \" \	5      \R                  S9  e Sr	C	ff = f)    N)WhisperModelc
                    XS.n
US:X  a  U	(       a  XS'   [        U 40 U
D6nUR                  UUUUUU=(       d    S SSSS9	u  p[        U5      nSR                  S U 5       5      R	                  5       nU Vs/ s HP  n[        [        US	S5      5      [        S
[        [        USS5      5      [        [        USS5      5      -
  5      4PMR     nnU(       a%  [        S U 5       5      [        S U 5       5      -  OS nU Vs/ s H  n[        [        USS5      5      PM     nnU(       a  [        U5      [        U5      -  OS nUUU[        USU5      [        USS 5      U UUS.$ s  snf s  snf )N)devicecompute_typecpucpu_threadsFg        )language	beam_sizepatience
vad_filterinitial_promptcondition_on_previous_textword_timestampstemperature c              3   f   #    U  H'  oR                   =(       d    S R                  5       v   M)     g7f) N)textstrip).0segs     0/mnt/data/v087_work/faster_whisper_transcribe.py	<genexpr>run_model.<locals>.<genexpr>   s"     AXX^**,,s   /1avg_logprobg{Gz?endstartc              3   .   #    U  H  u  pX-  v   M     g 7fN )r   vws      r   r   r      s     /hsqqshs   c              3   *   #    U  H	  u  pUv   M     g 7fr   r    )r   _r"   s      r   r   r      s     5L8CAa8s   no_speech_probr	   language_probability)r   r   r%   r	   r&   actual_modelactual_deviceactual_compute_type)
r   
transcribelistjoinr   floatgetattrmaxsumlen)
model_namer   r   audior	   r
   r   promptr   r   kwargsmodelsegmentsinfor   r   weightedr   	no_speechr%   s                       r   	run_modelr;      s   =F; +}.v.E%%~#( & 
NH H~H88AAAGGID V^  _  V^  ORwsM378#dE'RUW\^aJbDcfklstw  zA  CF  mG  gH  EH  ;I  J  V^H  _QY3/h//#5L85L2LL_cKGOPxws$4c:;xIP:Cc)ns9~5N"(D*h7 '.Dd K"+	 		 _Ps   9AE' E,c                  h   [         R                  " 5       n U R                  SSS9  U R                  SSS9  U R                  SSS9  U R                  S	S
S9  U R                  SSS9  U R                  S[        SS9  U R                  S[        SS9  U R                  SSS9  U R                  SSS9  U R                  S[        SS9  U R                  SSS9  U R                  SSS9  U R                  SSS9  U R                  5       n [        UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                   5
      nSUS '   [#        [$        R&                  " USS!95        g ! [(         Ga  nUR*                  (       d  e  [        UR*                  UR,                  UR.                  UR                  UR                  [1        UR                  S5      [1        UR                  S5      UR                  UR                  UR                   5
      nSUS '   [3        U5      US"'   [#        [$        R&                  " USS!95         S nAg ! [(         a    [#        S#U 3[4        R6                  S$9  e f = fS nAff = f)%Nz--audioT)requiredz--modelzdistil-large-v3)defaultz
--languageenz--compute-typeint8_float16z--devicecudaz--beam-size   )typer>   z
--patienceg      ?z--promptr   z--vad-filter
store_true)actionz--cpu-threads   z--fallback-modelzsmall.enz--fallback-devicer   z--fallback-compute-typeint8Ffallback_used)ensure_asciiprimary_errorz"Primary GPU transcription failed: file)argparseArgumentParseradd_argumentintr-   
parse_argsr;   r6   r   r   r3   r	   r
   r   r4   r   r   printjsondumps	Exceptionfallback_modelfallback_devicefallback_compute_typeminstrsysstderr)aparesultprimary_excs       r   mainra   )   s<   		 	 	"BOOIO-OOI'8O9OOL$O/OO$nO=OOJO/OOMQO7OOLucO:OOJO+OON<O8OOO#qO9OO&
O;OO'O7OO-vO>
A177AHHannaggqzz;;

AHHallAMM["'djje45  
	q//1B1BAD[D[ ww

CQ4GQZZY\I] xxq}}FF '+F?#&)+&6F?#$**V%89 	6{mD3::V	s,   BF" "J1-J, B=J'J))J,,J1__main__rK   )rM   rS   r[   faster_whisperr   r;   ra   __name__rU   excrR   rZ   r\   r        r   <module>rg      sZ      '!H&R z   c#hSZZ(s   ) AAA