{"record":{"id":"d86c712f0d550dde","repo":"babysor/MockingBird","slug":"please-load-wave-rnn-in-memory-before-using-it","errorCode":null,"errorMessage":"Please load Wave-RNN in memory before using it","messagePattern":"Please load Wave-RNN in memory before using it","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"models/vocoder/wavernn/inference.py","lineNumber":58,"sourceCode":"\ndef is_loaded():\n    return _model is not None\n\n\ndef infer_waveform(mel, normalize=True,  batched=True, target=8000, overlap=800, \n                   progress_callback=None):\n    \"\"\"\n    Infers the waveform of a mel spectrogram output by the synthesizer (the format must match \n    that of the synthesizer!)\n    \n    :param normalize:  \n    :param batched: \n    :param target: \n    :param overlap: \n    :return: \n    \"\"\"\n    if _model is None:\n        raise Exception(\"Please load Wave-RNN in memory before using it\")\n    \n    if normalize:\n        mel = mel / hp.mel_max_abs_value\n    mel = torch.from_numpy(mel[None, ...])\n    wav = _model.generate(mel, batched, target, overlap, hp.mu_law, progress_callback)\n    return wav, hp.sample_rate\n","sourceCodeStart":40,"sourceCodeEnd":65,"githubUrl":"https://github.com/babysor/MockingBird/blob/28dc5e14f12d7c754612af2fde8e78a4b03f8616/models/vocoder/wavernn/inference.py#L40-L65","documentation":"Wave-RNN inference is also module-global: infer_waveform requires load_model() to have populated `_model`; calling it before that raises this Exception.","triggerScenarios":"Calling wavernn.inference.infer_waveform(mel, ...) before load_model(weights_fpath) in the process.","commonSituations":"Synthesis scripts that forget vocoder init; model load failed silently due to bad path; fresh notebook session after restart.","solutions":["Call wavernn.inference.load_model(path) first","Validate the checkpoint path exists","Use is_loaded() to gate synthesis"],"exampleFix":"# before\nwav = wavernn.infer_waveform(mel)\n\n# after\nwavernn.inference.load_model(Path('models/vocoder/wavernn/checkpoint.pt'))\nwav = wavernn.infer_waveform(mel)","handlingStrategy":"validation","validationCode":"from models.vocoder import wavernn\nif not wavernn.is_loaded():\n    wavernn.load_model(Path('models/vocoder/wavernn/checkpoint.pt'))","typeGuard":"def wavernn_ready() -> bool:\n    from models.vocoder.wavernn import inference\n    return inference._model is not None","tryCatchPattern":"try:\n    wav, sr = wavernn.infer_waveform(mel)\nexcept Exception as e:\n    if 'load Wave-RNN' in str(e):\n        wavernn.load_model(ckpt); wav, sr = wavernn.infer_waveform(mel)\n    else: raise","preventionTips":["Initialize the vocoder before the synthesis loop","Verify checkpoint paths exist in setup"],"tags":["vocoder","wavernn","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"}