Skip to main content

Python bindings for blip25-mbe — P25 MBE/IMBE/AMBE+2 vocoder family

Project description

blip25-mbe (Python)

Python bindings for blip25-mbe, a research-grade Rust implementation of the MBE / IMBE / AMBE+2 vocoder family for P25 Phase 1 and Phase 2 pipelines.

Patents. AMBE+2 is covered by US 8,359,197 until 2028-05-20. See PATENT_NOTICE.md.

Install

pip install blip25-mbe

Wheels are published for Linux (manylinux 2_28), macOS (x86_64 + arm64), and Windows for Python 3.9+.

Quick start

import numpy as np
import blip25_mbe

# One-shot frame round-trip
vc = blip25_mbe.Vocoder(blip25_mbe.Rate.IMBE_7200X4400)
pcm_in = np.zeros(vc.frame_samples, dtype=np.int16)   # 160 samples = 20 ms
bits = vc.encode_pcm(pcm_in)                          # 18-byte FEC frame
pcm_out = vc.decode_bits(bits)                        # back to np.int16

# Streaming over arbitrary-sized chunks
enc = blip25_mbe.LiveEncoder(blip25_mbe.Rate.AMBEPLUS2_3600X2450)
for chunk in pcm_chunks:                              # any size, any rate
    for frame in enc.push(chunk):
        socket.send(frame)                            # 9 bytes each

# Wire-format bridge (Phase 1 IMBE ⇄ Phase 2 AMBE+2)
tc = blip25_mbe.Transcoder(
    blip25_mbe.Rate.IMBE_7200X4400,
    blip25_mbe.Rate.AMBEPLUS2_3600X2450,
)
out_bits = tc.transcode(in_bits)

encode_pcm accepts any np.int16 array; decode_bits returns a fresh np.int16 array. Length must match vc.frame_samples / vc.fec_frame_bytes.

Rates

Python Codec Wire size Bitrate
Rate.IMBE_7200X4400 IMBE 18 bytes 7 200 bps
Rate.IMBE_4400X4400 IMBE no-FEC 11 bytes 4 400 bps
Rate.AMBEPLUS2_3600X2450 AMBE+2 9 bytes 3 600 bps
Rate.AMBEPLUS2_2450X2450 AMBE+2 no-FEC 7 bytes 2 450 bps

Building from source

pip install maturin
maturin develop --release       # editable install into current venv
pytest                          # smoke tests

Sibling packages

blip25-mbe is the vocoder wrapper. Future blip25 components (decoder / SDR layer) will ship as separate PyPI packages with their own blip25_* import names — they don't share a namespace with this one.

License

MIT — see LICENSE.

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

blip25_mbe-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

blip25_mbe-0.1.0-cp39-abi3-win_amd64.whl (614.3 kB view details)

Uploaded CPython 3.9+Windows x86-64

blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl (759.9 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ x86-64

blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl (616.5 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

blip25_mbe-0.1.0-cp39-abi3-macosx_11_0_arm64.whl (572.3 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

blip25_mbe-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl (682.2 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file blip25_mbe-0.1.0.tar.gz.

File metadata

  • Download URL: blip25_mbe-0.1.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blip25_mbe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7f4dc7df55652d7a90095d0bd93e8b0efed5b7560347117cab6c501d0543b321
MD5 e023cec348a22abe38c08eeb65ce861b
BLAKE2b-256 340ee797bc0eaae9afb74edbba4b7fa8a9d4c39df1e81cc49ae082a1b68aa6b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0.tar.gz:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blip25_mbe-0.1.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: blip25_mbe-0.1.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 614.3 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for blip25_mbe-0.1.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c79f3e26ddc1d8e362fbe2d2c821620c319166b97f8a2c560f25d270f9ef4c3a
MD5 7a895155f1a7388d582db1cabbb7f395
BLAKE2b-256 fc1036fa4a56b684bd14807335defd1fb18895420694a15b642a31643f9faabc

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0-cp39-abi3-win_amd64.whl:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd26385b1a4cd93ed3528cc27eb89637fc1dbaa4c0ae62c728ba4de0fe394a3c
MD5 f3284d1fff2d5b0df8c21c62d2b27d2a
BLAKE2b-256 195867a816b2bccd66e1ec5b60faf17a46348d4ddc18beb8f08d3fed019acd78

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 95736bebe4b6dcb361d49fbcf7193f1c2f305b9c3a59de9b5ce759e5a8b5a560
MD5 7fe45299eaabec1fc6220ccbac21d43c
BLAKE2b-256 e035e0dee15188b62398522758c385672281ee6a82b64013e8620d736d9ecde6

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0-cp39-abi3-manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blip25_mbe-0.1.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1947efdf805eb5088535072c93394adc049981340d9b4ad28235786a2a1ab423
MD5 b12c7a24a2e5e98b612706a5e975b69f
BLAKE2b-256 c2faa03568b20297eb4516e8e85bb3c8f5db30be5d4ccfb305b91d813a0ceddb

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file blip25_mbe-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 45837f04cade272c6c46ff62791c4f61d7bf9ff261471e2e0e0d81825f051e6f
MD5 507b3d85cd92a34921809dac77cd79c6
BLAKE2b-256 77478509e6a7e31cdca72a6facc0010f24537d39f518f564a5a452b7dd810b68

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.0-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: wheels.yml on OpenBLIP25/blip25-mbe-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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