Compresión de voz: en LPC, ¿cómo funciona el filtro predictivo lineal a nivel general?


7

Hola, estoy tomando un curso de sistemas multimedia y me estoy preparando para mi examen el martes. Estoy tratando de entender la compresión LPC a nivel general, pero tengo problemas con lo que está sucediendo con la parte del filtro predictivo lineal. Este es mi entendimiento hasta ahora:

LPC funciona digitalizando la señal analógica y dividiéndola en segmentos. Para cada uno de los segmentos determinamos las características clave de la señal y tratamos de codificarlas con la mayor precisión posible. Las características clave son el tono de la señal (es decir, la frecuencia de formante básica), el volumen de la señal y si el sonido se expresa o no. Los parámetros llamados parámetros de excitación del tracto vocal también se determinan y se utilizan en el modelo del tracto vocal para modelar mejor el estado del tracto vocal que generó el sonido. Estos datos se pasan a través de la red y se decodifican en el receptor. El tono de la señal se usa como entrada para un sintetizador sonoro o no sonoro, y los datos de volumen se usan para aumentar la amplitud de esta señal resultante.

En mis notas dice que el modelo del tracto vocal utiliza un filtro predictivo lineal y que la enésima muestra es una combinación lineal de las muestras p anteriores más un término de error, que proviene del sintetizador.

  • ¿Significa esto que mantenemos un promedio de las últimas p muestras tanto en el codificador como en el decodificador? Entonces, ¿en el codificador solo transmitimos datos que corresponden a la diferencia entre esta señal promedio y real?

  • ¿Por qué es una combinación lineal de estas muestras anteriores? Tengo entendido que extraemos el volumen, la frecuencia y la naturaleza sonora / sorda del sonido y luego generamos estos parámetros de excitación del tracto vocal al elegirlos para que la diferencia entre la señal real y la señal predicha sea lo más pequeña posible. ¿Seguramente un PROMEDIO de estas muestras anteriores sería una mejor indicación de la siguiente muestra?

Si hay algún agujero en mi entendimiento si pudiera señalarlo, ¡sería genial! ¡Gracias por adelantado!

Respuestas:


13

Los codificadores de voz LPC (comenzando con el antiguo estándar LPC10, que parece ser al que se refiere aquí) se basan en el modelo de filtro fuente de producción de voz. El discurso puede caracterizarse por las siguientes propiedades:

  • El sonido crudo emitido por la laringe (a través de la vibración de las cuerdas vocales, o simplemente el aire que fluye a través de ella, abriéndose las cuerdas vocales).
  • La función de transferencia del filtro lograda por el sistema articulatorio, filtra aún más este sonido en bruto.

Los primeros codificadores LPC (LPC10) adoptan el siguiente modelo de esos dos pasos:

  • La laringe emite ruido blanco, caracterizado por una amplitud σ; o un tren de impulsos periódicos, caracterizado por una amplitudσ y una frecuencia f0
  • La función de transferencia del sistema articulador es de la forma 11kakzk, y por lo tanto se caracteriza completamente por los coeficientes ak

El principio de los primeros codificadores LPC (como LPC10) es estimar estos parámetros a partir de fragmentos de la señal de audio entrante; transmitirlos a través de la red; y que un generador de sonido reproduzca un sonido de estos parámetros en el receptor. Observe que en este proceso, nada de las muestras de audio originales se transmite realmente. Para hacer una analogía musical, es como escuchar una interpretación de piano, transcribirla, enviar la partitura y hacer que alguien la toque en el otro extremo ... El resultado en el otro extremo estará cerca de la interpretación original, pero solo se ha enviado una representación.

¿Significa esto que mantenemos un promedio de las últimas p muestras tanto en el codificador como en el decodificador?

No, así no es como funciona. En el lado del codificador, ejecutamos un proceso conocido como estimación AR (autorregresiva), para estimar el conjunto de coeficientes del filtro AR que coincide mejor con la envoltura espectral de la señal de entrada. Este es un intento de recuperar los coeficientes del filtrado realizado por el sistema articulador.

Estos coeficientes se envían a través de la red (junto con el tono, la bandera de voz / sorda y el volumen). El decodificador usa esos coeficientes para filtrar una señal de excitación sintética, que puede ser ruido blanco (cuadro sordo) o un peine de impulsos periódicos (cuadro sonoro). Estos coeficientes se usan de la siguiente manera en el decodificador para recuperar la señal de saliday(n):

y(n)=excitation(n)kaky(nk)

Observe que, dado que este es un filtro IIR de todos los polos, las muestras combinadas linealmente son muestras anteriores producidas por el filtro.

Entonces, ¿en el codificador solo transmitimos datos que corresponden a la diferencia entre esta señal promedio y real?

No hay "promedio" y no hay transmisión de una señal de diferencia. El decodificador es un sintetizador de sonido con algunos parámetros; y el codificador busca el conjunto de parámetros para este sintetizador que más se acerca a la señal de entrada.

¿Por qué es una combinación lineal de estas muestras anteriores?

De hecho, otras opciones serían posibles aquí, pero la ventaja de usar un modelo autorregresivo es la siguiente:

  • En este modelo utilizamos un filtro IIR de todos los polos para simular el sistema articulatorio. Este es un buen modelo, ya que puede capturar fuertes caídas espectrales y picos con un pequeño número de coeficientes; y el sistema articulatorio es capaz de enfatizar / atenuar bandas estrechas de frecuencias (ver formantes ). Si hubiéramos usado un filtro FIR de todos ceros, habríamos necesitado muchos más coeficientes para capturar con precisión el tipo de respuestas de filtro que puede lograr el sistema articulador.
  • En el extremo del codificador, el problema de estimar los coeficientes del filtro es computacionalmente eficiente: se puede hacer usando la recursión de Levinson-Durbin en las primeras muestras de la autocorrelación. Los modelos lineales más complejos (ARMA) o los modelos no lineales son computacionalmente más caros o intratables.
  • En el extremo del decodificador, la síntesis es muy simple: solo necesitamos suficiente memoria para realizar un seguimiento de las n muestras anteriores emitidas por el decodificador.

¿Seguramente un PROMEDIO de estas muestras anteriores sería una mejor indicación de la siguiente muestra?

Esto no es verdad. Por ejemplo, suponga que la señal de entrada es una onda sinusoidal. La prediccióny^(n)=(2ω2)y(n1)y(n2) tiene cero error, mientras y^(norte)=y(norte-1)+y(norte-2)2 está mal la mayor parte del tiempo (en particular, no captura el hecho de que la onda sinusoidal aumenta estrictamente la mitad del tiempo, disminuyendo estrictamente el resto del tiempo, por lo que y(norte)no debe estar "entre" los valores anteriores). Las señales de voz no son ondas sinusoidales, por supuesto, pero puede extraer mucha más potencia de modelado de un modelo conpags parámetros (orden p AR), que fuera de un modelo con cero (promedio).

Además, vale la pena tener en cuenta que existe una definición matemática de "mejor" (minimizando el valor esperado del cuadrado del error), que produce un procedimiento para encontrar el valor óptimo de los coeficientes.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.