Skip to main content

Module audio_decoder

Module audio_decoder 

Source
Expand description

Audio decoder for LFM2.5-Audio: vocoder GGUF loading + weight structures.

Three sub-models loaded from the vocoder GGUF:

  1. DecoderModel — samples 8 audio codes per frame from LLM embedding
  2. DepthformerModel — small 6-layer attention-only transformer (backbone of DecoderModel)
  3. Detokenizer — codes → spectrogram → PCM (not loaded here yet — Phase 5)

Structs§

AudioDecoderWeights
All weights for the audio decoder (loaded from vocoder GGUF).
CodebookWeights
Per-codebook embedding layer weights.
DecoderConfig
Configuration for the decoder model (8-codebook sampling).
DepthformerConfig
Configuration for the depthformer (small transformer inside the decoder).
DepthformerLayerWeights
Per-layer weights for one depthformer layer. Uses MmapWeight for GEMV to match ggml’s Q4_0 computation path.
DepthformerState
Runtime state for the depthformer (reset per audio frame).
DetokLayerWeights
Weights for one detokenizer LFM2 layer.
DetokenizerConfig
Config for the detokenizer’s LFM2 backbone.
DetokenizerState
Runtime state for the detokenizer’s LFM2 backbone.
DetokenizerWeights
All detokenizer weights (loaded from vocoder GGUF).
IstftStreamer
Stateful streaming inverse STFT (overlap-add) processor.

Traits§

AudioGpu
GPU-accelerated audio backend. Implementations provide Metal or WGPU dispatch for the depthformer (code sampling) and detokenizer (spectrum).

Functions§

build_gpu_audio_decoder
Try to construct a GPU audio decoder backend for the given vocoder GGUF file.
build_hann
Periodic Hann window of length n_fft: w[n] = 0.5·(1 - cos(2π·n/n_fft)).
build_idft_basis
Build the real inverse-DFT basis for the GPU ISTFT.
depthformer_forward
Run one forward pass through the depthformer (1 token, n_embd input → n_embd output).
depthformer_forward_inplace
In-place depthformer forward pass directly reading state.depthformer_in.
depthformer_forward_into
In-place depthformer forward pass that avoids allocating a returning Vec.
detok_embed_codes
Embed 8 audio codes into a single vector for the detokenizer. Looks up each code with per-codebook offset, averages across codebooks.
detokenize_to_spectrum
Run the detokenizer: codes → spectrogram frames (before ISTFT).
embed_audio_token
Convert 8 audio codes back into an embedding for feeding to the LLM.
istft_to_pcm
Convert spectrogram frames to PCM audio samples via ISTFT.
sample_audio_frame
Sample one audio frame (8 codes) from an LLM embedding.
upsample
Linear interpolation upsample: 1 token → n_up tokens.