salmanmapkar commited on
Commit
e5dbd61
1 Parent(s): f999e80

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -25
app.py CHANGED
@@ -22,6 +22,7 @@ def Transcribe(audio="temp_audio.wav"):
22
  spl = timeStr.split(":")
23
  s = (int)((int(spl[0]) * 60 * 60 + int(spl[1]) * 60 + float(spl[2]) )* 1000)
24
  return s
 
25
  def preprocess(audio):
26
  t1 = 0 * 1000
27
  t2 = 20 * 60 * 1000
@@ -32,6 +33,7 @@ def Transcribe(audio="temp_audio.wav"):
32
  newAudio = spacer.append(a, crossfade=0)
33
  newAudio.export(audio, format="wav")
34
  return spacermilli, spacer
 
35
  def diarization(audio):
36
  as_audio = AudioSegment.from_wav(audio)
37
  DEMO_FILE = {'uri': 'blabal', 'audio': audio}
@@ -109,31 +111,37 @@ def VideoTranscribe(video):
109
  subprocess.call(command, shell=True)
110
  return Transcribe()
111
 
112
- def YoutubeTranscribe(url):
113
- try:
114
- os.remove("temp_audio.wav")
115
- except OSError:
116
- pass
117
- ydl_opts = {
118
- 'format': 'bestaudio/best',
119
- 'outtmpl': 'temp_audio.%(ext)s',
120
- 'postprocessors': [{
121
- 'key': 'FFmpegExtractAudio',
122
- 'preferredcodec': 'wav',
123
- }],
124
- }
125
- try:
126
- with youtube_dl.YoutubeDL(ydl_opts) as ydl:
127
- ydl.download([url])
128
- except:
129
- return YoutubeTranscribe(url)
130
- stream = ffmpeg.input('temp_audio.m4a')
131
- stream = ffmpeg.output(stream, 'temp_audio.wav')
132
- try:
133
- os.remove("temp_audio.m4a")
134
- except OSError:
135
- pass
136
- return Transcribe()
 
 
 
 
 
 
137
 
138
  with gr.Blocks() as i:
139
  video = gr.Video()
 
22
  spl = timeStr.split(":")
23
  s = (int)((int(spl[0]) * 60 * 60 + int(spl[1]) * 60 + float(spl[2]) )* 1000)
24
  return s
25
+
26
  def preprocess(audio):
27
  t1 = 0 * 1000
28
  t2 = 20 * 60 * 1000
 
33
  newAudio = spacer.append(a, crossfade=0)
34
  newAudio.export(audio, format="wav")
35
  return spacermilli, spacer
36
+
37
  def diarization(audio):
38
  as_audio = AudioSegment.from_wav(audio)
39
  DEMO_FILE = {'uri': 'blabal', 'audio': audio}
 
111
  subprocess.call(command, shell=True)
112
  return Transcribe()
113
 
114
+ def YoutubeTranscribe(URL, retries = 5):
115
+ if retries:
116
+ if "youtu" not in URL.lower():
117
+ raise Exception(f"{url} is not a valid youtube URL.")
118
+ else:
119
+ try:
120
+ os.remove("temp_audio.wav")
121
+ except OSError:
122
+ pass
123
+ ydl_opts = {
124
+ 'format': 'bestaudio/best',
125
+ 'outtmpl': 'temp_audio.%(ext)s',
126
+ 'postprocessors': [{
127
+ 'key': 'FFmpegExtractAudio',
128
+ 'preferredcodec': 'wav',
129
+ }],
130
+ }
131
+ try:
132
+ with youtube_dl.YoutubeDL(ydl_opts) as ydl:
133
+ ydl.download([url])
134
+ except:
135
+ return YoutubeTranscribe(url, retries-1)
136
+ stream = ffmpeg.input('temp_audio.m4a')
137
+ stream = ffmpeg.output(stream, 'temp_audio.wav')
138
+ try:
139
+ os.remove("temp_audio.m4a")
140
+ except OSError:
141
+ pass
142
+ return Transcribe()
143
+ else:
144
+ raise Exception(f"Unable to get video from {url}")
145
 
146
  with gr.Blocks() as i:
147
  video = gr.Video()