babysor/MockingBird · error · Exception
Please load fre-gan in memory before using it
Error message
Please load fre-gan in memory before using it
What it means
infer_waveform in models/vocoder/fregan/inference.py is module-level state-based: it requires load_model() to have been called first, which sets the module-global `generator`. If generator is None, synthesis is refused.
Source
Thrown at models/vocoder/fregan/inference.py:63
_device = torch.device('cpu')
generator = FreGAN(h).to(_device)
state_dict_g = load_checkpoint(
weights_fpath, _device
)
generator.load_state_dict(state_dict_g['generator'])
generator.eval()
generator.remove_weight_norm()
def is_loaded():
return generator is not None
def infer_waveform(mel, progress_callback=None):
if generator is None:
raise Exception("Please load fre-gan in memory before using it")
mel = torch.FloatTensor(mel).to(_device)
mel = mel.unsqueeze(0)
with torch.no_grad():
y_g_hat = generator(mel)
audio = y_g_hat.squeeze()
audio = audio.cpu().numpy()
return audio, output_sample_rate
View on GitHub (pinned to 28dc5e14f1)
Solutions
- Call load_model(checkpoint_path) before infer_waveform
- Verify the Fre-GAN checkpoint path exists and loads without exceptions
- Check is_loaded() (returns generator is not None) before synthesizing
Example fix
# before
import models.vocoder.fregan.inference as fregan
wav = fregan.infer_waveform(mel) # raises
# after
fregan.load_model(Path('models/vocoder/fregan/checkpoint.pt'))
wav = fregan.infer_waveform(mel) Defensive patterns
Strategy: validation
Validate before calling
from models.vocoder import fregan
if not fregan.is_loaded():
fregan.load_model(Path('models/vocoder/fregan/generator.pt'))
wav = fregan.infer_waveform(mel) Type guard
def fregan_ready() -> bool:
from models.vocoder.fregan import inference
return inference.generator is not None Try / catch
try:
wav = fregan.infer_waveform(mel)
except Exception as e:
if 'load fre-gan' in str(e):
fregan.load_model(ckpt); wav = fregan.infer_waveform(mel)
else: raise Prevention
- Always call load_model at pipeline init before any infer_waveform
- Check is_loaded() before synthesizing in long-lived UIs
When it happens
Trigger: Calling infer_waveform(mel) before calling fregan.inference.load_model(fpath) in the same Python process (or after a failed load).
Common situations: Toolbox/UI code path that skips vocoder loading; the model file path was wrong so load silently failed; calling from a fresh process/import.
Related errors
- Please load hifi-gan in memory before using it
- Please load Wave-RNN in memory before using it
- Package 'webrtcvad' not found. This package enables noise re
- Model folder {VOC_MODELS_DIRT} doesn't exist.
- Model folder {VOC_MODELS_DIRT} doesn't exist.
AI-assisted analysis of babysor/MockingBird@28dc5e14f1 (2026-08-27).
Data as JSON: /api/errors/5e8930ff16ffb026.
Report an issue: GitHub.