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.4-cp314-cp314-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.14Windows x86-64

bithuman-1.10.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp314-cp314-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bithuman-1.10.4-cp314-cp314-macosx_10_15_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

bithuman-1.10.4-cp313-cp313-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.13Windows x86-64

bithuman-1.10.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

bithuman-1.10.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp313-cp313-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bithuman-1.10.4-cp313-cp313-macosx_10_13_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

bithuman-1.10.4-cp312-cp312-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.12Windows x86-64

bithuman-1.10.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

bithuman-1.10.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp312-cp312-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bithuman-1.10.4-cp312-cp312-macosx_10_13_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

bithuman-1.10.4-cp311-cp311-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.11Windows x86-64

bithuman-1.10.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

bithuman-1.10.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.7 MB view details)

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

bithuman-1.10.4-cp311-cp311-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bithuman-1.10.4-cp311-cp311-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

bithuman-1.10.4-cp310-cp310-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.10Windows x86-64

bithuman-1.10.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

bithuman-1.10.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp310-cp310-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

bithuman-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

bithuman-1.10.4-cp39-cp39-win_amd64.whl (3.4 MB view details)

Uploaded CPython 3.9Windows x86-64

bithuman-1.10.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.5 MB view details)

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

bithuman-1.10.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.4 MB view details)

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

bithuman-1.10.4-cp39-cp39-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

bithuman-1.10.4-cp39-cp39-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 3.3 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.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f378ac10012652f7953fedac484e5199f3b406bead6bda12f65ed571d99cbbfa
MD5 b728c063bccf6b396ad83298410a0407
BLAKE2b-256 a28191f227d38b8643d6f96f72b6c8bce267ce164d611a7a930ea15d9b9a766f

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5bcaa75ddcb9ae0802e32ab72b6a5fbc47d12336177002f053f1a3b489473c11
MD5 acbbe972954501c3fe9efd6aaf0849ca
BLAKE2b-256 679afdc96437f2d3cb0d8cbec61a400f86ae9106abe6aae8725596420495c864

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f1a498a8c29784a9b84f077960e94506d9a07f1fad9e7b9197df3c7bbc726bd5
MD5 a5937fbaf022da5500f1e7236e715f04
BLAKE2b-256 218e374ddb86d18725a6102637d6aba7ab1a914aa1d743fc852ae24e20d08a15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 982f79a0f2bcdea3c09c7f9c20c9a85c75ff2fddf79afd84f4b7a0760f164244
MD5 5a4292af04598fb237f02848d078075e
BLAKE2b-256 c2dbedfed3066c3b87b0455a1d0e65eb843aeaf498db1de12bc5086979ec548e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fe811b80b8c9fd32613cc0bf758bf14694f156189f4b26df72a2af26d909a3a7
MD5 eae49dd4cf4384e051f9cd3991dee451
BLAKE2b-256 95f66ae0c62dccad45ef787a6e387db4e0108678e808a6cfd2cb36dcafd6631f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.4 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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 69d77801ba8d35a5bc524b058effb3e7aab793bb84fdf466dd92a685fa22e105
MD5 f6bfeaaeef03be3460685986ffaf28cb
BLAKE2b-256 8897c06ed528cd1ce196d1c9639d64c7ad844e7132f27b440dd755637d8ee518

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10a182bf35c6e04b57616ea458636999b9be559afd735fd69d1c7d843041e836
MD5 3e2a2b0d9018664e76a688c962488cff
BLAKE2b-256 0e7c2e66d7ea6a9168ed45383f9bb46644f7224f4a22fb393bab45d99ea9537c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7a8948880f83149ab1a2f833b32f664ae9e42854849710455bfd3c75f4f971bd
MD5 cfbf17ac84633c7bb3b9b4650b2e3e63
BLAKE2b-256 f3425e8b8964d4f5e0b345ab1edf3110a5928bfa067b4cc502d2bab1e2892e2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 655b7f4dd784a3c0838146ff160051aa1edc388ff075f70803d02238f96b7c8d
MD5 e034b3c65d1f87ca609010dea4d08b6a
BLAKE2b-256 87e8c5a14f85dd956ff9d28476e53f2b0fe44e075da40a0da5feb9f68eef6403

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 40cf0185d273005d2d66f08a583afeda4960eb07be4a95b9b888eb48388d83c8
MD5 a635d32d410dd10db0dd5aa7b7e0d21d
BLAKE2b-256 e4a3d7cde77ff12787aac81d67d6722177acefa4bdca0e089af7809ffe0a8c78

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.4 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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a2a1877586eba3b65b4a9799512a88fb0434595cfe9514f6b9a772da441e26a1
MD5 d779d1b4a954edf50fe0df5248b9431f
BLAKE2b-256 a3365000d3c51bd4201ed0321ccc65cb049c2248b609ac66cf5ab80ba86ad34e

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47dc2a070518503b97c043943aad20fda1f753ffb681f48f749416ed08c93e0d
MD5 0b5fd816cc162c9812d36e85b22f0501
BLAKE2b-256 ff4037392b55f8ce1aef5a2104028ffb4df48daee3db9a9fb8d3cbd9fc9f8f81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb5072d190d66b50f3f77a547edea29ef14bb1a5976ebd77b9986f60d16ab66d
MD5 eb4321c5602fa2ba9875d854d59ae393
BLAKE2b-256 c59d96dd8328b03625ffda422789aaba2ec1e7bffa09e4e5f8c306d6f99c33f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 50ab0986e957574ee4acb12b977daa0ee7fe8de30b7b304d730a66c7cc1f3c09
MD5 2afdfec7a7484db775ab7f0b3a38b0a4
BLAKE2b-256 903efbee9bc4bbe5902212a056a9dae55e70a7d20b532ae2b1cd514e130241bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e48444ebe1ec0762249d18acd2be9a2e10c7aa7911917bee21b606c37f900151
MD5 4c86d716a2e85d312d48f1511678cc91
BLAKE2b-256 a4e2a31ccd3093b1aaca7f3d42a2e1e3eb81cd82936ab38a1c526d31139efa15

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.4 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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d4b1c033707fc0a7ea9577b495f02f400f25599beac86d27c212a6b0ba62c152
MD5 acd93005e1f7a28633013cbcd7896a3b
BLAKE2b-256 ab035f088db9c62d002f878943e9eb238b94cf7c6a888b90df21f1bd8f728949

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62e6215986e5325cae43584348fc7a0145c31fa7889ec5bf7e2a02ff3bb4ae00
MD5 455e39673dd673bac1d77638cd65feef
BLAKE2b-256 4ec14cf26334f4db454d8f894b0172c4a1b0eb81b8695d5c70b4aa012c697eae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 961661a96799f7b2391845faa833c254d9a2788d215f26c663b15c06ebe66b37
MD5 190bd192c890edd662cd93a124f6970d
BLAKE2b-256 e3f99ac5ca72b0f4e2db2a33a1c33d8adc92080b3fa6055e81d45cf49a27defe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 077394709f73c1141813ade0c30f49fe600d12ed7ca8bdce70f40a354276c6ec
MD5 1ca1124338a00c96293abb6c6aee7b8f
BLAKE2b-256 808ac7624df0bd46f7ba9ea6962386cfebe827dc5a73f87f224a95eb243f6217

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1f7d35d477a612e10f386cd3a3f374b39f18aeecffb184825472538aaca3d6f5
MD5 759fc5f3cab5e6b4e00d0759d511e06b
BLAKE2b-256 004006ac1ba71e3071ce94d2f3dc834d7a30a7b15910477fa894797b025f2c9e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.4 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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e9901d749c79339c03eb9f35c2db0a130354e4144be6d118ba45a26b11d0e0a3
MD5 c01df2b8bfc4c8c73105a03325bb671a
BLAKE2b-256 ef26678a0563a35399084c64acc5b8d4bd058c41bd91f7333f4637c04c25180b

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c3a2912acf14004feacdb3bb997114e61afdd7bac1d4830decb045a816597326
MD5 7b696a7efad6bef4dc751d934f320f20
BLAKE2b-256 53fd4bba9050f6809f18a7c7b826ddead5005aca7f93064b978d1a1932bc6352

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a9dd2f65ec3474fda8881da5cfca8dbc5696aea42464892060337ab74ee1a7ae
MD5 097c5504d9c83d0de017e80408b84aff
BLAKE2b-256 70e62cef6ed521f8e77ffb558f55832058e4d2dd941c32a59f50ccf89968bc9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 898bf2435a230c3615227e89d65192720d37c98575a6d0fdc5f732c43ced2e09
MD5 64e8168c90fe0279941bb9c51fc38a62
BLAKE2b-256 24b1bdd8217fbaf49ae8fdd7b8a14e56e582d984340ad6fe60f10083d37fc0a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4eb0bf35e47bb243c92862bba456daf8da5ea6ddf87c829d68da3dddb9abb5e0
MD5 b3e98e899503ffb84582af5970d8e48d
BLAKE2b-256 479c173e9fa4f7369f2c814014f82521c3f9a86d96c2c4ae0ecf508f75e5169a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.4 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.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6035bfd68ca44979554b81a70b3005e11fc8e9dee819a678733d472250947611
MD5 165c13d44ebadf230be01e535ae162be
BLAKE2b-256 12b4f783d7d4ae5dd7f381cdbb9ba5b10594c93eac14fe4d9a8e0f048c9e957d

See more details on using hashes here.

File details

Details for the file bithuman-1.10.4-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.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d19f93c96013123985177fbabfdce33a5e77902f90ad2011a75d6005349c25e3
MD5 8daa2f4d7d63dcbe09555acf36fbbb83
BLAKE2b-256 a137868d8be52721b3bd103bf9b0fd8f32aa06e2edca7d60daaaeb4d535eb51a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 aefc4d5c1e0816ba25a4f2ba387a80b3b1cd718c59a5e5fe66fea1d7dccf3d33
MD5 be79f14270ba2d3ffbafa905da58333f
BLAKE2b-256 921c49584ce3f42525bc3e761f48dae7ffddeff5367498cf71276d5a03059d11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a67f6fa60f17af52ef92c84e99e93835312eb20f434dcf0bd09425337268645a
MD5 bde99b7305ff428e54bbd9d1dd2821be
BLAKE2b-256 2b1fb131d0510aeb4a7e648f48886178b6448166b1636b931ef2dc51a9434210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e7f379afdc073ee8a55ecd897730f81f41a00ea610b9ddfce063e8a58888848
MD5 484554d9b3f0a8fed3246873e98e0bf4
BLAKE2b-256 c3217e18082c55fbb541ac3f0017a2f6094b1cd8486a3a2951859af217c58915

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