audiolab
AudioLab
What it is and what it does
audiolab is a Python library for audio file I/O and real-time processing built on top of soundfile and PyAV (FFmpeg bindings). It provides a unified interface for loading audio from local files, HTTP URLs, bytes, and streams; saving to multiple container formats; and applying filters and transformations like resampling, tempo adjustment, and pitch shifting. The library includes both a programmatic API with functions like load_audio(), save_audio(), and info(), plus classes for advanced streaming workflows (Reader, StreamReader, Writer, AudioPipe), and a command-line tool (audi) for inspecting audio file metadata.
Typical use cases include preprocessing audio for machine learning pipelines, converting between formats, extracting segments with time-based offsets, applying real-time effects during playback or batch processing, and quickly inspecting audio properties from the shell. The library abstracts away FFmpeg complexity while exposing filter chains for power users.
Use it for:
- Preprocess audio datasets for speech recognition or audio classification by loading, resampling, and converting to mono in one call.
- Apply tempo or pitch perturbation to audio files during training data augmentation using filter chains.
- Stream large audio files with real-time filtering to avoid loading entire files into memory.
- Convert audio between formats (MP3 to WAV, AAC to FLAC) and inspect metadata from the command line.
- Extract time-windowed segments from audio files with automatic resampling to a target rate.
- Build audio processing pipelines that chain multiple filters (resample, tempo, pitch) during load.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
audiolab loads, processes, and saves audio files in multiple formats (WAV, MP3, FLAC, AAC, etc.) with support for streaming, filtering, and real-time transformations via a Python interface built on soundfile and PyAV.
Yes. audiolab offers a clean, well-maintained interface to audio I/O and filtering with low install friction, permissive licensing, and no known vulnerabilities. It is suitable for audio preprocessing, format conversion, and real-time filtering tasks. Install it if you need to load and process audio files in Python without wrestling with FFmpeg directly; skip it only if you require lower-level control or have specific format constraints not listed in the documentation.
Install
audiolab on PyPI
pip
pip install audiolabuv
uv add audiolabpoetry
poetry add audiolabInstalling audiolab
Before you install
Low install friction with a pure-Python wheel. Active maintenance with recent commits and no known vulnerabilities. Repository is not archived and has been actively developed since its first release.
License in practice
Apache License 2.0 is permissive; you may use, modify, and distribute audiolab and derivative works freely provided you include the license and document changes. No restrictions on commercial use.
Quickstart
pip install audiolab
from audiolab import load_audio, save_audio
# Load audio from file with resampling
audio, rate = load_audio("audio.wav", rate=16000, to_mono=True)
# Save audio to file
save_audio("output.wav", audio, rate)
Requires Python 3.8 or later. PyAV (FFmpeg bindings) and soundfile are runtime dependencies; system FFmpeg libraries may be needed depending on your platform.
Verify before relying
- Whether PyAV and soundfile system dependencies are automatically resolved or require manual installation on all platforms.
- Performance characteristics when processing large audio files or streaming from remote URLs.
- Supported audio formats beyond the examples listed (WAV, MP3, FLAC, AAC).
Package facts
| License | Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — av, click, humanize, jinja2, requests, smart_open, soundfile |
| Maintenance | actively maintained — 142 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 137,076/month — #11,376 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: audiolab-0.5.1-py3-none-any.whl
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
audiofileReads and writes audio files across formats…
permissive · top 15,000 on PyPI
miniaudioMiniaudio provides Python bindings for…
permissive · top 15,000 on PyPI
soundfileReads and writes audio files in formats like…
permissive · top 1,000 on PyPI
pedalboardpedalboard reads, writes, and processes audio…
copyleft · top 5,000 on PyPI
samplerateWraps libsamplerate (Secret Rabbit Code) to…
permissive · top 15,000 on PyPI
soxrPerforms high-quality sample-rate conversion…
copyleft · top 5,000 on PyPI
tinytagReads metadata (artist, title, duration,…
permissive · top 5,000 on PyPI
mutagenMutagen reads and writes audio metadata (tags)…
copyleft · top 5,000 on PyPI
audiomentationsAudiomentations applies randomized audio…
permissive · top 15,000 on PyPI
audioreadDecode audio files using whichever backend is…
permissive · top 5,000 on PyPI