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

Uploaded CPython 3.14Windows x86-64

omnivad-0.2.9-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.9-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.9-cp314-cp314-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.15+ x86-64

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

Uploaded CPython 3.13Windows x86-64

omnivad-0.2.9-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.9-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.9-cp313-cp313-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.13+ x86-64

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

Uploaded CPython 3.12Windows x86-64

omnivad-0.2.9-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.9-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.9-cp312-cp312-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.13+ x86-64

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

Uploaded CPython 3.11Windows x86-64

omnivad-0.2.9-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.9-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.9-cp311-cp311-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

omnivad-0.2.9-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.9-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.9-cp310-cp310-macosx_11_0_arm64.whl (6.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

omnivad-0.2.9-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.9.tar.gz.

File metadata

  • Download URL: omnivad-0.2.9.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.9.tar.gz
Algorithm Hash digest
SHA256 deac37fb891599886f90f46b2677a35eac10177f3f47ced647b6232268f5df8a
MD5 465afd29664f42d8b328f1f7b83d3991
BLAKE2b-256 cbbeb54ce6a726774f212f87ae127302ea5ad80d2fbfbbd768b40f5c9728f36c

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9.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.9-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.9-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.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 20fdd681bd558007a25f0d6e2b832dfa4cc319bb2656ddf57a456956b34872cb
MD5 4709c7bda9cf4cbc795b1fd40c867cde
BLAKE2b-256 67f857aa330ae9b81989d7f4a5a8175ec82a3e7e04223a20f4de9ea206e02499

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4a3a245bcafc7c2223cb4b6a1c2a07fff06c6423d732fe53ce44d95f59431f35
MD5 212e8ab8bd59cccc42aa7dffd0a75c6d
BLAKE2b-256 7d1d2209af46341175541568d1dfbc2e718d99a8d06c36250c5983f40de18ef4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b63abe0ea5dc7d76fdc59b00f4bb1e7a39852a3ba182c59fb1a4f0048eaf70ee
MD5 17dd3d12e9061f1699ae848a4bfb35c1
BLAKE2b-256 398f610d575761ce6e1a95c4364d73c1399ef43375091cd6f38f13117a50f93c

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7496d88e5bb67b8871441fbec0831f577923739ca8fbe1f0a75d64c55e4af53e
MD5 a5e01e3c0d1723330ef4175732528009
BLAKE2b-256 97cbe8e0a5d12fb1fbcb5e258efb93846a2c8e8d1c5c9585bee7113ec4d12c5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 af2f58b7deeb657ee5c629c76001bc86203cf2b02748204e8efbf60539468143
MD5 79a1431cf365e2f3625c160d1ee8d8e3
BLAKE2b-256 e153299b63d0e9993eafa91efdbfbdcbf5c5dda3bd280d00fa8d0033f4d2d7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.9-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.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fb63483dd9db5204cf57557745faab614f88befaec1b3a5cc3f681278fa14c75
MD5 6254c3c54d7af643762b5a7fd2ef1292
BLAKE2b-256 f529a750e937f0c5dbfe7032a92b634b018ad819bc1ff7d78acc558792201be1

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 06e61ce514c4de568e0ed54fc73392178f09e8e15e46e62ee91b93807e92c948
MD5 47b40902972db23ee1c078ac945795ad
BLAKE2b-256 08c996a07441ea702521fd22ebb7ec2e5ca436b6737197bb6743d3e2a517adf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 87a1b766eeb758add8fe059eade48455af02d4a9434a3acea3b5a29f87339518
MD5 d995854aed54963f6808adf70a4ea526
BLAKE2b-256 cc95e27b67a67c4cca9aa78d72cc43c047664a9190056693d119c635b08ba61a

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4f4c946329dcfa7c802d759044d2cf7abc7a14bb5a305a1c61cfc633a0f0142
MD5 d84f81adc4a2c2442a2d055616e6a278
BLAKE2b-256 a229a3bcf2acfbba1bcb7f8f19bbad6fabde0aed76b7df52a835f4b4ed87eaea

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 4b8860cff9aedcc33c5e8a126839cc860285f0fbc1a6cb5bce3ac924d855299e
MD5 536e4f65aa2daef91802107b2b011606
BLAKE2b-256 5bcc9399e4e81f4892ab36ea26b5777820eb4fafec3c22b458cb561c93322999

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.9-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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 4eee8d4ffe614503a79161bffa604e855fd083bcfa37867ee2add9ed678ed7a0
MD5 633697406095edeb51c803d159f0a7d6
BLAKE2b-256 4fbd881533be671c5d64a124bf7ad3d90faaf552a9a327dedfe48d5cb9123d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b4e03f5b12581b475d78bcd308474789738662b1df4a35a4d7c55c63c84655c3
MD5 5b08ae9ea3cd9369a44e867c752e3559
BLAKE2b-256 ec479a1d6b9583c59f8817b386402309b2c389d397721f83453b2db6a2c5125f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c9b6dd506a27c9b9fd511c8de6d4832c2bbdc1005e462b08db58ad3f39aabe37
MD5 b595f914333f3b979284a877b6425699
BLAKE2b-256 cfaa5e4808e200103b7f02be1f00c6d5986e464fc0c95c00764ad10f8889e0c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57c66726b83d43cf2856d23b23e16782c067930760c059a573af45ba61c96d73
MD5 27c3282e4d6e48a189a55a2678765ef0
BLAKE2b-256 ea0b12ab9bbc1c377d9aef40675e4e92de6b27ee33e9032140c0f451c4552eb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d07ece3cddd9e3df614cc3b4a14374c5ea1e33a9180cb17ae09173975b14e524
MD5 b783d8a55b83a262752b025f13b37c26
BLAKE2b-256 b85db224ad24341aa57fc0cfaa0977e4513cb73bd4a24e2c2c3bdd279fd65b3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.9-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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4bb9e80be89938151ba32634bd0f18674d443a2d1a6cb90f5a101d51882e11f4
MD5 bf2f6a43c096f0665ca0da14b79682c4
BLAKE2b-256 d69448db21f8cf82197a00b014ca1ec13e1cd44eeb92ed31b405106c1edac64e

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 568f692759a9c8e0a114acd7e90c9e0f06c3ddba593ef505c861198dba4f4933
MD5 2446f20a744a316a635441a9f3402487
BLAKE2b-256 61f056dacedca084821234852395e91257e0ae1e4ab3387c11946933c430e9cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 588a734caaa7dbec0997a39f8636a4531a1fab43bb1bcb94a9ae149ca23f8f5c
MD5 534f4e7fcbd4005af7ca60d1aa58d9bb
BLAKE2b-256 68fed94b53e272a5973ebf618671af14fe297ba3dae31229660eee6d797377fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 88b94882617974ce2bf48c829b99b518ab7ac09bbb4e5d7c3bb44dff4712cb54
MD5 73154a9681f5af2c56f344748ae7872f
BLAKE2b-256 b1b6df7a4bbfa7b4ff0f6e1daec3ce52d4804231ff99ad6e72c0e92dc7f5a227

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 655ba583457081d2f44b2811f300a470c045d91f8844e4955322c6b74d786bf4
MD5 06337c909956931f0bef22ce910dcac9
BLAKE2b-256 26ee5a71d1538cf8ef704e81c79278c08b63abea343c44290865d5f7f6fe89a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: omnivad-0.2.9-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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a7c519ad17f9ba518929566ce445cf231a189bdc9bb12737d0d2144b8a852ab9
MD5 2cfe87c9faaa6faae9955647126ef7e0
BLAKE2b-256 44cb116d07523782fa7547ec6c777cea0ca36bd0f24a3b59c751cf7864659178

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 786a9f910029f0dc8bb7ebdf45af3864c6b7129383fd0abe2aadef56fdc24fea
MD5 1648b5979fbdb725a645ebe0411aa724
BLAKE2b-256 486e5401ac04b96eae6377d4c10a01beaf344f0b23c0f299b893b13ba47d0c55

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 401390c27ea33311cda0d2f96b2e35b10aa997ac650a615df66721e1c04c4bc7
MD5 a2e230a1b65b043f55c7e6abe140d6ea
BLAKE2b-256 51ce28ed7a2322ebbcbca231979017a0fbb11723dc3d95add6b6c48e628c2232

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c9e2d4b6af4fca93e0fd2b63b9520e8b273100bde2c021eccfe4dc081856380
MD5 5adaf81279e82143e3d4b3fb66586ff7
BLAKE2b-256 5fd30db07e36b669be4df4924430b0c709bbabd914c92b9a5ec93139bdf5afbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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.9-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for omnivad-0.2.9-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d10200aeaee31c3861ce284c07005846516be5c95cd255d0633e1ac9781a700e
MD5 091034dd8188471e147490b23cc3d177
BLAKE2b-256 91752b67567f49aab8978389b2d38f623072e2cb2a0fd24f4f0ae772f42aa17f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnivad-0.2.9-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