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") |