Spaces:
Build error
Build error
import gradio as gr | |
from utils import * | |
import os | |
from leaderboard import build_leaderboard | |
def build_demo(): | |
last_updated_path = 'results/last_updated.txt' | |
last_updated_str = '' | |
if os.path.exists(last_updated_path): | |
with open(last_updated_path, 'r') as f: | |
date = f.read() | |
last_updated_str = f"\nLast Updated : {date}" | |
with gr.Blocks() as demo: | |
state = gr.State() | |
with gr.Tab("Song Generation", id=0): | |
gr.Markdown("# π΅ Song Arena\nCan you detect if a song is AI-generated or real?") | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown("### π Click on **New Round** for a song!") | |
with gr.Row(): | |
with gr.Column(): | |
model_selector = gr.Markdown("", visible=True) | |
with gr.Row(): | |
with gr.Column(): | |
heard_btn = gr.Button( | |
value="π© Heard this song before", visible=False, interactive=False | |
) | |
audio = gr.Audio(show_download_button = False) | |
with gr.Row(): | |
real_btn = gr.Button(value="π Real", visible=False, interactive=False) | |
fake_btn = gr.Button( | |
value="π€ Fake", visible=False, interactive=False | |
) | |
btn_list = [fake_btn, real_btn, heard_btn] | |
fake_btn.click( | |
fake_last_response, | |
inputs=[state], | |
outputs=[fake_btn, real_btn, heard_btn, model_selector] | |
) | |
real_btn.click( | |
real_last_response, | |
inputs=[state], | |
outputs=[fake_btn, real_btn, heard_btn, model_selector] | |
) | |
heard_btn.click(generate_songs, state, [state, audio, model_selector]) | |
new_round_button = gr.Button("New Round") | |
new_round_button.click(generate_songs, state, [state, audio, model_selector]).then( | |
enable_buttons_side_by_side, | |
inputs=None, | |
outputs=btn_list | |
) | |
with gr.Tab("Leaderboard", id=1): | |
gr.Markdown("# π Leaderboard π" + last_updated_str) | |
gr.Dataframe( | |
headers=[ | |
"π€/ π", | |
"π³οΈ Num Votes", | |
"π TPR", | |
"π TNR", | |
"π F-1", | |
], | |
datatype=[ | |
"str", | |
"number", | |
"number", | |
], | |
value=build_leaderboard().values, | |
height=700, | |
column_widths=[50, 200, 100, 100, 100, 150, 150], | |
wrap=True, | |
) | |
return demo | |
if __name__ == "__main__": | |
demo = build_demo() | |
demo.queue(max_size=20).launch(server_name="0.0.0.0") |