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() |