Webui / app.py
NeoPy's picture
Update app.py
4091b91 verified
raw
history blame
1.79 kB
import os
import gradio as gr
folder_path = "./audios"
def get_audio_files():
"""Get list of audio files from a folder."""
if not os.path.exists(folder_path):
return []
audio_extensions = ['.mp3', '.wav', '.m4a']
try:
files = [f for f in os.listdir(folder_path)
if os.path.splitext(f)[1].lower() in audio_extensions]
return sorted(files)
except Exception as e:
print(f"Error reading folder: {e}")
return []
def create_dropdown():
"""Create dropdown interface with audio folder detection."""
with gr.Blocks() as demo:
# Create dropdown with initial empty value (Gradio 4.x style)
folder_dropdown = gr.Dropdown(
choices=[],
label="Select Audio Folder",
value=None,
placeholder="Choose an audio folder"
)
# Create dropdown for audio files
audio_dropdown = gr.Dropdown(
choices=[],
label="Select Audio File",
value=None,
placeholder="Audio files will appear here"
)
# Event listener for folder selection
def update_audio_files(folder_path):
if not folder_path:
return []
audio_files = get_audio_files(folder_path)
return audio_files
# Link events
folder_dropdown.change(
fn=update_audio_files,
inputs=folder_dropdown,
outputs=audio_dropdown
)
# Layout configuration
demo.append(gr.Row([folder_dropdown]))
demo.append(gr.Row([audio_dropdown]))
return demo
# Launch the interface
if __name__ == "__main__":
app = create_dropdown()
app.launch()