Skip to main content

Real-time avatar engine — 100+ FPS on CPU. Generate lip-synced video, stream live avatars to browsers. 1-2 CPU cores, <200ms latency. ARM, x86, macOS.

Project description

bitHuman Avatar Runtime

bitHuman Banner

Real-time avatar engine for visual AI agents, digital humans, and creative characters.

PyPI version Python Platforms

bitHuman powers visual AI agents and conversational AI with photorealistic avatars and real-time lip-sync. Build voice agents with faces, video chatbots, AI assistants, and interactive digital humans — all running on edge devices with typically 1-2 CPU cores and <200ms latency. Raw generation speed reaches up to 100+ FPS on CPU alone in typical configurations, enabling real-time streaming applications.

The SDK supports two model families through the same AsyncBithuman API:

Model type Runtime Where it runs
Essence In-process (native) Linux / macOS / Windows, x86_64 + ARM64. Default — what every existing caller uses.
Expression Out-of-process Swift runtime macOS + Apple Silicon (M3+) only. Ships with the macOS arm64 wheel; dispatches automatically when the model file is an Expression model.

A single call — AsyncBithuman.create(model_path=…) — works for both. If the model can't run on the current host, you get a typed ExpressionModelNotSupported instead of a cryptic crash.

See docs/architecture.md for the full picture across all repos; docs/best-practices.md for production patterns.

Installation

pip install bithuman --upgrade

Pre-built wheels for all major platforms — no compilation required:

Linux macOS Windows
x86_64 yes yes yes
ARM64 yes yes (Apple Silicon)
Python 3.9 — 3.14 3.9 — 3.14 3.9 — 3.14

For LiveKit agent integration:

pip install bithuman[agent]

Quick Start

Generate a lip-synced video

bithuman generate avatar.imx --audio speech.wav --key YOUR_API_KEY

Stream a live avatar to your browser

# Terminal 1: Start the streaming server
bithuman stream avatar.imx --key YOUR_API_KEY

# Terminal 2: Send audio to trigger lip-sync
bithuman speak speech.wav

Open http://localhost:3001 to see the avatar streaming live.

Python API (async)

import asyncio
from bithuman import AsyncBithuman
from bithuman.audio import load_audio, float32_to_int16

async def main():
    # Same entry point for every model type. On macOS + Apple Silicon
    # (M3+) this auto-detects Expression `.imx` bundles and dispatches
    # to the on-device Swift runtime; everywhere else it runs the
    # in-process Essence engine.
    runtime = await AsyncBithuman.create(
        model_path="avatar.imx",
        api_secret="YOUR_API_KEY",
    )
    await runtime.start()  # no-op for Expression, spins up the producer for Essence

    # Load and stream audio
    audio, sr = load_audio("speech.wav")
    audio_int16 = float32_to_int16(audio)

    async def stream_audio():
        chunk_size = sr // 25  # match video FPS
        for i in range(0, len(audio_int16), chunk_size):
            await runtime.push_audio(
                audio_int16[i:i + chunk_size].tobytes(), sr
            )
        await runtime.flush()

    asyncio.create_task(stream_audio())

    # Receive lip-synced video frames
    async for frame in runtime.run():
        if frame.has_image:
            image = frame.bgr_image       # numpy (H, W, 3), uint8
            audio = frame.audio_chunk     # synchronized audio
        if frame.end_of_speech:
            break

    await runtime.stop()  # alias for shutdown() — works for both runtimes

asyncio.run(main())

Python API (sync)

from bithuman import Bithuman
from bithuman.audio import load_audio, float32_to_int16

runtime = Bithuman.create(model_path="avatar.imx", api_secret="YOUR_API_KEY")

audio, sr = load_audio("speech.wav")
audio_int16 = float32_to_int16(audio)

chunk_size = sr // 100
for i in range(0, len(audio_int16), chunk_size):
    runtime.push_audio(audio_int16[i:i+chunk_size].tobytes(), sr)
runtime.flush()

for frame in runtime.run():
    if frame.has_image:
        image = frame.bgr_image
    if frame.end_of_speech:
        break

How It Works

  1. Load model.imx file contains the avatar's appearance, animations, and lip-sync data
  2. Push audio — Stream audio bytes in real-time via push_audio(), call flush() when done
  3. Get frames — Iterate runtime.run() to receive lip-synced video frames with synchronized audio

The runtime handles the full motion graph internally: idle animations, talking with lip-sync, head movements, blinking, and smooth transitions between states.

Performance

Metric Value
Raw FPS 100+ on CPU (Intel i5-12400, Apple M2)
CPU cores 1-2 cores at 25 FPS
End-to-end latency <200ms
Memory (IMX v2) ~200 MB per session
Model load time <10ms (IMX v2)
Audio formats WAV, MP3, FLAC, OGG, M4A

Features

  • Real-time lip-sync — Audio-driven mouth animation at 25 FPS with synchronized audio output
  • Cross-platform — Linux, macOS, Windows; x86_64 and ARM64; Python 3.9-3.14
  • Edge-ready — 1-2 CPU cores, no GPU required for inference
  • Sync + AsyncBithuman for threads, AsyncBithuman for async/await
  • Streaming-first — Push audio chunks in real-time, receive frames as they're generated
  • Actions & emotions — Trigger avatar gestures (wave, nod) and emotion states (joy, surprise)
  • Interrupt support — Cancel mid-speech for natural conversation flow
  • LiveKit integration — Built-in support for LiveKit Agents (WebRTC streaming)
  • CLI tools — Generate videos, stream live, convert models, validate setups
  • IMX v2 format — Optimized binary container with O(1) random access and WebP patches
  • Zero scipy dependency — Pure numpy audio pipeline, minimal install footprint
  • Expression models on macOS (Apple Silicon M3+)AsyncBithuman.create() auto-detects .imx files whose manifest stamps model_type: "expression" and dispatches to the native Swift runtime out-of-process. Frames and audio stream back over an async pipe at 1500+ FPS (mock-daemon benchmark, amortized), and the public API stays unchanged. See bithuman-expression-swift.

Expression model support (macOS arm64)

The bithuman wheel for macOS Apple Silicon (M3+) ships a pre-built bithuman-expression-daemon binary from the bithuman-expression-swift SDK. When you load an .imx packed with bithuman pack, AsyncBithuman.create() detects the Expression manifest and transparently spawns the Swift daemon; subsequent push_audio / run / flush calls behave exactly like they do for Essence models.

from bithuman import AsyncBithuman

# Realtime streaming with the bundle's default identity:
runtime = await AsyncBithuman.create(
    model_path="expression.imx",
    api_secret=os.environ["BITHUMAN_API_SECRET"],
)

# Pick a face per agent — one shared model bundle, any portrait:
runtime = await AsyncBithuman.create(
    model_path="expression.imx",        # ~3.5 GB, shared across every agent
    api_secret=os.environ["BITHUMAN_API_SECRET"],
    identity="alice.jpg",               # ~few KB per face — encoded on load
)

# Offline video generation: higher quality, ~2× slower:
runtime = await AsyncBithuman.create(
    model_path="expression.imx",
    api_secret=os.environ["BITHUMAN_API_SECRET"],
    quality="high",
)

# Standard streaming loop:
await runtime.push_audio(pcm_bytes, sample_rate=24_000)
async for frame in runtime.run():
    display(frame.bgr_image)            # BGR uint8; shape matches the
                                        # face renderer the model was
                                        # packed with (384/448/512)

# Switch the avatar's face mid-session — no reload, no audio interruption
# beyond the in-flight chunk:
await runtime.set_identity("bob.jpg")

Identity (Expression models only)

The model bundle and the avatar face are now separate. Same expression.imx (~3.5 GB animator + speech encoder + face encoder + face renderer) drives any portrait you point it at.

identity= Cost on load Cost on swap Notes
None (default) 0 n/a Uses the face baked into the .imx at pack time
"face.jpg" / .png ~300 ms (M3+) ~300 ms Encodes via the face encoder shipping in the bundle
"face.npy" instant instant Pre-encoded latent — produced by encode-ref-latent or cached from a previous swap

Switch any time:

await runtime.set_identity("alice.jpg")    # encode + swap
await runtime.set_identity("alice_cached.npy")    # instant
await runtime.set_identity(None)           # restore bundle default

On Linux, Windows, and Intel macOS, the daemon binary isn't bundled and Expression models raise ExpressionModelNotSupported with install guidance. The in-process Essence runtime is unaffected on every platform.

Quality preset (Expression models only)

quality When to use Realtime factor (M5, 384×384) Realtime factor (M5, 512×512)
"medium" Live streaming (default) 1.84× 1.14×
"high" Offline video generation 1.05× 0.67× ⚠

"high" is sub-realtime at 512×512 on an M5 — use it only for pre-recorded video export, not live streams. Ignored for Essence models.

Packing at different resolutions

bithuman pack bundles five weight artifacts into a single .imx avatar model file. The 384×384 face renderer is the realtime default — it leaves ~1 s of headroom per second of audio on an M5. Swap in the 448 or 512 renderer + a matching reference-face to produce higher-resolution output; the companion bithuman-expression-swift repo ships an encode-ref-latent tool that generates a reference-face file at any resolution from a portrait image.

# 384×384 — recommended for streaming
bithuman pack \
    --animator        path/to/animator.safetensors \
    --speech-encoder  path/to/speech_encoder.safetensors \
    --face-encoder    path/to/face_encoder.safetensors \
    --face-renderer   path/to/face_renderer_384.mlpackage \
    --reference-face  path/to/reference_face_384.npy \
    -o expression.imx

# 512×512 — offline video quality
bithuman pack \
    --animator        path/to/animator.safetensors \
    --speech-encoder  path/to/speech_encoder.safetensors \
    --face-encoder    path/to/face_encoder.safetensors \
    --face-renderer   path/to/face_renderer_512.mlpackage \
    --reference-face  path/to/reference_face_512.npy \
    -o expression_512.imx

Old ML-term flag names (--dit, --wav2vec, --vae-encoder, --ane-decoder, --ref-latent, --pos-conv) continue to work as aliases so existing build scripts don't break.

API Reference

AsyncBithuman / Bithuman

The main runtime for avatar animation.

# Create and initialize
runtime = await AsyncBithuman.create(
    model_path="avatar.imx",     # Path to .imx model
    api_secret="API_KEY",        # API secret (recommended)
    # token="JWT_TOKEN",         # Or JWT token directly
)
await runtime.start()

# Push audio (int16 PCM, any sample rate — auto-resampled to 16kHz)
await runtime.push_audio(audio_bytes, sample_rate)
await runtime.flush()            # Signal end of speech
runtime.interrupt()              # Cancel current playback

# Receive frames
async for frame in runtime.run():
    frame.bgr_image              # np.ndarray (H, W, 3) uint8 BGR
    frame.rgb_image              # np.ndarray (H, W, 3) uint8 RGB
    frame.audio_chunk            # AudioChunk — synchronized audio
    frame.end_of_speech          # True when all audio processed
    frame.has_image              # True if image available
    frame.frame_index            # Frame number
    frame.source_message_id      # Correlates to input

# Controls
await runtime.push(VideoControl(action="wave"))          # Trigger action
await runtime.push(VideoControl(target_video="idle"))    # Switch state
runtime.set_muted(True)                                  # Mute processing

# Info
runtime.get_frame_size()          # (width, height)
runtime.get_first_frame()         # First idle frame as np.ndarray
runtime.get_expiration_time()     # Token expiry (unix timestamp)
runtime.is_token_validated()      # Auth status

await runtime.stop()

Data Classes

from bithuman import AudioChunk, VideoControl, VideoFrame, Emotion, EmotionPrediction

# AudioChunk — container for audio data
chunk = AudioChunk(data=np.array([...], dtype=np.int16), sample_rate=16000)
chunk.duration    # float — length in seconds
chunk.bytes       # bytes — raw PCM bytes

# VideoControl — input to the runtime
ctrl = VideoControl(
    audio=chunk,                    # Audio to lip-sync
    action="wave",                  # Trigger action (wave, nod, etc.)
    target_video="talking",         # Switch video state
    end_of_speech=True,             # Mark end of speech
    force_action=False,             # Override action deduplication
    emotion_preds=[                 # Set emotion state
        EmotionPrediction(emotion=Emotion.JOY, score=0.9),
    ],
)

# VideoFrame — output from runtime.run()
frame.bgr_image           # np.ndarray (H, W, 3) uint8 — BGR
frame.rgb_image           # np.ndarray (H, W, 3) uint8 — RGB
frame.audio_chunk         # AudioChunk — synchronized audio
frame.end_of_speech       # bool — True when done
frame.has_image           # bool — True if image available
frame.frame_index         # int — frame number
frame.source_message_id   # Hashable — correlates to VideoControl

# Emotion enum
Emotion.ANGER | Emotion.DISGUST | Emotion.FEAR | Emotion.JOY
Emotion.NEUTRAL | Emotion.SADNESS | Emotion.SURPRISE

Audio Utilities

from bithuman.audio import (
    load_audio,               # Load WAV/MP3/FLAC/OGG/M4A -> (float32, sr)
    float32_to_int16,         # float32 -> int16
    int16_to_float32,         # int16 -> float32
    resample,                 # Resample to target rate
    write_video_with_audio,   # Save MP4 with audio track
    AudioStreamBatcher,       # Real-time audio buffer
)

audio, sr = load_audio("speech.mp3")             # Any format
audio_int16 = float32_to_int16(audio)            # Ready for push_audio
audio_16k = resample(audio, sr, 16000)           # Resample
write_video_with_audio("out.mp4", frames, audio, sr, fps=25)

Exceptions

All exceptions inherit from BithumanError:

Exception When
TokenExpiredError JWT has expired
TokenValidationError Invalid signature or claims
TokenRequestError Auth server unreachable
AccountStatusError Billing or access issue (HTTP 402/403)
ModelNotFoundError Model file doesn't exist
ModelLoadError Corrupt or incompatible model
ModelSecurityError Security restriction triggered
RuntimeNotReadyError Operation called before initialization

LiveKit Agent Integration

Build conversational AI agents with avatar faces using LiveKit Agents:

from bithuman import AsyncBithuman
from bithuman.utils.agent import LocalAvatarRunner, LocalVideoPlayer, LocalAudioIO

# Initialize bitHuman runtime
runtime = await AsyncBithuman.create(
    model_path="avatar.imx",
    api_secret="YOUR_API_KEY",
)

# Connect to LiveKit agent session
avatar = LocalAvatarRunner(
    bithuman_runtime=runtime,
    audio_input=session.audio,
    audio_output=LocalAudioIO(session, agent_output),
    video_output=LocalVideoPlayer(window_size=(1280, 720)),
)
await avatar.start()

See the examples in the bithuman-examples repo for a complete working LiveKit Agent example with OpenAI Realtime voice.

Optimize Your Models

Convert existing .imx models to IMX v2 for dramatically better performance:

bithuman convert avatar.imx
Metric Legacy (TAR) IMX v2 Improvement
Model size 100 MB 50-70 MB 30-50% smaller
Load time ~10s <10ms up to 1000x faster
Runtime speed ~30 FPS 100+ FPS 3-10x faster
Peak memory ~10 GB ~200 MB up to 98% less

Measured against the legacy TAR format with internal benchmarks; actual gains vary by hardware, model, and workload.

Conversion is automatic on first load, but pre-converting saves startup time.

CLI Reference

Command Description
bithuman generate <model> --audio <file> Generate lip-synced MP4 from model + audio
bithuman stream <model> Start live streaming server at localhost:3001
bithuman speak <audio> Send audio to running stream server
bithuman action <name> Trigger avatar action (wave, nod, etc.)
bithuman info <model> Show model metadata
bithuman list-videos <model> List all videos in a model
bithuman convert <model> Convert legacy to optimized IMX v2
bithuman validate <path> Validate model files load correctly

Configuration

Environment Variables

Variable Description
BITHUMAN_API_SECRET API secret for authentication
BITHUMAN_RUNTIME_TOKEN JWT token (alternative to API secret)
BITHUMAN_VERBOSE Enable debug logging
CONVERT_THREADS Number of threads for model conversion (0 or unset = auto-detect)

Runtime Settings

Setting Default Description
FPS 25 Target frames per second
OUTPUT_WIDTH 1280 Output frame width (0 = native resolution)
PRELOAD_TO_MEMORY False Cache model in RAM for faster decode
PROCESS_IDLE_VIDEO True Run inference during silence (natural idle)

Use Cases

  • Visual AI Agents — Give your voice agents a face with real-time lip-sync
  • Conversational AI — Build video chatbots and AI assistants with human-like presence
  • Live Streaming — Stream avatars to browsers via WebSocket, LiveKit, or WebRTC
  • Video Generation — Generate lip-synced content from audio at 100+ FPS
  • Edge AI — Run locally on Raspberry Pi, Mac Mini, Chromebook, or any edge device
  • Digital Twins — Photorealistic replicas for customer service, education, or entertainment

Examples

Example Description
example.py Async runtime with live video + audio playback
example_sync.py Synchronous runtime with threading
livekit_agent/ LiveKit Agent with OpenAI Realtime voice
livekit_webrtc/ WebRTC streaming server

See the bithuman-examples repo for the complete set of runnable examples.

Troubleshooting

macOS: Duplicate FFmpeg library warnings

objc: Class AVFFrameReceiver is implemented in both .../cv2/.dylibs/libavdevice...
and .../av/.dylibs/libavdevice...

This happens when opencv-python (full) is installed alongside av (PyAV) — both bundle FFmpeg dylibs. Fix by switching to the headless variant:

pip install opencv-python-headless

This replaces opencv-python and removes the duplicate dylibs. The bithuman package already depends on opencv-python-headless, so this only occurs when another package has pulled in the full opencv-python.

Model conversion fails with TypeError

If you see TypeError: an integer is required during conversion, upgrade to the latest version:

pip install bithuman --upgrade

This was fixed in v1.6.2. The issue affected models in legacy TAR format during auto-conversion.

Getting a bitHuman Model

To create your own avatar model (.imx file):

  1. Visit bithuman.ai
  2. Register and subscribe
  3. Upload a photo or video to create your avatar
  4. Download your .imx model file

Links

Related documentation

License

Commercial license required. See bithuman.ai for pricing.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

bithuman-1.10.3-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

bithuman-1.10.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp314-cp314-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bithuman-1.10.3-cp314-cp314-macosx_10_15_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

bithuman-1.10.3-cp313-cp313-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.13Windows x86-64

bithuman-1.10.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp313-cp313-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bithuman-1.10.3-cp313-cp313-macosx_10_13_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

bithuman-1.10.3-cp312-cp312-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.12Windows x86-64

bithuman-1.10.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp312-cp312-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bithuman-1.10.3-cp312-cp312-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

bithuman-1.10.3-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

bithuman-1.10.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp311-cp311-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bithuman-1.10.3-cp311-cp311-macosx_10_9_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

bithuman-1.10.3-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

bithuman-1.10.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp310-cp310-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

bithuman-1.10.3-cp310-cp310-macosx_10_9_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

bithuman-1.10.3-cp39-cp39-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.9Windows x86-64

bithuman-1.10.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

bithuman-1.10.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

bithuman-1.10.3-cp39-cp39-macosx_14_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

bithuman-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file bithuman-1.10.3-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bb3c85ded262daa28ed6e8ac0f87c2b4e1bb9c1c670ed89b66b3f417323fcae0
MD5 181ec81367647b3f0c49ad6e9b26c9af
BLAKE2b-256 99b9a4e1b03a53fb8599d6b518f08468d52c17eb598d1e67c7d10577fc97e61e

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4d33fc0b90020a995bc845d882e60fad8a6e8fb08b97b359b7537e8dee5818c
MD5 ee47e298af62de711ae14fe23a5d1abc
BLAKE2b-256 29fcac44be1a5d250665f212b4d8825deb9be9baf07c386ffb1a093430c71d1b

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7f24956959b8cd44542cdbf1b4c9ea0ba24ab20380970a37d19e6609de35a1c0
MD5 6428b8a12f8a14bbaa7477ca2ef94aa8
BLAKE2b-256 d9db99000abbdff411d84a0630c737f11b29e195d78d1dee2cf6fac577d7acb9

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8b582890764204dd87c7884320cf12ce5ef723018255fa8a50f61acb257b3ed0
MD5 b20ca39e4e8a8427841b180f63df9c21
BLAKE2b-256 2800467f8fea066543b2d38dbb055f7cc3de196fa744b721f9b968e4e8aa3063

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 589d8d8b94395beb875aab698aeeb10770c80a70598372315d62d500900cb59e
MD5 2e179ad84bae468ce59cf1b5114d76a3
BLAKE2b-256 7925ba17bd8ec04ba93a4412db5f94e3982db87ca43c9c6c9f191a93552700c3

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 82e82444785aec34cd06344c9c01ebdc1676335b0684169f34a99547baeb863d
MD5 5d0bfe3fcf648c2363a18d36370dcb21
BLAKE2b-256 acaca75a21db1df3894934f255fc6e0906c7f92477670e3975e010414ad0db06

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76042eb051d82816c79d5aaab11b1e68581f9ae5980a78ada27e60e7e0d62868
MD5 d1c1a80cea7392983823736fcab45c28
BLAKE2b-256 f59988db4be4916369fa02b93447ba3ab075bac693d6fe3eb3c003ade9a26c0f

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5079627cfdf08a585873bfc58da0634b4f742b906baed7e282b04c426620508a
MD5 1d6033f13e30ac783fd26f4ee7fd93c8
BLAKE2b-256 dde5410ad35a753eba959e30508ad9801bc5e1761320a7181cd0fc231bd70450

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9bf6c77bee5954b51a11e7b2d696f890c108f5414a50ba72a1e04cd9f9a3f967
MD5 f77339e64c480bf223f2c6419e639e7a
BLAKE2b-256 4d5ddfbaa99559581266c9c5587bcfa096bff156cb39aba8ac97e0d0d5a90cb4

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3c91f2911a6c920e32853951f55f3013df09edc44ec3c417491c69d2496e2af8
MD5 c67d3fd55b3f5aa4be3046d9d8cfabef
BLAKE2b-256 5432612a0a97ae800d6d3a91510205c63eabb5697accf83b9e0a07aa19bbb627

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e9f6ea490abed1ceb04d17326299bf6ad94fe5d42b0e7398d0eb12d37308a49b
MD5 301fa7a1b761258cfe13598990813be5
BLAKE2b-256 ffb6c14f2d998e9cf91e138ba8c7423e81ba4846234dcef215a293f375c48a5b

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5e92fd1c3ccdad1fc9b1524ecbeffa3af35793af9884850e04be734642605257
MD5 34a2950a2cfccdac8fd0db3f3534c3d8
BLAKE2b-256 89728c4a75232be1a3070a2150862a577a3cdc46f0247c6c8f68ed101faa2727

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 243a36cac08cb4281da95517a755f63c29ebcfae4c38ef8c714dd6f5490d0644
MD5 54e658919c6065d3cbac94f98cc8f760
BLAKE2b-256 b91215990cf4331cc53bc803ce8aef68b2ffe95742a32b5f19cc3f93c3195706

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1906d0e7babcbf0b0f93cfedbef13853e4f2b0ee1f6ffb1c2e5b369ab5d7f1c2
MD5 6c7172633362031a5d46ae256621c081
BLAKE2b-256 6ce1c188311c1b3ea85095929c916f747041d9191de57e646ca5fc66437cc229

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 9af82fe97cc145d2a637b5dc5fa1583baece690363cc60e5df346ecc0e66d761
MD5 b173bdc32858eeb9a7699b8711749e2d
BLAKE2b-256 8c02de50067c33becbdc154733cb9b13313380ed8b0a2ba860791c32ac02b03c

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cd5801d8b80b526e47e57d8a89e2af949a3489a354313161dd7f3bb548ea60ee
MD5 a89a2a9a29df6cc51bb7a3bd48d2ef5c
BLAKE2b-256 340246f4a7ca5f3d9b192f17e453c74a1e8deca4e8940f26a95c14842f6628a2

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37376d2bd88ed2fff3842dafa5a2ec9164869773c3c231bd1c351ea79b783099
MD5 2003afac555fb48db9ef187d435fdc74
BLAKE2b-256 c4302fc366f69267cadd364985d96af0292abb9c879acc1eb44b003a06da9700

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b0c26b5cf372ac6eff11cc7b4234b5ff8d882f26f75b8aa419e95078588feab3
MD5 6a70caf9070c11a0d81fb6a484b9468a
BLAKE2b-256 ad9d73efd6e11089458d6e3703e55b863f935725355ac16ecdd2db56787e882c

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 18f4c4b16467e6ae43ffe8b2f3f43570bef36dc99c98147db76d9b1453af0699
MD5 9a8c44aa9d3a4131e238d4b6a1a8be37
BLAKE2b-256 0c3bbb0c35880e7ea0f181bd617659aa1b192feeb63f93c41186438989dfb526

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 637a9e584007e3d0961ce07e64214290092909c82e5867dbc9f3a50d34d11dfd
MD5 7d2dcea9d54afd7565ffed8a8b399d58
BLAKE2b-256 2b90c0099d56044b81aed85fe37abc78ce4b271410595d6f1677dafdda886fba

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 83a64d97342c97c906b86aa31941418b6c741f4f422a90f99ab1b3a648179ab0
MD5 49107e2556d56fb1913c73e2ead68219
BLAKE2b-256 acbe2e8d411813799cef37862c9d6e28575be2170916b580d26ffa4e95dd27ce

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96525115989a315e130972a4842bd8cf33ff647b5e0cda3487dc643cb2ef6fed
MD5 7253a08c87e7e62532bacc9cce181450
BLAKE2b-256 a243684e107f9db7639036d984f397f0abf0ec134519ae8dffc536df9374b790

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 552c6655f2e6505667862f229cbd7497b759cffd5a4041abf9a439d4baa4330b
MD5 b075adc1987648240ac006d75491c2eb
BLAKE2b-256 31ba1ae42deac66fd027690f6f5b20b4f1e596c5147f593f4af586f1e1b726f2

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 34cf05a969fdd75accd0be378ee809740ccdc44e7ad13c2ae22bf44b73b4e6e7
MD5 313929c027507a24f424cdcc3797a3a2
BLAKE2b-256 d64345b287a7ef73a6b491c51327e749c37335ff4f06443327f3ca151880a6f1

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9c61e5555c064c4346a2f42ddec57e2b1b3d6bdf9f1c7964ee296db5a782afc2
MD5 e0b60d0b5e07654f94411a7847e28e27
BLAKE2b-256 70ec3e5d4ad53f239a31d59a6f610a80efa53468b795b2ac97a796d82dd3399d

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bithuman-1.10.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e99e30c83834c1027b5fd40914aefa0deb6df34de21c4ead1e5c1a25f5deb8d6
MD5 4c8ed82d57bbfeca64ac60955b64dcc2
BLAKE2b-256 1d597b91e9596e30037adfd1367ef28f31e788db8f9dec6b9054a7b4fd9c28c6

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be36101f6025338615171aedaaabf975903a98b7ecfee9c666d523b66b612666
MD5 e6615ce5a16dc18f4bd976adf79d1360
BLAKE2b-256 6410881763f4d4d09c7ac9d12d6fe56b94f202c0581e5b0fee5e8de9a195db01

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 46f4a259fac6c71f47e869b4c542031efd0122bb6b6d13ac4c902c4d990dda80
MD5 c33be3fdcaeddddcd93fe07731c8e3b7
BLAKE2b-256 1cfcadeef32c1a3857797286e87d2068e768dd8aa8bc47464e17d12b5e4c6701

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9cba99b9922e12f62646c3df68e6b908ee8bfa041e82e24cc13e473b38ac953f
MD5 e718e95c910281184ca941210492aa30
BLAKE2b-256 1b0d923cf9a21a6d6e57cc77ca2be824d62dd532fa2d9ea78525064b8efe373e

See more details on using hashes here.

File details

Details for the file bithuman-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-1.10.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 759f01ec92efee8265d5595eb2abce47985eb2bf41f1ae1118c933fd6d68393f
MD5 a9a0ef705d4731b864fb9f24f18973ca
BLAKE2b-256 a295b54e217f1a6dcdb3285548fcffd7faae851ee8bc241811998dfdbf2793dd

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