Views
No views yet

| Model | Context Length | Length (min) | Weight |
|---|---|---|---|
| VibeVoice-Realtime-0.5B | 8K | ~10 min | HF link |
| VibeVoice-1.5B | 64K | ~90 min | HF link |
| VibeVoice-ASR | 64K | ~60 min | HF link |
| VibeVoice-AcousticTokenizer | - | - | This model |
pip install git+https://github.com/huggingface/transformers.git1import torch
2from scipy.io import wavfile
3
4from transformers import AutoFeatureExtractor, VibeVoiceAcousticTokenizerModel
5from transformers.audio_utils import load_audio_librosa
6
7
8model_id = "microsoft/VibeVoice-AcousticTokenizer"
9
10# load model
11feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
12model = VibeVoiceAcousticTokenizerModel.from_pretrained(model_id, device_map="auto")
13print("Model loaded on device:", model.device)
14print("Model dtype:", model.dtype)
15
16# load audio
17audio = load_audio_librosa(
18 "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
19 sampling_rate=feature_extractor.sampling_rate,
20)
21
22# preprocess audio
23inputs = feature_extractor(
24 audio,
25 sampling_rate=feature_extractor.sampling_rate,
26 pad_to_multiple_of=3200,
27).to(model.device, model.dtype)
28print("Input audio shape:", inputs.input_values.shape)
29# Input audio shape: torch.Size([1, 1, 224000])
30
31with torch.no_grad():
32 # set VAE sampling to False for deterministic output
33 encoded_outputs = model.encode(inputs.input_values, sample=False)
34 print("Latent shape:", encoded_outputs.latents.shape)
35 # Latent shape: torch.Size([1, 70, 64])
36
37 decoded_outputs = model.decode(**encoded_outputs)
38 print("Reconstructed audio shape:", decoded_outputs.audio.shape)
39 # Reconstructed audio shape: torch.Size([1, 1, 224000])
40
41# Save audio
42output_fp = "vibevoice_acoustic_tokenizer_reconstructed.wav"
43wavfile.write(output_fp, feature_extractor.sampling_rate, decoded_outputs.audio.squeeze().float().cpu().numpy())
44print(f"Reconstructed audio saved to : {output_fp}")use_cache parameter can be used when encoding or decoding audio:1import torch
2from scipy.io import wavfile
3
4from transformers import AutoFeatureExtractor, VibeVoiceAcousticTokenizerModel
5from transformers.audio_utils import load_audio_librosa
6
7
8model_id = "microsoft/VibeVoice-AcousticTokenizer"
9
10
11# load model
12feature_extractor = AutoFeatureExtractor.from_pretrained(model_id)
13model = VibeVoiceAcousticTokenizerModel.from_pretrained(model_id, device_map="auto")
14print("Model loaded on device:", model.device)
15print("Model dtype:", model.dtype)
16
17# load audio
18audio = load_audio_librosa(
19 "https://huggingface.co/datasets/bezzam/vibevoice_samples/resolve/main/voices/en-Alice_woman.wav",
20 sampling_rate=feature_extractor.sampling_rate,
21)
22
23# preprocess audio
24inputs = feature_extractor(
25 audio,
26 sampling_rate=feature_extractor.sampling_rate,
27 pad_to_multiple_of=3200,
28).to(model.device, model.dtype)
29print("Input audio shape:", inputs.input_values.shape)
30# Input audio shape: torch.Size([1, 1, 224000])
31
32# chache will be initialized after a first pass
33encoder_cache = None
34decoder_cache = None
35with torch.no_grad():
36 # set VAE sampling to False for deterministic output
37 encoded_outputs = model.encode(inputs.input_values, sample=False, padding_cache=encoder_cache, use_cache=True)
38 print("Latent shape:", encoded_outputs.latents.shape)
39 # Latent shape: torch.Size([1, 70, 64])
40
41 decoded_outputs = model.decode(encoded_outputs.latents, padding_cache=decoder_cache, use_cache=True)
42 print("Reconstructed audio shape:", decoded_outputs.audio.shape)
43 # Reconstructed audio shape: torch.Size([1, 1, 224000])
44
45 # `padding_cache` can be extracted from the outputs for subsequent passes
46 encoder_cache = encoded_outputs.padding_cache
47 print("Number of cached encoder layers:", len(encoder_cache.per_layer_in_channels))
48 # Number of cached encoder layers: 34
49 decoder_cache = decoded_outputs.padding_cache
50 print("Number of cached decoder layers:", len(decoder_cache.per_layer_in_channels))
51 # Number of cached decoder layers: 34
52
53# Save audio
54output_fp = "vibevoice_acoustic_tokenizer_reconstructed.wav"
55wavfile.write(output_fp, feature_extractor.sampling_rate, decoded_outputs.audio.squeeze().float().cpu().numpy())
56print(f"Reconstructed audio saved to : {output_fp}")
57