A small library for A-Law and u-Law audio coding
Project description
G711 A-Law / u-Law audio-coding library
The library is written as an extension for python3 and allows to work simply with G711 encoded audio.
Requirements
- Python 3.5+
- Numpy (will be installed anyway before the building procedure)
- Tools for building C/C++ applications (GCC/Clang/VS build tools)
Implementation details
The library is written in pure C and relies exclusively on a python build system. I tried to minimize the use of any platform-dependend functions to provide a truly cross-platform and fast library.
Installation
Source distribution is uploaded to PyPI, so just invoke pip install g711. Equivalently, you can clone code from https://github.com/stolpa4/g711 and then run pip install <path to cloned repo>.
Functions
load_alaw(path: Union[str, os.PathLike]) -> numpy.ndarray(dtype=numpy.float32)- Opens a file, loads its contents and decodes it from A-Law to float32 numpy array.load_ulaw(path: Union[str, os.PathLike]) -> numpy.ndarray(dtype=numpy.float32)- Same for u-Law.save_alaw(path: Union[str, os.PathLike], audio_data: numpy.ndarray(dtype=numpy.float32)) -> bool- Encodes an array to A-Law and writes bytes to a specified file. audio_data can be anything convertible to numpy.ndarray(dtype=numpy.float32).save_ulaw(path: Union[str, os.PathLike], audio_data: numpy.ndarray(dtype=numpy.float32)) -> bool- Same for u-Law.decode_alaw(encoded_bts: bytes) -> numpy.ndarray(dtype=numpy.float32)- Decodes raw A-Law bytes to float32 audio.decode_ulaw(encoded_bts: bytes) -> numpy.ndarray(dtype=numpy.float32)- Same for u-Law.encode_alaw(audio_data: numpy.ndarray(dtype=numpy.float32)) -> bytes- Encodes an array to A-Law and returns bytes object. audio_data can be anything convertible to numpy.ndarray(dtype=numpy.float32).encode_ulaw(audio_data: numpy.ndarray(dtype=numpy.float32)) -> bytes- Same for u-Law.
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
g711-1.6.5.tar.gz
(8.5 kB
view details)
File details
Details for the file g711-1.6.5.tar.gz.
File metadata
- Download URL: g711-1.6.5.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.1.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcde5490806c7b86b4a9634eb3fa888e9bbc8a54878338bf52383c1bf9f69996
|
|
| MD5 |
d5d8ad62eaaed31b4733b285dda5eca9
|
|
| BLAKE2b-256 |
c11fc6cd74727bc30f2cb01727143f8bcbcf95f0e93dccce417a94aa2a85e218
|