Tag: libllsm

libllsm2 Release

The long-awaited update for libllsm is finally ready. libllsm2, successor to the speech processing library powering Moresampler and Synthesizer V (WIP) is now available on Github.

While there isn't much change to the model and algorithm, the new version is more of a clean-up and rewriting with a focus on the usability in host applications. In particular, I have been long aware that the separated storage of layer 0 and layer 1 parameters in libllsm is an extremely clumsy design when access to both layers is desired. This problem is addressed in libllsm2 by storing all frame-level parameters in a dynamic array structure named llsm_container, which can hold an arbitrary number of arbitrary objects. llsm_container frames are further wrapped in a llsm_chunk, the equivalent of a llsm_model in the legacy version.

libllsm Update

So as promised a year ago, I updated the libllsm repository to the latest version used by Moresampler.

There're quite some changes to the legacy version, in particular the two-layer representation of speech signal. The legacy libllsm is now called layer 0 LLSM, and there's a layer 1 model being added. The layer 1 model is an acoustic re-interpretation of the harmonic component in layer 0 and the conversion from layer 0 to layer 1 involves a new algorithm, which I prefer to call as Pseudo Glottal Inverse Filtering (PGIF), that approximately inverses the speech production process. All these changes are made in the direction that sticks to the principles of speech production, and enables more acoustically-meaningful modification of speech.

More details can be found in readme.md.