Skip to main content

VAD - simple voice activity detection in Python

This is a simple voice activity detection (VAD) algorithm in Python. It is based on simple energy-based thresholding and is intended to be used as a simple method for detecting speech in audio files when other methods cannot be used for both privacy, performance, or other reasons.

Installation

You can install the package using pip:

pip install vad

Usage

The package can be seamlessly integrated into your Python code. The following example shows how to use the package to detect speech in an audio file:

from vad import EnergyVAD

# load audio file in "audio" variable

vad = EnergyVAD(
    sample_rate: int = 16000,
    frame_length: int = 25, # in milliseconds
    frame_shift: int = 20, # in milliseconds
    energy_threshold: float = 0.05, # you may need to adjust this value
    pre_emphasis: float = 0.95,
) # default values are used here

voice_activity = vad(audio) # returns a boolean array indicating whether a frame is speech or not

# you can also use the following method to get the audio file with only speech
# speech_signal is a numpy array of the same shape as audio
speech_signal = vad.apply_vad(audio)

Audio samples

  • example.wav is a sample audio file that can be used to test the package.
  • example_vad.wav is the audio file with only speech after applying the VAD algorithm.
  • example_vad_2.wav is the audio file with only speech direcly extracted from the original audio file using the apply_vad method.
  • vad_output.png is a plot of the voice activity detected by the VAD algorithm.
  • test_vad.py is the script that was used to generate the above audio files and plot.

Known issues

  • There is no additional VAD algorithm implemented in this package at the moment. It may be added in the future.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Release files for vad 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vad 1.0.2
File Size Uploaded
vad-1.0.2.tar.gz 3.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vad 1.0.2
File Interpreter ABI Platform
vad-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 7.9 kB

Release files / vad-1.0.2.tar.gz

Download URL vad-1.0.2.tar.gz
Size 3.8 kB
Tags Source
SHA-256 checksum
How to use checksums
45f94be198842febf678bd9dbd5bf425d9e8ab59f8f1eb21e8d6e92e469bdce6
BLAKE2b-256 checksum
How to use checksums
328db9aa2bddfcac4a455ea1543124b2545b197dde2f6749b3182045f0a4d4b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / vad-1.0.2-py3-none-any.whl

Download URL vad-1.0.2-py3-none-any.whl
Size 4.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
80f59cd32c446e592e1b21373eb604304aee42b2e44bfef2b75a9b2d84a1f7a8
BLAKE2b-256 checksum
How to use checksums
2deb44f99d15727e51ecfbdcbf69b8ef74de08dc5db93a7a430b0f9eeda08c6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page