EdgarDataScientist commited on
Commit
f6f6edc
·
verified ·
1 Parent(s): ba6451b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -5
app.py CHANGED
@@ -15,7 +15,8 @@ def download_video(url):
15
  stream = yt.streams.filter(progressive=True, file_extension='mp4').first()
16
  if not stream:
17
  raise ValueError("No suitable video stream found.")
18
- return stream.download()
 
19
  else:
20
  # For direct MP4 links, download file
21
  import requests
@@ -25,11 +26,13 @@ def download_video(url):
25
  with open(local_filename, 'wb') as f:
26
  for chunk in r.iter_content(chunk_size=8192):
27
  f.write(chunk)
28
- return local_filename
 
29
  except Exception as e:
30
  raise RuntimeError(f"Failed to download video: {e}")
31
 
32
 
 
33
  def extract_audio(video_path):
34
  clip = VideoFileClip(video_path)
35
  audio_path = "temp_audio.wav"
@@ -51,16 +54,20 @@ def classify_accent(audio_path):
51
  return predicted_accent, f"{confidence:.2f}%"
52
 
53
  def process_video(url):
 
 
54
  try:
55
  video_path = download_video(url)
56
  audio_path = extract_audio(video_path)
57
  accent, confidence = classify_accent(audio_path)
 
 
 
58
  finally:
59
- # Cleanup temp files if they exist
60
  for f in [video_path, audio_path]:
61
- if os.path.exists(f):
62
  os.remove(f)
63
- return accent, confidence
64
 
65
  # Gradio interface
66
  iface = gr.Interface(
 
15
  stream = yt.streams.filter(progressive=True, file_extension='mp4').first()
16
  if not stream:
17
  raise ValueError("No suitable video stream found.")
18
+ video_path = stream.download() # Store the download path
19
+ return video_path
20
  else:
21
  # For direct MP4 links, download file
22
  import requests
 
26
  with open(local_filename, 'wb') as f:
27
  for chunk in r.iter_content(chunk_size=8192):
28
  f.write(chunk)
29
+ video_path = local_filename # Store the download path
30
+ return video_path
31
  except Exception as e:
32
  raise RuntimeError(f"Failed to download video: {e}")
33
 
34
 
35
+
36
  def extract_audio(video_path):
37
  clip = VideoFileClip(video_path)
38
  audio_path = "temp_audio.wav"
 
54
  return predicted_accent, f"{confidence:.2f}%"
55
 
56
  def process_video(url):
57
+ video_path = None
58
+ audio_path = None
59
  try:
60
  video_path = download_video(url)
61
  audio_path = extract_audio(video_path)
62
  accent, confidence = classify_accent(audio_path)
63
+ return accent, confidence
64
+ except Exception as e:
65
+ return f"Error: {e}", ""
66
  finally:
 
67
  for f in [video_path, audio_path]:
68
+ if f and os.path.exists(f):
69
  os.remove(f)
70
+
71
 
72
  # Gradio interface
73
  iface = gr.Interface(