audiofile icon indicating copy to clipboard operation
audiofile copied to clipboard

Handling audio files in Python

========= audiofile

|tests| |coverage| |docs| |python-versions| |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, MP3, and OGG files.

Have a look at the installation_ and usage_ instructions as a starting point.

Code example for reading a file:

.. code-block:: python

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.

.. _ffmpeg: https://www.ffmpeg.org/ .. _installation: https://audeering.github.io/audiofile/installation.html .. _mediainfo: https://mediaarea.net/en/MediaInfo/ .. _usage: https://audeering.github.io/audiofile/usage.html .. _reading speed: https://audeering.github.io/audiofile/benchmark.html .. _sox: http://sox.sourceforge.net/ .. _virtualenv: https://virtualenv.pypa.io/ .. _soundfile: https://python-soundfile.readthedocs.io/

.. |tests| image:: https://github.com/audeering/audiofile/workflows/Test/badge.svg :target: https://github.com/audeering/audiofile/actions?query=workflow%3ATest :alt: Test status .. |coverage| image:: https://codecov.io/gh/audeering/audiofile/branch/main/graph/badge.svg?token=LVF0621BKR :target: https://codecov.io/gh/audeering/audiofile/ :alt: code coverage .. |docs| image:: https://img.shields.io/pypi/v/audiofile?label=docs    :target: https://audeering.github.io/audiofile/    :alt: audiofile's documentation .. |python-versions| image:: https://img.shields.io/pypi/pyversions/audiofile.svg :target: https://pypi.org/project/audiofile/ :alt: audiofile's supported Python versions .. |license| image:: https://img.shields.io/badge/license-MIT-green.svg :target: https://github.com/audeering/audiofile/blob/main/LICENSE :alt: audiofile's MIT license