{"record":{"id":"cfc778b36a963015","repo":"babysor/MockingBird","slug":"please-load-hifi-gan-in-memory-before-using-it","errorCode":null,"errorMessage":"Please load hifi-gan in memory before using it","messagePattern":"Please load hifi-gan in memory before using it","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"models/vocoder/hifigan/inference.py","lineNumber":63,"sourceCode":"        _device = torch.device('cpu')\n\n    generator = Generator(h).to(_device)\n    state_dict_g = load_checkpoint(\n        weights_fpath, _device\n    )\n    generator.load_state_dict(state_dict_g['generator'])\n    generator.eval()\n    generator.remove_weight_norm()\n\n\ndef is_loaded():\n    return generator is not None\n\n\ndef infer_waveform(mel, progress_callback=None):\n\n    if generator is None:\n        raise Exception(\"Please load hifi-gan in memory before using it\")\n\n    mel = torch.FloatTensor(mel).to(_device)\n    mel = mel.unsqueeze(0)\n\n    with torch.no_grad():\n        y_g_hat = generator(mel)\n        audio = y_g_hat.squeeze()\n    audio = audio.cpu().numpy()\n\n    return audio, output_sample_rate\n\n","sourceCodeStart":45,"sourceCodeEnd":75,"githubUrl":"https://github.com/babysor/MockingBird/blob/28dc5e14f12d7c754612af2fde8e78a4b03f8616/models/vocoder/hifigan/inference.py#L45-L75","documentation":"infer_waveform in models/vocoder/hifigan/inference.py requires the module-global `generator` to be initialized by a prior load_model() call; otherwise it raises immediately.","triggerScenarios":"Calling infer_waveform(mel) without a preceding successful load_model(...) in the same process.","commonSituations":"Skipping vocoder init in a custom synthesis script; failed/aborted checkpoint load; toolbox configured with missing hifgan weights.","solutions":["Call hifigan.load_model(weights_fpath) before infer_waveform","Confirm the .pt/.pth checkpoint path is correct and the file loads","Guard with is_loaded() before calling"],"exampleFix":"# before\nwav = hifigan.infer_waveform(mel)\n\n# after\nhigigan = hifigan.load_model(Path('logs/hifigan/generator_v1'))\nwav = hifigan.infer_waveform(mel)","handlingStrategy":"validation","validationCode":"from models.vocoder import hifigan\nif not hifigan.is_loaded():\n    hifigan.load_model(Path('models/vocoder/hifigan/generator_v1'))","typeGuard":"def hifigan_ready() -> bool:\n    from models.vocoder.hifigan import inference\n    return inference.generator is not None","tryCatchPattern":"try:\n    wav = hifigan.infer_waveform(mel)\nexcept Exception as e:\n    if 'load hifi-gan' in str(e):\n        hifigan.load_model(ckpt); wav = hifigan.infer_waveform(mel)\n    else: raise","preventionTips":["Load vocoder weights once at app startup","Guard with is_loaded() and surface a clear 'loading weights' message in UIs"],"tags":["vocoder","hifigan","model-loading","state"],"backgroundTag":"model-not-loaded","analyzedSha":"28dc5e14f12d7c754612af2fde8e78a4b03f8616","analyzedAt":"2026-08-27T02:26:53.589Z","schemaVersion":2},"datasetVersion":"2026-08-27T03:17:27.898Z"}