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
Release history Release notifications | RSS feed
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.1.2.tar.gz
(24.1 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.1.2.tar.gz.
File metadata
- Download URL: audio_validation-0.1.2.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d18ba7dea2c3bba99afbb11a9f85e31c428a94d97c632ef6e715d1c56d505486
|
|
| MD5 |
a89a88555a43e763b34b6608f1fb79b2
|
|
| BLAKE2b-256 |
2fd3a17f4b0d905b0a4fbcdf7f91bdbff08b8757dc2717a880511b609570071e
|
File details
Details for the file audio_validation-0.1.2-py3-none-any.whl.
File metadata
- Download URL: audio_validation-0.1.2-py3-none-any.whl
- Upload date:
- Size: 17.9 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 |
d9b2763607ec90a3ed95d7e71fa86420452aec74791f8460378bde844ecab85c
|
|
| MD5 |
9d5d5257401820f8b9f1d982c40d0cc7
|
|
| BLAKE2b-256 |
42ed6dafb78304e35cd9f902b32f4f5f850e20d1948136ba7ce3a25f66917285
|