alt.freeweights.embed / VibeVoice-AcousticTokenizer
From: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.embedSubject:

VibeVoice-AcousticTokenizer

Date: 2026-11-15Commit: f0643beSigned: 2DC28CC7B26A283B ✓

Feature extraction model with 687M parameters. Safetensors weights, 1.37 GB in all. Published by microsoft under MIT.

687M params1.37GBVibeVoice-AcousticTokenizersafetensorspermissive
FactsParams687MSize1.37 GBFormatssafetensorsTaskfeature extractionLicenseMITFrom sourcepermissive
$ fw get microsoft/VibeVoice-AcousticTokenizer
# manifest sha256 3dbefb9cefd5… · 1.37 GB · 6 files
$ fw verify ./VibeVoice-AcousticTokenizer microsoft/VibeVoice-AcousticTokenizer
From sourceHosted (signed)microsoft/VibeVoice-AcousticTokenizerLast check: 2026-11-15 03:30 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Evaluate with

Overview

Size
1.37 GB
Weights
1.37 GB (safetensors)
Parameters
687M
Formats
safetensors
Task
feature extraction
License
MIT (permissive)
Files
6, each with a sha256
Publisher
microsoft
Added
2026-11-15
Section
alt.freeweights.embed
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:30 UTCpassed

Model card

From the publisher at commit f0643be. Shown as plain text with links; images open at the publisher.

VibeVoice Acoustic Tokenizer#

VibeVoice is a novel framework designed for generating expressive, long-form, multi-speaker conversational audio, such as podcasts, from text. It addresses significant challenges in traditional Text-to-Speech (TTS) systems, particularly in scalability, speaker consistency, and natural turn-taking.

A core innovation of VibeVoice is its use of continuous speech tokenizers (Acoustic and Semantic) operating at an ultra-low frame rate of 7.5 Hz. These tokenizers efficiently preserve audio fidelity while significantly boosting computational efficiency for processing long sequences. VibeVoice employs a next-token diffusion framework, leveraging a Large Language Model (LLM) to understand textual context and dialogue flow, and a diffusion head to generate high-fidelity acoustic details.

The speech tokenizer is a key component for both VibeVoice TTS and ASR.

➡️ Technical Report: VibeVoice Technical Report

➡️ Project Page: microsoft/VibeVoice

Image: Tokenizer Comparison

Models#

ModelContext LengthLength (min)Weight
VibeVoice-Realtime-0.5B8K~10 minHF link
VibeVoice-1.5B64K~90 minHF link
VibeVoice-ASR64K~60 minHF link
VibeVoice-AcousticTokenizer--This model

Usage#

Setup#

Until the VibeVoice acoustic tokenizer is part of an official Transformers release, it can be used by installing from the source code:

pip install git+https://github.com/huggingface/transformers.git

Example#

Encoding and decoding

import torch
from scipy.io import wavfile

from transformers import AutoFeatureExtractor, VibeVoiceAcousticTokenizerModel
from transformers.audio_utils import load_audio_librosa


model_id = "microsoft/VibeVoice-AcousticTokenizer"

# load model
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
model = VibeVoiceAcousticTokenizerModel.from_pretrained(model_id, device_map="auto")
print("Model loaded on device:", model.device)
print("Model dtype:", model.dtype)

# load audio
audio = load_audio_librosa(
    "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
    sampling_rate=feature_extractor.sampling_rate,
)

# preprocess audio
inputs = feature_extractor(
    audio,
    sampling_rate=feature_extractor.sampling_rate,
    pad_to_multiple_of=3200,
).to(model.device, model.dtype)
print("Input audio shape:", inputs.input_values.shape)
# Input audio shape: torch.Size([1, 1, 224000])

with torch.no_grad():
    # set VAE sampling to False for deterministic output
    encoded_outputs = model.encode(inputs.input_values, sample=False)
    print("Latent shape:", encoded_outputs.latents.shape)
    # Latent shape: torch.Size([1, 70, 64])

    decoded_outputs = model.decode(**encoded_outputs)
    print("Reconstructed audio shape:", decoded_outputs.audio.shape)
    # Reconstructed audio shape: torch.Size([1, 1, 224000])

# Save audio
output_fp = "vibevoice_acoustic_tokenizer_reconstructed.wav"
wavfile.write(output_fp, feature_extractor.sampling_rate, decoded_outputs.audio.squeeze().float().cpu().numpy())
print(f"Reconstructed audio saved to : {output_fp}")

Original audio

Encoded/decoded audio

Streaming

For streaming ASR or TTS, where cached states need to be tracked, the use_cache parameter can be used when encoding or decoding audio:

import torch
from scipy.io import wavfile

from transformers import AutoFeatureExtractor, VibeVoiceAcousticTokenizerModel
from transformers.audio_utils import load_audio_librosa


model_id = "microsoft/VibeVoice-AcousticTokenizer"


# load model
feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
model = VibeVoiceAcousticTokenizerModel.from_pretrained(model_id, device_map="auto")
print("Model loaded on device:", model.device)
print("Model dtype:", model.dtype)

# load audio
audio = load_audio_librosa(
    "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
    sampling_rate=feature_extractor.sampling_rate,
)

# preprocess audio
inputs = feature_extractor(
    audio,
    sampling_rate=feature_extractor.sampling_rate,
    pad_to_multiple_of=3200,
).to(model.device, model.dtype)
print("Input audio shape:", inputs.input_values.shape)
# Input audio shape: torch.Size([1, 1, 224000])

# chache will be initialized after a first pass
encoder_cache = None
decoder_cache = None
with torch.no_grad():
    # set VAE sampling to False for deterministic output
    encoded_outputs = model.encode(inputs.input_values, sample=False, padding_cache=encoder_cache, use_cache=True)
    print("Latent shape:", encoded_outputs.latents.shape)
    # Latent shape: torch.Size([1, 70, 64])

    decoded_outputs = model.decode(encoded_outputs.latents, padding_cache=decoder_cache, use_cache=True)
    print("Reconstructed audio shape:", decoded_outputs.audio.shape)
    # Reconstructed audio shape: torch.Size([1, 1, 224000])

    # `padding_cache` can be extracted from the outputs for subsequent passes
    encoder_cache = encoded_outputs.padding_cache
    print("Number of cached encoder layers:", len(encoder_cache.per_layer_in_channels))
    # Number of cached encoder layers: 34
    decoder_cache = decoded_outputs.padding_cache
    print("Number of cached decoder layers:", len(decoder_cache.per_layer_in_channels))
    # Number of cached decoder layers: 34

# Save audio
output_fp = "vibevoice_acoustic_tokenizer_reconstructed.wav"
wavfile.write(output_fp, feature_extractor.sampling_rate, decoded_outputs.audio.squeeze().float().cpu().numpy())
print(f"Reconstructed audio saved to : {output_fp}")

Files

6 files · 1.37 GBWeights 1.37 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 6 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md6.66 KB434fd85f71564185d28a900334da5e3570aaef83bbcfd57d82708d1be67bb0d7
config.json581 B18cdee8d97b92e9a9f0955c4a88a6f3a6a7dcd4f604f8b5940d8c7e3240efc78
figs/tokenizer_comparison.png96.8 KBc4f723b6ff72e874fecc9d70f4f105af23fbe8390bc99d5dee79e37b76b1a10c
model.safetensors1.37 GB3acc2dcc75c6b18dffdc74e9ec7a79ea3849ccf69323499fd9bf54209e531a6a
preprocessor_config.json274 B6a7735f9981a3b62039efb76f2decccacb58e535bad028b0ef55d932270a8aa5
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
f0643be7ca pinned now2026-11-15 03:30 UTC6 files · 1.37 GB

Use it

$ fw get microsoft/VibeVoice-AcousticTokenizer
# manifest sha256 3dbefb9cefd5… · 1.37 GB · 6 files
$ fw verify ./VibeVoice-AcousticTokenizer microsoft/VibeVoice-AcousticTokenizer
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/microsoft/VibeVoice-AcousticTokenizer.json --dir ./VibeVoice-AcousticTokenizer $ python3 fw.py verify ./VibeVoice-AcousticTokenizer ./microsoft__VibeVoice-AcousticTokenizer.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/VibeVoice-AcousticTokenizer --revision f0643be7cab5b9c91c6f0038e3b8dde13e3e107e --local-dir ./VibeVoice-AcousticTokenizer
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModel, AutoTokenizer tok = AutoTokenizer.from_pretrained("microsoft/VibeVoice-AcousticTokenizer", revision="f0643be7cab5b9c91c6f0038e3b8dde13e3e107e") model = AutoModel.from_pretrained("microsoft/VibeVoice-AcousticTokenizer", revision="f0643be7cab5b9c91c6f0038e3b8dde13e3e107e", device_map="auto")

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
434fd85f71564185d28a900334da5e3570aaef83bbcfd57d82708d1be67bb0d7
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: microsoft <huggingface.co/microsoft>Newsgroups: alt.freeweights.embedSubject: VibeVoice-AcousticTokenizerDate: 2026-11-15Commit: f0643beSigned: 2DC28CC7B26A283B ✓
Upstream
microsoft/VibeVoice-AcousticTokenizer
Pinned commit
f0643be7cab5b9c91c6f0038e3b8dde13e3e107e
Manifest
VibeVoice-AcousticTokenizer.json · .minisig
Manifest sha256
3dbefb9cefd587a62e598f46c6f00120e5a907d6d660decefe6652e76445680a
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:30 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/microsoft/VibeVoice-AcousticTokenizer.json $ curl -O https://freeweights.allternit.com/manifests/microsoft/VibeVoice-AcousticTokenizer.json.minisig $ minisign -Vm VibeVoice-AcousticTokenizer.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download microsoft/VibeVoice-AcousticTokenizer
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. VibeVoice-AcousticTokenizer.json. Provenance. Takedown history: none.
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: all-MiniLM-L6-v1
From: unsloth <huggingface.co/unsloth>Subject: all-MiniLM-L6-v2
From: mlx-community <huggingface.co/mlx-community>Subject: all-MiniLM-L6-v2-4bit
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: all-mpnet-base-v1
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: allenai-specter
From: sentence-transformers <huggingface.co/sentence-transformers>Subject: bert-base-nli-max-tokens