Spaces:
Sleeping
Sleeping
import gradio as gr | |
import subprocess | |
import os | |
def run_ultrasinger(opt_i, opt_o, mode, transcription, pitcher, extra, device): | |
# Construct the command based on inputs | |
cmd = ["python", "UltraSinger.py"] | |
# Add options | |
if opt_i: | |
cmd.extend(["-i", opt_i]) | |
if opt_o: | |
cmd.extend(["-o", opt_o]) | |
# Add mode | |
cmd.extend(mode.split()) | |
# Add transcription options | |
cmd.extend(transcription.split()) | |
# Add pitcher options | |
cmd.extend(pitcher.split()) | |
# Add extra options | |
cmd.extend(extra.split()) | |
# Add device options | |
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" | |
# Define Gradio inputs and outputs | |
opt_i = gr.File(label="Ultrastar.txt or audio file (.mp3, .wav, YouTube link)") | |
opt_o = gr.Textbox(label="Output folder") | |
mode = gr.Textbox(label="Mode options (e.g., default -u -m -s)") | |
transcription = gr.Textbox(label="Transcription options (e.g., --whisper large-v2 --language en)") | |
pitcher = gr.Textbox(label="Pitcher options (e.g., --crepe full)") | |
extra = gr.Textbox(label="Extra options (e.g., --hyphenation True)") | |
device = gr.Textbox(label="Device options (e.g., --force_cpu False)") | |
output_text = gr.outputs.Textbox(label="Standard Output") | |
error_text = gr.outputs.Textbox(label="Error Output") | |
# Create Gradio interface | |
interface = gr.Interface( | |
fn=run_ultrasinger, | |
inputs=[opt_i, opt_o, mode, transcription, pitcher, extra, device], | |
outputs=[output_text, error_text], | |
title="UltraSinger App", | |
description="Upload an Ultrastar.txt or an audio file, set the options, and run UltraSinger." | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
interface.launch() |