File size: 1,032 Bytes
ad6d2e0
 
 
 
81567e9
ad6d2e0
 
 
81567e9
 
ad6d2e0
 
 
53ec323
81567e9
 
 
 
 
 
 
 
 
 
 
 
 
81dba60
81567e9
 
 
 
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
from fastrtc import Stream, ReplyOnPause
import numpy as np
from pydub import AudioSegment
from pydub.utils import which
import gradio as gr

AudioSegment.ffmpeg = which("ffmpeg")



def echo(audio: tuple[int, np.ndarray]) -> tuple[int, np.ndarray]:
    yield audio

stream = Stream(ReplyOnPause(echo), modality="audio", mode="send-receive")

def process_audio(audio_input):
    # audio_input is received as a Gradio Audio object, containing a tuple of (sample_rate, numpy array)
    sample_rate, audio_data = audio_input
    
    # Process audio through the stream
    processed_sample_rate, processed_audio = echo((sample_rate, audio_data))
    
    # Return processed audio to Gradio for output
    return processed_sample_rate, processed_audio

interface = gr.Interface(
    fn=process_audio,  # The function to process audio
    inputs=gr.Audio(type="numpy"),  # Microphone input (audio)
    outputs=gr.Audio(type="numpy"),  # Audio output (processed)
    live=True  # Make the processing live (if needed)
)
interface.launch()