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

Uploaded CPython 3.14Windows x86-64

bithuman-1.10.5-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.5-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.5-cp314-cp314-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

bithuman-1.10.5-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.5-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.5-cp313-cp313-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

bithuman-1.10.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.6 MB view details)

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

bithuman-1.10.5-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.5-cp312-cp312-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

bithuman-1.10.5-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.5-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.5-cp311-cp311-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

bithuman-1.10.5-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.5-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.5-cp310-cp310-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

bithuman-1.10.5-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.5-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.5-cp39-cp39-macosx_14_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

bithuman-1.10.5-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.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 065eb41eb84b6d30dcbf6547596a5e7943628de01edaf1fa4eec32742ad72b28
MD5 7a2495e55d3ad02fa5e100ec1c25f5e1
BLAKE2b-256 20ef3840e89334b5d37f4e5a02e6842fa7822f12fcc0219f2babfeba8a9c83ca

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9849bf4af5c3142fcf42949f47bff10f3b99f9ef98096d1b428001c6ba53db0b
MD5 26c6dc720af6f102fbd75e60bd1f95e6
BLAKE2b-256 f4214de150d409762001b91b43b621a22fe6cf57419d024e0f2488c543e3b495

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f640adc82c326049098a278599d63f612100109586f7f509eb6f4829ff8733c2
MD5 5d312c1bc864cc9794eb424f8fded91d
BLAKE2b-256 7f1ead94ccd38ee0c60efa78d0dd0934127ff6d8ab11264adb34eb35026d6113

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 426a4b04cf3506698e0ffcb628fcb1bf7fc33a895e8fab7d54dddf14a5f1e2c1
MD5 88fd5dbaedb5fa9f979413e2059c0c60
BLAKE2b-256 e2feeb5f705f77587c964a1406adf4edc15e73a28cf9d703c039e013ea0c5fff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7d957f6bbf33f6b13485c17cdaec158e4cf3f80465eba34ea52f0e20675547ba
MD5 151181fc891d73ac9de6f0f92748677e
BLAKE2b-256 e1cc84d0ba92705f7f77dd360c5913a9a9bc251570d09309b8c5a6e53c6c2357

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 073d186fc68f1976c840d7c20502ddf587e7b90f91207119fd6dad98dcffdfdc
MD5 852c60a2273b6de0ea441e98c3feeb35
BLAKE2b-256 434cf2ae03196316d59efaee4cf92fff49ac5e04d70839bf1894d30b409ac0e5

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13c3cfe9ae60ae7f9dd65d533c4c6424da6c40a2a8282459dea15f28f57393bb
MD5 14147603c39e8f905e06701f92e56f1c
BLAKE2b-256 892fa11464bc62ac4e440f440a7d51b24bb3cab0d8d485811c863c0a94b45c47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1d8ea4e017a1feb70566d45fae4c66d210f1a388588d38f1dbadeec739eb1e81
MD5 431d4bfd7db5e15a01c21828150b29d5
BLAKE2b-256 511ec75158916d06b1545bf811772059ca8e6dadc83cd7878d9dfc82afca4993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 05b0869f8ea769cbc7587861960611d1aad21de0e2d377d38bc10277f48c2e75
MD5 6371130ad6dcb54ebcf529f9a30e75d2
BLAKE2b-256 1aa5ced7a364c16f69ce17d7616ee8c4ff8d92d23df3799e509bd942544bf505

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 34ef96443371092931577bdebfdd17b450898256ddd550aa5fad95d7e11f6776
MD5 7d3fbc95297b3ffea33205705ebe3a7f
BLAKE2b-256 280fe889f14a46daef6cb185c46e3c8731738666c139d5183cb4fca952b6fbec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aa3d76cc5829a9beac10f85d0c464cd246530a3b77587caae34f68a6a779fe5e
MD5 c2f91a5aa551b45d7eab7426fff12fda
BLAKE2b-256 9716b0ae7c736be5f12e570850025b3614779621f814d7c438a4c3ba330b7bd7

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0168086a3810d251cff27fcbf03ce229449da1a02807cb883d2e9f75fcb6ee2c
MD5 15234572e03ef85ff512ea4752e60858
BLAKE2b-256 1c506425f454b4b3c05f03c11bcb30ff519a6427cb9b1cc874a2e02636c85877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 71b600f4bf59b2071d075a65d2115a8c28057e5d538d200086a06bdcd1a0b75a
MD5 d2b6717257dae982209e225579ff90a3
BLAKE2b-256 45e585c2fe36a648b2dce3219dd412d7c451a959e3497475721585b49cc93daa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bfe3d506ce103aa6e9183166232f7a98ba041549fa9b7520d575138979da0b55
MD5 3f421821ad1a6bfaf23ba14624968a0d
BLAKE2b-256 c3086d98a0d6a2e57dcc0ed2d161aa245899548f6f3789195908080c76badc2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 27ef9eb26f8cf3e12094ef017564d935cabef44c3ddd172cb9a517065eb945f5
MD5 bc4dd7618d654b6f3881e2b02c8d04a0
BLAKE2b-256 91a58ab19d114d3682f0f875f863ba7a78b691e21fec9ab19c0f6d5d5983d42f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0ff829f49180d4a9accece647bb425ee7b4f09c4b2afa1aa81efae8e9e5aadb6
MD5 f5ac4c51b2a31f3fcc39f8b3a9e58784
BLAKE2b-256 90f121724be6219261ad6e075da86b551c692bf84b70e530ea6f5b97da9b07ed

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d912c609ea30939910ee8cbc5e73d1ce037d3088acac6eb88ff3e480e2ee3fa8
MD5 214c06609c40e7c01da0dac9b9a6ce1c
BLAKE2b-256 1e154e427f787e64745f75706aa53e8d8ffda32fc9bf9dd64b0084a07ee5846c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d400741819ae1e0d29611ef3b313157c1d0580ef134bc1db5e0b79e10be3980c
MD5 e06df48b45cbbd7f07229c3801f8a472
BLAKE2b-256 c664d5961138e3cb70077fc3ea6ee9f29d216b17b8bb8c4af7170f079df5a42e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3d576fd4b3817a17803d31f48ce2ec822727a49ad53d932750c9669d46e839e3
MD5 ad7c0b9d1d1ec6aaea51e588bf61c3b2
BLAKE2b-256 27baf9afd4137136e6c43ae3b5dd2246cac25f04b2f25d605d8c5187cdb17ea2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b8c1f3d7a27fb4a4b4f6f7586f21d61fc859d5c56a9ebbcb9a30d922934e783e
MD5 ba2c3c167e67cb9e2c6b487aabb54d7f
BLAKE2b-256 7c49e67f76b33772b9d0142c27ef53a38ae3787548ff1c33f78edbfecaecd474

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d5029ce91c88323c5dfe5da3122b69007d5cc0026066d4c2734ca9a0bf19fd80
MD5 5bb0614be1f53e3bd05c8b0ee05d086c
BLAKE2b-256 af6a810c902a50f611612cbbb6d3c1daa75669490e1037ff643b2d5f5d31f14d

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd88a685ffed193d0bbf22e0ad50b315fcba9f6872a2677f7208ead3c33b80db
MD5 8fbc72564a400695600f489afcb9eec4
BLAKE2b-256 35fc103775f2caee365fbaefa0f10682c85f1d17d653c5204e1809048e1fc30e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 608f1a224ca8fb801f66e83ab62d9a374be2ab847105b72b3e04444b655df5ab
MD5 6e89c9a8d184fb01be53bafbe861ab1e
BLAKE2b-256 ecb132f6bec94516161fa4713dc220907b8da28be5fdae894df2d2c47c534fa0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 cfa2a3f02ed884fb586ac7fbc23e9d08e3df0d5173a71a2b03ac14f2dae53c1b
MD5 ecfcf7918ab5bfc7ce690686f965c80d
BLAKE2b-256 3ceb57c34ccc4a1fb19119fbdc71bb19e70b61a9bd319902ed6dbddd869576a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4055903bc5e2108d6c7d83ad63f3463494b256af3a1fe958d4d8453dad217d1
MD5 3ab89e6635fefa28503a3cbbda16e2ad
BLAKE2b-256 c5a364fb6fc9cf6b2558674c32358a6575f86cea47dac0ac50d82f0456ecd1dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.10.5-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.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 23af2779da40bc7d10a90015692cfcb60fe833f054b46fc759f664f3ece88934
MD5 35a7a9ce4f2f87cb655fe43fbf06a076
BLAKE2b-256 ca2479b3992c7903877c9174a67f8a2d7ced4b0bdba511c033f4df0127364b5c

See more details on using hashes here.

File details

Details for the file bithuman-1.10.5-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.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2f1272c79653483bc1bd1579847c0dbe98773eaba9e49279c8e2ae370781a286
MD5 521dd4291aeb21913c67b05fabb49845
BLAKE2b-256 e66dfdfb0a3efefdd4d873e4e72f3f39726389ae1003161c0a86d10b0635a3fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 49abcbeb564e6e9fdde1d60a818c5cbf850a1e3446c3cd1bcd27a17e97b24a8e
MD5 7a145db23908f531e0dda6094b191943
BLAKE2b-256 a75808c8b3112f938c7e8a86042df5a0358f51b75a0bd42364a3bca00cb18617

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a720be06bd57810bfc0d3d3b39a093b29fd2ad5242c469801c1f7f3f10ca40fc
MD5 3b92e140ba0d0d782a05821a43d23e31
BLAKE2b-256 5c9d1cadcac6c06d6c15eaae800773f4e18557067eed9cce2522d93fc0ed52cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.10.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c11e7c642fd888c6dde9448fcb10957a0d23495584897baedb7a9924b360ee0
MD5 86256ad441fbb4d501371c86bd2866b0
BLAKE2b-256 91c0402cf037c98abaf61870fc1c63767a63c4f7cf5c8a0e730dd2fde70ec22d

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