Tools for validating audio data, including feature extraction and visualization.
Project description
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.
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
audio_validation-0.3.0.tar.gz
(37.8 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.0.tar.gz.
File metadata
- Download URL: audio_validation-0.3.0.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5a004b17a7dcc1a0fcfa1a30927c757914952298dab146ba2ffd81d46d79929
|
|
| MD5 |
972c462b01e2f53c017619f1e17e7397
|
|
| BLAKE2b-256 |
b067bd8dc30f25c7fdcac63c40a26d5bc7937cf8d65159e8d80ac36568408932
|
File details
Details for the file audio_validation-0.3.0-py3-none-any.whl.
File metadata
- Download URL: audio_validation-0.3.0-py3-none-any.whl
- Upload date:
- Size: 35.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81069d64b0c129df13a5c798be252e6b082ae3e1dd21239a55885e33940473f7
|
|
| MD5 |
b45a1578e495f813ec198be66a4e39ee
|
|
| BLAKE2b-256 |
76ee3fefdcf1c4f0ee7a7a089498dbac806dd320c0ae1939720aa838d26a3f1c
|