Skip to main content

Fast reading of all kind of audio files

Project description

Test status code coverage audiofile's documentation audiofile's supported Python versions audiofile's MIT license

The Python package audiofile handles all kind of audio files with a focus on reading speed.

It can read and request information on channels, duration, number of samples and sampling rate for all files that are supported by ffmpeg, sox, and mediainfo. In addition, it can write WAV, FLAC, and OGG files.

Have a look at the installation and usage instructions as a starting point.

Code example for reading a file:

import audiofile

signal, sampling_rate = audiofile.read('signal.wav')

Under the hood it uses soundfile to read the audio files, converting non-supported formats first to WAV files. The same approach is applied when requesting duration for formats that need to be decoded to ensure that duration and number of samples match.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Version 1.1.1 (2022-12-22)

  • Added: support for Python 3.11

  • Added: support for Python 3.10

  • Changed: split API documentation into sub-pages for each function

  • Removed: dependency on pysox

Version 1.1.0 (2022-04-14)

  • Changed: use ffmpeg or mediainfo if sox binary is missing instead of raising an error

  • Changed: improve FileNotFoundError message when ffmpeg or mediainfo are required, but not installed

  • Fixed: always raise RuntimeError for broken files or missing files

  • Fixed: mention expected FileNotFoundError when ffmpeg or mediainfo are required, but not installed

  • Fixed: use soundfile for converting WAV, FLAC, OGG files with audiofile.convert_to_wav()

Version 1.0.3 (2022-01-03)

  • Removed: Python 3.6 support

Version 1.0.2 (2021-12-06)

  • Fixed: raise RuntimeError for broken or empty non SND files

Version 1.0.1 (2021-10-28)

  • Fixed: audiofile.duration() returns now 0.0 for an empty WAV file with wrong file extension instead of None

Version 1.0.0 (2021-08-05)

  • Added: support for Python 3.9

  • Added: tests for Windows

  • Added: tests for macOS

  • Added: sloppy argument to audiofile.duration() for faster processing of non SND formats

  • Changed: audiofile.write() raises RuntimeError instead of SystemExit

  • Changed: added sloppy=True results when accessing metadata of MP3 and MP4 files in the benchmarks

  • Removed: deprecated precision argument from audiofile.write()

Version 0.4.3 (2021-07-30)

  • Fixed: make dtype keyword argument available in audiofile.read()

Version 0.4.2 (2021-04-26)

  • Fixed: allow for duration=0.0 in audiofile.read()

Version 0.4.1 (2020-12-17)

  • Added: bit_depth to usage section of documentation

  • Fixed: handling of file names that include ~ or .. by using audeer.safe_path

Version 0.4.0 (2020-11-26)

  • Added audiofile.bit_depth() which returns bit depth of WAV and FLAC files

  • Added: bit_depth argument to audiofile.write()

  • Deprecated: precision argument of audiofile.write(), use bit_depth instead

Version 0.3.4 (2020-10-29)

  • Fixed: several typos in the documentation

Version 0.3.3 (2020-10-29)

  • Added: more tests to increase code coverage to 100%

  • Added: link to benchmark page in README

  • Changed: tests now require 100% code coverage

Version 0.3.2 (2020-10-29)

  • Added: benchmark results page in docs

  • Fixed: multi-line release changelogs on Github

  • Fixed: copy-button for bash examples

Version 0.3.1 (2020-10-27)

  • Fixed: missing dependencies for publishing documentation

Version 0.3.0 (2020-10-27)

  • Changed: use audiofile.core structure under the hood

  • Changed: use Github Actions for tests

  • Changed: use Github Actions for automatic publishing

  • Changed: host documentation as Github pages

  • Removed: support for Python 2.7

Version 0.2.4 (2020-08-31)

  • Fixed: CHANGELOG format for PyPI server

Version 0.2.3 (2020-08-31)

  • Fixed: catch SoxiError in audiofile.read()

  • Fixed: test for more advanced audio files like OPUS, AMR, …

Version 0.2.2 (2019-10-04)

  • Changed: switch to keep a changelog format

  • Changed: define package in setup.cfg

Version 0.2.1 (2019-05-02)

  • Fixed: module only package

Version 0.2.0 (2019-05-02)

  • Changed: improve documentation

  • Changed: switch to single audiofile.py module

  • Fixed: skip tests if download fails

Version 0.1.3 (2019-03-27)

  • Fixed: metadata samples and duration for MP3 files

Version 0.1.2 (2019-03-25)

  • Fixed: metadata for pypi.org

Version 0.1.1 (2019-03-25)

  • Fixed: license statement in PyPI package

Version 0.1.0 (2019-03-25)

  • Added: First public release

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

audiofile-1.1.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

audiofile-1.1.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file audiofile-1.1.1.tar.gz.

File metadata

  • Download URL: audiofile-1.1.1.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for audiofile-1.1.1.tar.gz
Algorithm Hash digest
SHA256 f1a06edd19eab0fd24650020c030fc37bb15f7b64221cd4f9237d1d18b249c1b
MD5 f83127d6b70883d6de3f76f9d944aaff
BLAKE2b-256 dbdd1b9c87ddfd718b6b2b3a942ef515bfddc0ed909374c5a5eae4a9657e7338

See more details on using hashes here.

File details

Details for the file audiofile-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: audiofile-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.15

File hashes

Hashes for audiofile-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 323be004908b7bb9bd9309d83f70bddea352bf5865d5180eb3b15812b464ab82
MD5 4d108c88605b64a360e376451973c919
BLAKE2b-256 7fc59645d56e9fdb2e8cd592c231e712b4071c218b981dc4f57303f5e47f5f33

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page