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 just 1-2 CPU cores and <200ms latency. Raw generation speed is 100+ FPS on CPU alone, 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 (C++ + Cython) Linux / macOS / Windows, x86_64 + ARM64. Default — what every existing caller uses.
Expression Out-of-process Swift daemon macOS + Apple Silicon (M3+) only. Bundled pre-built in the macOS arm64 wheel; dispatches automatically when an .imx manifest stamps model_type: "expression".

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():
    runtime = await AsyncBithuman.create(
        model_path="avatar.imx",
        api_secret="YOUR_API_KEY",
    )
    await runtime.start()

    # 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()

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, 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

# Same API, either model type — dispatch happens inside create().
runtime = await AsyncBithuman.create(
    model_path="expression.imx",
    api_secret=os.environ["BITHUMAN_API_SECRET"],
)
await runtime.push_audio(pcm_bytes, sample_rate=24_000)
async for frame in runtime.run():
    display(frame.bgr_image)     # BGR uint8, 512×512 for Expression

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.

Build your own Expression .imx with the packing CLI:

bithuman pack \
    --dit          path/to/dmd2_run9.safetensors \
    --wav2vec      path/to/wav2vec2.safetensors \
    --vae-encoder  path/to/vae_encoder.safetensors \
    --ane-decoder  path/to/turbo_vaed_ane_384.mlpackage \
    --ref-latent   path/to/default_ref_latent.npy \
    -o expression.imx

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 examples/livekit_agent/ for a complete working 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 1000x faster
Runtime speed ~30 FPS 100+ FPS 3-10x faster
Peak memory ~10 GB ~200 MB 98% less

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

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

Uploaded CPython 3.14Windows x86-64

bithuman-1.8.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

bithuman-1.8.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.9 MB view details)

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

bithuman-1.8.5-cp314-cp314-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bithuman-1.8.5-cp314-cp314-macosx_10_15_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

bithuman-1.8.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

bithuman-1.8.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.9 MB view details)

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

bithuman-1.8.5-cp313-cp313-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bithuman-1.8.5-cp313-cp313-macosx_10_13_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

bithuman-1.8.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.1 MB view details)

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

bithuman-1.8.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.9 MB view details)

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

bithuman-1.8.5-cp312-cp312-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

bithuman-1.8.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.3 MB view details)

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

bithuman-1.8.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.2 MB view details)

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

bithuman-1.8.5-cp311-cp311-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

bithuman-1.8.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

bithuman-1.8.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (7.0 MB view details)

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

bithuman-1.8.5-cp310-cp310-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

bithuman-1.8.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (7.0 MB view details)

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

bithuman-1.8.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (6.9 MB view details)

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

bithuman-1.8.5-cp39-cp39-macosx_14_0_arm64.whl (7.7 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

bithuman-1.8.5-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.8.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: bithuman-1.8.5-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.8 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.8.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c5561bbfc5d77e9030b5b72bc68fe3c5b845e421374cede0504d9853fa9b877a
MD5 d213f982d198bf78fba6cec04305705c
BLAKE2b-256 a38760dfa4d5c30a811b2d055cc02ddc8fe41b420ed34742412a89d15a344872

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad230539570e3d9e3adc8034fb3711669e9b44d97cb71511fd0a11ea6ec752b8
MD5 cb484b524fed2d666fc8b7911a3eacf9
BLAKE2b-256 82d8fa7aa0f0f8592cd960fa71ddd2dfecd1ead0ad02aea313a003f20cec3af3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 92df97262e3f376f8892f6fc44be790d126e447f33d886c923bdb8f7c764a328
MD5 d2e23748fac1b92bcef7ef9f46ac3d04
BLAKE2b-256 990b5e69705045ef6c8d3a38111425461a8e91797f4372c5c6443e13b7341a8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 dd81c1d8e173e7b3fe8be9c78a6054ac8fe09a39289892d834c52dbbd84ab0d5
MD5 85c42c8f3fe41fd6ec34c6be4c6aac7b
BLAKE2b-256 62ab70e51af899264c115d7e1f00d6867be3489724a983e2894594c42f37c114

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9bf4a2ea1e3863819070040dedd9b88ec4ba83eb9f8d4b74fb1767acadc2fe4f
MD5 33ebae12a53238f2aff42b242c21a332
BLAKE2b-256 948d66c2533d79c3e212d52edb306d7aa535b786419c5b70d32a556dac64b616

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.8.5-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.8.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a64d12c9c655f7917ccab1a88be2584db0eb7e390a03ea143aff09ecebb17b8a
MD5 f7a260c6fafe9e0cf9d284ae999abc72
BLAKE2b-256 d5e43c7785dcd4f45d71378ea645162c05914c30a2cd46d306f8f036485ff29a

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ca46f69e537074ef53472059a21eb91d36be702b5575e02ac12ea726e5fda329
MD5 9b21d6461a25f5a32a23e887cd66f7a9
BLAKE2b-256 794a3f0d0cfe1a80d86275067e0d08b74eed6f42ad5f457a3e6385d5f4830421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 abb6ddfa514e425914a881f3288981d1467e5c51c20a403114e8733ad94d224b
MD5 771dc786e2a775995b6ffa07e50b1f85
BLAKE2b-256 a2dbe316c9514e9ae034a36f0383fc1788e4c75a183fcb91bbfd3c9a49ccbec2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 c5bfb92142b95540fce435334a143b9096c335b40b91351256a438e7ac40cab1
MD5 96f541ead2c794ce1d18d934c21bb7ac
BLAKE2b-256 b57225a44c0ae4446bbf1a0dc61c5ef3f197097a7bf69440b1836d74c17f8303

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 3ab19739c8e6fd1a3080f5cbe632164da12eb2426f96d3356504193b3e39631b
MD5 84cacaf92ae5c1f670812c8e137f7c2e
BLAKE2b-256 5d74830ef5f9fb2bc8b2a267a55969944637f4b8d5f953359aba587fd58b96f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.8.5-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.8.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 76296bb0e2511014d5164accf15bfe7da639f4ba3fa12efeaa2eac30686904e9
MD5 067f67bb3d4d1b89637a1fa655f0769f
BLAKE2b-256 3ba8a6ffdcf74ed48da709a430bef118c00a199f2ae1b35656c5be6ce460b83c

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 018e51327234ad59108374eb9750cb33d583e5a48c498b095c20f5bbff24ae01
MD5 de5e3141e6dd33b7b3b3e9397a9341e9
BLAKE2b-256 a3b8cd851946898c3bc7c035f2188f8b0f6a877f21b06fab1a9f921272a73055

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 03ace244a17dbe48c9be96f4a48c9bb23e398abce10dc6f0f8467ef528c544d7
MD5 771ef4fe248849947a7c7742fe8aae46
BLAKE2b-256 294223a203c9d255f1a71d367856e54a3a0d8d0b93b74e475f2b92dc9a075a00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1f713b7b3b11a68d2466ccdac21ee8c73dc4a14499e7125636a1d13270a211d6
MD5 041324333b56c2ec69a69b7f7b651923
BLAKE2b-256 705b93653a838673d33744a541b89e24290753f29ffa96830caca4e63581a77f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 11717cbaa36fd05d847cb268b39f7e72cb02d83c946900bc7a9ccb58128c97cd
MD5 8ade21e5bfea2e9f57ed50aad6edb8a2
BLAKE2b-256 ca4997ce575b52ccefcddd9190fa8a16f4a5b791ba3d93e50eb15773eeac4609

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.8.5-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.8.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3fd1522623f64f32ab77472381a4222b1810d35d0b75b3ce674ea5f8b67fbfdd
MD5 ee381980a92d010714a1be198f00e440
BLAKE2b-256 ccd43b2be98fae1ec1e7631b65c938a0516bc4aba182dcee222d60694f5b68cb

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 741be1aae713c47f2a5773be8742abe9eb3bec06dc3ff5f66d79845513bc24e1
MD5 6f71f0f047b91b75713e3dc1284f56cc
BLAKE2b-256 8ee79728b63fda33fbe07c572b4309d066b9a531e434cebe313fab39f01c1f4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8f01ab5d7c1136ea4ae76ab0771b8363eb40cf82870122b76f3dd0fb02ef363f
MD5 f011b098d4e921b747f9f54d40bd1e63
BLAKE2b-256 315024e300a450d277ab516a34410a1b5bc71df37d50e8beef5ac3de02b69eaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 06a7986ea0cae5e88128bb3882a7597ea899357144828b7e152b060311ef3582
MD5 77aab3434c46bc2dffc225fc80b43cad
BLAKE2b-256 bfe668dbde75b76894bfa8538d5eeb5632bd2b277b7506813cec282dff8d2b14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d3c8c139c457493d5e769e4b8cbeeb62c6c0f86e17b852f4daaac0a5f5ef7330
MD5 4a279403c2157a8994b08408737e73ca
BLAKE2b-256 52e9a19b11d42b41bb67ec4a24abc17680ef31c699299984f1f326eb54785748

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.8.5-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.8.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1647e3dc0902c7fbefa7d381db486eedba8b0f9f09eac7a7917b969a25a95103
MD5 1e1c74d0ca0ffe3a7d80b93b65906e45
BLAKE2b-256 09a59d589d2793b60eb29847e96d4071819da583df269dcfcc4b680d7782b073

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebcbed8c43cc6a42149c34c0c0dd38a4fd574926bfb321ec9a97807c3fce606b
MD5 8f1c0e1a9a622592943993e7769e1b47
BLAKE2b-256 7c329d705e1ca52d7cc90b14283a7a10cf51bcea3f54dffeb2e24af89bffdebe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2f6fe9e0e0b7d343457c958daf5dd2815270e81d47993d529ebfbc75d56b0910
MD5 a4af5296dceebc8e0d07dfc3217df04f
BLAKE2b-256 2211c67c395b712519a84049c0f4409b9e3b7205fd5673180c0fb4eec3a51bc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6ccd2e9caea2d873f53c3f70fcbf681ccc5279a1d6369ca293d7824cf37462dc
MD5 3b2cf2a712c037af7f428218fb82f6f3
BLAKE2b-256 3b5346ce50be7f01a006f1be9489e343b89cfd8a6a15a11793e7831553952c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dee1105dd52529a7c3493d56e665cbf0daf27f815ead83bfab11c905335564c8
MD5 27998e7508aa928a7ecb15a0875e081c
BLAKE2b-256 2b27b84297c0324fce184f562dba5d16304d5eeb66397bf16249d03011ceaac7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bithuman-1.8.5-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.8.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cbd8c69b50f8aac4e4d36e8e8d9b264485b59b4e33971d76404a265e315bc36d
MD5 9d0e8ccdefb76e243d56514bfd692292
BLAKE2b-256 eaf963e0887bea89ee945b56742d11e586478adcca0de17aa56676e60c354111

See more details on using hashes here.

File details

Details for the file bithuman-1.8.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.8.5-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df6432721a3c2f21525f77b67465ffbf44208219e685e513c602a95ef58aea15
MD5 8c77e3860d17f3eac42121ba88a47359
BLAKE2b-256 2e128ebc9cece944792989631cc4da6a695e8d1a9cc434bdcc5e3a23ad2f1235

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e3d37e53fc7e2f17b22b9858dcc5aeea8364c72b7494969a6959b765cc3596a3
MD5 83b664620ded32bdf4e47c02db256352
BLAKE2b-256 683b61ae66d22bb6c8d35c13816c25b25d412dfe9b17c3e3e84398ef0a98d5e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ef868fe99f7c846c7de66353298ef10407ebb831729acccd313851d2d25d963c
MD5 b43a76a33589d0b8d7c25edc9109bd0a
BLAKE2b-256 f406eff8c3f32ec472b02bea54afd38b29a641ac42074cdecf4478bc8b118895

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-1.8.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1b987d62127c0152f387d918cb870163a14d6d42e44532c5041b8cbe1b19409a
MD5 d81c4668a28f28d163909a7fdebb9e60
BLAKE2b-256 f68601b6182e9d1fc92d49ebd3fa4056b78a4fa7c02ffeb6022e5c954b5e4f3e

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