La codificación de voz es una aplicación de la compresión de datos a señales de audio digitales que contienen voz . La codificación de voz utiliza la estimación de parámetros específicos de voz mediante técnicas de procesamiento de señales de audio para modelar la señal de voz, combinadas con algoritmos de compresión de datos genéricos para representar los parámetros modelados resultantes en un flujo de bits compacto. [1]
Las aplicaciones más comunes de la codificación de voz son la telefonía móvil y la voz sobre IP (VoIP). [2] La técnica de codificación de voz más utilizada en telefonía móvil es la codificación predictiva lineal (LPC), mientras que las más utilizadas en aplicaciones de VoIP son las técnicas LPC y de transformada de coseno discreta modificada (MDCT). [ cita requerida ]
Las técnicas empleadas en la codificación del habla son similares a las que se emplean en la compresión de datos de audio y la codificación de audio , donde se utiliza la apreciación de la psicoacústica para transmitir solo datos que son relevantes para el sistema auditivo humano. Por ejemplo, en la codificación del habla en banda vocal , solo se transmite información en la banda de frecuencia de 400 a 3500 Hz, pero la señal reconstruida conserva una inteligibilidad adecuada .
La codificación de voz se diferencia de otras formas de codificación de audio en que el habla es una señal más simple que otras señales de audio y hay información estadística disponible sobre las propiedades del habla. Como resultado, cierta información auditiva que es relevante en la codificación de audio general puede ser innecesaria en el contexto de la codificación de voz. La codificación de voz enfatiza la preservación de la inteligibilidad y el agrado del habla mientras se utiliza una cantidad restringida de datos transmitidos. [3] Además, la mayoría de las aplicaciones de voz requieren un bajo retardo de codificación, ya que la latencia interfiere con la interacción del habla. [4]
Los codificadores de voz son de dos clases: [5]
Los algoritmos de ley A y ley μ utilizados en la telefonía digital PCM G.711 pueden considerarse precursores de la codificación de voz, que requieren solo 8 bits por muestra pero que brindan efectivamente 12 bits de resolución . [7] La compresión logarítmica es consistente con la percepción auditiva humana en el sentido de que se escucha un ruido de baja amplitud junto con una señal de voz de baja amplitud, pero está enmascarado por una de alta amplitud. Aunque esto generaría una distorsión inaceptable en una señal musical, la naturaleza puntiaguda de las formas de onda del habla, combinada con la estructura de frecuencia simple del habla como una forma de onda periódica que tiene una frecuencia fundamental única con ráfagas de ruido agregadas ocasionales, hacen que estos algoritmos de compresión instantánea muy simples sean aceptables para el habla. [ cita requerida ] [ dudoso – discutir ]
En esa época se probaron una amplia variedad de otros algoritmos, en su mayoría variantes de modulación delta , pero después de una cuidadosa consideración, los diseñadores de los primeros sistemas de telefonía digital eligieron los algoritmos A-law/μ-law. En el momento de su diseño, su reducción del ancho de banda del 33% para una complejidad muy baja constituía un excelente compromiso de ingeniería. Su rendimiento de audio sigue siendo aceptable y no hubo necesidad de reemplazarlos en la red telefónica estacionaria. [ cita requerida ]
En 2008, la ITU-T estandarizó el códec G.711.1 , que tiene una estructura escalable. La frecuencia de muestreo de entrada es de 16 kHz. [8]
Gran parte del trabajo posterior en compresión de voz estuvo motivado por la investigación militar en comunicaciones digitales para radios militares seguras , donde se utilizaban velocidades de datos muy bajas para lograr un funcionamiento eficaz en un entorno de radio hostil. Al mismo tiempo, se disponía de mucha más potencia de procesamiento , en forma de circuitos VLSI , que la disponible para las técnicas de compresión anteriores. Como resultado, los algoritmos de compresión de voz modernos podían utilizar técnicas mucho más complejas que las disponibles en la década de 1960 para lograr relaciones de compresión mucho más altas.
Los algoritmos de codificación de voz más utilizados se basan en la codificación predictiva lineal (LPC). [9] En particular, el esquema de codificación de voz más común es la codificación de predicción lineal excitada por código (CELP) basada en LPC, que se utiliza, por ejemplo, en el estándar GSM . En CELP, el modelado se divide en dos etapas, una etapa predictiva lineal que modela la envolvente espectral y un modelo basado en libro de códigos del residuo del modelo predictivo lineal. En CELP, los coeficientes de predicción lineal (LPC) se calculan y cuantifican, generalmente como pares espectrales de línea (LSP). Además de la codificación de voz real de la señal, a menudo es necesario utilizar la codificación de canal para la transmisión, para evitar pérdidas debido a errores de transmisión. Para obtener los mejores resultados de codificación generales, los métodos de codificación de voz y codificación de canal se eligen en pares, con los bits más importantes en el flujo de datos de voz protegidos por una codificación de canal más robusta.
La transformada de coseno discreta modificada (MDCT) se utiliza en la técnica LD-MDCT utilizada por el formato AAC-LD introducido en 1999. [10] Desde entonces, la MDCT ha sido ampliamente adoptada en aplicaciones de voz sobre IP (VoIP), como el códec de audio de banda ancha G.729.1 introducido en 2006, [11] FaceTime de Apple (que utiliza AAC-LD) introducido en 2010, [12] y el códec CELT introducido en 2011. [13]
Opus es un codificador de audio de software libre . Combina el algoritmo SILK basado en LPC orientado al habla y el algoritmo CELT basado en MDCT de menor latencia, alternando entre ellos o combinándolos según sea necesario para lograr la máxima eficiencia. [14] [15] Se usa ampliamente para llamadas VoIP en WhatsApp . [16] [17] [18] La consola de videojuegos PlayStation 4 también usa Opus para su sistema de chat grupal PlayStation Network . [19]
Se han demostrado varios códecs con velocidades de bits incluso más bajas. El Codec2 , que funciona a velocidades de bits tan bajas como 450 bit/s, se utiliza en radioaficionados. [20] La OTAN utiliza actualmente MELPe , que ofrece voz inteligible a 600 bit/s y menos. [21] También han surgido enfoques de vocoder neuronal: Lyra de Google ofrece una calidad "casi espeluznante" a 3 kbit/s. [22] Satin de Microsoft también utiliza aprendizaje automático, pero utiliza una tasa de bits ajustable más alta y es de banda ancha. [23]