Skip to main content

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

  1. Python 3.5+
  2. Numpy (will be installed anyway before the building procedure)
  3. 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


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)

Uploaded Source

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

Hashes for g711-1.6.5.tar.gz
Algorithm Hash digest
SHA256 bcde5490806c7b86b4a9634eb3fa888e9bbc8a54878338bf52383c1bf9f69996
MD5 d5d8ad62eaaed31b4733b285dda5eca9
BLAKE2b-256 c11fc6cd74727bc30f2cb01727143f8bcbcf95f0e93dccce417a94aa2a85e218

See more details on using hashes here.

Supported by

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