Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from command import * | |
| def downloader_conf(): | |
| return gr.Checkbox( | |
| False, | |
| label="URL-to-Audio", | |
| # info="", | |
| container=False, | |
| ) | |
| def url_media_conf(): | |
| return gr.Textbox( | |
| value="", | |
| label="Enter URL", | |
| placeholder="www.youtube.com/watch?v=g_9rPvbENUw", | |
| visible=False, | |
| lines=1, | |
| ) | |
| def url_button_conf(): | |
| return gr.Button( | |
| "Go", | |
| variant="secondary", | |
| visible=False, | |
| ) | |
| def show_components_downloader(value_active): | |
| return gr.update( | |
| visible=value_active | |
| ), gr.update( | |
| visible=value_active | |
| ) | |
| def audio_conf(): | |
| return gr.File( | |
| label="Audio file", | |
| # file_count="multiple", | |
| type="filepath", | |
| container=True, | |
| ) | |
| def stem_conf(): | |
| return gr.Radio( | |
| choices=["vocal", "background"], | |
| value="vocal", | |
| label="Stem", | |
| # info="", | |
| ) | |
| def main_conf(): | |
| return gr.Checkbox( | |
| False, | |
| label="Main", | |
| # info="", | |
| ) | |
| def dereverb_conf(): | |
| return gr.Checkbox( | |
| False, | |
| label="Dereverb", | |
| # info="", | |
| visible=True, | |
| ) | |
| def vocal_effects_conf(): | |
| return gr.Checkbox( | |
| False, | |
| label="Vocal Effects", | |
| # info="", | |
| visible=True, | |
| ) | |
| def background_effects_conf(): | |
| return gr.Checkbox( | |
| False, | |
| label="Background Effects", | |
| # info="", | |
| visible=False, | |
| ) | |
| def vocal_reverb_room_size_conf(): | |
| return gr.Number( | |
| 0.15, | |
| label="Vocal Reverb Room Size", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.05, | |
| visible=True, | |
| ) | |
| def vocal_reverb_damping_conf(): | |
| return gr.Number( | |
| 0.7, | |
| label="Vocal Reverb Damping", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.01, | |
| visible=True, | |
| ) | |
| def vocal_reverb_wet_level_conf(): | |
| return gr.Number( | |
| 0.2, | |
| label="Vocal Reverb Wet Level", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.05, | |
| visible=True, | |
| ) | |
| def vocal_reverb_dryness_level_conf(): | |
| return gr.Number( | |
| 0.8, | |
| label="Vocal Reverb Dryness Level", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.05, | |
| visible=True, | |
| ) | |
| def vocal_delay_seconds_conf(): | |
| return gr.Number( | |
| 0., | |
| label="Vocal Delay Seconds", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.01, | |
| visible=True, | |
| ) | |
| def vocal_delay_mix_conf(): | |
| return gr.Number( | |
| 0., | |
| label="Vocal Delay Mix", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.01, | |
| visible=True, | |
| ) | |
| def vocal_compressor_threshold_db_conf(): | |
| return gr.Number( | |
| -15, | |
| label="Vocal Compressor Threshold (dB)", | |
| minimum=-60, | |
| maximum=0, | |
| step=1, | |
| visible=True, | |
| ) | |
| def vocal_compressor_ratio_conf(): | |
| return gr.Number( | |
| 4., | |
| label="Vocal Compressor Ratio", | |
| minimum=0, | |
| maximum=20, | |
| step=0.1, | |
| visible=True, | |
| ) | |
| def vocal_compressor_attack_ms_conf(): | |
| return gr.Number( | |
| 1.0, | |
| label="Vocal Compressor Attack (ms)", | |
| minimum=0, | |
| maximum=1000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def vocal_compressor_release_ms_conf(): | |
| return gr.Number( | |
| 100, | |
| label="Vocal Compressor Release (ms)", | |
| minimum=0, | |
| maximum=3000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def vocal_gain_db_conf(): | |
| return gr.Number( | |
| 0, | |
| label="Vocal Gain (dB)", | |
| minimum=-40, | |
| maximum=40, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_highpass_freq_conf(): | |
| return gr.Number( | |
| 120, | |
| label="Background Highpass Frequency (Hz)", | |
| minimum=0, | |
| maximum=1000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_lowpass_freq_conf(): | |
| return gr.Number( | |
| 11000, | |
| label="Background Lowpass Frequency (Hz)", | |
| minimum=0, | |
| maximum=20000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_reverb_room_size_conf(): | |
| return gr.Number( | |
| 0.1, | |
| label="Background Reverb Room Size", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.1, | |
| visible=True, | |
| ) | |
| def background_reverb_damping_conf(): | |
| return gr.Number( | |
| 0.5, | |
| label="Background Reverb Damping", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.1, | |
| visible=True, | |
| ) | |
| def background_reverb_wet_level_conf(): | |
| return gr.Number( | |
| 0.25, | |
| label="Background Reverb Wet Level", | |
| minimum=0.0, | |
| maximum=1.0, | |
| step=0.05, | |
| visible=True, | |
| ) | |
| def background_compressor_threshold_db_conf(): | |
| return gr.Number( | |
| -15, | |
| label="Background Compressor Threshold (dB)", | |
| minimum=-60, | |
| maximum=0, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_compressor_ratio_conf(): | |
| return gr.Number( | |
| 4., | |
| label="Background Compressor Ratio", | |
| minimum=0, | |
| maximum=20, | |
| step=0.1, | |
| visible=True, | |
| ) | |
| def background_compressor_attack_ms_conf(): | |
| return gr.Number( | |
| 15, | |
| label="Background Compressor Attack (ms)", | |
| minimum=0, | |
| maximum=1000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_compressor_release_ms_conf(): | |
| return gr.Number( | |
| 60, | |
| label="Background Compressor Release (ms)", | |
| minimum=0, | |
| maximum=3000, | |
| step=1, | |
| visible=True, | |
| ) | |
| def background_gain_db_conf(): | |
| return gr.Number( | |
| 0, | |
| label="Background Gain (dB)", | |
| minimum=-40, | |
| maximum=40, | |
| step=1, | |
| visible=True, | |
| ) | |
| def button_conf(): | |
| return gr.Button( | |
| "Inference", | |
| variant="primary", | |
| ) | |
| def output_conf(): | |
| return gr.File( | |
| label="Result", | |
| file_count="multiple", | |
| interactive=False, | |
| ) | |
| def show_vocal_components(value_name): | |
| if value_name == "vocal": | |
| return gr.update(visible=True), gr.update( | |
| visible=True | |
| ), gr.update(visible=True), gr.update( | |
| visible=False | |
| ) | |
| else: | |
| return gr.update(visible=False), gr.update( | |
| visible=False | |
| ), gr.update(visible=False), gr.update( | |
| visible=True | |
| ) | |
| def get_gui(theme): | |
| with gr.Blocks(theme="hev832/Applio") as app: | |
| gr.Markdown(title) | |
| with gr.Accordion("read this", open=False): | |
| gr.Markdown(description) | |
| downloader_gui = downloader_conf() | |
| with gr.Row(): | |
| with gr.Column(scale=2): | |
| url_media_gui = url_media_conf() | |
| with gr.Column(scale=1): | |
| url_button_gui = url_button_conf() | |
| downloader_gui.change( | |
| show_components_downloader, | |
| [downloader_gui], | |
| [url_media_gui, url_button_gui] | |
| ) | |
| aud = audio_conf() | |
| url_button_gui.click( | |
| audio_downloader, | |
| [url_media_gui], | |
| [aud] | |
| ) | |
| with gr.Column(): | |
| with gr.Row(): | |
| stem_gui = stem_conf() | |
| with gr.Column(): | |
| with gr.Row(): | |
| main_gui = main_conf() | |
| dereverb_gui = dereverb_conf() | |
| vocal_effects_gui = vocal_effects_conf() | |
| background_effects_gui = background_effects_conf() | |
| # with gr.Column(): | |
| with gr.Accordion("Vocal Effects Parameters", open=False): # with gr.Row(): | |
| # gr.Label("Vocal Effects Parameters") | |
| with gr.Row(): | |
| vocal_reverb_room_size_gui = vocal_reverb_room_size_conf() | |
| vocal_reverb_damping_gui = vocal_reverb_damping_conf() | |
| vocal_reverb_dryness_gui = vocal_reverb_dryness_level_conf() | |
| vocal_reverb_wet_level_gui = vocal_reverb_wet_level_conf() | |
| vocal_delay_seconds_gui = vocal_delay_seconds_conf() | |
| vocal_delay_mix_gui = vocal_delay_mix_conf() | |
| vocal_compressor_threshold_db_gui = vocal_compressor_threshold_db_conf() | |
| vocal_compressor_ratio_gui = vocal_compressor_ratio_conf() | |
| vocal_compressor_attack_ms_gui = vocal_compressor_attack_ms_conf() | |
| vocal_compressor_release_ms_gui = vocal_compressor_release_ms_conf() | |
| vocal_gain_db_gui = vocal_gain_db_conf() | |
| with gr.Accordion("Background Effects Parameters", open=False): # with gr.Row(): | |
| # gr.Label("Background Effects Parameters") | |
| with gr.Row(): | |
| background_highpass_freq_gui = background_highpass_freq_conf() | |
| background_lowpass_freq_gui = background_lowpass_freq_conf() | |
| background_reverb_room_size_gui = background_reverb_room_size_conf() | |
| background_reverb_damping_gui = background_reverb_damping_conf() | |
| background_reverb_wet_level_gui = background_reverb_wet_level_conf() | |
| background_compressor_threshold_db_gui = background_compressor_threshold_db_conf() | |
| background_compressor_ratio_gui = background_compressor_ratio_conf() | |
| background_compressor_attack_ms_gui = background_compressor_attack_ms_conf() | |
| background_compressor_release_ms_gui = background_compressor_release_ms_conf() | |
| background_gain_db_gui = background_gain_db_conf() | |
| stem_gui.change( | |
| show_vocal_components, | |
| [stem_gui], | |
| [main_gui, dereverb_gui, vocal_effects_gui, background_effects_gui], | |
| ) | |
| button_base = button_conf() | |
| output_base = output_conf() | |
| button_base.click( | |
| sound_separate, | |
| inputs=[ | |
| aud, | |
| stem_gui, | |
| main_gui, | |
| dereverb_gui, | |
| vocal_effects_gui, | |
| background_effects_gui, | |
| vocal_reverb_room_size_gui, vocal_reverb_damping_gui, vocal_reverb_dryness_gui, vocal_reverb_wet_level_gui, | |
| vocal_delay_seconds_gui, vocal_delay_mix_gui, vocal_compressor_threshold_db_gui, vocal_compressor_ratio_gui, | |
| vocal_compressor_attack_ms_gui, vocal_compressor_release_ms_gui, vocal_gain_db_gui, | |
| background_highpass_freq_gui, background_lowpass_freq_gui, background_reverb_room_size_gui, | |
| background_reverb_damping_gui, background_reverb_wet_level_gui, background_compressor_threshold_db_gui, | |
| background_compressor_ratio_gui, background_compressor_attack_ms_gui, background_compressor_release_ms_gui, | |
| background_gain_db_gui, | |
| ], | |
| outputs=[output_base], | |
| ) | |
| return app | |
| if __name__ == "__main__": | |
| for id_model in UVR_MODELS: | |
| download_manager( | |
| os.path.join(MDX_DOWNLOAD_LINK, id_model), mdxnet_models_dir | |
| ) | |
| app = get_gui(theme) | |
| app.queue(default_concurrency_limit=40) | |
| app.launch( | |
| max_threads=40, | |
| share=True, | |
| show_error=True, | |
| quiet=False, | |
| debug=True, | |
| ) | |