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.1.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.1-cp39-abi3-win_amd64.whl (615.0 kB view details)

Uploaded CPython 3.9+Windows x86-64

blip25_mbe-0.1.1-cp39-abi3-manylinux_2_28_x86_64.whl (761.3 kB view details)

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

blip25_mbe-0.1.1-cp39-abi3-manylinux_2_28_aarch64.whl (616.6 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.28+ ARM64

blip25_mbe-0.1.1-cp39-abi3-macosx_11_0_arm64.whl (572.8 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

blip25_mbe-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl (683.7 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: blip25_mbe-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 78671f612342f93fe7b03242b79a68c091c453f00fc78d1c9a4f70bd9b8daee1
MD5 48f522c44af72c69701816616771f374
BLAKE2b-256 afbfa5f31ade8bf5d80217d0a51d6fdf95bcdff8acc05544e0cf6da3b7f0d1c6

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1.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.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: blip25_mbe-0.1.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 615.0 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.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 92c3ec0001bda58db857b588ef59b73468f672b0f1c5ae86e5909ba3de3af618
MD5 6089e6cea8f9de209cd6c89fd86d4266
BLAKE2b-256 5c9f3fb0d52ced47c08d74f2974d5cc89d834e8a92184a7b60457e65ad3280f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1-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.1-cp39-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.1-cp39-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6945061e9bcfe63e403674ea6a86ae60a01f94bea9298a48362aabd95b212cd
MD5 c7e5c77d974408b64b73393f7da4cba8
BLAKE2b-256 8e34ee6bc5ad95394df0628d25ba6f9ae0f6e98f4010a3b1f03806b4959a8986

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1-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.1-cp39-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.1-cp39-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57814147dbb19fe30be22599affb8e27d899901642e50c1349906aa0f75ac734
MD5 9ee61fe17652c6dc6b55d64b276e1a76
BLAKE2b-256 3cc7396828a39b0daa558508c83bfdbb9949159a2f8d1e28cf41359f7098def3

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1-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.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c85ec05cd6a1919a8dafe33f08b7fb464ca7448a98dd8a86662dbd62dae7b7ce
MD5 a5b75d47dd1851fc30d1cb8f930b6e77
BLAKE2b-256 551636dc588e5a35c403b9bdfb6871f261a756318c30849e3eee1507d92a82c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1-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.1-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for blip25_mbe-0.1.1-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ad740dba9facb70713965899dd9d06baad8001c45541a7dfc10743b37f305c98
MD5 08af5a533420d7371848fa531d091a6e
BLAKE2b-256 3fe3404001b9e457c87450663d535d8ac43744471b82dc0a7d3955780ae8058a

See more details on using hashes here.

Provenance

The following attestation bundles were made for blip25_mbe-0.1.1-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