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
VibeVoiceStreamingProcessor.from_pretrained uses the same tokenizer-selection logic as the non-streaming processor: a case-insensitive 'qwen' substring check on language_model_pretrained_name, with a single implemented branch. The advertised 'Supported types: Qwen, Llama, Gemma' does not match the code — only Qwen actually loads.
Source
Thrown at vibevoice/processor/vibevoice_streaming_processor.py:101
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
- Set language_model_pretrained_name to a Qwen repo id (default 'Qwen/Qwen2.5-1.5B') or keep 'qwen' in the local path name.
- Symlink or rename local fine-tune directories so the substring check passes.
- Subclass and extend the branch if a different tokenizer family is genuinely required.
Example fix
# before
proc = VibeVoiceStreamingProcessor.from_pretrained('/srv/models/vibevoice-1.5B',
language_model_pretrained_name='/srv/models/lm')
# after
proc = VibeVoiceStreamingProcessor.from_pretrained('/srv/models/vibevoice-1.5B',
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():
name = 'Qwen/Qwen2.5-1.5B' # or fail loudly: raise ValueError(...)
processor = VibeVoiceStreamingProcessor.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:
proc = VibeVoiceStreamingProcessor.from_pretrained(model_path)
except ValueError as e:
if 'Unsupported tokenizer type' in str(e):
proc = VibeVoiceStreamingProcessor.from_pretrained(
model_path, language_model_pretrained_name='Qwen/Qwen2.5-1.5B')
else:
raise Prevention
- Treat 'qwen' in the checkpoint path as a hard requirement when configuring streaming.
- Store tokenizer repo ids as constants rather than derived paths.
- Recheck the substring condition after renaming or migrating model directories.
When it happens
Trigger: Constructing the streaming processor with language_model_pretrained_name lacking 'qwen': Llama/Gemma repo ids, or a local directory like '/srv/models/lm' that contains a Qwen tokenizer but no 'qwen' in the path.
Common situations: Switching an inference server from VibeVoiceProcessor to VibeVoiceStreamingProcessor while reusing a renamed local checkpoint path; on-prem mirrors that strip the org name.
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
- Unsupported decoder model type: {decoder_config.get('model_t
- Prediction type {prediction_type} not implemented
AI-assisted analysis of microsoft/VibeVoice@94da20d98b (2026-08-15).
Data as JSON: /api/errors/04a40afa8247b0a2.
Report an issue: GitHub.