Skip to content

feat(importers): add vibevoice-cpp importer for GGUF bundles#9685

Merged
mudler merged 1 commit intomasterfrom
feat/vibevoice-cpp-importer
May 6, 2026
Merged

feat(importers): add vibevoice-cpp importer for GGUF bundles#9685
mudler merged 1 commit intomasterfrom
feat/vibevoice-cpp-importer

Conversation

@localai-bot
Copy link
Copy Markdown
Collaborator

Summary

  • New VibeVoiceCppImporter routes vibevoice.cpp GGUF bundles (e.g. mudler/vibevoice.cpp-models) to the vibevoice-cpp backend, mirroring how the whisper importer handles ggml-*.bin for whisper.cpp.
  • Detects by repo name (vibevoice.cpp / vibevoice-cpp), by vibevoice-*.gguf + tokenizer.gguf file pair, or via preferences.backend="vibevoice-cpp". Defaults to the realtime TTS model; preferences.usecase=asr selects the ASR/diarization variant. Bundles the mandatory tokenizer.gguf and (for TTS) a voice prompt, emitting the Options[] (tokenizer=…, voice=…, type=asr) the backend's Load() expects.
  • Registered ahead of the existing VibeVoiceImporter so C++ bundles aren't swallowed by the older Python-backend substring match. The Python importer remains the fallback for microsoft/VibeVoice-1.5B and similar safetensors repos.

Example output

For https://huggingface.co/mudler/vibevoice.cpp-models with default preferences:

backend: vibevoice-cpp
parameters:
  model: vibevoice-cpp/<name>/vibevoice-realtime-0.5B-q8_0.gguf
options:
  - tokenizer=vibevoice-cpp/<name>/tokenizer.gguf
  - voice=vibevoice-cpp/<name>/voice-en-Carter_man.gguf
known_usecases: [tts]

preferences.usecase=asr swaps in vibevoice-asr-*.gguf, prepends type=asr, sets transcript, and skips the voice prompt.

/backends/known picks the new backend up automatically since it walks defaultImporters.

Test plan

  • go test ./core/gallery/importers/ — 263/263 specs pass (10 new + 253 unchanged)
  • Live-HF spec against mudler/vibevoice.cpp-models (TTS + ASR paths)
  • Offline fixtures: layout under vibevoice-cpp/<name>/, role auto-detection, quant preference, voice override
  • Regression guard: importer does not claim microsoft/VibeVoice-1.5B
  • Existing VibeVoiceImporter and TTS-ambiguity tests still pass

Routes mudler/vibevoice.cpp-models and similar repos to the vibevoice-cpp
backend. Detects via repo name ("vibevoice.cpp"/"vibevoice-cpp"), file
listing (vibevoice-*.gguf + tokenizer.gguf), or preferences.backend
override. Defaults to the realtime TTS model; preferences.usecase=asr
selects the ASR/diarization variant. Bundles the required tokenizer.gguf
and (for TTS) a voice prompt, emitting the Options[] entries the backend
expects. Registered ahead of VibeVoiceImporter so the C++ bundles aren't
swallowed by the older Python-backend substring match.

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
Assisted-by: claude-code:claude-opus-4-7 [Read] [Edit] [Write] [Bash]
@mudler mudler merged commit 6d56bf9 into master May 6, 2026
50 checks passed
@mudler mudler deleted the feat/vibevoice-cpp-importer branch May 6, 2026 11:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants