audio_validation
A Python library for validating and analysing audio data, including feature extraction, bit-exact verification against a reference, and waveform generation utilities.
Features
- Feature extraction — compute RMS, peak/min/max, mean, FFT-based frequency detection, and per-channel audio onset offset for multi-channel captures.
- Audio verification — validate a captured audio stream against a reference WAV file with drift-tolerant re-synchronisation, detailed mismatch reporting, and automatic artefact generation (PNG plots and WAV snippets).
- Waveform generation — generate multi-channel WAV files with configurable waveforms: sine, square, sawtooth, white noise, and pink noise; supports 16-, 24-, and 32-bit PCM output.
Requirements
- Python ≥ 3.11
- See requirements.txt for runtime dependencies (
numpy,scipy,sounddevice,pymodbus, …).
Installation
pip install audio_validation
Or, for development:
pip install -e ".[dev]"
Usage
Feature extraction
from audio_validation.audio_features import AudioFeatures
features = AudioFeatures.compute(
samples=raw_samples, # numpy array, shape (n_samples, n_channels)
sample_rate=48000,
expected_frequencies=[400, 800],
tolerance=50,
)
for ch_idx, ch in enumerate(features.channels):
print(f"Ch {ch_idx}: detected={ch.detected}, rms={ch.rms:.4f}, peaks={ch.peak_frequencies}")
Audio verification
from audio_validation.audio_verification import verify_audio
results = verify_audio(
reference_path="reference.wav",
detected_samples=captured_array,
sample_rate=48000,
artifacts_dir="test_artifacts/",
)
Waveform generation
from audio_validation.utils.audio_generation import generate_wave_file
generate_wave_file(
shape="sine",
freq_list=[1000.0],
sample_rate=48000,
duration=5.0,
num_channels=2,
active_channels=[0, 1],
amplitude=0.05,
resolution_bits=16,
output_dir="output.wav",
)
Maintainers
- Hubert Stepniewski — hubert.stepniewski@int2code.com
- Marcin Tomiczek — marcin.tomiczek@int2code.com
- Piotr Sznapka — piotr.sznapka@int2code.com
License
See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
audio_validation-0.3.6.tar.gz
(45.0 kB
view details)
Built Distribution
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 audio_validation-0.3.6.tar.gz.
File metadata
- Download URL: audio_validation-0.3.6.tar.gz
- Upload date:
- Size: 45.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6341526769687d4f7a1c26704d244c4ecdd9f4234f413eddb648154815e88a6
|
|
| MD5 |
fd651ecc05d99a09bc2bed0440a7a6cb
|
|
| BLAKE2b-256 |
1287f3528347e8f81d023b1163b82d9dcb2b847d0b67bdac8d87103c10a1fb5f
|
File details
Details for the file audio_validation-0.3.6-py3-none-any.whl.
File metadata
- Download URL: audio_validation-0.3.6-py3-none-any.whl
- Upload date:
- Size: 40.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd77ba9956b18fd4f95a4eca6ace1fb98f0cdd276970b4735db3fdd3113c97ec
|
|
| MD5 |
5bbfc01423281730d45fcc46cebae91b
|
|
| BLAKE2b-256 |
c894cca7e97476cf7ac91061c9f073977552e749fde903864bf4f87837869140
|