Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,11 +1,10 @@
|
|
1 |
import gradio as gr
|
2 |
import whisper
|
3 |
import moviepy.editor as mp
|
4 |
-
from
|
5 |
from pydub import AudioSegment
|
6 |
import os
|
7 |
import tempfile
|
8 |
-
import spaces
|
9 |
|
10 |
def extract_audio(video_path):
|
11 |
video = mp.VideoFileClip(video_path)
|
@@ -14,17 +13,16 @@ def extract_audio(video_path):
|
|
14 |
audio.write_audiofile(audio_path)
|
15 |
return audio_path
|
16 |
|
17 |
-
@spaces.GPU
|
18 |
def generate_subtitles(audio_path):
|
19 |
model = whisper.load_model("base")
|
20 |
result = model.transcribe(audio_path)
|
21 |
return result["segments"]
|
22 |
|
23 |
def translate_subtitles(subtitles, target_language):
|
24 |
-
translator =
|
25 |
translated_subtitles = []
|
26 |
for segment in subtitles:
|
27 |
-
translated_text = translator.translate(segment["text"]
|
28 |
translated_subtitles.append({
|
29 |
"start": segment["start"],
|
30 |
"end": segment["end"],
|
@@ -68,11 +66,11 @@ iface = gr.Interface(
|
|
68 |
fn=gradio_interface,
|
69 |
inputs=[
|
70 |
gr.Video(label="Upload Video"),
|
71 |
-
gr.Dropdown(choices=["es", "fr", "de", "it", "ja", "ko", "zh-
|
72 |
],
|
73 |
outputs=gr.Video(label="Processed Video"),
|
74 |
title="Video Subtitle Translator",
|
75 |
description="Upload a video, and get it back with translated subtitles!"
|
76 |
)
|
77 |
|
78 |
-
iface.launch()
|
|
|
1 |
import gradio as gr
|
2 |
import whisper
|
3 |
import moviepy.editor as mp
|
4 |
+
from deep_translator import GoogleTranslator
|
5 |
from pydub import AudioSegment
|
6 |
import os
|
7 |
import tempfile
|
|
|
8 |
|
9 |
def extract_audio(video_path):
|
10 |
video = mp.VideoFileClip(video_path)
|
|
|
13 |
audio.write_audiofile(audio_path)
|
14 |
return audio_path
|
15 |
|
|
|
16 |
def generate_subtitles(audio_path):
|
17 |
model = whisper.load_model("base")
|
18 |
result = model.transcribe(audio_path)
|
19 |
return result["segments"]
|
20 |
|
21 |
def translate_subtitles(subtitles, target_language):
|
22 |
+
translator = GoogleTranslator(source='auto', target=target_language)
|
23 |
translated_subtitles = []
|
24 |
for segment in subtitles:
|
25 |
+
translated_text = translator.translate(segment["text"])
|
26 |
translated_subtitles.append({
|
27 |
"start": segment["start"],
|
28 |
"end": segment["end"],
|
|
|
66 |
fn=gradio_interface,
|
67 |
inputs=[
|
68 |
gr.Video(label="Upload Video"),
|
69 |
+
gr.Dropdown(choices=["es", "fr", "de", "it", "ja", "ko", "zh-CN"], label="Target Language")
|
70 |
],
|
71 |
outputs=gr.Video(label="Processed Video"),
|
72 |
title="Video Subtitle Translator",
|
73 |
description="Upload a video, and get it back with translated subtitles!"
|
74 |
)
|
75 |
|
76 |
+
iface.launch()
|