nateraw's picture
Update app.py
a0324df
import json
import os
import tempfile
from pathlib import Path
import gradio as gr
from huggingface_hub import duplicate_space, upload_folder, login
def configure_training(this_space_id, csv_data, character, do_extract_vocals=False):
character = character.strip().replace('-', '').replace('_', '').replace(" ", "").lower()
ds_cfg = {
"character": character,
"do_extract_vocals": do_extract_vocals,
}
with tempfile.TemporaryDirectory() as tempdir:
temp_path = Path(tempdir)
(temp_path / 'data.csv').write_text(csv_data)
(temp_path / 'dataset_config.json').write_text(json.dumps(ds_cfg, indent=2, sort_keys=False))
upload_folder(repo_id=this_space_id, folder_path=tempdir, path_in_repo=".", repo_type="space")
print("Would normally upload here!")
print(list(temp_path.glob("*")))
return "OK! Rebooting here in a sec to start training"
description = """
Configure training session for voice cloning.
Please provide a CSV containing YouTube IDs, start times, and end times that we can use to gather the dataset for you.
It should look like this:
```
ytid,start,end
YYiQxHM0L-w,300,660
Ga-CcToGiUM,3105,3300
```
"""
if os.environ.get("HF_TOKEN", None) is not None:
login(os.environ.get("HF_TOKEN"))
interface = gr.Interface(
configure_training,
inputs=[
gr.Textbox(label="This Space's Repo ID", info="The repo ID of this space (ex. nateraw/voice-cloning-training-ui)."),
gr.TextArea(value="ytid,start,end\n", label="CSV Data", max_lines=50),
gr.Textbox(placeholder="Name of character that you're cloning."),
gr.Checkbox(
False,
label="Isolate Vocals",
info="If checked, we use demucs to isolate vocals from each audio file. You want to use this if the provided clips contain background music"
)
],
outputs="text",
title="Configure Training Session",
description=description,
)
else:
with gr.Blocks() as interface:
gr.Markdown("""
## Please Set The HF_TOKEN Environment Variable
Go to the settings tab of this space and add a new environment variable named `HF_TOKEN` with its value being **a token with write access** from [here](https://hf.co/settings/tokens).
""")
if __name__ == '__main__':
interface.launch()