Skip to main content

odin-voice

Python bindings for the 4Players ODIN Voice SDK - a cross-platform solution for integrating real-time voice chat into your applications.

What is ODIN?

ODIN is a cross-platform SDK that integrates real-time voice chat into multiplayer games, applications and websites. It supports both managed cloud hosting through 4Players and self-hosted deployments, giving developers flexibility in their deployment strategy.

Key Features

  • Real-Time Voice Chat - Low-latency audio transmission with Opus codec compression and automatic sample rate conversion
  • Audio Processing - Voice Activity Detection (VAD), echo cancellation, noise suppression, automatic gain control and DeepFilterNet based voice isolation
  • Channels & Proximity Chat - Up to 64 logical channels per room with per-channel 3D positions; the server only forwards what a peer wants to hear and what is in range
  • End-to-End Encryption - Secure voice communication with customizable room passwords
  • Sockets - Reliable and unreliable data channels between peers, alongside the voice stream
  • Connection Pooling - Efficient multi-room management for complex applications
  • Flexible Pipeline - Extensible audio pipeline architecture supporting custom effects

Installation

pip install odin-voice

Quick Start

import asyncio
import json
import time

from odin_voice import (
    OdinConnectionPool,
    OdinTokenGenerator,
    OdinEncoder,
    OdinDecoder,
    OdinAudioEncoderConfig,
    OdinAudioDecoderConfig,
)

async def main():
    # Generate a token (in production, do this server-side)
    generator = OdinTokenGenerator.from_access_key("your-access-key")
    nbf = int(time.time())
    token = generator.sign(json.dumps({
        "rid": "my-room",
        "uid": "user-123",
        "aud": "gateway",
        "nbf": nbf,
        "exp": nbf + 300,
    }))

    async with OdinConnectionPool() as pool:
        room = pool.join_room(
            gateway="gateway.odin.4players.io",
            token=token,
            user_data={"name": "user-123"},
        )

        # Wait for the join to complete
        own_peer_id, room_id, customer = await room.joined()
        print(f"Joined {room_id} as peer {own_peer_id}")

        # Encoder for outgoing audio; the room stamps our peer id into each datagram
        encoder = OdinEncoder(OdinAudioEncoderConfig(sample_rate=48000))

        # One decoder per remote peer
        decoders: dict[int, OdinDecoder] = {}

        async def handle_events():
            async for rpc in room.rpcs():
                match rpc:
                    case {"PeerJoined": {"peer_id": peer_id}}:
                        decoders[peer_id] = OdinDecoder(OdinAudioDecoderConfig(sample_rate=48000))
                    case {"PeerLeft": {"peer_id": peer_id}}:
                        decoders.pop(peer_id, None)
                    case _:
                        print(f"Event: {rpc}")

        async def handle_audio():
            async for datagram in room.datagrams():
                if decoder := decoders.get(datagram.peer_id):
                    decoder.push(datagram.data)
                    samples, is_silent = decoder.pop(960)  # 20ms at 48kHz mono
                    # Process samples...

        await asyncio.gather(handle_events(), handle_audio())

asyncio.run(main())

Events arrive as dicts with the event name as their only key: Joined, Left, PeerJoined, PeerLeft, PeerChanged, MessageReceived, NewReconnectToken, Error, plus a locally generated RoomStatusChanged whenever the connection state moves between joining, joined and closed. Commands go out the same way via room.send_rpc({...}).

Channels and Positions

Every voice datagram travels on one or more of 64 logical channels, each with a 3D position. Which channels you send on is decided by the positions set on your encoder; which channels of which peers you receive is decided by channel masks on the room.

# Transmit on channel 3 from position (10, 0, 5); a fresh encoder sends on channel 0 at the origin
encoder.set_position(10.0, 0.0, 5.0, channel=3)
encoder.clear_position(0)

# Only hear peer 7 on channels 1, 3 and 5; peer id 0 sets the default for everybody
room.set_channel_masks({7: 0b10101, 0: 0xFFFF_FFFF_FFFF_FFFF})

# Decoders report what they last received
print(hex(decoder.active_channels), decoder.positions)

The server culls audio whose sender is further than one unit away on that channel, so positions double as a proximity filter. Coordinates are fixed point with 1/16 resolution.

Sockets

Besides voice, two peers can exchange arbitrary data over the room's connection. A socket is opened towards one peer and shows up on the other side with its first message.

from odin_voice import OdinSocketType

# Open a socket to peer 7; reliable is ordered and retransmitted, unreliable is fire-and-forget
sock = room.create_socket(7, kind=OdinSocketType.Reliable, label=1)
sock.send(b"hello")

# Messages from sockets opened on either side arrive on one stream
async for message in room.sockets():
    print(message.socket.remote_peer_id, message.socket.info.label, message.data)
    if message.socket.info.is_inbound:
        message.socket.send(b"got it")   # answer on the socket the peer opened

Sockets are bound to the connection they were opened on and stop working after a reconnect. An unreliable message has to fit into a single datagram together with its header, so its size is bounded by the connection's path MTU, typically a little under 1.5 KB; sending more raises OdinError naming the exact limit. Reliable sockets have no such bound.

Token Generation

Tokens authenticate users and grant access to rooms. Generate tokens server-side only - never embed access keys in client code.

import json
import time

from odin_voice import OdinTokenGenerator

# Create from your access key
generator = OdinTokenGenerator.from_access_key("your-access-key")

# Or generate a new key pair (share public_key with 4Players)
generator = OdinTokenGenerator.generate()
print(f"Access Key: {generator.access_key}")  # Keep secret!
print(f"Public Key: {generator.public_key}")  # Share with 4Players

# Create a token
nbf = int(time.time())
token = generator.sign(json.dumps({
    "rid": "my-room",     # Room ID
    "uid": "user-id",     # User ID
    "aud": "gateway",     # Audience: "gateway" or "sfu"
    "nbf": nbf,           # Not before (Unix timestamp)
    "exp": nbf + 300,     # Expiration (Unix timestamp)
}))

End-to-End Encryption

Enable E2EE by creating a cipher with a shared password. All peers must use the same password. A cipher serves exactly one room.

from odin_voice import OdinCipher, OdinCryptoPeerStatus

# Create cipher with password
cipher = OdinCipher("shared-secret")

# Join room with encryption
room = pool.join_room(gateway=gateway, token=token, cipher=cipher)

# Check peer encryption status
status = cipher.peer_status(peer_id)
match status:
    case OdinCryptoPeerStatus.Encrypted:
        print("Peer is using the same password - secure!")
    case OdinCryptoPeerStatus.PasswordMismatch:
        print("Peer is using a different password")
    case OdinCryptoPeerStatus.Unencrypted:
        print("Peer is not using encryption")

# Change password at runtime
cipher.set_password("new-password")

Audio Processing Pipeline

Add effects like VAD, noise suppression and voice isolation to encoders and decoders:

from odin_voice import (
    OdinEncoder,
    OdinAudioEncoderConfig,
    OdinVadConfig,
    OdinApmConfig,
    OdinViConfig,
    OdinNoiseSuppressionLevel,
    OdinGainControllerVersion
)

encoder = OdinEncoder(OdinAudioEncoderConfig())
pipeline = encoder.pipeline

# Add Voice Activity Detection with default settings
vad_id = pipeline.insert_vad(0, OdinVadConfig())

# Add automatic gain control, noise suppression and echo cancellation
apm_config = OdinApmConfig(
    gain_controller_version=OdinGainControllerVersion.V2,
    noise_suppression_level=OdinNoiseSuppressionLevel.High,
    echo_canceller=True,
)
apm_id = pipeline.insert_apm(1, 48000, False, apm_config)

# Echo cancellation needs to know what is being played back
pipeline.update_apm_playback(apm_id, playback_samples, delay_ms=10)

# Add DeepFilterNet based voice isolation
vi_id = pipeline.insert_vi(2, OdinViConfig(enabled=True, attenuation_limit_db=100.0))

# Reconfigure or remove effects at any time
pipeline.set_vad_config(vad_id, OdinVadConfig.disabled())
pipeline.remove_effect(vi_id)

Connection Statistics

Monitor connection quality:

stats = room.stats
if stats:
    print(f"RTT: {stats.rtt:.1f}ms")
    print(f"Packet Loss: {stats.udp_tx_loss:.1f}%")
    print(f"RX Datagrams: {stats.udp_rx_datagrams}")
    print(f"TX Datagrams: {stats.udp_tx_datagrams}")

# Encoders, decoders and rooms expose their internals for debugging
print(decoder.dump()["decoder"]["jitter_buffer"])
print(room.dump())  # join state, gateway, own peer id, join parameters with the token redacted

Documentation

For full documentation, visit docs.4players.io.

Metadata

Release files for odin-voice 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for odin-voice 2.0.0
File
odin_voice-2.0.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
odin_voice-2.0.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
odin_voice-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details
odin_voice-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details
odin_voice-2.0.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
odin_voice-2.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
odin_voice-2.0.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details
odin_voice-2.0.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
odin_voice-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details
odin_voice-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details
odin_voice-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
odin_voice-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
odin_voice-2.0.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.13 CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
odin_voice-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
odin_voice-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details
odin_voice-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
odin_voice-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
odin_voice-2.0.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details
odin_voice-2.0.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
odin_voice-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
odin_voice-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details
odin_voice-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64 Details
odin_voice-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
odin_voice-2.0.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details
odin_voice-2.0.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
odin_voice-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
odin_voice-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details
odin_voice-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
odin_voice-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
odin_voice-2.0.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details
odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64, macOS 11.0+ ARM64, macOS 10.12+ universal2 (ARM64, x86-64) Details

Total release size: 976.7 MB

Release files / odin_voice-2.0.0-cp314-cp314t-win_amd64.whl

Download URL odin_voice-2.0.0-cp314-cp314t-win_amd64.whl
Size 20.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
eecb7281b4efdb25a81932ad8d851a629a06764f0eafb3558e3a3d0af8cf69bc
BLAKE2b-256 checksum
How to use checksums
b9c1e63132b26d7f868a64aff601d5c0380720af9c807ce68ead07605646b5b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-win_amd64.whl

Download URL odin_voice-2.0.0-cp314-cp314-win_amd64.whl
Size 20.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
eb87357a6e05aea09bb8b8cb79a0cfae7dcdc077e1f1aa2f11410ab89a1305cc
BLAKE2b-256 checksum
How to use checksums
61e7443a3c24b1c03358f61a3914e9cddb2526e814e995d35277615851b1d4ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL odin_voice-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 24.5 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
152d825f2de05a7f3a1de1275d508845ac33ccf7cbdf2b47f72cc025239331fd
BLAKE2b-256 checksum
How to use checksums
32643c65524d15c3be734669f614b23ed2348a0fcd1bfefef369be7f7fb30989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL odin_voice-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 19.8 MB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
2135aa1aeae60e678269e4b71a03cfca80f8f386fe21ffcdc10c66b4b657155f
BLAKE2b-256 checksum
How to use checksums
e0bffb0e38085940e686794e80aecb63f5a5da1e441d34de6ff2cc4d3779fc03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-manylinux_2_28_x86_64.whl

Download URL odin_voice-2.0.0-cp314-cp314-manylinux_2_28_x86_64.whl
Size 22.5 MB
Tags CPython 3.14 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e3e2763ce43be198bee20d8c2b7d0215fe316c022c1d8415ec58322af1cc3d64
BLAKE2b-256 checksum
How to use checksums
24ce6dc4dc87872601b1fa089ad2f9760cde15e658402392e8876de3e1d5aebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL odin_voice-2.0.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 19.8 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
565500107e3e43c3dade04839b4efb3ec90d5a3babe5a78b7a5994865f0c32f2
BLAKE2b-256 checksum
How to use checksums
1d8aa25644dc79ba5950bf035c4ceb20241f1c63fd6b5650b435ffb69326eef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL odin_voice-2.0.0-cp314-cp314-macosx_11_0_arm64.whl
Size 20.5 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab1f56ba81343617762da3d80766dedee014fb34b9f1ade928af2178378cf4a7
BLAKE2b-256 checksum
How to use checksums
c6beccdce1cc18f34ace4845de92517509eea4b1e176b15ac0383c38f2bb0100
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 21.7 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
65a282c0c5e2dd460fc38dc43236cd2c773ed8511c1dfa7f6746e46c4eb8cea3
BLAKE2b-256 checksum
How to use checksums
336c6357839e64269624100aee114f57983e30851ec7d3bf8457cecaa62ce1fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL odin_voice-2.0.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 42.1 MB
Tags CPython 3.14 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8bcbc48ea887a1e7e8575d6d91390184ef1abdd0de3c95c5c218bd7851af5fbd
BLAKE2b-256 checksum
How to use checksums
eab26b4bdf9e355b6be6b629ccf56c9ec5243539c7711d9b1103cc134c6af573
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-win_amd64.whl

Download URL odin_voice-2.0.0-cp313-cp313-win_amd64.whl
Size 20.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2045af0bc865fb5aeadbec52a93ec7adb6fe8f3eed14f2d3b590adb74167eb3f
BLAKE2b-256 checksum
How to use checksums
743b28d51a35106efc2f6955f6c8532cef2803a8c8bec01624b47302c1373f8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL odin_voice-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 24.5 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
5e244460ed87399e254453dbc3f284e1c8d329491a8429e5bd62194034e2a3da
BLAKE2b-256 checksum
How to use checksums
9c06d2955896dcb1dbb067187d910702bbbce9cef4a3b256654e7457b8febe28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL odin_voice-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 19.8 MB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
2dc5b01a678e490510b20b5ad13342b2fa925d08882e04c70e5041fb9784a8c4
BLAKE2b-256 checksum
How to use checksums
ad94b08efbf6cd55502d26c962aef44cb0e340ede104563733452cfac5b09a15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl

Download URL odin_voice-2.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Size 22.5 MB
Tags CPython 3.13 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d3fe006c4e95f3a375904c59eef76da7fab1480bf340d8a0cf9625a85f05734a
BLAKE2b-256 checksum
How to use checksums
42c770b82c1cf96e38d798ccaa1ad74e13e52656bd73f7b88d665840a65f17a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL odin_voice-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 19.8 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
9e44a4c11b408e6ad159f185a4ced64a32777c4bea6ea81a81c2dc997ed5d9e4
BLAKE2b-256 checksum
How to use checksums
bb2c2e5d995fe6c73f50a599d887d99ecdd6c3a6fd403b09836e6b75592d8d14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL odin_voice-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Size 20.5 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
040e3bfdac5aeca7264dd73d1d78e07021d85b3898b39d94517385be83ba8c79
BLAKE2b-256 checksum
How to use checksums
4c9a9d8c1220e25b4b2ade6c4a6fec50c417ef2eb5d79f76ac748cb119f072a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 21.7 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
292a1b393a8511fd97e570f58ddcf94e0577dcd906e8aa0359f98fe23cf26056
BLAKE2b-256 checksum
How to use checksums
39a4974a7f6f203374a4d738ab9593088d11554cca30098d9a9d73559638bc0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL odin_voice-2.0.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 42.1 MB
Tags CPython 3.13 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2de5c65749b774caaa3744b1c843671b34c51735ab4f61399a12ff9f6e127e61
BLAKE2b-256 checksum
How to use checksums
ec6b403bc17d439379f0b034b12a9a839e7dd352ceb1a1c1312fdfb0fadb913c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-win_amd64.whl

Download URL odin_voice-2.0.0-cp312-cp312-win_amd64.whl
Size 20.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8eb1604671ab8aafe5462888d61e6cacfd762fe8c208a01b2af8cbdadacc8e13
BLAKE2b-256 checksum
How to use checksums
dab288b5dfad0f650e1c63a832d0a6e1677e4bd80237b3c69435e101bcf7d674
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL odin_voice-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 24.5 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
c5d6f96c932bd9d3fcee4db7295cdcb3dceb81ec5b78ec68502a66465c78e8cc
BLAKE2b-256 checksum
How to use checksums
27448032e7f5dcfa59fb52c9091493d239754702f71496b098bdfecb38cf3101
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL odin_voice-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 19.8 MB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
170b913e57817b57ec288ba5ef3ec8ea3a7635d7b09837f58c21e89001077006
BLAKE2b-256 checksum
How to use checksums
661adbee1832ea995cafe9c9db041291fbedeafd6a7aa1f098214887524f41a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl

Download URL odin_voice-2.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Size 22.5 MB
Tags CPython 3.12 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a5f5e26aff3ad234bf14c91912c81d9b0a5d289a469781b56645be7e7b099a38
BLAKE2b-256 checksum
How to use checksums
c10cdcddbcc68b18347a1a3bd3bc440aba0cde36b3bbe6bd29ecfc84c771ffda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL odin_voice-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 19.8 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c7b4a12b9d87f590caded1e4660d64e5dfdce381b80343cab501106d8fc76958
BLAKE2b-256 checksum
How to use checksums
6b275ea0c48f3af97a36335db5796af5057d090d29a657ffadaab30b625eed73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL odin_voice-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Size 20.5 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
059507711e9c1c67960791a6543bb44f0991642bb12a0f8ced326471c7db5016
BLAKE2b-256 checksum
How to use checksums
45a581c95351ba44e3e156d2daf83b668b4339987c22091552d233f8e148a676
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 21.7 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
bb998838aba461455f6e4f671c99f9ef5754a53b10d682d58af734ab78794c0e
BLAKE2b-256 checksum
How to use checksums
16e265bf897dab29202cb1b007bf8c83fc97e609ccbfe8758dbceae10b1ed5fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL odin_voice-2.0.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 42.1 MB
Tags CPython 3.12 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6b77af04461f3b3b26ab81b9bb974c53f52279ae72d913cb6ac4b29d63d7e3b1
BLAKE2b-256 checksum
How to use checksums
07d13045cd6a4f4ec8c05502c01c8e608e3977ecddb31ab5db1527ba8f22bbc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-win_amd64.whl

Download URL odin_voice-2.0.0-cp311-cp311-win_amd64.whl
Size 20.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8b740d3a345943634907215217fbfb4196b33345ea3762a1acc4fe34f518e042
BLAKE2b-256 checksum
How to use checksums
461677a759e7e0b37ae0358e1e78df17f43f09c30196452f3353fcb3aed00b67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL odin_voice-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 24.5 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f51ba156a7345da7e66e0b99fdaf401e73d90ada1201991582431449b52150df
BLAKE2b-256 checksum
How to use checksums
d19948831348d2c215e88447700766479a5a93b68917bbc212c123b6e5889b0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL odin_voice-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 19.8 MB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
3d4e7fc4c5ff81308521d68a14a002cce5e2571276a3a85077d9cc4e34673a06
BLAKE2b-256 checksum
How to use checksums
0cbf81441d8cb89d453545e411c33b3630e30c196227e37f53ec5902d1fbfe85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl

Download URL odin_voice-2.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Size 22.5 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
86bcd229ed3d7f4f95421ff4cf78e6d101c175f4aeb7b2001fae48d8895f9085
BLAKE2b-256 checksum
How to use checksums
8d0e72bb764b912d8c742e95bd68728525abf6b3b7ea7d63711b8f277b4fa972
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL odin_voice-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 19.8 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
2837fc15e9899b64c4f35833ae0d57da67315a1609f915f284e82b993fea847c
BLAKE2b-256 checksum
How to use checksums
96f58441525ec212ab09bec6cbd6bae9d257bf33f2ec1b394d5ab3daf81794fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL odin_voice-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Size 20.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d16a8e243634f8f8c490a0044590566d973e1fe5c38446a28e7163f203c9caa7
BLAKE2b-256 checksum
How to use checksums
7a17783378b72609ffca80631cc7627a337f290961a2dda4ff1abe59c5ed1526
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 21.6 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7958206ce85bb38a6486c5d27cfc172e193208ebfe98b747b61af8998474539c
BLAKE2b-256 checksum
How to use checksums
a35ded7619ebd01a02fd371d2ddbec2cddf63a3560645cf2f161d9f1748aacd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL odin_voice-2.0.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 42.1 MB
Tags CPython 3.11 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
313ed0377502c69df04c1cfde75c0cae8b98c1f6e5f08b6673e9d248dc5cef31
BLAKE2b-256 checksum
How to use checksums
23e518ba9a0c76283a6620beb0963a348494ee9a660bae0d82a5e59b6d766e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-win_amd64.whl

Download URL odin_voice-2.0.0-cp310-cp310-win_amd64.whl
Size 20.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
46fafe0f89e3a5465a4eddd767544bf4b4456ab8689d933de0edece2075eaba6
BLAKE2b-256 checksum
How to use checksums
c9f37594f604112da13059fb53466e6b03fd4260aa0eef376a3464ce6e9f5256
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL odin_voice-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 24.5 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3d64eaec74a4df0503318118dbe3a264bcaa3a8eab19d4588791524010e5a3ec
BLAKE2b-256 checksum
How to use checksums
81c18ba7bf24be65c8b78bba4f9266d9a0a1241f985c3c21625a47f11ddc0cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL odin_voice-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 19.8 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f42f9f2796014153185f431ef6899f88e611320e592b3d8124509f34ad9a7c9f
BLAKE2b-256 checksum
How to use checksums
2c56e182f9ce70517e5d31e0d23248e1951aedc1f843d60fcc54fdcfb01fb986
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL odin_voice-2.0.0-cp310-cp310-manylinux_2_28_x86_64.whl
Size 22.5 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f4b682bafdfc472cee193ff9b9f95c15326d350856bcb92910ca822e0b1c5eed
BLAKE2b-256 checksum
How to use checksums
5e73f869d45f725d289e83e796da9e81cdfcf98e21486d9b9cdb266a69808df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL odin_voice-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 19.8 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
7aad6b8209244c56d8f33a9423d0baa976f5dace530ca680e1f63cc7a8f37c61
BLAKE2b-256 checksum
How to use checksums
5bf991c45901e32d84886141a282db7255d87254af70d50cb06290d05d014dde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL odin_voice-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Size 20.6 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0df1c43b512e71eb84b3a8ee9dc67520b6de98ade69b467b8233cfbf3c7cbf5b
BLAKE2b-256 checksum
How to use checksums
0426e771e679c71a09e7ce33791ba73f803bb18faf76fc651d9859cf4bc4bce0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 21.6 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
c43610123fd4bee3d2c05cf0ef3f5830651a5da4b2175c025a47661b455369ea
BLAKE2b-256 checksum
How to use checksums
0b78b4df0706c75672bbb4d28fdf3057194c80f31027705def8f3f188241a6bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release files / odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl

Download URL odin_voice-2.0.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Size 42.1 MB
Tags CPython 3.10 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c23d296a23d41b00307cd12a7b724c8c5ea5574346efaf55a28b73f1bf5425bc
BLAKE2b-256 checksum
How to use checksums
43ca82c5a1f9c342bb79327c3eb6ce00ebc1964321fb222abaf2c9d4b6dae6a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.14.4

Release history Release notifications | RSS feed

2.0.1

41 release files

This release

2.0.0 This release

41 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page