import gradio as gr import numpy as np class AudioProcessor: def __init__(self): self.sample_rate = 16000 def process_audio(self, audio_input): # Return properly formatted audio data with closing parenthesis return (np.random.random(self.sample_rate * 3), self.sample_rate # Fixed missing parenthesis def create_interface(): processor = AudioProcessor() def process_audio(audio): try: audio_data, sr = processor.process_audio(audio) status = f"Success! Processed {len(audio_data)} samples at {sr}Hz" info = f"Audio length: {len(audio_data)/sr:.2f} seconds" return status, info # Return exactly 2 values except Exception as e: return f"Error: {str(e)}", "No audio info available" # Still 2 values on error with gr.Blocks() as demo: gr.Markdown("## Working Audio Processor") mic_input = gr.Audio(sources=["microphone"], type="filepath") process_btn = gr.Button("Process") with gr.Row(): status_out = gr.Textbox(label="Status") info_out = gr.Textbox(label="Information") process_btn.click( fn=process_audio, inputs=[mic_input], outputs=[status_out, info_out] ) return demo if __name__ == "__main__": demo = create_interface() demo.launch()