OmniVAD — Cross-platform Voice Activity Detection and Audio Event Detection (based on FireRedVAD)
Project description
OmniVAD
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 samples (10ms) at a time
# Accepts float32 in [-1, 1] (Web Audio, soundfile, torch) or int16 PCM
svad = OmniStreamVAD()
frame = None
while frame is None:
frame = svad.process(pcm_160) # np.float32 or np.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) # 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
// Two entries: omni_stream_vad_process (float [-1,1]), _int16 (int16 PCM)
OmniStreamVadHandle svad = omni_stream_vad_create("stream-vad.omnivad", 0.5f, &err);
omni_stream_vad_process(svad, float_160_samples, 160, &result); // FP32
omni_stream_vad_process_int16(svad, pcm_160_samples, 160, &result); // int16
// FastClone — share model weights across streams
OmniStreamVadHandle clone = omni_stream_vad_clone(svad, &err);
omni_stream_vad_process_int16(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();
// processFrame() accepts Float32Array [-1, 1] or Int16Array — dispatch by dtype
const frame = svad.processFrame(float32_160); // 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:
OmniVADandOmniAEDinstances can be safely shared across threads for concurrent inference. The Pythonworkersparameter indetect(..., workers=N)already uses this pattern.OmniStreamVADinstances 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. Two formats, same convention across all 3 model types and all 3 layers (C / Python / TypeScript):
float32/Float32Arrayin[-1, 1](Web Audio, soundfile, torch)int16/Int16ArrayPCM (WAV, microphone)
Wrappers dispatch by dtype to the matching C entry — never scale or
convert in Python/JS. All scaling lives in the C library: the f32
entry multiplies by 32768.0f, the _int16 entry casts to float.
| Method | FP32 entry | int16 entry |
|---|---|---|
OmniVAD.detect / detect_probs |
omni_vad_detect[_probs] |
omni_vad_detect[_probs]_int16 |
OmniAED.detect / detect_probs |
omni_aed_detect[_probs] |
omni_aed_detect[_probs]_int16 |
OmniStreamVAD.process |
omni_stream_vad_process |
omni_stream_vad_process_int16 |
OmniStreamVAD.detect_full |
omni_stream_vad_detect_full |
omni_stream_vad_detect_full_int16 |
For exact contracts see native/include/omnivad.h.
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 forpad_onset_secs,pad_offset_secs,min_silence_secs(so the simplest call gives raw output). To match the canonical defaults, use the values returned bydefault_chunk_config(). Seetests/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=2tovad.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 byomnivad/_binding.py.omnivad/models/*.omnivad— bundled model files (copied by CMakeinstall(...)).- An editable entry in your environment's
site-packagespointing 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
EMSDKenv var must point at your emsdk root (the directory that containsemsdk_env.shandupstream/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 packthen 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 --globalthen 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnivad-0.2.12.tar.gz.
File metadata
- Download URL: omnivad-0.2.12.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb7c0b2104f9212fb4b1b2bc27b70528fd16ab660245b11e56af2555375d55b1
|
|
| MD5 |
49c099a28ab15c34410cc2222a0b1296
|
|
| BLAKE2b-256 |
323a5c56fc27c4c48e61b7258f33993db7e50814ce6bbc528728f242a296d734
|
Provenance
The following attestation bundles were made for omnivad-0.2.12.tar.gz:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12.tar.gz -
Subject digest:
fb7c0b2104f9212fb4b1b2bc27b70528fd16ab660245b11e56af2555375d55b1 - Sigstore transparency entry: 1460415041
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: omnivad-0.2.12-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9627e8fec900ba3e7c693621f3ca8a86466a7018b357c80d1a505b7b21046bc
|
|
| MD5 |
7b3a106c3b2c556851fffc8b2ef242a4
|
|
| BLAKE2b-256 |
e388faa6153e84facd62ef03db3ed090261a468fd0cada3ba6ee05c44d7a1ff0
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp314-cp314-win_amd64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp314-cp314-win_amd64.whl -
Subject digest:
d9627e8fec900ba3e7c693621f3ca8a86466a7018b357c80d1a505b7b21046bc - Sigstore transparency entry: 1460415331
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c559b3b168fdcc53ea3c55bf4e81dfa52d253c9f6c77a0ce45daa0f48e68189
|
|
| MD5 |
6f15cd6823cfb2f4fd1d4b235a142cdd
|
|
| BLAKE2b-256 |
50e61139fca967df904b7c7195359615b5a73f387de751f812954700096f5255
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
1c559b3b168fdcc53ea3c55bf4e81dfa52d253c9f6c77a0ce45daa0f48e68189 - Sigstore transparency entry: 1460415447
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f352aa712917ee6161b557118b22536049e6d7676b8fff6ffb41d53c2804e0
|
|
| MD5 |
14071c9726b2d84be5ab59c374907ce6
|
|
| BLAKE2b-256 |
4d807889b44178f55b5af3d117dbd81c0318f97b8ff1879577978fd33e0edaa3
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
39f352aa712917ee6161b557118b22536049e6d7676b8fff6ffb41d53c2804e0 - Sigstore transparency entry: 1460416303
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b68fdc57014720556be327bbfa2159e26e5ec85128dda9bcc2d2a8ffc4dfb46b
|
|
| MD5 |
7e5303d9401382233bbe53f658533f09
|
|
| BLAKE2b-256 |
da43789f63a4b57b6d0d115b5991f1fbe15a5840bae443817caa69ff7a7af2cf
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp314-cp314-macosx_11_0_arm64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp314-cp314-macosx_11_0_arm64.whl -
Subject digest:
b68fdc57014720556be327bbfa2159e26e5ec85128dda9bcc2d2a8ffc4dfb46b - Sigstore transparency entry: 1460416029
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp314-cp314-macosx_10_15_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp314-cp314-macosx_10_15_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.14, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f377e2633e54f14016aa395789e6060ac1dfcdca93c477dd658b6a8fcaa3b030
|
|
| MD5 |
c15417dcbb23ad841c7aa85eada5b34d
|
|
| BLAKE2b-256 |
f7cff8db3c5aaba3b0c2e7d8468609852ed9678a64303eb5011aef366725d982
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp314-cp314-macosx_10_15_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp314-cp314-macosx_10_15_x86_64.whl -
Subject digest:
f377e2633e54f14016aa395789e6060ac1dfcdca93c477dd658b6a8fcaa3b030 - Sigstore transparency entry: 1460416648
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: omnivad-0.2.12-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
550cbef1aa9277680aab3758001e68484eee1d5cbaf2e4b7d5efe9f1599db8fd
|
|
| MD5 |
d0bc9ad75fccc8e4b7d91415d102d4e7
|
|
| BLAKE2b-256 |
66a8cc633ad6087800adce3e0e872cd8e18a9ba4943b67834700b5b74fcc33f6
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp313-cp313-win_amd64.whl -
Subject digest:
550cbef1aa9277680aab3758001e68484eee1d5cbaf2e4b7d5efe9f1599db8fd - Sigstore transparency entry: 1460416085
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ff2501d9921fdb33ae8e8c6b8711a4009f28e2120473faf32fd803a5d266016
|
|
| MD5 |
086cf6bc227ea27ddd5e3d0e064ecdc1
|
|
| BLAKE2b-256 |
39e7b71c8b485fa9653143d81a5899a58a5e14113cc642e5389b598da9ff0be4
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
7ff2501d9921fdb33ae8e8c6b8711a4009f28e2120473faf32fd803a5d266016 - Sigstore transparency entry: 1460415676
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5810bacd94fbb44fc523ea1fba4f5a63f39a610e31ee0e6d0cd92f8779844ecd
|
|
| MD5 |
36c4e179109ad59b10423c7e4f732f8b
|
|
| BLAKE2b-256 |
4d61c5a1fc184b63d77eadbc6a351127132e1bf64ffb77cceb89e3230774c928
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
5810bacd94fbb44fc523ea1fba4f5a63f39a610e31ee0e6d0cd92f8779844ecd - Sigstore transparency entry: 1460415756
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31e37c5f19a67ff4bf18c79ac28a51dd12fddf5314b5e6ff47819179f2e6cc95
|
|
| MD5 |
13bc94f7ca1d49e0034555260cfa459a
|
|
| BLAKE2b-256 |
7f73abb89b10693e5c68d123a518bc0f144d494a709dfc22ea48938fd22c1677
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
31e37c5f19a67ff4bf18c79ac28a51dd12fddf5314b5e6ff47819179f2e6cc95 - Sigstore transparency entry: 1460415508
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp313-cp313-macosx_10_13_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp313-cp313-macosx_10_13_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.13, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f58c9f872dd8ae433f709323a9c318c7d2f9a30f8cc601f361dfeda7d48abf5f
|
|
| MD5 |
12300096dce4d896494c4cb5a5bfcf90
|
|
| BLAKE2b-256 |
60f465af80ae55efef71d6ea5b80b52c0142987d4b207be4c989cf2816e3f5d1
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp313-cp313-macosx_10_13_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp313-cp313-macosx_10_13_x86_64.whl -
Subject digest:
f58c9f872dd8ae433f709323a9c318c7d2f9a30f8cc601f361dfeda7d48abf5f - Sigstore transparency entry: 1460416516
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: omnivad-0.2.12-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9794e7b1c22871c4e624537255c94b0ff82bb0291c13fabe16cd7bd011c2dc2d
|
|
| MD5 |
5cb0fa5bcfd3ccd6c1421b12ae37c0d6
|
|
| BLAKE2b-256 |
fd8916558e04e024d21f70261320a7589cad8b76cd441443fe569e86f3f9099c
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp312-cp312-win_amd64.whl -
Subject digest:
9794e7b1c22871c4e624537255c94b0ff82bb0291c13fabe16cd7bd011c2dc2d - Sigstore transparency entry: 1460416430
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4ec1ad3e60392ebc067258f499dc9b760308ebbefb72e7a785174792fe4fb7c
|
|
| MD5 |
5d381bebc63b453d1873b64f58a5d8bd
|
|
| BLAKE2b-256 |
391cf432c29763a1b07c503e327781b42d334760879bc7d6c5a2621582a3b74f
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
c4ec1ad3e60392ebc067258f499dc9b760308ebbefb72e7a785174792fe4fb7c - Sigstore transparency entry: 1460415255
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b99eb8f409e28b6de90bb66810a02e0c837a7be222385335b6902067aa06935a
|
|
| MD5 |
844065963f5a77b6827187fa2212b140
|
|
| BLAKE2b-256 |
172080025942610161bfadf5792de49da1128310800113b73262e41baed8817e
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
b99eb8f409e28b6de90bb66810a02e0c837a7be222385335b6902067aa06935a - Sigstore transparency entry: 1460416160
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77d4cd9b3922d9c4b0affd6de424eb2bb00d5050b0f8e0d9bd31f2580b3b9f88
|
|
| MD5 |
6cf55d2e912454d68a1b99684f697194
|
|
| BLAKE2b-256 |
758610a1e244bae402634c24a87b40926e8fc494e408769980fa28fc4e2085ad
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
77d4cd9b3922d9c4b0affd6de424eb2bb00d5050b0f8e0d9bd31f2580b3b9f88 - Sigstore transparency entry: 1460416208
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp312-cp312-macosx_10_13_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp312-cp312-macosx_10_13_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.12, macOS 10.13+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dbf599d1aa94143c8677da6ededb37ed3175e6584ad91f64c1bf2a43a1c5cb0
|
|
| MD5 |
aca71d6c311b747bca968cf6d1634510
|
|
| BLAKE2b-256 |
c61c8512f2ceef7c1232b929003fedaf827399e2bb8f6cf447f9f6bc8eaecf2e
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp312-cp312-macosx_10_13_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp312-cp312-macosx_10_13_x86_64.whl -
Subject digest:
8dbf599d1aa94143c8677da6ededb37ed3175e6584ad91f64c1bf2a43a1c5cb0 - Sigstore transparency entry: 1460415590
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: omnivad-0.2.12-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba6be1963025b070f1131436eae9c9d251b2321f434308df1048f8d79edb40ee
|
|
| MD5 |
b675a88236ca94f80ffe2bfdbbb4acaa
|
|
| BLAKE2b-256 |
92780e266c5e94f74727f765e51fcecac8eb16665c811d5eb762b202c9a82011
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp311-cp311-win_amd64.whl -
Subject digest:
ba6be1963025b070f1131436eae9c9d251b2321f434308df1048f8d79edb40ee - Sigstore transparency entry: 1460416722
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
128b5d9c5b7f69efeccc19a4d847708b65f0e543e98ec5d3c09332fef490cf98
|
|
| MD5 |
54aa2fc5b71672a2ec66863d9a4c0462
|
|
| BLAKE2b-256 |
479c56e8090669b7b683bd67222d054966760ab9eaa18605fe80098e51316537
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
128b5d9c5b7f69efeccc19a4d847708b65f0e543e98ec5d3c09332fef490cf98 - Sigstore transparency entry: 1460415185
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7954cd836b574bc22de31e6dd0d1d45866d159dfe9888aedc6c57b1c1ca5abc9
|
|
| MD5 |
aae4f20e16bba5038c5a73069b088b54
|
|
| BLAKE2b-256 |
1a86dfe10b859a1590d7ed06d6f71ffb34d67fa5edb203aa47053f7e40d5349e
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
7954cd836b574bc22de31e6dd0d1d45866d159dfe9888aedc6c57b1c1ca5abc9 - Sigstore transparency entry: 1460415809
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18759114eb0e046e0aeb52c18f48539730622cc039ce444e2198e33d337617cc
|
|
| MD5 |
9e1edc7ef315afc38b52fb222f53b8eb
|
|
| BLAKE2b-256 |
8bbd72090d07b0521becce9691122d21f7e477fb3dba6c3c63839de03d3e1d82
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
18759114eb0e046e0aeb52c18f48539730622cc039ce444e2198e33d337617cc - Sigstore transparency entry: 1460415877
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp311-cp311-macosx_10_9_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp311-cp311-macosx_10_9_x86_64.whl
- Upload date:
- Size: 5.3 MB
- Tags: CPython 3.11, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b3c06791fac84033d65bf9b0739032176f33eda990c59c0250c50368ad3b53e
|
|
| MD5 |
b46aa9cf712085426436c4ab44890f33
|
|
| BLAKE2b-256 |
6d2897fcb54078040f1e4e79237fcc26991a5b99913ad989e371f6726772639a
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp311-cp311-macosx_10_9_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp311-cp311-macosx_10_9_x86_64.whl -
Subject digest:
5b3c06791fac84033d65bf9b0739032176f33eda990c59c0250c50368ad3b53e - Sigstore transparency entry: 1460415950
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: omnivad-0.2.12-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
940ee0f80ff1dddef374c5f357c4ce89aa183b9a07fe0a0b4f86f2fa0bbc3b77
|
|
| MD5 |
9b89abec38c20dd801d5678c3e7d200b
|
|
| BLAKE2b-256 |
3ef348ade7bcd70c3e94faea6b5904e7f734aab6ec926599802af1cee85f8ebf
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp310-cp310-win_amd64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp310-cp310-win_amd64.whl -
Subject digest:
940ee0f80ff1dddef374c5f357c4ce89aa183b9a07fe0a0b4f86f2fa0bbc3b77 - Sigstore transparency entry: 1460416787
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bc516cc5c315968b03161e1fdb17776ad2b8492a18a1da23c26654e655d0fe5
|
|
| MD5 |
9106c46f7f7c8629a6e34c6f839a002d
|
|
| BLAKE2b-256 |
025fa0c5431593b8cd8c91c86e3e0fc7db5cf9d696c74f6ad3d8eaa768338b62
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
6bc516cc5c315968b03161e1fdb17776ad2b8492a18a1da23c26654e655d0fe5 - Sigstore transparency entry: 1460416580
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
758ae7ee74c13a21e153010c738b3282b95201ad5861f835118d3d007203959b
|
|
| MD5 |
bb7e41fa7529879056b667c1e3d8522a
|
|
| BLAKE2b-256 |
0dde94238673e8fcd708e70bde301cd0ff96e82203438e0992e31495ddd1b306
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
758ae7ee74c13a21e153010c738b3282b95201ad5861f835118d3d007203959b - Sigstore transparency entry: 1460415114
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 6.7 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10878863d70a8277912b45e3dd5855afbe0346d70c9de0dd4bf6bea0b9e58276
|
|
| MD5 |
4b90dc8a6848b41a47b44d9febbacf7d
|
|
| BLAKE2b-256 |
2e5f38656d80392a0d6eff73b167c2102f66346dc2a2c6b53002c46e705b1522
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
10878863d70a8277912b45e3dd5855afbe0346d70c9de0dd4bf6bea0b9e58276 - Sigstore transparency entry: 1460416376
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file omnivad-0.2.12-cp310-cp310-macosx_10_9_x86_64.whl.
File metadata
- Download URL: omnivad-0.2.12-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 5.3 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23484dd735e117aabb5f9ca248b8f5b0a6c5e8d8759301b90b6d78936850dcaf
|
|
| MD5 |
3559547d9a913b500cc3e7ecf8ff4a66
|
|
| BLAKE2b-256 |
ed7bc87fa7ccee969055d94a991d538565f962d9ff2d510adea9d78ca9dac395
|
Provenance
The following attestation bundles were made for omnivad-0.2.12-cp310-cp310-macosx_10_9_x86_64.whl:
Publisher:
publish.yml on lifeiteng/OmniVAD-Kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
omnivad-0.2.12-cp310-cp310-macosx_10_9_x86_64.whl -
Subject digest:
23484dd735e117aabb5f9ca248b8f5b0a6c5e8d8759301b90b6d78936850dcaf - Sigstore transparency entry: 1460415387
- Sigstore integration time:
-
Permalink:
lifeiteng/OmniVAD-Kit@4f6be535edfb5fccb499b37a609068173ed41d59 -
Branch / Tag:
refs/tags/v0.2.12 - Owner: https://github.com/lifeiteng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4f6be535edfb5fccb499b37a609068173ed41d59 -
Trigger Event:
push
-
Statement type: