ASesYusuf1 commited on
Commit
542b76c
·
verified ·
1 Parent(s): 07f3aee

Update gui.py

Browse files
Files changed (1) hide show
  1. gui.py +24 -69
gui.py CHANGED
@@ -1,25 +1,13 @@
1
  import gradio as gr
2
  import os
3
- import json
4
  import logging
5
- from helpers import update_model_dropdown, handle_file_upload, clear_old_output
 
6
  from model import MODEL_CONFIGS
7
  from processing import process_audio
8
- from assets.i18n.i18n import I18nAuto
9
- from config_manager import load_config
10
 
11
  logging.basicConfig(filename='sesa_gui.log', level=logging.DEBUG)
12
 
13
- # BASE_DIR and config setup
14
- BASE_DIR = os.path.dirname(os.path.abspath(__file__))
15
- CONFIG_DIR = os.path.join(BASE_DIR, "assets")
16
- CONFIG_FILE = os.path.join(CONFIG_DIR, "config.json")
17
-
18
- # Load user config
19
- user_config = load_config()
20
- initial_settings = user_config["settings"]
21
- initial_favorites = user_config["favorites"]
22
-
23
  # Initialize I18nAuto
24
  i18n = I18nAuto()
25
 
@@ -32,69 +20,36 @@ def create_interface():
32
  """
33
 
34
  with gr.Blocks(theme=gr.themes.Soft(), css=css) as demo:
35
- # Store state in hidden Textbox
36
- favorites_state = gr.Textbox(value=json.dumps(initial_favorites), visible=False)
37
-
38
  gr.HTML(f"<h1>{i18n('SESA Audio Separation')}</h1>")
39
 
40
- with gr.Tab(i18n("audio_separation_tab")):
41
- with gr.Row():
42
- with gr.Column():
43
- input_audio_file = gr.File(
44
- file_types=[".wav", ".mp3", ".flac"],
45
- label=i18n("upload_file")
46
- )
47
- model_category = gr.Dropdown(
48
- label=i18n("category"),
49
- choices=[i18n(cat) for cat in MODEL_CONFIGS.keys()],
50
- value=i18n(initial_settings["model_category"])
51
- )
52
- model_dropdown = gr.Dropdown(
53
- label=i18n("model"),
54
- choices=update_model_dropdown(i18n(initial_settings["model_category"]), favorites=initial_favorites)["choices"],
55
- value=initial_settings["selected_model"]
56
- )
57
- export_format = gr.Dropdown(
58
- label=i18n("format"),
59
- choices=['wav FLOAT', 'flac PCM_16'],
60
- value=initial_settings["export_format"]
61
- )
62
- process_btn = gr.Button(i18n("process"))
63
- clear_old_output_btn = gr.Button(i18n("reset"))
64
-
65
- with gr.Column():
66
- original_audio = gr.Audio(label=i18n("original"))
67
- vocals_audio = gr.Audio(label=i18n("vocals"))
68
- instrumental_audio = gr.Audio(label=i18n("instrumental_output"))
69
- status = gr.Textbox(label=i18n("status"), interactive=False)
70
 
71
  # Event handlers
72
- def update_models(category):
73
- logging.debug(f"Updating models for category: {category}")
74
- choices = update_model_dropdown(category, favorites=json.loads(favorites_state.value))["choices"]
75
- return gr.update(choices=choices)
76
-
77
- model_category.change(
78
- fn=update_models,
79
- inputs=model_category,
80
- outputs=model_dropdown
81
- )
82
-
83
- input_audio_file.upload(
84
- fn=lambda x: handle_file_upload(x, None, is_auto_ensemble=False),
85
- inputs=[input_audio_file],
86
- outputs=[input_audio_file, original_audio]
87
- )
88
-
89
  process_btn.click(
90
  fn=process_audio,
91
- inputs=[input_audio_file, model_dropdown, export_format],
92
- outputs=[vocals_audio, instrumental_audio, status]
93
  )
94
 
95
- clear_old_output_btn.click(
96
- fn=clear_old_output,
97
- outputs=status
 
98
  )
99
 
100
  return demo
 
1
  import gradio as gr
2
  import os
 
3
  import logging
4
+ from assets.i18n.i18n import I18nAuto
5
+ from helpers import update_model_dropdown
6
  from model import MODEL_CONFIGS
7
  from processing import process_audio
 
 
8
 
9
  logging.basicConfig(filename='sesa_gui.log', level=logging.DEBUG)
10
 
 
 
 
 
 
 
 
 
 
 
11
  # Initialize I18nAuto
12
  i18n = I18nAuto()
13
 
 
20
  """
21
 
22
  with gr.Blocks(theme=gr.themes.Soft(), css=css) as demo:
 
 
 
23
  gr.HTML(f"<h1>{i18n('SESA Audio Separation')}</h1>")
24
 
25
+ with gr.Row():
26
+ with gr.Column():
27
+ input_audio_file = gr.File(
28
+ file_types=[".wav", ".mp3", ".flac"],
29
+ label=i18n("upload_file")
30
+ )
31
+ model_dropdown = gr.Dropdown(
32
+ label=i18n("model"),
33
+ choices=update_model_dropdown("Vocal Models")["choices"],
34
+ value=None
35
+ )
36
+ process_btn = gr.Button(i18n("process"))
37
+
38
+ with gr.Column():
39
+ output_audio = gr.Audio(label=i18n("output"))
40
+ status = gr.Textbox(label=i18n("status"), interactive=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
  # Event handlers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  process_btn.click(
44
  fn=process_audio,
45
+ inputs=[input_audio_file, model_dropdown],
46
+ outputs=[output_audio, status]
47
  )
48
 
49
+ input_audio_file.upload(
50
+ fn=lambda x: (x, x),
51
+ inputs=input_audio_file,
52
+ outputs=[input_audio_file, output_audio]
53
  )
54
 
55
  return demo