Skip to main content

Slices audio clips into chunks of a specific number of seconds at the closest moment of silence (decided by silero-vad). Uses onnx which avoids the pytorch dependency.

Project description

vadslice

Slices audio clips of speech into chunks of certain length in seconds at silence points so it doesn't cut in the middle of someone speaking. It uses VAD (voice activity detection from silero-vad) to determine these points of silence within the clip.

Uses ONNX runtime instead of PyTorch, avoiding the heavy PyTorch dependency while maintaining the same VAD accuracy.

It's extremely fast.

Installation

Requires Python 3.12+.

uv add vadslice

or pip:

pip install vadslice

Usage

CLI

vadslice <size> <input_file> <output_dir> [--format wav|mp3|ogg|m4a] [--silence-flush SECONDS]

Example:

vadslice 30 audio.mp3 ./chunks --format mp3

# Flush a chunk early if there's a 5+ second silence gap
vadslice 30 audio.mp3 ./chunks --silence-flush 5

Chunks are saved to output_dir/input_file_stem/chunk_XXXX_offset_XX.XXs.ext. --format is the output format.

Input: Supports any audio format that PyAV can decode (MP3, WAV, OGG, M4A, FLAC, etc.)

Python API

from vadslice import slicer

parts = slicer("audio.mp3", slice_length_s=30.0)

# Optionally flush chunks on long silence gaps
parts = slicer("audio.mp3", slice_length_s=30.0, silence_flush_s=5.0)

for i, part in enumerate(parts):
    print(f"Part {i}: Offset: {part.offset_s}s, Size: {len(part.part)} bytes")

The function slicer returns a list of AudioPart objects, each containing:

  • part: WAV bytes (16 kHz mono) for that slice
  • offset_s: Start time offset in seconds from the original audio

.

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

vadslice-1.1.0.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

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

vadslice-1.1.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file vadslice-1.1.0.tar.gz.

File metadata

  • Download URL: vadslice-1.1.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vadslice-1.1.0.tar.gz
Algorithm Hash digest
SHA256 92e5f5ca7cceec27b141a358c0210da5df903bff3abe8c8f381e72d1339ab9f1
MD5 9a227c996e0531a465bba4b7ca4c7131
BLAKE2b-256 cf34715983a8bd17358390de7f0af092a15bf951e0cfee293ffba3c4dee735c7

See more details on using hashes here.

File details

Details for the file vadslice-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: vadslice-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vadslice-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82439643cb4724ac24f5ef7e6ba13629b5b576469177550658180ebb0b510bb7
MD5 65fc966207a5063a2ce67e514c3148e3
BLAKE2b-256 3096f8e7fe9bdabf0a37d4c06fdca8ad547ae08b395ff64ccb23257a245b203e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page