La codificación predictiva lineal ( LPC ) es un método utilizado principalmente en el procesamiento de señales de audio y procesamiento de voz para representar la envolvente espectral de una señal digital de voz en forma comprimida , utilizando la información de un modelo predictivo lineal . [1] [2] Es una de las técnicas de análisis de voz más poderosas y uno de los métodos más útiles para codificar voz de buena calidad a una tasa de bits baja y proporciona estimaciones altamente precisas de los parámetros de voz. LPC es el método más utilizado en codificación de voz y síntesis de voz .
Descripción general
LPC comienza con la suposición de que una señal de voz es producida por un zumbador al final de un tubo (para sonidos sonoros ), con silbidos y estallidos añadidos ocasionales (para sonidos sordos como sibilantes y oclusivos ). Aunque aparentemente burdo, este modelo es en realidad una aproximación cercana a la realidad de la producción del habla. La glotis (el espacio entre las cuerdas vocales) produce el zumbido, que se caracteriza por su intensidad ( volumen ) y frecuencia (tono). El tracto vocal (garganta y boca) forma el tubo, que se caracteriza por sus resonancias; estas resonancias dan lugar a formantes o bandas de frecuencia mejoradas en el sonido producido. Los silbidos y estallidos se generan por la acción de la lengua, los labios y la garganta durante las sibilantes y oclusivas.
LPC analiza la señal de voz estimando los formantes, eliminando sus efectos de la señal de voz y estimando la intensidad y frecuencia del zumbido restante. El proceso de eliminar los formantes se denomina filtrado inverso, y la señal restante después de la sustracción de la señal modelada filtrada se denomina residuo.
Los números que describen la intensidad y frecuencia del zumbido, los formantes y la señal de residuo pueden almacenarse o transmitirse en otro lugar. LPC sintetiza la señal de voz invirtiendo el proceso: use los parámetros de zumbido y el residuo para crear una señal de fuente, use los formantes para crear un filtro (que representa el tubo) y ejecute la fuente a través del filtro, lo que resulta en voz.
Dado que las señales de voz varían con el tiempo, este proceso se realiza en fragmentos cortos de la señal de voz, que se denominan tramas; generalmente, de 30 a 50 cuadros por segundo dan un habla inteligible con buena compresión.
Historia temprana
La predicción lineal (estimación de señales) se remonta al menos a la década de 1940 cuando Norbert Wiener desarrolló una teoría matemática para calcular los mejores filtros y predictores para detectar señales ocultas en el ruido. [3] [4] Poco después de que Claude Shannon estableciera una teoría general de codificación, C. Chapin Cutler , [5] Bernard M. Oliver [6] y Henry C. Harrison realizaron un trabajo sobre codificación predictiva . [7] Peter Elias en 1955 publicó dos artículos sobre codificación predictiva de señales. [8] [9]
Los predictores lineales fueron aplicados al análisis del habla de forma independiente por Fumitada Itakura de la Universidad de Nagoya y Shuzo Saito de Nippon Telegraph and Telephone en 1966 y en 1967 por Bishnu S. Atal , Manfred R. Schroeder y John Burg. Itakura y Saito describieron un enfoque estadístico basado en la estimación de máxima verosimilitud ; Atal y Schroeder describieron un enfoque de predictor lineal adaptativo ; Burg esbozó un enfoque basado en el principio de máxima entropía . [4] [10] [11] [12]
En 1969, Itakura y Saito introdujeron el método basado en la correlación parcial (PARCOR), Glen Culler propuso la codificación de voz en tiempo real y Bishnu S. Atal presentó un codificador de voz LPC en la Reunión Anual de la Sociedad Estadounidense de Acústica . En 1971, Philco-Ford hizo una demostración de LPC en tiempo real utilizando hardware LPC de 16 bits ; se vendieron cuatro unidades. [13] La tecnología LPC fue avanzada por Bishnu Atal y Manfred Schroeder durante las décadas de 1970 y 1980. [13] En 1978, Atal y Vishwanath et al. de BBN desarrolló el primer algoritmo LPC de tasa variable . [13] El mismo año, Atal y Manfred R. Schroeder de Bell Labs propusieron un códec de voz LPC llamado codificación predictiva adaptativa , que utilizaba un algoritmo de codificación psicoacústica que explotaba las propiedades de enmascaramiento del oído humano. [14] [15] Esto se convirtió más tarde en la base de la técnica de codificación perceptual utilizada por el formato de compresión de audio MP3 , introducido en 1993. [14] La predicción lineal excitada por código (CELP) fue desarrollada por Schroeder y Atal en 1985. [16 ]
LPC es la base de la tecnología de voz sobre IP (VoIP). [13] En 1972, Bob Kahn de ARPA , con Jim Forgie ( Lincoln Laboratory , LL) y Dave Walden ( BBN Technologies ), comenzaron los primeros desarrollos en voz empaquetada, que eventualmente conduciría a la tecnología de voz sobre IP. En 1973, según la historia informal del Laboratorio Lincoln, Ed Hofstetter implementó el primer LPC en tiempo real a 2400 bit / s. En 1974, se logró la primera comunicación de voz de paquetes LPC bidireccional en tiempo real a través de ARPANET a 3500 bit / s entre Culler-Harrison y Lincoln Laboratory. En 1976, se llevó a cabo la primera conferencia LPC sobre ARPANET utilizando el Protocolo de voz de red , entre Culler-Harrison, ISI, SRI y LL a 3500 bit / s. [ cita requerida ]
Representaciones de coeficientes LPC
LPC se utiliza con frecuencia para transmitir información de envolvente espectral y, como tal, tiene que ser tolerante a los errores de transmisión. La transmisión de los coeficientes del filtro directamente (ver predicción lineal para una definición de coeficientes) no es deseable, ya que son muy sensibles a los errores. En otras palabras, un error muy pequeño puede distorsionar todo el espectro o, lo que es peor, un error pequeño puede hacer que el filtro de predicción sea inestable.
Hay representaciones más avanzadas, como relaciones de área logarítmica (LAR), descomposición de pares espectrales de línea (LSP) y coeficientes de reflexión . De estos, especialmente la descomposición LSP ha ganado popularidad ya que asegura la estabilidad del predictor, y los errores espectrales son locales para pequeñas desviaciones de coeficientes.
Aplicaciones
LPC es el método más utilizado en codificación y síntesis de voz . [17] Se utiliza generalmente para análisis y resíntesis del habla. Las compañías telefónicas lo utilizan como una forma de compresión de voz, como en el estándar GSM , por ejemplo. También se utiliza para conexiones inalámbricas seguras , donde la voz debe digitalizarse , encriptarse y enviarse a través de un canal de voz estrecho; un ejemplo temprano de esto es el Navajo I del gobierno de Estados Unidos .
Síntesis LPC se puede utilizar para construir vocoders donde se utilizan instrumentos musicales como una señal de excitación para el filtro variable en el tiempo estimado del discurso de un cantante. Esto es algo popular en la música electrónica . Paul Lansky hizo que la conocida pieza de música por computadora no solo hablara más usando codificación predictiva lineal. [1] Se utilizó un LPC de décimo orden en el popular juguete educativo Speak & Spell de los años 80 .
Los predictores LPC se utilizan en los códecs de audio Shorten , MPEG-4 ALS , FLAC , SILK y otros códecs de audio sin pérdidas .
LPC está recibiendo cierta atención como herramienta para su uso en el análisis tonal de violines y otros instrumentos musicales de cuerda. [18]
Ver también
- Codificación predictiva lineal deformada
- Criterio de información de Akaike
- Compresión de audio
- Estimación de tono
- FS-1015
- FS-1016
- Filtrado generalizado
- Predicción lineal
- Análisis predictivo lineal
- Predicción lineal excitada por código (CELP)
Referencias
- ^ Deng, Li; Douglas O'Shaughnessy (2003). Procesamiento del habla: un enfoque dinámico y orientado a la optimización . Marcel Dekker . págs. 41–48. ISBN 978-0-8247-4040-5.
- ^ Beigi, Homayoon (2011). Fundamentos del reconocimiento de hablantes . Berlín: Springer-Verlag. ISBN 978-0-387-77591-3.
- ^ BS Atal (2006). "La historia de la predicción lineal" . 23 (2). Revista de procesamiento de señales IEEE: 154–161. Cite journal requiere
|journal=
( ayuda ) - ^ a b Y. Sasahira; S. Hashimoto (1995). "Cambio de tono de voz mediante el método de codificación predictiva lineal para mantener el timbre personal del cantante" (PDF) . Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ US2605361A , CC Cutler, " Cuantificación diferencial de señales de comunicación"
- ^ BM Oliver (1952). "Codificación eficiente". 31 (4). Nokia Bell Labs: 724–750. Cite journal requiere
|journal=
( ayuda ) - ^ HC Harrison (1952). "Experimentos con predicción lineal en televisión". 31 . Revista técnica de Bell System: 764–783. Cite journal requiere
|journal=
( ayuda ) - ^ P. Elias (1955). "Codificación predictiva I". IT-1 no. 1. IRE Trans. Informar. Teoría: 16-24. Cite journal requiere
|journal=
( ayuda ) - ^ P. Elias (1955). "Codificación predictiva II". IT-1 no. 1. IRE Trans. Informar. Teoría: 24–33. Cite journal requiere
|journal=
( ayuda ) - ^ S. Saito; F. Itakura (enero de 1967). "Consideración teórica del reconocimiento estadístico óptimo de la densidad espectral del habla". J. Acoust. Soc.Japan. Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ BS Atal; MR Schroeder (1967). "Codificación predictiva del habla". Conf. Comunicaciones y Proc. Cite journal requiere
|journal=
( ayuda )Mantenimiento de CS1: utiliza el parámetro de autores ( enlace ) - ^ JP Burg (1967). "Análisis espectral de máxima entropía". Actas de la 37ª reunión, Society of Exploration Geophysics, Oklahoma City. Cite journal requiere
|journal=
( ayuda ) - ^ a b c d Gray, Robert M. (2010). "Una historia del habla digital en tiempo real en redes de paquetes: parte II de codificación predictiva lineal y el protocolo de Internet" (PDF) . Encontró. Proceso de la señal de tendencias . 3 (4): 203–303. doi : 10.1561 / 2000000036 . ISSN 1932-8346 .
- ^ a b Schroeder, Manfred R. (2014). "Laboratorios Bell" . Acústica, información y comunicación: volumen conmemorativo en honor a Manfred R. Schroeder . Saltador. pag. 388. ISBN 9783319056609.
- ^ Atal, B .; Schroeder, M. (1978). "Codificación predictiva de señales vocales y criterios de error subjetivo". ICASSP '78. Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales . 3 : 573–576. doi : 10.1109 / ICASSP.1978.1170564 .
- ^ Schroeder, Manfred R .; Atal, Bishnu S. (1985). "Predicción lineal con excitación de código (CELP): voz de alta calidad a velocidades de bits muy bajas". ICASSP '85. Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales . 10 : 937–940. doi : 10.1109 / ICASSP.1985.1168147 . S2CID 14803427 .
- ^ Gupta, Shipra (mayo de 2016). "Aplicación de MFCC en reconocimiento de oradores independientes de texto" (PDF) . Revista Internacional de Investigación Avanzada en Ciencias de la Computación e Ingeniería de Software . 6 (5): 805-810 (806). ISSN 2277-128X . S2CID 212485331 . Archivado desde el original (PDF) el 18 de octubre de 2019 . Consultado el 18 de octubre de 2019 .
- ^ Tai, Hwan-Ching; Chung, Dai-Ting (14 de junio de 2012). "Stradivari violines exhiben frecuencias formantes parecidas a vocales producidas por mujeres" . Savart Journal . 1 (2).
- Robert M. Gray, Sociedad de procesamiento de señales IEEE, Programa de conferenciante distinguido
Otras lecturas
- O'Shaughnessy, D. (1988). "Codificación predictiva lineal". Potenciales IEEE . 7 (1): 29–32. doi : 10.1109 / 45.1890 . S2CID 12786562 .
- Bundy, Alan ; Wallen, Lincoln (1984). Una generalización del teorema de Glivenko-Cantelli . Computación simbólica . pag. 61. doi : 10.1007 / 978-3-642-96868-6_123 . ISBN 978-3-540-13938-6.
- El-Jaroudi, Amro (2003). "Codificación predictiva lineal". Enciclopedia de telecomunicaciones de Wiley . Enciclopedia de Telecomunicaciones . doi : 10.1002 / 0471219282.eot155 . ISBN 978-0471219286.
enlaces externos
- software de aprendizaje de análisis / síntesis LPC en tiempo real
- 30 años después, el Dr. Richard Wiggins habla sobre el desarrollo de Speak & Spell