Team Ai
Apppublic

Th3BossC/TranscriptApi

sourceHugging Faceupdated 3y agoView on Hugging Face
1likes
utils.cpython-310.pyc75 linesDownload Raw Back to __pycache__
1o

2j��dN�@sddlZddlZddlZddlmZddlmZddl	m3Z4ddlZddlZddl
Z
ddlmZddlmZddlmZe
j��rCdndZd	Zd5d�Zdd
�Zd)dd�Zdd�Zdejded�fdd�Zdd�Zd*dd�Zd+dd�Z de!fd d!�Z"d,d#d$�Z#d%e!d&e!fd'd(�Z$dS)-�N)�YouTube)�
VideoFileClip��pipeline)�tqdm)�	PdfReader�cudaZcpuz/Th3BossC/SummarizationModel_t5-small_opeai_tldrcCstd|�jS)Nz https://www.youtube.com/watch?v=)r�title)�video_id�r�Bd:\Coding\Main_Project\TranscriptApi\TranscriptApi\common\utils.pyr	sr	cCs&t�d�}t�|j�}|dd}|S)Nz/http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1�vr)�urlparse�parse_qs�query)�	video_urlZurl_datar�videorrr�get_video_ids6r�audiocCsttj�|�st�|�||d}||d}td�t|�jjdd���j	|d�}t7|�}td�|j�|�|S)Nz.mp4�.mp3zNFO] downloading video...Zmp4)�file_extension)�filenamez%[INFO] extracting audio from video...)
�os�path�exists�makedirs�printr�streams�filter�firstZdownloadrrZwrite_audiofile)r�locationrZvideo_filename�audio_filenamerrrr�	get_video$s8r"c	Cs�tj�|�st�|�tj|dd�\}}tj||d�}t||�d}td|�d��g}t	|�D]1}|||}	|d||}9||	|10�}t11�tj�|d|�d��||�|�
|d|�d��q1t|�|S)	NiD�)�sr)�yr#�z[INFO] Chunking z12 chunks...Zsegment_r)rr�isdir�mkdir�librosa�loadZget_duration�intr�range�sf�write�join�append)r�segment_lengthZ13output_dirrr#ZdurationZnum_segments�audio_files�i�start�end�segmentrrr�chunk_audio6s14 r6�base)�devicecCs�td�g}|�t�|D]}|�|�}|�|d�q
|durBt|d��}|D]	}|�|d�q(Wd�|S1s=wY|S)Nz"[INFO] converting audio to text...�text�w�15)r�tor8Z16transcriber/�openr-)r1Zoutput_file�modelZtranscriptsZ17audio_file�response�f�18transcriptrrr�transcribe_audioKs1920�21��rBc22Cs�tdt���|�d�}|�d�}|�d�}|�d�}d}tj�|�r-t�|�t�|�t||�}t	|||�}t23||�}	g}24|	D]	}|25|�d�7}26qAdd	�|27D�}t|�t
|�}
td28|
�}t
|29�|t
|30�|dk}tdt
|��d
|
�d|�d|�d�	�tdttddd�}g}tt|��D] }d�|31||||d��}||dd�dd}|�|�q�d�|�}t|d��
}|�|�Wd�n1s�wYt|d��}|��}Wd�n1s�wY||d�S)Nz[INFO] running on z/raw_audio/z/chunks/z/transcripts.txtz/summary.txtiX�.cS�g|]}t|��qSr��len��.0Zsentencerrr�32<listcomp>v�z+summarize_youtube_video.<locals>.<listcomp>�@r�33    [INFO] sentences_len : �#34    [INFO] sentence_mean_length : �&,35    [INFO] num_sentences_per_step : �,36    [INFO] num_steps : �37    �
summarization��T)r>�	tokenizer�38max_length�39truncation� r%F�Z	do_sample�summary_textr:�r)rA�summary)rr8rrr�shutil�rmtreer'r"r6rB�split�sumrFr*r�40checkpointrr+r.r/r=r-�read)rZoutputs_dirZ
raw_audio_dirZ41chunks_dirZtranscripts_fileZsummary_filer0r!Zchunked_audio_filesZtranscriptions�	sentencesrA�
sentences_len�sentence_mean_length�num_sentences_per_step�	num_steps�42summarizer�	summariesr2�chunkrZ�complete_summaryr@Zcomplete_transcriptrrr�summarize_youtube_video`sT4344454647484950���51�52�53�54rj�#TranscriptApi/static/files/temp.pdfcCs(t|�}d}|jD]}||��7}q	|S)N�)r�pagesZextract_text)�
file_location�readerr9�pagerrr�extract_text_pdf�s5556rq�#TranscriptApi/static/files/temp.txtcCs8t|d��
}|��}Wd�|S1swY|S)NrY)r=r`)rnr@r9rrr�extract_text_txt�s5758��rsr9c59Cs�|�d�}tdttdddd�}dd�|D�}t|�t|�}td	|�}t|�|t|�|dk}td60t|��d|�d|�d
|�d�	�g}tt|��D] }d�	|||||d��}	||	dd�dd}61|�62|63�qMd�	|�}|S)NrCrQrRTr)r>rSrTrUr8cSrDrrErGrrrrI�rJz$summarize_string.<locals>.<listcomp>rKrLrMrNrOrPrVr%FrWrX)r]rr_r^rFr*rrr+r.r/)r9rarfrbrcrdrergr2rhrZrirrr�summarize_string�s,64���65�66rt�TranscriptApi/static/filescCsXd}|dkrt|�}n|dkrt|�}ndStj�|�r!t�|�t�|�|t|�gS)Nrl�pdf�txtz[ERROR])	rqrsrrrr[r\r'rt)rnrZworking_dirr9rrr�summarize_file�s67686970rx�question�contextcCstddd�}|||d�dS)Nzquestion-answeringzdeepset/roberta-base-squad2)�taskr>)ryrz�answerr)ryrzZqarrrr|�sr|)r)rk)rr)ru)%rr(Z	soundfiler,Zpytuber�urllib.parse�parserZmoviepy.editorrr[ZwhisperZtorchZtransformersrZ	tqdm.autorZPyPDF2rrZis_availabler8r_r	rr"r6Z71load_modelrBrjrqrs�strrtrxr|rrrr�<module>s2727397475