minhnd's picture
add url_upload func
4c5f074
import os
import gradio as gr
import transformers
transformers.utils.move_cache()
from transformers import pipeline
from pytube import YouTube
auto_speech_recog = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-base-960h")
summarizer = pipeline("summarization", model="facebook/bart-large-cnn", max_length="5000")
def transcribe_upload(input_file):
out = auto_speech_recog(input_file, chunk_length_s=10, stride_length_s=(2, 2))['text'].lower()
print("/n", out.count(" "), "\n")
return out
def transcribe_record(input_file):
return auto_speech_recog(input_file, chunk_length_s=10, stride_length_s=(2, 2))['text'].lower()
def text_summerization(text_input):
return summarizer(text_input, max_length=1432, min_length=300, do_sample=False, truncation=True)
def load_video_url(video, url):
video = gr.Video()
current_dir = os.getcwd()
try:
yt = YouTube(url)
except:
print("Connection Error")
try:
highest_audio = yt.streams.filter(progressive=False).get_highest_resolution().itag
file_url = os.path.join(current_dir, "audio", "test.mp4")
yt.streams.get_by_itag(highest_audio).download(output_path=os.path.join(current_dir, "audio"), filename = "test.mp4")
except :
print("error")
return file_url
with gr.Blocks(css = "css/index.css") as iface:
gr.Markdown(elem_id="logo" , value="![](data:image/png;base64,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)")
with gr.Column():
with gr.Tab("Record Audio"):
input_record = gr.Audio(label = 'Record Audio Input',source="microphone",type="filepath")
gr_transcribe_record = gr.Button('Transcribe')
with gr.Tab("Upload Audio as File"):
input_upload = gr.Audio(label = 'Upload Audio',source="upload",type="filepath")
gr_transcribe_upload = gr.Button('Transcribe')
with gr.Tab("URL"):
with gr.Row():
with gr.Column():
input_url = gr.Textbox(elem_id="url_input",label="URL", show_label=False)
video_url = gr.Video(elem_id="video_elem", show_label=False, interactive = False)
video_url.style(width=600, height=400)
input_url.submit(load_video_url, [video_url, input_url], video_url)
gr_transcribe_url = gr.Button('Transcribe')
asr_out = gr.Textbox(label="Text transcribe")
summerize_btn = gr.Button("Summerize")
summerize_out = gr.Textbox(label="Summrization")
gr_transcribe_url.click(transcribe_upload, video_url, asr_out)
gr_transcribe_record.click(transcribe_record, input_record, asr_out)
gr_transcribe_upload.click(transcribe_upload, input_upload, asr_out)
summerize_btn.click(text_summerization, asr_out, summerize_out)
iface.launch(debug=True)