microsoft/VibeVoice · error · ValueError
Unsupported tokenizer type for {language_model_pretrained_na
Error message
Unsupported tokenizer type for {language_model_pretrained_name}. Supported types: Qwen, Llama, Gemma. What it means
VibeVoiceProcessor.from_pretrained selects a text tokenizer class by checking for a 'qwen' substring (case-insensitive) in `language_model_pretrained_name`. Despite the error text advertising 'Supported types: Qwen, Llama, Gemma', the code only implements the Qwen branch, so any non-Qwen name raises ValueError. This is a message/implementation mismatch in the library.
Source
Thrown at vibevoice/processor/vibevoice_processor.py:105
config = {
"speech_tok_compress_ratio": 3200,
"db_normalize": True,
}
# Extract main processor parameters
speech_tok_compress_ratio = config.get("speech_tok_compress_ratio", 3200)
db_normalize = config.get("db_normalize", True)
# Load tokenizer - try from model path first, then fall back to Qwen
language_model_pretrained_name = config.get("language_model_pretrained_name", None) or kwargs.pop("language_model_pretrained_name", "Qwen/Qwen2.5-1.5B")
logger.info(f"Loading tokenizer from {language_model_pretrained_name}")
if 'qwen' in language_model_pretrained_name.lower():
tokenizer = VibeVoiceTextTokenizerFast.from_pretrained(
language_model_pretrained_name,
**kwargs
)
else:
raise ValueError(f"Unsupported tokenizer type for {language_model_pretrained_name}. Supported types: Qwen, Llama, Gemma.")
# Load audio processor
if "audio_processor" in config:
# Create audio processor from config
audio_config = config["audio_processor"]
audio_processor = VibeVoiceTokenizerProcessor(
sampling_rate=audio_config.get("sampling_rate", 24000),
normalize_audio=audio_config.get("normalize_audio", True),
target_dB_FS=audio_config.get("target_dB_FS", -25),
eps=audio_config.get("eps", 1e-6),
)
else:
# Create default audio processor
audio_processor = VibeVoiceTokenizerProcessor()
# Create and return the processor
return cls(
tokenizer=tokenizer,View on GitHub (pinned to 94da20d98b)
Solutions
- Use 'Qwen/Qwen2.5-1.5B' (default) or another Qwen repo id containing 'qwen'.
- For a local Qwen fine-tune, name or symlink the directory so the path contains 'qwen'.
- If you truly need Llama/Gemma tokenizers, subclass VibeVoiceProcessor and add the branch; do not rely on the message's claim.
Example fix
# before
processor = VibeVoiceProcessor.from_pretrained(
..., language_model_pretrained_name='meta-llama/Llama-3-8B')
# after
processor = VibeVoiceProcessor.from_pretrained(
..., language_model_pretrained_name='Qwen/Qwen2.5-1.5B') Defensive patterns
Strategy: validation
Validate before calling
name = config.get('language_model_pretrained_name') or 'Qwen/Qwen2.5-1.5B'
assert 'qwen' in name.lower(), (
f'Only Qwen tokenizers load; {name!r} lacks "qwen" (local dirs must keep it in the path)') Type guard
def is_qwen_tokenizer_name(name: str) -> bool:
return isinstance(name, str) and 'qwen' in name.lower() Try / catch
try:
processor = VibeVoiceProcessor.from_pretrained(model_path)
except ValueError as e:
if 'Unsupported tokenizer type' in str(e):
raise ValueError('Set language_model_pretrained_name to a Qwen checkpoint; '
'Llama/Gemma are NOT actually wired up despite the message') from e
raise Prevention
- Do not trust the error message's claim that Llama/Gemma work — only Qwen is implemented.
- Keep 'qwen' in the path of local fine-tunes or symlink accordingly.
- Validate the tokenizer name before from_pretrained to give a clearer upstream error.
When it happens
Trigger: Setting language_model_pretrained_name to any string without 'qwen': 'meta-llama/Llama-3-8B', 'google/gemma-7b', or a local path like './lm-checkpoint' (even if it is actually a Qwen save).
Common situations: Users believing the error message and trying Llama or Gemma, then hitting the same error; local fine-tuned Qwen checkpoints saved under a name that lost 'qwen'; company-internal mirror hostnames that rename repos.
Related errors
- Unsupported tokenizer type for {language_model_pretrained_na
- Unsupported tokenizer type for {language_model_pretrained_na
- Unsupported dist_type: {dist_type}, expected 'fix' or 'gauss
- Prediction type {prediction_type} not implemented
- GroupNorm doesn't support causal evaluation.
AI-assisted analysis of microsoft/VibeVoice@94da20d98b (2026-08-15).
Data as JSON: /api/errors/c61ce83c3a321c33.
Report an issue: GitHub.