exercise-book-yq / OpenACELP

Free ACELP vocoder

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OpenACELP

Free ACELP vocoder. It is based on ETSI EN 300-395-2[1] and TIA/EIA IS-641[2], but it is not compatible with any of them (as their codebooks can't be published as a part of this codec). OpenACELP is an alternative to (great) Codec 2. It uses floating point arithmetic. I aim to optimize it for the STM32 Cortex-M7, as they have a hardware floating point unit (FPU).

I'm using TED-LIUM release 1 (OpenSLR link, download) as the english speech corpus and py-lbg for codebook generation using Linde-Buzo-Gray (LBG) algorithm.

Actual phase: closed loop search.

Done:

  • speech framing and windowing (refer to [2], chapter 2.2.1)
  • autocorrelation parameters of the windowed speech, bandwidth expanded (equation 2.4 in [2])
  • Levinson-Durbin recursive solver for computing Linear Prediction (LP) filter coefficients ([2] - chapter 2.2.2)
  • conversion of LP coefficients to the LSPs (Line Spectral Pair) in the cosine domain ([2] - chapter 2.2.3)
  • Chebyshev polynomials generation for LSPs root search (LSP polynomial evaluation)
  • prepared test codebooks for LSP split-vector quantization (LSPs in the cosine domain). Refer to [1], chapter 4.2.2.3.
  • LSP codebooks full search
  • quantized and unquantized LSPs interpolation for each subframe
  • LSP->LP conversion
  • speech weighting filtering ([1] - chapter 4.2.2.4) - looks like it works
  • open-loop pitch search (T_O) - looks like it works too

About

Free ACELP vocoder

License:GNU General Public License v2.0


Languages

Language:C 97.8%Language:Shell 1.3%Language:Python 0.8%