Skip to main content

Python SDK for avatar WebSocket services with audio streaming and animation frame reception

Project description

Spatius Python SDK

Python server SDK for creating Spatius avatar sessions.

Installation

pip install spatius

Install the optional Ogg Opus encoder support when you want the SDK to encode raw PCM before sending:

pip install "spatius[opus]"

Quick Start

import asyncio
from datetime import datetime, timedelta, timezone

from spatius 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),
        transport_frames=lambda frame, last: print(
            f"Received frame: {len(frame)} bytes, last={last}"
        ),
        on_error=lambda err: print(f"Session error: {err}"),
        on_close=lambda: print("Session closed"),
    )

    await session.init()
    connection_id = await session.start()
    print(f"Connected: {connection_id}")

    audio_data = b"..."  # mono PCM s16le audio bytes
    request_id = await session.send_audio(audio_data, end=True)
    print(f"Sent audio request: {request_id}")

    await asyncio.sleep(10)
    await session.close()


if __name__ == "__main__":
    asyncio.run(main())

Benchmarks

Benchmark the built-in PCM to Ogg Opus encoder from a source checkout:

uv run --extra opus python benchmarks/bench_ogg_opus_encoder.py

Use --help to see options for sample rate, bitrate, frame duration, input chunk size, and run count.

Documentation

See the full Python SDK guide at docs.spatius.ai/sdk-reference/python-sdk/python-sdk.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spatius-1.0.4rc1.tar.gz (141.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spatius-1.0.4rc1-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file spatius-1.0.4rc1.tar.gz.

File metadata

  • Download URL: spatius-1.0.4rc1.tar.gz
  • Upload date:
  • Size: 141.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for spatius-1.0.4rc1.tar.gz
Algorithm Hash digest
SHA256 c291b9202c90a9e62e768c1e043426f48726e51043f873aac22c1de54ffb7ade
MD5 4e7c8be0e9d6121b6db3233f9ca1484c
BLAKE2b-256 a282be6d929004ef91b15020059d41b69f1547bd22f02be54dd83070f22b290a

See more details on using hashes here.

Provenance

The following attestation bundles were made for spatius-1.0.4rc1.tar.gz:

Publisher: publish.yml on spatius-ai/spatius-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spatius-1.0.4rc1-py3-none-any.whl.

File metadata

  • Download URL: spatius-1.0.4rc1-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for spatius-1.0.4rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e4224dfeb9f7f3c590f8158eedb691439a80f4481d9339c6551b49440c23e75
MD5 792bee6a26b3b16fe30d26509f35a64f
BLAKE2b-256 7e04267c75d6948d6f1884bbc59f6e1107099164a599e4f1d7e98097706cb5bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for spatius-1.0.4rc1-py3-none-any.whl:

Publisher: publish.yml on spatius-ai/spatius-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page