Articulo de referencia

Códec 2

Codec 2 es un códec de audio de voz de baja tasa de bits ( codificación de voz ) que no tiene patente y es de código abierto . [1] Codec 2 comprime el habla utilizando codificac...

Codec 2 es un códec de audio de voz de baja tasa de bits ( codificación de voz ) que no tiene patente y es de código abierto . [1] Codec 2 comprime el habla utilizando codificación sinusoidal , un método especializado para el habla humana . Se han creado con éxito tasas de bits de 3200 a 450 bit/s. Codec 2 fue diseñado para ser utilizado en radioaficionados y otras aplicaciones de voz de alta compresión.

Descripción general

El códec fue desarrollado por David Grant Rowe, con el apoyo y la cooperación de otros investigadores (por ejemplo, Jean-Marc Valin de Opus ). [2]

El códec 2 consta de modos de códec de 3200, 2400, 1600, 1400, 1300, 1200, 700 y 450 bit/s. Supera a la mayoría de los demás códecs de voz de baja tasa de bits . Por ejemplo, utiliza la mitad del ancho de banda de la excitación multibanda avanzada para codificar el habla con una calidad similar. [ cita requerida ] El códec de voz utiliza audio muestreado PCM de 16 bits y genera bytes digitales empaquetados. Cuando se envían bytes digitales empaquetados, genera audio muestreado PCM. La frecuencia de muestreo de audio está fija en 8 kHz.

La implementación de referencia es de código abierto y está disponible gratuitamente en un repositorio de GitHub . [3] El código fuente se publica bajo los términos de la versión 2.1 de la Licencia Pública General Reducida de GNU (LGPL). [4] Está programado en C y el código fuente actual requiere aritmética de punto flotante , aunque el algoritmo en sí no lo requiere. El paquete de software de referencia también incluye un módem de software de voz digital multiplexado por división de frecuencia y una interfaz gráfica de usuario basada en WxWidgets . El software está desarrollado en Linux y se ofrece un puerto para Microsoft Windows creado con Cygwin además de una versión para Apple MacOS .

El códec se ha presentado en varias conferencias y ha recibido el Premio a la Innovación Técnica ARRL 2012 , [5] y el Premio a la Mejor Presentación de la Conferencia Linux Australia. [6]

Tecnología

Internamente, los algoritmos de codificación de audio paramétrico operan en tramas PCM de 10 ms utilizando un modelo de la voz humana. Cada uno de estos segmentos de audio se declara sonoro (vocal) o sordo (consonante).

El códec 2 utiliza una codificación sinusoidal para modelar el habla, que está estrechamente relacionada con la de los códecs de excitación multibanda . La codificación sinusoidal se basa en regularidades (periodicidad) en el patrón de frecuencias de sobretonos y capas de sinusoides armónicos. El audio hablado se recrea modelando el habla como una suma de ondas sinusoidales relacionadas armónicamente con amplitudes independientes llamadas pares espectrales de línea o LSP, sobre una frecuencia fundamental determinada de la voz del hablante (tono). El tono (cuantificado) y la amplitud (energía) de los armónicos se codifican y, junto con los LSP, se intercambian a través de un canal en formato digital. Los coeficientes LSP representan el modelo de codificación predictiva lineal (LPC) en el dominio de la frecuencia y se prestan a una cuantificación robusta y eficiente de los parámetros LPC. [7]

Los bytes digitales están en un formato de campo de bits que se han empaquetado juntos en bytes. Estos campos de bits también se codifican opcionalmente en Gray antes de agruparse. La codificación en Gray puede ser útil si se envía en bruto, pero normalmente una aplicación simplemente distribuirá los campos de bits. Los campos de bits conforman los diversos parámetros que se almacenan o intercambian (tono, energía, valores booleanos de sonoridad, LSP, etc.).

Por ejemplo, el modo 3200 tiene 20 ms de audio convertidos a 64 bits. Por lo tanto, se emitirán 64 bits cada 20 ms (50 veces por segundo), para una velocidad de datos mínima de 3200 bit/s. Estos 64 bits se envían como 8 bytes a la aplicación, que tiene que desenrollar los campos de bits o enviar los bytes a través de un canal de datos.

Otro ejemplo es el modo 1300, que envía 40 ms de audio y genera 52 bits cada 40 ms (25 veces por segundo), para una velocidad mínima de 1300 bit/s. Estos 52 bits se envían como 7 bytes al canal de aplicación o de datos.

Adopción

El códec 2 se utiliza actualmente en varias radios y sistemas de radio definidos por software.

  • FreeDV [8]
  • Serie FlexRadio 6000 [9]
  • SM1000 [10]
  • Quisk [11]
  • Proyecto M17 [12]

Codec2 también se ha integrado en FreeSWITCH y hay un parche disponible para soporte en Asterisk .

Había un repetidor de voz digital FM a Codec2 en órbita terrestre en el satélite de radioaficionado CubeSat LilacSat-1 (indicativo de llamada ON02CN, constelación QB50 ), que fue lanzado y posteriormente desplegado desde la Estación Espacial Internacional en 2017. [13]

Historia

El destacado defensor del software libre y radioaficionado Bruce Perens presionó para la creación de un códec de voz libre que funcionara a menos de 5 kbit/s. Como él mismo no tenía experiencia en ese campo, se puso en contacto con Jean-Marc Valin en 2008, quien le presentó al desarrollador principal David Grant Rowe, que ha trabajado con Valin en Speex en varias ocasiones. El propio Rowe también era radioaficionado ( indicativo de radioaficionado VK5DGR) y tenía experiencia en la creación y uso de códecs de voz y otros algoritmos de procesamiento de señales para señales de voz. Obtuvo un doctorado en codificación de voz en la década de 1990 y participó en el desarrollo de uno de los primeros sistemas de telefonía por satélite (Mobilesat).

Aceptó la tarea y anunció su decisión de trabajar en un formato el 21 de agosto de 2009. Se basó en la investigación y los hallazgos de su tesis doctoral. [14] [15] El modelado sinusoidal subyacente se remonta a los desarrollos de Robert J. McAulay y Thomas F. Quatieri (laboratorios Lincoln del MIT) de mediados de la década de 1980.

En agosto de 2010, David Rowe publicó la versión 0.1 alfa. [16] La versión 0.2 se lanzó a finales de 2011, introduciendo un modo con 1.400 bits/s y mejoras significativas en la cuantificación.

En enero de 2012, en linux.conf.au , Jean-Marc Valin ayudó a mejorar la cuantificación de pares espectrales de líneas, con los que Rowe está menos familiarizado. [17] Después de varios cambios en los modos de velocidad de bits disponibles en el invierno y la primavera de 2011/2012, los modos de 2400, 1400 y 1200 bit/s estuvieron disponibles después de mayo de ese año.

El códec 2 700C, un nuevo modo con una tasa de bits de 700 bit/s, se terminó a principios de 2017. [18]

En julio de 2018 se presentó un modo experimental de 450 bit/s, desarrollado como parte de una tesis de maestría en la Universidad de Erlangen-Nuremberg. Mediante un entrenamiento inteligente de la cuantificación vectorial, se pudo reducir aún más la velocidad de datos basándose en el principio del modo 700C. [19]

Referencias

  1. ^ "DCC2011-Codec2-VK5DGR" (PDF) .
  2. ^ "Un cuantificador de tono y energía para Codec2". Archivado desde el original el 19 de junio de 2015.
  3. ^ "Repositorio de código fuente del códec 2". GitHub . 14 de octubre de 2021.
  4. ^ "Codec2: un códec de voz de código abierto y bajo ancho de banda". Slashdot . 21 de septiembre de 2010.
  5. ^ "La Junta Directiva de la ARRL nombra a los ganadores del premio en la segunda reunión de 2012". www.arrl.org .
  6. ^ "Conferencia Linux Australia 2012". Archivado desde el original el 29 de noviembre de 2012. Consultado el 2 de agosto de 2012 .
  7. ^ "Técnicas de codificación armónica sinusoidal" (PDF) . Archivado desde el original (PDF) el 2013-05-15 . Consultado el 2013-04-12 .
  8. ^ "FreeDV: Voz digital amateur de código abierto: donde la radioafición está impulsando el estado del arte".
  9. ^ "FreeDV, CODEC2 y WaveformAPI". Archivado desde el original el 2 de abril de 2015. Consultado el 6 de marzo de 2015 .
  10. ^ "Presentamos el micrófono inteligente SM1000 – Rowetel". 21 de mayo de 2014.
  11. ^ "Quisk, una radio definida por software (SDR)". james.ahlstrom.name .
  12. ^ "Descripción del protocolo M17". GitHub .
  13. ^ "Satélites de la constelación QB-50 desplegados desde la Estación Espacial Internacional". Sitio web de la American Radio Relay League . 15 de noviembre de 2017. Consultado el 31 de marzo de 2019 .
  14. ^ "Técnicas de codificación armónica sinusoidal" (PDF) . Archivado desde el original (PDF) el 2013-05-15 . Consultado el 2013-04-12 .
  15. ^ "Códec de voz de baja velocidad y código abierto, parte 1 – Rowetel". 21 de agosto de 2009.
  16. ^ "Lanzamiento de la versión alfa de Codec2 V0.1 – Rowetel". 25 de agosto de 2010.
  17. ^ "Un cuantificador de energía de tono para Codec2".
  18. ^ "Un códec de código abierto codifica la voz a solo 700 bits por segundo". Slashdot . 13 de enero de 2017 . Consultado el 31 de marzo de 2019 .
  19. ^ "Voz digital códec2 HF a 450 bps". Southgate Amateur Radio News . 2018-07-08 . Consultado el 2019-03-31 .
  • Sitio web oficial
  • LibreDV
Obtenido de "https://es.wikipedia.org/w/index.php?title=Códec_2&oldid=1236296775"