import asyncio
from datetime import datetime, timedelta, timezone
from avatar_sdk_python import new_avatar_session
async def main():
session = new_avatar_session(
api_key="your-api-key",
app_id="your-app-id",
avatar_id="your-avatar-id",
expire_at=datetime.now(timezone.utc) + timedelta(minutes=5),
console_endpoint_url="https://console.us-west.spatialwalk.cloud/v1/console",
ingress_endpoint_url="https://api.us-west.spatialwalk.cloud/v2/driveningress",
transport_frames=lambda frame, last: print(f"Received frame: {len(frame)} bytes, last={last}"),
on_error=lambda err: print(f"Error: {err}"),
on_close=lambda: print("Session closed"),
)
await session.init()
connection_id = await session.start()
print(f"Connected: {connection_id}")
audio_data = b"..." # PCM 16-bit mono bytes
await session.send_audio(audio_data, end=True)
await asyncio.sleep(5)
await session.close()
if __name__ == "__main__":
asyncio.run(main())