Skip to main content

No project description provided

Project description

soundstream-light

PyPI Version Monthly Downloads

Minimal SoundStream encoder/decoder tooling with a native C++ CLI and a Python API.

Python Usage (PyPI)

Install package with uv,

uv pip install soundstream-light

Use soundstream_light in Python,

from scipy.io import wavfile
import numpy as np
from soundstream_light import encode, decode

rate, pcm = wavfile.read("test.wav")
waveform = pcm.astype(np.float32) / 32768.0

embeddings, meta = encode(waveform)
recon = decode(embeddings, metadata=meta)
wavfile.write("test_recon.wav", rate, (np.clip(recon, -1.0, 1.0) * 32768.0).astype(np.int16))

The module auto-downloads models on first use if they are missing.

Fetch Models

Use the bundled CLI to download the required .tflite files manually (defaults to ./models or SOUNDSTREAM_MODELS_DIR). If you are working from the repository, prefix the command with uv run so the local package is used.

uv run soundstream-cli models fetch

With models present, you can test the encoder/decoder round trip using the bundled test.wav example:

uv run soundstream-cli encode test.wav test.embeddings
uv run soundstream-cli decode test.embeddings test_recon.wav

Evaluate Round-Trip Quality

Install optional metric dependencies (STOI/PESQ) when you need quality numbers:

uv pip install 'soundstream-light[metrics]'

With models present, you can run the built-in evaluator against the bundled test.wav (or any mono 16 kHz WAV) to get SI-SNR, STOI, optional PESQ, and RTF:

uv run soundstream-cli evaluate test.wav --compute-pesq --save-recon test_eval.wav

Sample results on the bundled test.wav (M1, XNNPACK, 1 thread):

SI-SNR: 7.59 dB
STOI:   0.9676
PESQ:   3.6041
RTF:    0.015
Encode: 0.017 s | Decode: 0.023 s

Build from source

You can also build from source code by cloning this repo. Make sure that git, cmake, a C++17 compiler, and typical build tools (e.g. make, ninja, perl) are available.

Prepare TensorFlow Lite headers and libraries:

bash scripts/setup_tflite_from_source.sh --clean --branch v2.15.0 --generator Ninja --build-type Release

Configure and build:

cmake -S . -B build \
  -DTFLITE_SOURCE_DIR="$(pwd)/third_party/tflite-src" \
  -DTFLITE_BUILD_DIR="$(pwd)/third_party/tflite-src/cmake_build"
cmake --build build --target soundstream_cli

The binary appears at build/soundstream_cli. Then build PyPI artifacts from source,

export TFLITE_SOURCE_DIR="$(pwd)/third_party/tflite-src"
export TFLITE_BUILD_DIR="$(pwd)/third_party/tflite-src/cmake_build"
uv build

Verify the Build

Run the C++ round-trip test (requires models):

# Download models once if you haven't already
uv pip install dist/soundstream_light-*.whl
uv run soundstream-cli models fetch

cmake --build build --target soundstream_roundtrip_test
ctest --test-dir build --output-on-failure

Python unit tests can be executed without compiling the extension:

uv run python -m unittest tests.test_api

License

Apache License 2.0 — see LICENSE.

Acknowledgements

This project builds on the source code of Lyra.

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

soundstream_light-0.1.4.tar.gz (513.0 kB view details)

Uploaded Source

Built Distribution

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

soundstream_light-0.1.4-cp312-cp312-manylinux_2_39_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

File details

Details for the file soundstream_light-0.1.4.tar.gz.

File metadata

  • Download URL: soundstream_light-0.1.4.tar.gz
  • Upload date:
  • Size: 513.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for soundstream_light-0.1.4.tar.gz
Algorithm Hash digest
SHA256 bcdb16f6361b63c134ebba48202ae6248a722d021b09a231f938152318e1edb6
MD5 53d48823bdc49d48bd256aa61b848125
BLAKE2b-256 1304d829e7900848cc7638bdfcbd5f2735d1d58324e676f09a8921a92aee2a1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for soundstream_light-0.1.4.tar.gz:

Publisher: publish.yml on binbinsh/soundstream-light

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

File details

Details for the file soundstream_light-0.1.4-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for soundstream_light-0.1.4-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 4c0d374c9cca94045866217da0ca2c0eb76aea0a13806e6bd5c4b3e43c264ebe
MD5 da3356d802c2e98687f9c9085a6bba2d
BLAKE2b-256 493ad3807435d549062871240f830f5b80ead9f83699bdaed92449dd68122b5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for soundstream_light-0.1.4-cp312-cp312-manylinux_2_39_x86_64.whl:

Publisher: publish.yml on binbinsh/soundstream-light

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