quockhanh25032005 commited on
Commit
2028752
·
verified ·
1 Parent(s): bf9ee35

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -11
app.py CHANGED
@@ -1,6 +1,5 @@
1
  import gradio as gr
2
  import torch
3
- import torchaudio
4
  import tempfile
5
  import os
6
  import numpy as np
@@ -19,28 +18,31 @@ def separate_audio(audio_file):
19
  return None, None
20
 
21
  try:
22
- # Dùng librosa để load hỗ trợ mọi định dạng và tần số
23
- waveform, sample_rate = librosa.load(audio_file, sr=8000, mono=True)
24
 
25
- # Lưu file tạm về 8kHz
26
  tmp_path = "/tmp/input.wav"
27
  sf.write(tmp_path, waveform, 8000)
28
 
29
  # Tách nguồn âm
30
  est_sources = model.separate_file(path=tmp_path)
31
 
32
- # Lưu kết quả
 
 
 
 
33
  source1_path = "/tmp/source1.wav"
34
  source2_path = "/tmp/source2.wav"
35
-
36
- torchaudio.save(source1_path, est_sources[:, :, 0].detach().cpu(), 8000)
37
- torchaudio.save(source2_path, est_sources[:, :, 1].detach().cpu(), 8000)
38
 
39
  return source1_path, source2_path
40
 
41
  except Exception as e:
42
  print(f"Error: {e}")
43
- raise gr.Error(f"Lỗi xử lý audio: {str(e)}")
44
 
45
  demo = gr.Interface(
46
  fn=separate_audio,
@@ -61,9 +63,9 @@ Demo ứng dụng kiến trúc SepFormer cho bài toán phân tách nguồn âm
61
  2. Nhấn Submit
62
  3. Nghe và download 2 nguồn âm đã được tách
63
 
64
- **Lưu ý:** Hỗ trợ định dạng WAV, MP3, FLAC. Mọi tần số lấy mẫu đều được tự động chuyển về 8kHz.
65
 
66
- > ⚠️ **Khuyến nghị:** Nên sử dụng file âm thanh có tần số lấy mẫu **8kHz** để đạt chất lượng phân tách tốt nhất.
67
  """
68
  )
69
 
 
1
  import gradio as gr
2
  import torch
 
3
  import tempfile
4
  import os
5
  import numpy as np
 
18
  return None, None
19
 
20
  try:
21
+ # Load resample về 8kHz bằng librosa
22
+ waveform, _ = librosa.load(audio_file, sr=8000, mono=True)
23
 
24
+ # Lưu file tạm
25
  tmp_path = "/tmp/input.wav"
26
  sf.write(tmp_path, waveform, 8000)
27
 
28
  # Tách nguồn âm
29
  est_sources = model.separate_file(path=tmp_path)
30
 
31
+ # Lấy kết quả
32
+ source1 = est_sources[:, :, 0].detach().cpu().numpy().squeeze()
33
+ source2 = est_sources[:, :, 1].detach().cpu().numpy().squeeze()
34
+
35
+ # Lưu kết quả bằng soundfile
36
  source1_path = "/tmp/source1.wav"
37
  source2_path = "/tmp/source2.wav"
38
+ sf.write(source1_path, source1, 8000)
39
+ sf.write(source2_path, source2, 8000)
 
40
 
41
  return source1_path, source2_path
42
 
43
  except Exception as e:
44
  print(f"Error: {e}")
45
+ raise gr.Error(f"Lỗi: {str(e)}")
46
 
47
  demo = gr.Interface(
48
  fn=separate_audio,
 
63
  2. Nhấn Submit
64
  3. Nghe và download 2 nguồn âm đã được tách
65
 
66
+ **Lưu ý:** Hỗ trợ định dạng WAV, MP3, FLAC.
67
 
68
+ > ⚠️ **Khuyến nghị:** Nên sử dụng file âm thanh có tần số lấy mẫu **8kHz** và định dạng file có đuôi .wav để đạt chất lượng phân tách tốt nhất.
69
  """
70
  )
71