microsoft/VibeVoice · error · ValueError
Unsupported tokenizer type for {language_model_pretrained_na
Error message
Unsupported tokenizer type for {language_model_pretrained_name} What it means
VibeVoiceASRProcessor.from_pretrained builds its text tokenizer from `language_model_pretrained_name`. The only supported family is Qwen (detected by a case-insensitive 'qwen' substring in the repo name); any other name — Llama, Gemma, a local fine-tune directory without 'qwen' in the path — raises this ValueError before the audio processor is built.
Source
Thrown at vibevoice/processor/vibevoice_asr_processor.py:147
logger.warning(f"Could not load preprocessor_config.json: {e}")
logger.warning("Using default configuration")
# Extract parameters
speech_tok_compress_ratio = config.get("speech_tok_compress_ratio", 3200)
target_sample_rate = config.get("target_sample_rate", 24000)
normalize_audio = config.get("normalize_audio", True)
# Load tokenizer
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 = VibeVoiceASRTextTokenizerFast.from_pretrained(
language_model_pretrained_name,
**kwargs
)
else:
raise ValueError(f"Unsupported tokenizer type for {language_model_pretrained_name}")
# Load audio processor
audio_processor = VibeVoiceTokenizerProcessor(
sampling_rate=target_sample_rate,
normalize_audio=normalize_audio,
target_dB_FS=config.get("target_dB_FS", -25),
eps=config.get("eps", 1e-6),
)
return cls(
tokenizer=tokenizer,
audio_processor=audio_processor,
speech_tok_compress_ratio=speech_tok_compress_ratio,
target_sample_rate=target_sample_rate,
normalize_audio=normalize_audio,
)
def save_pretrained(self, save_directory: Union[str, os.PathLike], **kwargs):View on GitHub (pinned to 94da20d98b)
Solutions
- Use a Qwen-family checkpoint id such as 'Qwen/Qwen2.5-1.5B' (the default) for language_model_pretrained_name.
- If using a local fine-tune, ensure the directory/path string still contains 'qwen' (case-insensitive), or rename it accordingly.
- For other model families, subclass the processor and add a tokenizer branch instead of relying on this loader.
Example fix
# before
processor = VibeVoiceASRProcessor.from_pretrained('/checkpoints/my-asr-lm') # no 'qwen' in path
# after
processor = VibeVoiceASRProcessor.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'
if 'qwen' not in name.lower():
raise ValueError(f'ASR processor requires a Qwen tokenizer, got {name!r}')
processor = VibeVoiceASRProcessor.from_pretrained(..., language_model_pretrained_name=name) Type guard
def is_qwen_tokenizer_name(name: str) -> bool:
return isinstance(name, str) and 'qwen' in name.lower() Try / catch
try:
processor = VibeVoiceASRProcessor.from_pretrained(model_path)
except ValueError as e:
if 'Unsupported tokenizer type' in str(e):
processor = VibeVoiceASRProcessor.from_pretrained(
model_path, language_model_pretrained_name='Qwen/Qwen2.5-1.5B')
else:
raise Prevention
- Pin language_model_pretrained_name to a known Qwen repo id in your config.
- Keep 'qwen' in local checkpoint directory names so the substring check matches.
- Fail early with your own clearer message when the name is non-Qwen.
When it happens
Trigger: Passing a config or kwarg language_model_pretrained_name that does not contain 'qwen', e.g. 'meta-llama/Llama-3.1-8B', 'google/gemma-2-2b', or a local path like '/models/my-finetune' even when the underlying model is Qwen-based.
Common situations: Pointing at a locally saved copy of Qwen whose directory name dropped the 'qwen' token; attempting to swap the LM backbone to Llama/Gemma (the error message's sibling in vibevoice_processor.py even claims Llama/Gemma are supported — they are not wired up here); typos in the repo id.
Related errors
- Unsupported tokenizer type for {language_model_pretrained_na
- Unsupported dist_type: {dist_type}, expected 'fix' or 'gauss
- Unsupported tokenizer type for {language_model_pretrained_na
- Prediction type {prediction_type} not implemented
- segment_length must be positive
AI-assisted analysis of microsoft/VibeVoice@94da20d98b (2026-08-15).
Data as JSON: /api/errors/104059ac09b94ced.
Report an issue: GitHub.