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.2.tar.gz
(39.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.2.tar.gz.
File metadata
- Download URL: audio_validation-0.3.2.tar.gz
- Upload date:
- Size: 39.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6b1e7c78f54260aa1c342e140a71980af4b0d196b237421ee048893989fb095
|
|
| MD5 |
83dbc1807f2d37168687e2ebe61e9bc3
|
|
| BLAKE2b-256 |
089da63348fb7df020776fefec95db8e15d9ce39be99c55f3e2c712f627778bb
|
File details
Details for the file audio_validation-0.3.2-py3-none-any.whl.
File metadata
- Download URL: audio_validation-0.3.2-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd76f4007368a5eb0e40cd76f70170d9faf9dfb3a771186c843cc194e19c6bbb
|
|
| MD5 |
57ef357bf0c0648b632960440e60f852
|
|
| BLAKE2b-256 |
21925ba6fa89129c05be97d64feb2fda440818e654e09c2828db96de72f2f434
|