| |
| import gradio as gr |
| import numpy as np |
| import time |
| import requests |
| from io import BytesIO |
|
|
| |
| def search_song(artist_name): |
| |
| |
| response = { |
| "artist": artist_name, |
| "song": "Sample Song", |
| "audio_url": "https://example.com/sample-song.mp3" |
| } |
| return response |
|
|
| |
| def stream_song(song_details): |
| |
| audio_url = song_details["audio_url"] |
| |
| for _ in range(10): |
| time.sleep(0.5) |
| yield audio_url |
|
|
| |
| with gr.Blocks() as demo: |
| artist_name = gr.Textbox(label="Artist Name") |
| song_details = gr.Json(label="Song Details") |
| audio_output = gr.Audio(streaming=True, autoplay=True) |
|
|
| |
| artist_name.submit(search_song, inputs=artist_name, outputs=song_details) |
| song_details.change(stream_song, inputs=song_details, outputs=audio_output) |
|
|
| |
| demo.launch(show_error=True) |