|
|
|
""" |
|
Created on Mon Mar 28 01:04:50 2022 |
|
|
|
@author: adeep |
|
""" |
|
from fnmatch import translate |
|
import cv2 as cv |
|
import tempfile |
|
import numpy as np |
|
import pandas as pd |
|
import streamlit as st |
|
import joblib |
|
import os |
|
from moviepy.editor import VideoFileClip |
|
import speech_recognition as sr |
|
from pydub import AudioSegment |
|
from pydub.silence import split_on_silence |
|
import transformers |
|
from transformers import pipeline |
|
import nltk |
|
nltk.download('punkt') |
|
nltk.download('averaged_perceptron_tagger') |
|
import nltk |
|
nltk.download('punkt') |
|
nltk.download('averaged_perceptron_tagger') |
|
from nltk.tokenize import sent_tokenize |
|
import re |
|
from utils import get_translation, welcome, get_large_audio_transcription |
|
|
|
from PIL import Image |
|
|
|
|
|
def main(): |
|
|
|
|
|
st.title("Summarize Text") |
|
video = st.file_uploader("Choose a file", type=['mp4']) |
|
button = st.button("Summarize") |
|
|
|
max = st.sidebar.slider('Select max', 50, 500, step=10, value=150) |
|
min = st.sidebar.slider('Select min', 10, 450, step=10, value=50) |
|
|
|
with st.spinner("Generating Summary.."): |
|
|
|
if button and video: |
|
tfile = tempfile.NamedTemporaryFile(delete=False) |
|
tfile.write(video.read()) |
|
|
|
v = VideoFileClip(tfile.name) |
|
v.audio.write_audiofile("movie.wav") |
|
|
|
st.audio("movie.wav") |
|
whole_text=get_large_audio_transcription("movie.wav") |
|
|
|
|
|
summarizer = pipeline("summarization", model="t5-base", tokenizer="t5-base", framework="pt") |
|
summarized = summarizer(whole_text, min_length=75, max_length=400) |
|
summ=summarized[0]['summary_text'] |
|
st.write(summ) |
|
|
|
if 'summary' not in st.session_state: |
|
st.session_state.summary=True |
|
st.session_state.summarization = summ |
|
|
|
|
|
translate = st.sidebar.radio('Do you want to translate the text to any different language?', ('No', 'Yes')) |
|
|
|
if translate == 'Yes': |
|
lang_list = ['Hindi', 'Marathi', 'Malayalam', 'Kannada', 'Telugu', 'Tamil', 'Oriya', 'Bengali', 'Gujarati', 'Urdu'] |
|
|
|
s_type = st.sidebar.selectbox('Select the Language in which you want to Translate:',lang_list) |
|
st.sidebar.write('You selected:', s_type) |
|
|
|
if 'summary' in st.session_state: |
|
summarized_text = st.session_state.summarization |
|
st.write(summarized_text) |
|
translation = get_translation(source='English', dest=s_type, text=summarized_text) |
|
|
|
st.sidebar.write(translation) |
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
main() |
|
|