File size: 1,429 Bytes
d61cd9f
ef2be41
3d0e791
cf17ab8
d61cd9f
cf17ab8
d287980
cf17ab8
d3f5c61
 
3d0e791
 
f36fc2f
cf17ab8
3d0e791
d61cd9f
f36fc2f
d3f5c61
 
 
d61cd9f
d3f5c61
d61cd9f
cf17ab8
d3f5c61
d287980
d3f5c61
 
f36fc2f
3d0e791
d3f5c61
 
f36fc2f
 
3d0e791
d3f5c61
 
cf17ab8
d61cd9f
 
3baa918
 
3d0e791
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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()