Spaces:
Sleeping
Sleeping
File size: 3,565 Bytes
5d03fef 4ba75fd 5d03fef a152a0a 5d03fef a152a0a 5d03fef 4ba75fd a0f1b34 5d03fef a0f1b34 5d03fef a152a0a 5d03fef a152a0a 5d03fef 64d0573 a0f1b34 5d03fef 4ba75fd a0f1b34 5d03fef 64d0573 5d03fef a152a0a 5d03fef 64d0573 5d03fef 4ba75fd 5d03fef 4228e0b 5d03fef 4228e0b 64d0573 4228e0b 64d0573 4228e0b 64d0573 5d03fef 64d0573 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
import gradio as gr
import subprocess
import os
def run_ultrasinger(opt_i, opt_o, mode, whisper_model, language, crepe_model, extra, device):
# Construct the command based on inputs
cmd = ["python", "UltraSinger.py"]
# Add options
if opt_i:
cmd.extend(["-i", opt_i.name])
if opt_o:
cmd.extend(["-o", opt_o])
# Add mode
if mode:
cmd.extend(mode.split())
# Add transcription options
if whisper_model:
cmd.extend(["--whisper", whisper_model])
if language:
language_codes = {
"English": "en", "French": "fr", "German": "de", "Spanish": "es",
"Italian": "it", "Japanese": "ja", "Chinese": "zh", "Dutch": "nl",
"Ukrainian": "uk", "Portuguese": "pt"
}
cmd.extend(["--language", language_codes[language]])
# Add pitcher options
cmd.extend(["--crepe", crepe_model])
# Add extra options
if extra:
cmd.extend(extra.split())
# Add device options
if device:
cmd.extend(device.split())
# Execute the command
try:
result = subprocess.run(cmd, capture_output=True, text=True)
return result.stdout, result.stderr
except Exception as e:
return str(e), "Error occurred during execution"
def load_text_file(file_path):
try:
with open(file_path, 'r') as file:
return file.read()
except Exception as e:
return str(e)
# Define Gradio inputs and outputs for UltraSinger
opt_i = gr.File(label="Ultrastar.txt or audio file (.mp3, .wav, YouTube link)")
opt_o = gr.Textbox(label="Output folder")
mode = gr.Dropdown(
label="Mode options",
choices=["default", "-u", "-m", "-s", "-r", "-p"],
value="default"
)
whisper_model = gr.Dropdown(
label="Whisper Model",
choices=[
"tiny", "base", "small", "medium", "large-v1", "large-v2",
"tiny.en", "base.en", "small.en", "medium.en"
],
value="large-v2"
)
language = gr.Dropdown(
label="Language",
choices=[
"English", "French", "German", "Spanish", "Italian",
"Japanese", "Chinese", "Dutch", "Ukrainian", "Portuguese"
],
value="English"
)
crepe_model = gr.Radio(
label="Crepe Model",
choices=["full", "tiny"],
value="full"
)
extra = gr.Textbox(label="Extra options (e.g., --hyphenation True)")
device = gr.Dropdown(
label="Device options",
choices=[
"", "--force_cpu True", "--force_cpu False",
"--force_whisper_cpu True", "--force_whisper_cpu False",
"--force_crepe_cpu True", "--force_crepe_cpu False"
],
value=""
)
output_text = gr.Textbox(label="Standard Output")
error_text = gr.Textbox(label="Error Output")
# Define Gradio interface for UltraSinger
ultrasinger_tab = gr.Interface(
fn=run_ultrasinger,
inputs=[opt_i, opt_o, mode, whisper_model, language, crepe_model, extra, device],
outputs=[output_text, error_text],
title="UltraSinger UI",
description="Upload an Ultrastar.txt or an audio file, set the options, and run UltraSinger."
)
# Load content for Tab 1 and Tab 2
tab1_content = load_text_file("info.txt")
tab2_content = load_text_file("usdb.txt")
# Create Gradio tabs
with gr.Blocks(theme="soft") as demo:
with gr.Tabs():
with gr.TabItem("UltraSinger"):
ultrasinger_tab.render()
with gr.TabItem("Info"):
gr.Markdown(tab1_content)
with gr.TabItem("FOR USDB USERS"):
gr.Markdown(tab2_content)
# Launch the app
if __name__ == "__main__":
demo.launch() |