a
    Ff                     @   s`   d dl mZ d dlmZmZ d dlZd dlZd dlmZ	 d dl
mZ ddlmZ edd ZdS )	    )shared_task)Wav2Vec2ForCTCWav2Vec2ProcessorN)detect   )Videoc              
   C   sH  t jj| d}d|_|  zt|jj}|jj d}|j	
| td}td}tj|dd\}}||ddd	j}||j}	tj|	d
d}
||
d }t|}||_| }g }d}tdt||D ] }|d||||   qd|i|_d|_W n6 ty: } zd|_t||_W Y d }~n
d }~0 0 |  d S )N)id
PROCESSINGz.wavzfacebook/wav2vec2-large-960hi>  )srptZlongest)Zreturn_tensorspadding)dimr   
    segmentsZ	COMPLETEDZFAILED)r   objectsgetstatussavempZVideoFileClipfilepathZaudioZwrite_audiofiler   Zfrom_pretrainedr   librosaloadinput_valueslogitstorchZargmaxZbatch_decoder   detected_languagesplitrangelenappendjoin	subtitles	Exceptionstr)Zvideo_idvideoZ
video_clipZ
audio_path	processormodelZspeechrater   r   Zpredicted_idsZtranscriptionr   wordsr   Zsegment_sizeie r.   /app/subtitles/tasks.pygenerate_subtitles   s6    




 r0   )celeryr   Ztransformersr   r   r   r   Zmoviepy.editoreditorr   Z
langdetectr   modelsr   r0   r.   r.   r.   r/   <module>   s   