from daily import CallClient, AudioData
import numpy as np
def process_audio(participant_id: str, audio_data: AudioData, audio_source: str):
# Convert bytes to numpy array for processing
# Assuming 16-bit PCM audio
audio_array = np.frombuffer(
audio_data.audio_frames,
dtype=np.int16
)
# Reshape for multi-channel audio
if audio_data.num_channels > 1:
audio_array = audio_array.reshape(-1, audio_data.num_channels)
# Process audio (e.g., compute volume)
volume = np.abs(audio_array).mean()
print(f"Average volume: {volume}")
# Apply audio processing, filters, etc.
# ...
client = CallClient()
client.set_audio_renderer(
participant_id="participant-id",
callback=process_audio,
sample_rate=16000
)