Update app.py
Browse files
app.py
CHANGED
@@ -24,9 +24,13 @@ def extract_yt_audio(it, video_url, video_file):
|
|
24 |
yt = YouTube(video_url, use_oauth=True)
|
25 |
a = yt.streams.filter(only_audio=True).first()
|
26 |
audio_file = a.download()
|
27 |
-
sample = AudioSegment.from_file(audio_file
|
|
|
|
|
|
|
|
|
28 |
else:
|
29 |
-
sample = AudioSegment.from_file(
|
30 |
audio_path = 'audio.wav'
|
31 |
# display(Audio(audio_path))
|
32 |
sample.export(audio_path, format="wav")
|
@@ -99,9 +103,9 @@ def semantic_chunks(segs, max_chunk_length=15.0):
|
|
99 |
|
100 |
def toggle_input_fields(input_type):
|
101 |
if input_type == "URL":
|
102 |
-
return gr.update(visible=True), gr.update(visible=False)
|
103 |
else:
|
104 |
-
return gr.update(visible=False), gr.update(visible=True)
|
105 |
|
106 |
def clear_all():
|
107 |
return (gr.update(visible=True, value=""), gr.update(visible=True, value=""), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False))
|
@@ -123,13 +127,13 @@ with gr.Blocks() as demo:
|
|
123 |
# input_url = gr.Textbox(label="Type-in the URL or File Location of the Video", value='sample.mp4')
|
124 |
segments = gr.Textbox(visible=False)
|
125 |
submit_btn_1 = gr.Button("Get the Transcript", visible=True)
|
126 |
-
audio = gr.Audio(visible=
|
127 |
-
transcript = gr.Textbox(visible=
|
128 |
submit_btn_2 = gr.Button("Get the semantically Chuncked Segments", visible=False)
|
129 |
-
chunks = gr.Dataframe(visible=False, label = '
|
130 |
clear_btn = gr.Button("Clear")
|
131 |
|
132 |
-
input_type.change(fn=toggle_input_fields, inputs=input_type, outputs=[input_url, video_file])
|
133 |
submit_btn_1.click(fn=extract_yt_audio, inputs=[input_type, input_url, video_file], outputs=[transcript, submit_btn_2, segments, audio])
|
134 |
# submit_btn_1.click(fn=extract_yt_audio, inputs=[input_url], outputs=[transcript, submit_btn_2, segments, audio])
|
135 |
submit_btn_2.click(fn=semantic_chunks, inputs=[segments], outputs=[chunks])
|
|
|
24 |
yt = YouTube(video_url, use_oauth=True)
|
25 |
a = yt.streams.filter(only_audio=True).first()
|
26 |
audio_file = a.download()
|
27 |
+
sample = AudioSegment.from_file(audio_file
|
28 |
+
elif it == 'URL':
|
29 |
+
response = requests.get(video_url)
|
30 |
+
video_data = BytesIO(response.content)
|
31 |
+
sample = AudioSegment.from_file(video_data, format="mp4")
|
32 |
else:
|
33 |
+
sample = AudioSegment.from_file(video_file)
|
34 |
audio_path = 'audio.wav'
|
35 |
# display(Audio(audio_path))
|
36 |
sample.export(audio_path, format="wav")
|
|
|
103 |
|
104 |
def toggle_input_fields(input_type):
|
105 |
if input_type == "URL":
|
106 |
+
return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True), gr.update(visible=True)
|
107 |
else:
|
108 |
+
return gr.update(visible=False), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
|
109 |
|
110 |
def clear_all():
|
111 |
return (gr.update(visible=True, value=""), gr.update(visible=True, value=""), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False))
|
|
|
127 |
# input_url = gr.Textbox(label="Type-in the URL or File Location of the Video", value='sample.mp4')
|
128 |
segments = gr.Textbox(visible=False)
|
129 |
submit_btn_1 = gr.Button("Get the Transcript", visible=True)
|
130 |
+
audio = gr.Audio(visible=False, type="filepath", label='Play Audio')
|
131 |
+
transcript = gr.Textbox(visible=False, label='Transcript')
|
132 |
submit_btn_2 = gr.Button("Get the semantically Chuncked Segments", visible=False)
|
133 |
+
chunks = gr.Dataframe(visible=False, label = 'Semantic Chunks')
|
134 |
clear_btn = gr.Button("Clear")
|
135 |
|
136 |
+
input_type.change(fn=toggle_input_fields, inputs=input_type, outputs=[input_url, video_file, audio, transcript])
|
137 |
submit_btn_1.click(fn=extract_yt_audio, inputs=[input_type, input_url, video_file], outputs=[transcript, submit_btn_2, segments, audio])
|
138 |
# submit_btn_1.click(fn=extract_yt_audio, inputs=[input_url], outputs=[transcript, submit_btn_2, segments, audio])
|
139 |
submit_btn_2.click(fn=semantic_chunks, inputs=[segments], outputs=[chunks])
|