Skip to main content

OmniVAD — Cross-platform Voice Activity Detection and Audio Event Detection (based on FireRedVAD)

Project description

OmniVAD

PyPI npm License

English | 中文

Cross-platform toolkit for FireRedVAD — SOTA voice activity detection and audio event detection.

Three models, one toolkit, runs everywhere:

Model What it does Output
VAD Speech detection (non-stream) Speech timestamps
Stream-VAD Real-time speech detection (frame-by-frame) Per-frame speech probability
AED Audio event detection (non-stream) Speech / Singing / Music timestamps

All models are based on DFSMN architecture, ~2.2MB each (~588K params), support 100+ languages.

Packages

Python (omnivad/)

PyPI package with native C bindings (ncnn). Models bundled in wheel.

pip install omnivad

CLI:

omnivad audio.wav                        # VAD + AED → audio.TextGrid
omnivad audio.wav -o out.json            # Output as JSON
omnivad audio.wav -o out.srt             # Output as SRT
omnivad audio.wav -o out.vtt             # Output as WebVTT
omnivad audio.wav -f srt                 # Format flag (textgrid/json/srt/vtt)
omnivad audio.wav -m vad                 # VAD only
omnivad audio.wav -m aed                 # AED only (speech/singing/music)
omnivad long.wav --chunk 600 --overlap 2 # Chunked processing for large audio
python -m omnivad audio.wav              # Also works

Python API:

from omnivad import OmniVAD, OmniStreamVAD, OmniAED
import numpy as np

vad = OmniVAD()

# File path — auto-loads as float32 [-1,1]
result = vad.detect("audio.wav")
# {'duration': 2.24, 'timestamps': [(0.26, 1.82)]}

# Float32 array [-1.0, 1.0] — from soundfile, torchaudio, librosa
result = vad.detect(float32_array)

# Int16 array — from raw WAV, microphone PCM
result = vad.detect(np.array([...], dtype=np.int16))

# Large audio — chunked processing with overlap
# overlap_seconds must be smaller than chunk_seconds
result = vad.detect("long.wav", chunk_seconds=600, overlap_seconds=2)

# Stream VAD — real-time, feed 160 int16 samples (10ms) at a time
svad = OmniStreamVAD()
frame = None
while frame is None:
    frame = svad.process(pcm_160_int16)
# StreamResult(time=0.420s, confidence=0.95, is_speech=True)

# FastClone — share model weights, minimal memory per stream
clone = svad.clone()  # instant, ~0 memory overhead
clone.process(pcm_160_int16)  # fully independent state

# AED — speech + singing + music
aed = OmniAED()
events = aed.detect("audio.wav")
# {'duration': 22.0, 'events': {'speech': [...], 'singing': [...], 'music': [...]}}

Platforms: macOS (arm64/x86_64), Linux (x86_64/aarch64), Windows (x86_64)

C/C++ Native Library (native/)

Unified C API with ncnn backend. Single header, single library.

#include "omnivad.h"

int err = OMNI_OK;

// VAD — whole audio to speech segments
OmniVadHandle vad = omni_vad_create("vad.omnivad", &err);
omni_vad_detect_int16(vad, pcm, num_samples, &config, &segments, &count);
// segments[0] = { start: 0.44, end: 1.82 }

// Stream VAD — real-time, 10ms per frame
OmniStreamVadHandle svad = omni_stream_vad_create("stream-vad.omnivad", 0.5f, &err);
omni_stream_vad_process(svad, pcm_160_samples, 160, &result);
// result.confidence = 0.95, result.is_speech = true

// FastClone — share model weights across streams
OmniStreamVadHandle clone = omni_stream_vad_clone(svad, &err);
omni_stream_vad_process(clone, other_pcm, 160, &result);  // independent state

// AED — speech + singing + music detection
OmniAedHandle aed = omni_aed_create("aed.omnivad", &err);
omni_aed_detect_int16(aed, pcm, num_samples, &config, &segments, &count);
// segments[0] = { start: 0.09, end: 12.32, cls: OMNI_AED_MUSIC }

Build:

# Prerequisites: cmake, ncnn (brew install ncnn)
cd native
cmake -B build && cmake --build build -j$(nproc)

# Test
./build/test_all ../models/ audio.wav

Platforms: macOS (arm64/x86_64), Linux (x86_64/aarch64), Windows (x86_64), Android (armeabi-v7a/arm64-v8a)

TypeScript/JavaScript (packages/omnivad/)

Works in both browser and Node.js via ncnn WebAssembly. Zero dependencies, models bundled.

import { OmniVAD, OmniStreamVAD, OmniAED } from 'omnivad';

// Non-stream VAD — models loaded automatically from bundled WASM
const vad = await OmniVAD.create();
const result = vad.detect(audioFloat32Array);  // Float32Array [-1.0, 1.0]
// { duration: 2.32, timestamps: [[0.44, 1.82]] }

// Also accepts Int16Array (raw PCM)
const result2 = vad.detect(pcmInt16Array);

// Stream VAD — frame-by-frame or full-audio batch mode
const svad = await OmniStreamVAD.create();
const frame = svad.processFrame(pcm160);  // null until enough audio is buffered
const full = svad.detectFull(audioFloat32Array);
// { probabilities: Float32Array(...), numFrames: 98, duration: 1.0 }

// AED — speech + singing + music
const aed = await OmniAED.create();
const events = aed.detect(audioFloat32Array);
// { duration: 22.0, events: { speech: [...], singing: [...], music: [...] }, ratios: { ... } }

Build:

cd packages/omnivad
pnpm install && pnpm build
# Output: dist/index.js + dist/index.cjs + dist/index.d.ts + dist/wasm/*

Thread Safety

Component Shared handle Independent handles Notes
OmniVAD Safe Safe ncnn::Net is read-only; each call creates a local Fbank and Extractor
OmniAED Safe Safe Same architecture as VAD
OmniStreamVAD Unsafe Safe Mutable internal state (audio_buffer, cache, frame_offset)

Guidelines:

  • OmniVAD and OmniAED instances can be safely shared across threads for concurrent inference. The Python workers parameter in detect(..., workers=N) already uses this pattern.
  • OmniStreamVAD instances must not be shared across threads. Create one instance per thread for parallel streaming.
  • Handle creation (omni_*_create) should be done sequentially — ncnn's model loading is not designed for highly concurrent initialization.
  • Never call close() / destroy() on a handle while another thread is using it.

Running thread-safety tests:

# Python
pytest tests/test_thread_safety.py -v

# C++ (requires ncnn)
./native/build/test_thread_safety models/ tests/data/hello_en.wav [threads] [repeats]

Audio Input

High-level APIs accept 16kHz mono audio only.

  • OmniVAD / OmniAED in Python and TypeScript accept normalized float32/Float32Array in [-1, 1] and int16 / Int16Array.
  • OmniStreamVAD.process() in Python accepts int16 chunks and also converts normalized float32 chunks internally.
  • OmniStreamVAD.processFrame() in TypeScript expects Int16Array chunks.
  • OmniStreamVAD.detect_full() / detectFull() accept full-audio buffers and handle normalization internally.
  • The C API is slightly lower-level than the Python/TypeScript wrappers. For exact input contracts, use native/include/omnivad.h as the source of truth.

Audio Pipeline

16kHz PCM → Fbank (80-dim, 25ms window, 10ms shift) → CMVN → DFSMN → Sigmoid → Post-processing → Segments
                     Povey window                        μ/σ    ~2.2MB   [0,1]    4-state machine
                     pre-emphasis 0.97                                            merge/split/extend

Streaming VAD — OmniStreamVAD

For long audio (live streams, hours-long recordings, real-time captioning), OmniStreamVAD processes audio frame-by-frame and emits segment-boundary events on the same call that confirms the boundary — bit-identical to upstream FireRedVAD's FireRedStreamVad.

Each successful process() call returns a result with both per-frame probabilities AND segment-boundary flags:

Field Meaning
confidence raw model probability [0, 1]
smoothed_prob causal moving-average over smooth_window_size frames
is_speech smoothed_prob >= threshold
is_speech_start True on the frame that confirms a new SPEECH segment
is_speech_end True on the frame that confirms a SPEECH segment end
frame_idx 1-based frame index (multiply by 0.01 for seconds)
speech_start_frame 1-based segment start (when is_speech_start)
speech_end_frame 1-based segment end (when is_speech_end)

Configuration (defaults match upstream FireRedVAD)

Parameter Default Meaning
threshold 0.5 Speech activation threshold
smooth_window_size 5 Causal moving-average window (frames)
pad_start_frame 5 Extend confirmed segment START backward by N frames
min_speech_frame 8 Min continuous speech frames to confirm START (~80ms)
max_speech_frame 2000 Force-split when SPEECH-state count hits this (~20s)
min_silence_frame 20 Min continuous silence frames to confirm END (~200ms)

Python

from omnivad import OmniStreamVAD
import numpy as np

vad = OmniStreamVAD()                              # upstream defaults
pcm = np.fromfile("speech.pcm", dtype=np.int16)

for i in range(0, len(pcm), 160):                  # 10ms chunks
    result = vad.process(pcm[i : i + 160])
    if result is None:
        continue
    if result.is_speech_start:
        print(f"START @ {result.speech_start_frame * 0.01:.2f}s")
    if result.is_speech_end:
        print(f"END   @ {result.speech_end_frame * 0.01:.2f}s")

# Or get [(start_sec, end_sec), ...] in one call:
segments = OmniStreamVAD().detect_segments("speech.wav")

TypeScript

import { OmniStreamVAD } from "omnivad";

const vad = await OmniStreamVAD.create();
for (let i = 0; i + 160 <= pcm.length; i += 160) {
    const result = vad.processFrame(pcm.subarray(i, i + 160));
    if (!result) continue;
    if (result.isSpeechStart) {
        console.log(`START @ ${(result.speechStartFrame * 0.01).toFixed(2)}s`);
    }
    if (result.isSpeechEnd) {
        console.log(`END   @ ${(result.speechEndFrame * 0.01).toFixed(2)}s`);
    }
}

Pairing with merge_chunks

OmniStreamVAD emits raw VAD segments. To pack them into Whisper-sized 30s chunks for downstream ASR, feed the emitted [start, end] pairs to merge_chunks (see next section).

Chunking — merge_chunks / mergeChunks

After VAD produces a list of speech (start, end) segments, the chunking utility groups them into duration-bounded chunks suitable for downstream ASR / forced alignment / TTS. It is a pure function with no model dependency — Python uses ctypes, TypeScript uses Emscripten WASM, and C calls the native function directly. All three bindings share a single C implementation in native/src/chunking.cpp.

from omnivad import merge_chunks
chunks = merge_chunks(timestamps, max_chunk_secs=30.0, mode="greedy")
import { mergeChunks } from "omnivad";
const chunks = await mergeChunks(timestamps, { maxChunkSecs: 30.0, mode: "longest_gap" });

Pipeline (5 steps; Steps 1–2 and 4–5 are shared by both modes)

input (sorted segments)
  │
  ├─ Step 1: drop segments with duration < min_speech_secs
  │
  ├─ Step 2: pre-merge consecutive segments with gap < min_silence_secs
  │          (cascades; takes max(end) on overlap)
  │
  ├─ Step 3: pack into chunks  ─┬─ mode = "greedy"
  │                              │     sequential append; split when next
  │                              │     would exceed max_chunk_secs OR gap > max_gap_secs
  │                              │
  │                              └─ mode = "longest_gap"
  │                                    recursive split at the longest gap
  │                                    until every chunk's span ≤ max_chunk_secs
  │
  ├─ Step 4: equal hard-split any chunk still longer than max_chunk_secs
  │          (only triggers when a single segment alone exceeds max_chunk_secs)
  │
  └─ Step 5: apply pad_onset_secs (clamped to ≥ 0) and pad_offset_secs
             output chunks: (start, end, seg_start_idx, seg_count)

Mode comparison

Property greedy (default) longest_gap
Strategy Sequential append until next overflow Recursive split at longest internal gap until each chunk fits max_chunk_secs
Honors max_chunk_secs Yes — hard upper bound Yes — recursion stops when chunk span ≤ max_chunk_secs
Boundary location First overflow point Longest pause inside the over-long span
Honors max_gap_secs Yes — split at first gap > max_gap_secs Yes — recursion also stops only when no internal gap exceeds max_gap_secs
Single seg > max_chunk_secs Step 4 equal hard-split Same — Step 4 fallback
Determinism Deterministic Deterministic; leftmost wins on tie
Recommended for Whisper / whisperX-style ASR (fixed-length input, padded to 30s) Variable-length-input models — forced alignment, TTS, encoder-style ASR. Splits at natural pauses; no fixed-length padding required.

Example with the same input, both modes (max_chunk_secs=20):

Input (max_chunk_secs = 20):
  seg 0 = (0, 5)
  seg 1 = (8, 10)     gap from seg 0 = 3
  seg 2 = (20, 25)    gap from seg 1 = 10   ← longer

greedy
  start cur = (0, 5)
  accept seg 1            → cur = (0, 10)   [length 10 ≤ 20 ✓]
  next seg 2 would_exceed:  25 - 0 = 25 > 20  → SPLIT
  chunks: [(0, 10, 0, 2), (20, 25, 2, 1)]

longest_gap
  span = 25 > 20            → must split
  longest gap = 10 at idx 1 → cut between seg 1 and seg 2
    left  = [seg 0, seg 1]  span = 10 ≤ 20 ✓ → keep
    right = [seg 2]         span = 5  ≤ 20 ✓ → keep
  chunks: [(0, 10, 0, 2), (20, 25, 2, 1)]

(In this minimal example both modes happen to agree. They diverge whenever the longest gap is not the first overflow point.)

seg_start_idx / seg_count semantics

These index into the post-Step-1+Step-2 view of the input — segments dropped by min_speech_secs and pre-merged by min_silence_secs are NOT in the indexing space. Both modes follow this convention.

Defaults

omni_chunk_config_default() (C / default_chunk_config() Python / DEFAULT_CHUNK_CONFIG TS) returns:

field default source
max_chunk_secs 30.0 seconds; matches Whisper's 30s input window
max_gap_secs INFINITY disabled
pad_onset_secs / pad_offset_secs 0.04 / 0.04
min_speech_secs 0.0 pairs with VAD min_speech_frames
min_silence_secs 0.20 matches VAD min_silence_frames=20 @ 10ms shift
mode OMNI_CHUNK_GREEDY backward-compatible

Heads-up — Python convenience defaults differ. The Python kwargs of merge_chunks(...) use zeros for pad_onset_secs, pad_offset_secs, min_silence_secs (so the simplest call gives raw output). To match the canonical defaults, use the values returned by default_chunk_config(). See tests/test_chunking.py::test_python_convenience_defaults_differ_from_canonical.

Whisper / WhisperX-style ASR pipeline

OmniVAD (whole-audio, batch) + merge_chunks(mode="greedy") is the 1:1 equivalent of WhisperX's Binarize(max_duration=chunk_size) + greedy packing. Use this recipe when feeding chunks into Whisper-family ASR models that expect a fixed 30s input window:

from omnivad import OmniVAD, merge_chunks

vad = OmniVAD()                              # threshold=0.4 default — safer for Whisper
result = vad.detect("long-audio.wav")        # whole-audio batch VAD

chunks = merge_chunks(
    timestamps=result["timestamps"],
    max_chunk_secs=30.0,                     # Whisper's input window
    mode="greedy",                           # WhisperX behavior
    pad_onset_secs=0.04,
    pad_offset_secs=0.04,
    min_silence_secs=0.20,                   # matches VAD min_silence_frames=20
)
# Each chunk: { start, end, seg_start_idx, seg_count }
# Slice the audio at [start, end] and feed each slice to Whisper.

Notes:

  • Keep the default threshold=0.4. Whisper tolerates extra padding silence but is sensitive to clipped word edges (raising to 0.5 risks dropping weak word-initial/final consonants and triggering hallucinations).
  • Do not use mode="longest_gap" here — that mode targets variable-length-input models (forced alignment, TTS), not WhisperX.
  • For very long audio (>1 hour), pass chunk_seconds=600, overlap_seconds=2 to vad.detect(...) to limit peak memory.

Model Files

Prebuilt .omnivad bundles used by the Python package, TypeScript package, and local examples are already included in this repo under models/.

You only need to download upstream FireRedVAD checkpoints if you want to re-export ONNX or regenerate the native assets yourself.

# Download upstream PyTorch models + export to ONNX
pip install fireredvad
python -m fireredvad.bin.export_onnx --all

# Or download pre-exported ONNX models directly
# fireredvad_vad.onnx              — Non-stream VAD (2.3MB)
# fireredvad_aed.onnx              — Non-stream AED (2.3MB)
# fireredvad_stream_vad_with_cache.onnx — Stream VAD (2.2MB)

# For C/ncnn: convert ONNX → ncnn with pnnx
pip install pnnx
pnnx fireredvad_vad.onnx "inputshape=[1,100,80]"

Local Development

This section covers building OmniVAD from source and consuming the in-tree build from another project on the same machine — the loop you want when hacking on the C/C++ core, the Python wrapper, or the TS bindings.

Prerequisites

Target Required Notes
Python wheel Python 3.10+, CMake 3.15+, a C++14 toolchain pip install -e . runs scikit-build-core, which fetches ncnn automatically via CMake FetchContent.
Standalone C/C++ library CMake 3.15+, a pre-installed ncnn (brew install ncnn or build from source) native/CMakeLists.txt does not fetch ncnn — set -DNCNN_ROOT=... if it isn't on the default search path.
TypeScript bundle Node 18+, pnpm Builds dist/index.{js,cjs,d.ts} only — does not rebuild the WASM.
WASM module emsdk (any recent version) Required only when you change C/C++ code and need a fresh dist/wasm/omnivad.wasm.

Build the Python package (editable install)

pip install -e ".[dev]"

What this produces:

  • omnivad/libomnivad.{dylib,so,dll} — the shared library actually loaded at runtime by omnivad/_binding.py.
  • omnivad/models/*.omnivad — bundled model files (copied by CMake install(...)).
  • An editable entry in your environment's site-packages pointing back at the source tree.

When you change C/C++ code in native/, re-run pip install -e . to relink the dylib. (CMake's incremental build means this is fast.) Pure Python edits don't need a reinstall.

Build the TypeScript package

cd packages/omnivad
pnpm install
pnpm build          # tsup → dist/index.{js,cjs,d.ts}
pnpm typecheck      # tsc --noEmit

This step does not rebuild the WASM — it consumes whatever's already in dist/wasm/. If you only edited TS, you're done.

Build the WASM module (when you change C/C++)

EMSDK=/path/to/emsdk packages/omnivad/wasm/build.sh

The script writes omnivad.{js,cjs,wasm} directly into packages/omnivad/dist/wasm/. After this, re-run pnpm build only if you also changed TS.

The EMSDK env var must point at your emsdk root (the directory that contains emsdk_env.sh and upstream/emscripten/). The script aborts with a clear error if it's missing.

Consume the in-tree build from another repo

Python — pip install -e <path>

# In the target project's venv:
pip install -e /abs/path/to/OmniVAD-Kit          # editable, picks up your edits
# or, isolated wheel:
pip install /abs/path/to/OmniVAD-Kit             # builds and installs a fresh wheel

pip install -e is what you want for the dev loop — re-running it after a C/C++ edit relinks the dylib in place; pure Python edits are picked up without reinstalling.

TypeScript — three options, pick by use case

Option Command When to use
A. Tarball (closest to npm) cd packages/omnivad && pnpm pack
then in target: pnpm add /abs/path/omnivad-0.2.8.tgz
Verifying what real consumers will install. Clean, no symlink quirks.
B. file: protocol In target package.json: "omnivad": "file:../OmniVAD-Kit/packages/omnivad" In-tree monorepo-style consumption. Re-run pnpm install to pick up rebuilds.
C. Global link cd packages/omnivad && pnpm link --global
then in target: pnpm link --global omnivad
Fast iteration across many projects. Watch for peer/hoist quirks.

For all three, rebuild before testing:

cd packages/omnivad
pnpm build                                       # if only TS changed
EMSDK=/path/to/emsdk wasm/build.sh && pnpm build # if C/C++ changed

Full rebuild after a C/C++ change (cheat sheet)

# From the repo root:
pip install -e .                                       # Python dylib
EMSDK=/path/to/emsdk packages/omnivad/wasm/build.sh    # WASM (.wasm + glue)
( cd packages/omnivad && pnpm build )                  # TS bundle

Standalone C/C++ build (for native tests / embedding)

cd native
cmake -B build -DNCNN_ROOT=/path/to/ncnn   # only if ncnn isn't auto-discovered
cmake --build build -j$(nproc 2>/dev/null || sysctl -n hw.ncpu)
./build/test_all ../models ../tests/data/hello_en.wav

This is independent from the Python wheel build — the wheel uses CMake FetchContent to pull a pinned ncnn, while native/ expects a pre-installed one.

Lint / format

ruff check --fix . && ruff format .                    # Python (line-length 120)
( cd packages/omnivad && pnpm typecheck )              # TypeScript

Testing

# Run the full Python test suite
pip install -e ".[dev]"
pytest tests -v

# Utility scripts (not pytest — require external FireRedVAD models)
python tests/generate_reference.py            # Generate Python reference data
python tests/check_timestamp_accuracy.py      # Strict C vs Python comparison
python tests/vad_to_textgrid.py audio.wav     # Audio → TextGrid + RTF benchmark

Accuracy (C/ncnn vs Python, 5 audio files × 3 models):

Model Timestamp Δ Probability Δ Status
VAD ≤ 0.020s ≤ 0.001 Exact match
AED (singing/music) ≤ 0.010s ≤ 0.013 Exact match
AED (speech) ≤ 0.030s ≤ 0.015 Match (ncnn fp16 edge cases on event.wav)
Stream-VAD (detect_full) ≤ 0.010s ≤ 0.001 Exact match

Project Structure

omnivad/
├── omnivad/                         # Python PyPI package
│   ├── __init__.py                  #   Public API: OmniVAD, OmniStreamVAD, OmniAED
│   ├── cli.py                       #   CLI entry point (omnivad command)
│   ├── _binding.py                  #   ctypes bindings to libomnivad
│   ├── vad.py                       #   OmniVAD (non-stream)
│   ├── stream_vad.py                #   OmniStreamVAD (real-time)
│   └── aed.py                       #   OmniAED (3-class)
├── native/                          # C/C++ library (ncnn backend)
│   ├── include/omnivad.h            #   Unified C API header
│   ├── src/omnivad.cpp              #   Core implementation
│   ├── frontend/                    #   Fbank/FFT/WAV (from FireRedVAD)
│   ├── test/                        #   4 test programs
│   └── CMakeLists.txt
├── packages/omnivad/                # TypeScript npm package
│   ├── src/
│   │   ├── vad.ts                   #   OmniVAD (non-stream)
│   │   ├── stream-vad.ts            #   OmniStreamVAD (real-time)
│   │   ├── aed.ts                   #   OmniAED (3-class)
│   │   ├── wasm-binding.ts          #   Emscripten/WASM bindings
│   │   ├── types.ts                 #   Public TypeScript types
│   │   ├── index.ts                 #   Package exports
│   │   └── wasm.d.ts                #   WASM module declarations
│   ├── package.json
│   └── tsconfig.json
└── tests/                           # Test suite
    ├── test_c_vs_python.py          #   Accuracy: omnivad vs Python reference
    ├── test_determinism.py          #   Repeated-run determinism
    ├── test_edge_cases.py           #   Edge cases: tiny/empty/silence inputs
    ├── smoke_test.py                #   CI smoke test (import + detect)
    ├── test_memory.sh               #   Native memory/leak checks
    ├── check_timestamp_accuracy.py  #   Strict C vs Python comparison (manual)
    ├── check_native.py              #   Native C binary validation (manual)
    ├── generate_reference.py        #   Generate Python reference data
    ├── vad_to_textgrid.py           #   Audio → TextGrid + RTF benchmark
    └── data/                        #   5 test audio files + reference JSON

Performance

RTF (Real-Time Factor) on Apple M-series, lower = faster:

Model RTF Speed
VAD ~0.003 ~330x real-time
Stream-VAD ~0.002 ~500x real-time
AED ~0.002 ~500x real-time

Origin & Attribution

OmniVAD is a cross-platform deployment toolkit built on top of FireRedVAD, developed by Xiaohongshu (小红书). FireRedVAD provides high-quality Voice Activity Detection models and a lightweight Audio Event Detection model that can distinguish speech, singing, and music.

Original paper: FireRedVAD (arXiv:2603.10420)

What FireRedVAD provides: DFSMN-based models (~2.2MB each), Python inference code, PyTorch training, strong VAD benchmark results (FLEURS-VAD-102 F1: 97.57%).

What OmniVAD adds: Unified C API (ncnn backend) for native deployment, TypeScript/JavaScript npm package (ncnn WebAssembly) for browser and Node.js, cross-platform build system, comprehensive test suite with accuracy validation.

License

Apache-2.0 — same as the upstream FireRedVAD.

Credits

  • FireRedVAD — Kaituo Xu, Wenpeng Li, Kai Huang, Kun Liu (Xiaohongshu)
  • ncnn — Tencent
  • Emscripten — WebAssembly toolchain

Project details


Download files

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

Source Distribution

omnivad-0.2.8.tar.gz (8.6 MB view details)

Uploaded Source

Built Distributions

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

omnivad-0.2.8-cp314-cp314-win_amd64.whl (10.5 MB view details)

Uploaded CPython 3.14Windows x86-64

omnivad-0.2.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

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

omnivad-0.2.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.9 MB view details)

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

omnivad-0.2.8-cp314-cp314-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

omnivad-0.2.8-cp314-cp314-macosx_10_15_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

omnivad-0.2.8-cp313-cp313-win_amd64.whl (10.4 MB view details)

Uploaded CPython 3.13Windows x86-64

omnivad-0.2.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

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

omnivad-0.2.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.9 MB view details)

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

omnivad-0.2.8-cp313-cp313-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

omnivad-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

omnivad-0.2.8-cp312-cp312-win_amd64.whl (10.4 MB view details)

Uploaded CPython 3.12Windows x86-64

omnivad-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

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

omnivad-0.2.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.9 MB view details)

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

omnivad-0.2.8-cp312-cp312-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

omnivad-0.2.8-cp312-cp312-macosx_10_13_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

omnivad-0.2.8-cp311-cp311-win_amd64.whl (10.4 MB view details)

Uploaded CPython 3.11Windows x86-64

omnivad-0.2.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

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

omnivad-0.2.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.9 MB view details)

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

omnivad-0.2.8-cp311-cp311-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

omnivad-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

omnivad-0.2.8-cp310-cp310-win_amd64.whl (10.4 MB view details)

Uploaded CPython 3.10Windows x86-64

omnivad-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

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

omnivad-0.2.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.9 MB view details)

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

omnivad-0.2.8-cp310-cp310-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

omnivad-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file omnivad-0.2.8.tar.gz.

File metadata

  • Download URL: omnivad-0.2.8.tar.gz
  • Upload date:
  • Size: 8.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8.tar.gz
Algorithm Hash digest
SHA256 6a1865c9f3206a1bb1b726945d5bf19301fd7199e6df6a9b678a45973b3efa13
MD5 52c0add87d23b767af7feeb7714e6eec
BLAKE2b-256 434ba46177f279eb942007d0acce9a7c35d25133bc8dc2b0e6dcdbd437c0ebe9

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8.tar.gz:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.8-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 10.5 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b36582deefda020bd9a4daf51b7e60fde2639aedfabcbf8e8a62330ae7f4d26e
MD5 c56885585e1c24272bc27b80f4438137
BLAKE2b-256 9dfcc6156c019478fab33409420e89b42574941dbb106f2857c6595be9874151

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp314-cp314-win_amd64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 645cfe536e69cc99c468b5ad4d5864a9c31047cdebb929bec8d2f459328b2396
MD5 e23efd4ee18c9b5522f0c2b0ae6ee923
BLAKE2b-256 33ed66453214d4ccd6e27c7972a1f12179e7af2e5d8e4d03cf135ceec83a397e

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5c5a97428c8df1d60d2672dd4daed5a29841a145bbdc75f81d31ef5ba4fee22
MD5 4bf5984b4f46215d6725e193f04f6d49
BLAKE2b-256 97aa0196264e6c3856259f79ef2cc233f5a994015c5d95adfdba37a595e61dc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6b0cc8d4bbca104a91d7514bdb9ab196b04dbfdb6d750f0a03b85fc70a63c65
MD5 6a58cd04e42a682be063ce102ff0d702
BLAKE2b-256 89fda9c0c5586837b09ee1909ff61fdf22d94a3f03fd57d59f88434b98040fea

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5db133c96ce893e082cb93f3738ca1b7e5e27976de36f889ccf09b39538a2aa1
MD5 b7bbda16d17dbda01318f31dd1655e9a
BLAKE2b-256 ab88c23140d63a2102663d48723f3f9a62e225dbe9623d418e970c204bd62164

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.8-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 10.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 11ca33a0bca07932de32c062b5cef277ed91b51ccb71af3cfcf1d866dc888c45
MD5 a3ea1be5389a0fe4b8988b25ad173347
BLAKE2b-256 b0b50f4d5851ac08da16d70b3db19caaa720ce8412eb5a05a9ac083e29ac9a94

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp313-cp313-win_amd64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87bc32bb52a51d561761a94cb21f95987a39ef53e91b98ad69b77b5c35fe0c04
MD5 8802314f8b884eef6c09e10acab659b1
BLAKE2b-256 8878b1ee2939da8e9925e8b702cceeab4ef409dbbf814eb0105e278a1c9307d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 161a4e4f691cf594f3bf800daa0383f18e07c2c97a88e44e7d096aafa0e7223d
MD5 4d26bef58febee9fdfb018884962a8b2
BLAKE2b-256 314c9f1d76a8e97464e8719954e47ffee45d2ea018da680ffe53a9023e30c305

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 42e9cb9007ee77edfe655111f24fca77ad6062f99516cb604bb46071d86a39fc
MD5 b37436adad2b7407855101835fb97574
BLAKE2b-256 0ef920529f602ef9c5c4882225dac3be85da3805bfded16c640194f45dd254ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 250cef5be1627fe83846e26cb51b573f441b278b75723de318aa992c3878ba9b
MD5 24b94793a6617f40d497ee9ea40f7e0b
BLAKE2b-256 ba7a076897316afeae797bb891bbf417b02640b1487e606e3c42d123e7ec48d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.8-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 10.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c4dfc5653e812ba46ddba8fbcc99d71cb365713183d9227b5ddb16f34aff4820
MD5 1ea532ceb138f43cbba4a2abbd9090d2
BLAKE2b-256 e09640508d9704c06e880e35cb6e942a1d79b7f6313aaebae070997f842e9e7b

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp312-cp312-win_amd64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc37f44212d87eb30795fe5243553e6f295ce4ed6f2abbe2ab88972544032796
MD5 f686297d751417614abff23964772b06
BLAKE2b-256 c14033c5ab196a1b505d6f181f6b9d6d2c7877d614998ae0634d1d076762dd90

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 87081a2ab72c5bdb0944c25c07eb6458a1c9252c740ece6fa3f33adb8c1607c6
MD5 76de777df00844a7bc4cfb3bfe36742f
BLAKE2b-256 ce3055f216f732ab428467126f5e67c5b43a791da63a7e10da16c4d5076fe36d

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0f1d55b8d2b6e6cc0093eeffa96b8f797bfd8b69760219a0d2961c19b138dc2
MD5 5a70d69d99af75eea2dc5bb0921f9f76
BLAKE2b-256 ca56805e6b4560eae0a92322dd15c0dac028212fbfb5d452af4f246966d4b3ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4dbc5ebb77de132f4b5e2b13b1fe1cfc18085f324ae13f72fb2d7a52de1726f2
MD5 3e4ce119d55840841e687870ff5d80b9
BLAKE2b-256 db2dffb8daa660d4305754f1a33164b59b5354f92dab317a7fbce7cf235bf567

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.8-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 10.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 76184739aaebf3aafda624b334c3417ae94442b57f5dae0a2c0775af3d968e7e
MD5 60b00cfecbdc0a1cf6031dca7554dad0
BLAKE2b-256 dacbad957e2c4bf4b3441366cdda2e7cbc63cbdf9afd3545f2a80cb272077971

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp311-cp311-win_amd64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9b1e443deef73b3fc01497bf2b4fa22c6ff51436cba1dbac7967f198b8a7ed1
MD5 87876e51b67b5eb143c6a2f0a0711ac7
BLAKE2b-256 611f5891a9c908b9a39772b6c1ec44ab758f21c58937b50abe9b9b13401ac63a

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a03cf824e219a7322293f33eaaa8cc732677a60377caf385730ec76bff71bbc0
MD5 ceef7784f3961029a313ffec6a9bd326
BLAKE2b-256 e3fdbfb938ab8ccc2984093acfa7c459d9509f886716595dbb5c2ff14a6cc5dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b14fddb4db318e22facba4e71ed22b29bbbb2261dd6199cbe31dca2e77f0611
MD5 922bfc15333d7be6e0ca2f4780dee850
BLAKE2b-256 b3ec08cd7e9bc60307ad5d6ce85701f7696f6956f01e18f1ec9acce277848274

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 096e54fbe608cf15cd00d709713e36fd6cd922d26b34fc4c699ee5c2f822824b
MD5 0ec53f3b66f9fef016a6befcc89ea17a
BLAKE2b-256 48c02aa742aed6143dd843f4ea1b22d8ea2f8c7324bed9f7974c40f87eab58ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.8-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 10.4 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnivad-0.2.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f834083b3e11e8c1fc827640a5398cd156450df8b2e770b5505f498ee30e9c8b
MD5 c32a34e152e288e786a51513e7469a9e
BLAKE2b-256 8f89f3051a29420d799515c9a742aed5cddb7b4877c036fbd91cedfda11b603b

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp310-cp310-win_amd64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1ad2e574dacd3a4df68695a22ce32b280d81bbfa407a0d4024a3b9db269303a
MD5 b126372bd45e23e0a7f12e1594e99839
BLAKE2b-256 7ea4bd395554b34b55789991d41b266dd422888ad908483b006518588c26775c

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b170c1d6caf057688e5b1175ab472053f0b626adef75f5b2a6ea1636fffcb802
MD5 e004671e90a2ab460ca9164430f3eb0e
BLAKE2b-256 06cdd6f8f2d662f6730202c0422ac566c2bf6dbb392fd55662c74132b26b19e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27741ed0dd11e4df7461362ba94c626c27575feb33191ef0bd4efb7d18f424fa
MD5 87338c9a4e7512602aa0923999875db0
BLAKE2b-256 e12b8337e6266a03ccd2b977c484fa9d5994837e8dc1bfc297d50e49bd6d2f5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnivad-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a907d79d4f5605394093ae4a94bf2681266c08e3bb8fa3d2133b580e240c9cc4
MD5 90f6f71ff0f548267e1bb1bf76599cb3
BLAKE2b-256 cf30c2c7fcc80cb754840c252f134c9d08008999ea13b7e141c34ea7f1db7696

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.8-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: publish.yml on lifeiteng/OmniVAD-Kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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