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.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.0.2.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

audiofile-1.0.2-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: audiofile-1.0.2.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for audiofile-1.0.2.tar.gz
Algorithm Hash digest
SHA256 9bace610a0681fd5d5ed36d01cdb95414e014fc6aa2968438bb9e243d32a781f
MD5 0d6c85e61e7f889c20280137415fbbc5
BLAKE2b-256 b688d86957b1ec2e38224389e9f29f2186ed6bb9860fa8bdd064282a880b8da2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: audiofile-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for audiofile-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 545eaaabaaac34907bbaa516fd799c45b5d5282fd0f01a2bfce6cec46cf7dac2
MD5 7646d10aa0b09d8760f376f5ee1d9edd
BLAKE2b-256 11926258ea4b01403f93b7934dbe8802d64d9a6b508cab0c49b58abaf1f2fad2

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