MariaKaiser commited on
Commit
04890a6
·
verified ·
1 Parent(s): 2d49f87

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -9
app.py CHANGED
@@ -173,7 +173,9 @@ async def download_file_from_url(url: str, retries: int = 3, delay: float = 2.0)
173
  temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
174
  temp_file.write(response.content)
175
  temp_file.close()
176
-
 
 
177
  download_cache[url] = temp_file.name
178
  return temp_file.name
179
 
@@ -263,19 +265,27 @@ async def generate_story_audios(story: StoryCreationDTO, base_output: str):
263
 
264
  from pydub import AudioSegment
265
  import os
 
266
 
267
  def ensure_wav(file_path: str) -> str:
268
  """
269
- Convert an MP3 (or other non-WAV) file to WAV.
270
- Returns path to WAV file.
271
- If already WAV, returns original path.
272
  """
273
  ext = os.path.splitext(file_path)[1].lower()
274
- if ext != ".wav":
275
- wav_path = file_path.rsplit(".", 1)[0] + ".wav"
276
- AudioSegment.from_file(file_path).export(wav_path, format="wav")
277
- return wav_path
278
- return file_path
 
 
 
 
 
 
 
279
 
280
  from pydub import AudioSegment
281
  import asyncio
 
173
  temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
174
  temp_file.write(response.content)
175
  temp_file.close()
176
+
177
+ print(f"{url} is downloaded and saved in cache")
178
+
179
  download_cache[url] = temp_file.name
180
  return temp_file.name
181
 
 
265
 
266
  from pydub import AudioSegment
267
  import os
268
+ import subprocess
269
 
270
  def ensure_wav(file_path: str) -> str:
271
  """
272
+ Convert a single audio file to WAV using ffmpeg.
273
+ Returns the path to the WAV file.
274
+ If the file is already WAV, returns the original path.
275
  """
276
  ext = os.path.splitext(file_path)[1].lower()
277
+
278
+ if ext == ".wav":
279
+ return file_path # Already WAV
280
+
281
+ # Output path: same folder, same name, .wav extension
282
+ wav_path = os.path.splitext(file_path)[0] + ".wav"
283
+
284
+ # Run ffmpeg conversion
285
+ subprocess.run(["ffmpeg", "-y", "-i", file_path, wav_path], check=True)
286
+
287
+ print(f"Converted: {file_path} → {wav_path}")
288
+ return wav_path
289
 
290
  from pydub import AudioSegment
291
  import asyncio