| | import os |
| | import gradio as gr |
| |
|
| | def get_audio_files(folder_path): |
| | """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: |
| | |
| | folder_dropdown = gr.Dropdown( |
| | choices=[], |
| | label="Select Audio Folder", |
| | value=None |
| | ) |
| | |
| | |
| | audio_dropdown = gr.Dropdown( |
| | choices=[], |
| | label="Select Audio File", |
| | value=None |
| | ) |
| | |
| | |
| | def update_audio_files(folder_path): |
| | if not folder_path: |
| | return [] |
| | |
| | audio_files = get_audio_files(folder_path) |
| | return audio_files |
| | |
| | |
| | folder_dropdown.change( |
| | fn=update_audio_files, |
| | inputs=folder_dropdown, |
| | outputs=audio_dropdown |
| | ) |
| | |
| | |
| | demo.append(gr.Row([folder_dropdown])) |
| | demo.append(gr.Row([audio_dropdown])) |
| | |
| | return demo |
| |
|
| | |
| | if __name__ == "__main__": |
| | app = create_dropdown() |
| | app.launch() |