Add support for pluggable transports, such as `AudioStream`, to allow `AgentSession` to accept audio input/output directly from various async iterators/callables, providing more flexibility in audio handling.
### Feature Type Nice to have ### Feature Description Add support for pluggable transports, AudioStream as an example. This would allow AgentSession to accept audio input/output directly from: E.g: from livekit.agents import AgentSession, AudioStreamTransport transport = AudioStreamTransport( input_stream=websocket_audio_in, # async iterator of audio frames output_stream=websocket_audio_out, # async callable to send audio frames sample_rate=16000, channels=1, frame_duration_ms=20, ) session = AgentSession(transport=transport) session.start(agent=MyAgent()) ### Workarounds / Alternatives _No response_ ### Additional Context _No response_