Skip to main content

Server-side Python SDK for Vox-hosted WebRTC sessions.

Project description

vox-rtc-server

Server-side Python SDK for Vox-hosted WebRTC sessions.

This package is for backend applications that need to:

  • create RTC sessions over HTTP
  • attach to /v1/socket
  • join /rtc/{session_id}
  • send session.update, response.*, and server-to-browser client.event
  • observe RTC control events

It is intentionally narrow. It is not the general STT/TTS/text SDK.

Install

pip install vox-rtc-server pondsocket-client

The SDK uses the PondSocket Python client for the control-plane socket. Authentication can be passed explicitly with api_key=... or through VOX_API_KEY.

Example

import asyncio
import os

from vox_rtc_server import (
    ClientEventEnvelope,
    SessionConfig,
    VoxRtcServerClient,
)


async def main() -> None:
    client = VoxRtcServerClient(
        http_base="https://vox.example.com",
        api_key=os.environ.get("VOX_API_KEY"),
    )

    bootstrap, session = await client.create_controlled_session()
    print("session:", bootstrap.session_id)

    session.on_transcript(lambda event: print("user said:", event.transcript))
    session.on_browser_event(lambda event: print("browser event:", event.event, event.payload))
    session.on_close(lambda event: print("browser disconnected:", event.reason))

    session.configure(
        SessionConfig(
            stt_model="parakeet-stt-onnx:tdt-0.6b-v3",
            tts_model="kokoro-tts-onnx:v1.0",
            voice="af_heart",
            turn_profile="browser_default",
            vad_backend="silero",
            turn_detector="livekit",
        )
    )

    session.send_text_response("Hello from Python.")
    session.send_client_event(
        ClientEventEnvelope(
            event="render.url",
            payload={"url": "https://example.com"},
        )
    )


asyncio.run(main())

send_client_event is server to browser. Browser-originated app events arrive through on_browser_event.

Set join_timeout on VoxRtcServerClient for the default control-channel join timeout. Pass join_timeout=... to attach_session or create_controlled_session to override it for one session.

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

vox_rtc_server-0.1.8.tar.gz (26.9 kB view details)

Uploaded Source

Built Distribution

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

vox_rtc_server-0.1.8-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file vox_rtc_server-0.1.8.tar.gz.

File metadata

  • Download URL: vox_rtc_server-0.1.8.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for vox_rtc_server-0.1.8.tar.gz
Algorithm Hash digest
SHA256 32c7ee5ee14ffe2ea21616b2e99764658c3d7f8663cc71845e6a9646448b60f6
MD5 48147c1978fe404812aab86d18a20d46
BLAKE2b-256 95b971f2ce1e31ed9ab1d84e40d61971aa24896ef2d1bc17a8d21fa3de7f7543

See more details on using hashes here.

File details

Details for the file vox_rtc_server-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: vox_rtc_server-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for vox_rtc_server-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 27682fa2422b461e39714cfdea79093228e60ad69542ba24b872fe72d4caaaf1
MD5 d4c01f47207da6f385d81b487881d9b3
BLAKE2b-256 a8b6d439bb15f75deb8104afb809abd00cc559a5c2a19645b9c57378cc0b5ca3

See more details on using hashes here.

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