espnet/yodas-granary
Viewer • Updated • 67.6M • 27.8k • 28
How to use LocalAI-io/vibevoice-asr-it-yodas-only-ggml with VibeVoice:
import torch, soundfile as sf, librosa, numpy as np
from vibevoice.processor.vibevoice_processor import VibeVoiceProcessor
from vibevoice.modular.modeling_vibevoice_inference import VibeVoiceForConditionalGenerationInference
# Load voice sample (should be 24kHz mono)
voice, sr = sf.read("path/to/voice_sample.wav")
if voice.ndim > 1: voice = voice.mean(axis=1)
if sr != 24000: voice = librosa.resample(voice, sr, 24000)
processor = VibeVoiceProcessor.from_pretrained("LocalAI-io/vibevoice-asr-it-yodas-only-ggml")
model = VibeVoiceForConditionalGenerationInference.from_pretrained(
"LocalAI-io/vibevoice-asr-it-yodas-only-ggml", torch_dtype=torch.bfloat16
).to("cuda").eval()
model.set_ddpm_inference_steps(5)
inputs = processor(text=["Speaker 0: Hello!\nSpeaker 1: Hi there!"],
voice_samples=[[voice]], return_tensors="pt")
audio = model.generate(**inputs, cfg_scale=1.3,
tokenizer=processor.tokenizer).speech_outputs[0]
sf.write("output.wav", audio.cpu().numpy().squeeze(), 24000)GGUF quantizations for vibevoice.cpp of LocalAI-io/vibevoice-asr-it-yodas-only — VibeVoice-ASR fine-tuned on YODAS-only Italian (asr_only ~87k + ast 200k cap, conversational YouTube audio).
| File | Quantization | Size | Notes |
|---|---|---|---|
vibevoice-asr-it-yodas-only-q8_0.gguf |
Q8_0 | ~13 GB | Near-lossless, recommended for accuracy |
vibevoice-asr-it-yodas-only-q5_0.gguf |
Q5_0 | ~11 GB | Sweet spot quality/size |
vibevoice-asr-it-yodas-only-q4_0.gguf |
Q4_0 | ~10 GB | Smallest, fastest |
hf download LocalAI-io/vibevoice-asr-it-yodas-only-ggml vibevoice-asr-it-yodas-only-q5_0.gguf --local-dir .
./build/bin/vibevoice-cli asr --model vibevoice-asr-it-yodas-only-q5_0.gguf --audio audio.wav
See vibevoice.cpp for build + tokenizer setup.
4-bit
5-bit
8-bit
Base model
microsoft/VibeVoice-ASR