Skip to main content

Python code for "Sylber: Syllabic Embedding Representation of Speech from Raw Audio"

Project description

SYLBER: Syllabic Embedding Representation of Speech from Raw Audio

Paper | Audio Samples

Sylber is the first of its kind that yields extremely short tokens from raw audio (on average, 4.27 tokens/sec) through dynamic tokenization at the syllable granularity.

The model is developed and trained by Berkeley Speech Group.

Updates

03/02/2025

  1. Distribute inference package

01/22/2025

  1. Sylber is accepted at ICLR 2025!

12/25/2024

  1. Initial code release with training and inference pipelines.
  2. Checkpoint release

Installation

The model can be installed through pypi for inference.

pip install sylber

Please check demo notebook for the usage. For training, please follow the below instructions.

Usage

from sylber import Segmenter

# Loading Sylber
segmenter = Segmenter(model_ckpt="sylber")


# Run Sylber
wav_file = "samples/sample.wav"

outputs = segmenter(wav_file, in_second=True) # in_second can be False to output segments in frame numbers.

# outputs = {"segments": numpy array of [start, end] of segment,
#            "segment_features": numpy array of segment-averaged features,
#            "hidden_states": numpy array of raw features used for segmentation.

Environment

Install the dependencies from requirements.txt:

pip install -r requirements.txt

Training SYLBER

Datasets and Checkpoints

  1. Noise Dataset for WavLM-based Augmentation: The noise dataset for the WavLM noise augmentation is sourced from DNS Challenge. You can use the following script to download the dataset:

    bash download-dns-challenge-3.sh
    

    and untar datasets_fullband/datasets_fullband.noise_fullband.tar.bz2

  2. Generated Datasets: The other data used for training SYLBER are generated using the SDHuBERT repository. Please follow the instructions there for data preparation.

  3. Checkpoints: Pretrained model checkpoints for sylber are available on Google Drive: link

Stage 1 Training

python train.py --config-name=sylber_base

Stage 2 Training

python train.py --config-name=sylber_base_stage2

The training is split into two stages. Make sure to review the configurations in the configs/ directory for detailed settings.

Inference

Segmentation and Visualization

For inference to obtain segmentations and visualize results, please refer to demo.ipynb.

SPARC (formerly known as Articulatory Encodec)

For using SPARC, refer to Speech-Articulatory-Coding for installation and usage instructions.

Acknowledgements

Website adapted from: https://github.com/BytedanceSpeech/bytedancespeech.github.io

Citation

If you use this work, please cite our paper:

@article{cho2024sylber,
  title={Sylber: Syllabic Embedding Representation of Speech from Raw Audio},
  author={Cho, Cheol Jun and Lee, Nicholas and Gupta, Akshat and Agarwal, Dhruv and Chen, Ethan and Black, Alan W and Anumanchipalli, Gopala K},
  journal={arXiv preprint arXiv:2410.07168},
  year={2024}
}

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

sylber-0.1.4.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

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

sylber-0.1.4-py3-none-any.whl (27.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sylber-0.1.4.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for sylber-0.1.4.tar.gz
Algorithm Hash digest
SHA256 99c38359d2dad7a3bea33b5afc4554852ae3665083c2cb5b1753d7dfa254f673
MD5 270a9dbafb591be3d5bcd7e9104779b9
BLAKE2b-256 8371265be5626257580ea78c7f8699908edc2951a91d12327ca908c96d0db1d9

See more details on using hashes here.

File details

Details for the file sylber-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: sylber-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 27.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for sylber-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 20503303bd7937acfe6ce76c5550b87711cd8b421918ef7ea713d514528124e4
MD5 db9ee5e046c17d7c90a95b7f2122eee1
BLAKE2b-256 96e9bfd0be756910c8a3fa040d0c111c8a163585b11e12ad2dc43dfc4c2446cd

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