CoolFace
Datasetpublic

Trelis/libritts-snac-tokens

libritts-snac-tokens To learn about Trelis Enterprise Voice Services, see Trelis.com/voice-ai-services. LibriTTS-R encoded with hubertsiuzdak/snac_24khz (hierarchical RVQ, 3 levels at 12 / 24 / 48 fps, 4,096 entries each). Orpheus-style interleave per 1/12-sec audio frame: [L0[t], L1[2t], L1[2t+1], L2[4t], L2[4t+1], L2[4t+2], L2[4t+3]]. 7 tokens per audio frame, 84 fps flat. Offset vocab 12,288: L0 in [0, 4096), L1 in [4096, 8192), L2 in [8192, 12288). Decode with level =… See the full description on the dataset page: https://huggingface.co/datasets/Trelis/libritts-snac-tokens.

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
0likes62downloads
Dataset Card

libritts-snac-tokens

To learn about Trelis Enterprise Voice Services, see Trelis.com/voice-ai-services.

LibriTTS-R encoded with hubertsiuzdak/snac_24khz (hierarchical RVQ, 3 levels at 12 / 24 / 48 fps, 4,096 entries each).

Orpheus-style interleave per 1/12-sec audio frame: [L0[t], L1[2t], L1[2t+1], L2[4t], L2[4t+1], L2[4t+2], L2[4t+3]]. 7 tokens per audio frame, 84 fps flat.

Offset vocab 12,288: L0 in [0, 4096), L1 in [4096, 8192), L2 in [8192, 12288). Decode with level = token // 4096, code = token % 4096.

Splits

Mirrors the source LibriTTS-R splits (filtered by parler-tts; total ≈ 538 h):

splitutteranceshours
train.clean.100~32 k~53 h
train.clean.360~112 k~218 h
train.other.500~250 k~258 h
dev.clean~5.6 k~9 h

Source: `parler-tts/libritts_r_filtered`. Disjointness between splits is structural (HF split definition — no speaker overlap between train. and dev.).

Schema (one row per utterance)

columntypedescription
idstringSource utterance id (LibriTTS speaker_chapter_segment)
speakerstringLibriTTS speaker id
durationfloat32Audio duration in seconds
textstringtext_normalized from source
codeslist[uint32]Codec tokens

Loading

python
from datasets import load_dataset

# Load the whole dataset (all 4 splits)
ds = load_dataset("Trelis/libritts-snac-tokens")

# Just one split
clean_360 = load_dataset("Trelis/libritts-snac-tokens", split="train.clean.360")

# Combine all train splits
all_train = load_dataset("Trelis/libritts-snac-tokens",
                         split="train.clean.100+train.clean.360+train.other.500")

print(all_train[0])

Companion datasets (same audio content, different tokenization)

  • —Trelis/libritts-bpe-tokens
  • —Trelis/libritts-mimi-tokens
  • —Trelis/libritts-neucodec-tokens

Reproducing

Encoder code: TrelisResearch/audio-bits (see scripts/encode_codec.py and scripts/tokenize_text.py).

Audio prep: source LibriTTS-R is 24 kHz. NeuCodec (16 kHz) is downsampled with torchaudio.functional.resample(method="sinc_interp_kaiser") (polyphase, anti-aliased). Mimi and SNAC consume 24 kHz directly. Utterances > 20 s are truncated to 20 s of audio (text is kept full).

Per-row token count = min(ceil(n_audio_samples * T / max_padded_samples), T) where T is the codec's per-batch output length, so the count tracks the model's own time grid and is exact for fixed-stride encoders.

License

CC-BY-4.0 (matches LibriTTS-R source). SNAC model weights: MIT.