Xiph.Org ahora considera que Speex está obsoleto; su sucesor es el códec Opus más moderno, que utiliza el formato SILK bajo licencia de Microsoft y supera su rendimiento en la mayoría de las áreas excepto en las frecuencias de muestreo más bajas. [12]
Descripción
Speex está orientado a la voz sobre IP (VoIP) y la compresión basada en archivos. Los objetivos de diseño han sido crear un códec que estuviera optimizado para voz de alta calidad y baja tasa de bits. Para lograr esto, el códec utiliza múltiples tasas de bits y admite banda ultra ancha ( tasa de muestreo de 32 kHz ), banda ancha (tasa de muestreo de 16 kHz) y banda estrecha (calidad telefónica, tasa de muestreo de 8 kHz). Dado que Speex fue diseñado para VoIP en lugar de para uso en teléfonos celulares, el códec debe ser robusto a los paquetes perdidos, pero no a los dañados. Todo esto llevó a la elección de la predicción lineal excitada por código (CELP) como la técnica de codificación a utilizar para Speex. [7] Una de las razones principales es que la CELP ha demostrado durante mucho tiempo que podría hacer el trabajo y escalar bien tanto a bajas tasas de bits (como lo demuestra DoD CELP a 4,8 kbit/s) como a altas tasas de bits (como con G.728 a 16 kbit/s). Las características principales se pueden resumir de la siguiente manera:
Speex está diseñado principalmente para tres frecuencias de muestreo diferentes: 8 kHz (la misma frecuencia de muestreo para transmitir llamadas telefónicas ), 16 kHz y 32 kHz. Estas frecuencias se denominan banda estrecha, banda ancha y banda ultraancha, respectivamente.
Calidad
La codificación Speex está controlada la mayor parte del tiempo por un parámetro de calidad que va de 0 a 10. En la operación de tasa de bits constante (CBR), el parámetro de calidad es un número entero , mientras que para la tasa de bits variable (VBR), el parámetro es un número real ( punto flotante ).
Complejidad (variable)
Con Speex, es posible variar la complejidad permitida para el codificador. Esto se hace controlando cómo se realiza la búsqueda con un número entero que va de 1 a 10 de una manera similar a las opciones -1 a -9 de las utilidades de compresión gzip . Para un uso normal, el nivel de ruido en la complejidad 1 es entre 1 y 2 dB más alto que en la complejidad 10, pero los requisitos de CPU para la complejidad 10 son aproximadamente cinco veces más altos que para la complejidad 1. En la práctica, el mejor equilibrio es entre la complejidad 2 y 4, [13] aunque los ajustes más altos suelen ser útiles cuando se codifican sonidos que no son de voz como tonos DTMF , o si la codificación no se realiza en tiempo real.
La tasa de bits variable (VBR) permite que un códec cambie su tasa de bits dinámicamente para adaptarse a la "dificultad" del audio que se está codificando. En el ejemplo de Speex, los sonidos como las vocales y los transitorios de alta energía requieren una tasa de bits más alta para lograr una buena calidad, mientras que las fricativas (por ejemplo, los sonidos s y f) se pueden codificar adecuadamente con menos bits. Por esta razón, VBR puede lograr una tasa de bits más baja para la misma calidad, o una mejor calidad para una determinada tasa de bits. A pesar de sus ventajas, VBR tiene tres desventajas principales: primero, al especificar solo la calidad, no hay garantía sobre la tasa de bits promedio final. Segundo, para algunas aplicaciones en tiempo real como la voz sobre IP (VoIP), lo que cuenta es la tasa de bits máxima, que debe ser lo suficientemente baja para el canal de comunicación. Tercero, el cifrado del habla codificada con VBR puede no garantizar una privacidad completa, ya que las frases aún se pueden identificar, al menos en un entorno controlado con un pequeño diccionario de frases, [14] analizando el patrón de variación de la tasa de bits.
Tasa de bits promedio (ABR)
La tasa de bits promedio resuelve uno de los problemas de VBR, ya que ajusta dinámicamente la calidad de VBR para cumplir con una tasa de bits objetivo específica. Debido a que la calidad/tasa de bits se ajusta en tiempo real (bucle abierto), la calidad global será ligeramente inferior a la obtenida al codificar en VBR con exactamente la configuración de calidad correcta para cumplir con la tasa de bits promedio objetivo.
Cuando está habilitada, la detección de actividad de voz detecta si el audio que se está codificando es voz o silencio/ruido de fondo. La detección de actividad de voz siempre se activa de forma implícita cuando se codifica en VBR, por lo que la opción solo es útil en operaciones que no son de VBR. En este caso, Speex detecta los períodos sin voz y los codifica con los bits suficientes para reproducir el ruido de fondo. Esto se denomina " generación de ruido de confort " (CNG). La última versión en la que funcionaba bien la detección de actividad de voz era la 1.1.12, pero desde la versión 1.2 se ha reemplazado por la detección de cualquier actividad.
La transmisión discontinua es un complemento al funcionamiento de VAD/VBR que permite interrumpir por completo la transmisión cuando el ruido de fondo es estacionario. En un archivo, se utilizan 5 bits por cada cuadro faltante (que corresponde a 250 bit/s).
Mejora de la percepción
La mejora perceptiva es una parte del decodificador que, cuando se activa, intenta reducir (la percepción de) el ruido producido por el proceso de codificación/decodificación. En la mayoría de los casos, la mejora perceptiva hace que el sonido se aleje más del original objetivamente (relación señal/ruido), pero al final sigue sonando mejor (mejora subjetiva).
Retraso algorítmico
Cada códec introduce un retraso en la transmisión. Para Speex, este retraso es igual al tamaño del fotograma, más una cierta cantidad de "anticipación" necesaria para procesar cada fotograma. En el funcionamiento de banda estrecha (8 kHz), el retraso es de 30 ms, mientras que para banda ancha (16 kHz), el retraso es de 34 ms. Estos valores no tienen en cuenta el tiempo de CPU que se necesita para codificar o decodificar los fotogramas.
Aplicaciones
Existe una gran cantidad de aplicaciones compatibles con el códec Speex. Algunos ejemplos son:
La mayoría de ellos se basan en el filtro DirectShow o el códec OpenACM (por ejemplo, Microsoft NetMeeting ) en Microsoft Windows , o en la implementación de referencia de Xiph.org, libvorbis, en Linux (por ejemplo, Ekiga ). También hay complementos para muchos reproductores de audio. Consulte la página de complementos y software en el sitio speex.org para obtener más detalles. [16]
El tipo de medio para Speex es audio/ogg cuando está contenido en Ogg, y audio/speex (anteriormente audio/x-speex) cuando se transporta a través de RTP o sin contenedor.
La Ear Bible [17] es un auricular de un solo oído con un reproductor Speex incorporado con 1 GB de memoria flash, [18] precargado con una grabación de la Nueva Biblia Estándar Americana .
El software VIPA OS basado en Linux de ASL Safety & Security [19] [20] se utiliza en sistemas de megafonía de larga distancia y sistemas de alarma por voz en los principales centros de transporte aéreo internacional y redes ferroviarias.
El proyecto Rockbox utiliza Speex para su interfaz de voz. También puede reproducir archivos Speex en reproductores compatibles, como Apple iPod o iRiver H10.
El dispositivo de adquisición de datos portátil Vernier LabQuest [21] para educación científica utiliza Speex para anotaciones de voz creadas por estudiantes y profesores mediante el micrófono incorporado o uno externo.
La aplicación móvil de Google para iPhone actualmente incorpora Speex. [22] También se ha sugerido que la nueva aplicación de búsqueda por voz de Google para iPhone está utilizando Speex para transmitir voz a los servidores de Google para su interpretación. [23]
Adobe Flash Player es compatible con Speex a partir de Flash Player 10.0.12.36, publicado en octubre de 2008. [24] Debido a algunos errores en Flash Player, la primera versión recomendada para la compatibilidad con Speex es la 10.0.22.87 y posteriores. Speex en Flash Player se puede utilizar para ambos tipos de comunicación, a través de Flash Media Server o P2P . Speex se puede decodificar o convertir a cualquier formato a diferencia del audio Nellymoser , que era el único formato de voz en versiones anteriores de Flash Player. [25] [26] Speex también se puede utilizar en el formato contenedor de Flash Video (.flv), a partir de la versión 10 de la Especificación de formato de archivo de video (publicada en noviembre de 2008). [27]
La grabadora de voz JavaSonics ListenUp [28] utiliza Speex para comprimir los mensajes de voz que se graban en un navegador y luego se cargan en un servidor web. Las principales aplicaciones son la enseñanza de idiomas, la transcripción y las redes sociales.
Speex se utiliza como algoritmo de compresión de voz en la asistencia de voz Siri en el iPhone 4S . [29] Dado que la conversión de texto a voz se produce en los servidores de Apple, el códec Speex se utiliza para minimizar el ancho de banda de la red.
^ "PlayOgg! - FSF - Free Software Foundation". 17 de marzo de 2010. Consultado el 1 de octubre de 2013 .
^ Jean-Marc Valin (2009). "people.xiph.org - espacio web personal de los xiphs - Jean-Marc Valin". Xiph.Org . Consultado el 11 de septiembre de 2009 .
^ ab "Noticias de Speex". Fundación Xiph.Org . Consultado el 13 de abril de 2023 .
^ "Manual de códecs de Speex: licencia de Speex". Fundación Xiph.Org . Consultado el 1 de septiembre de 2009 .
^ "Ejemplo de variante de la licencia BSD de Xiph.Org". Fundación Xiph.Org . Consultado el 29 de agosto de 2009 .
^ Xiph.Org Speex: un códec gratuito para la libertad de expresión, consultado el 1 de septiembre de 2009
^ ab Xiph.Org Introducción a la codificación CELP, consultado el 1 de septiembre de 2009
^ Especificación del formato Adobe FLV, consultado el 18 de abril de 2016
^ Xiph.org Lanzamientos de Speex - pre-1.0 - NOTICIAS y registro de cambios en speex-0.0.1.tar.gz, consultado el 1 de septiembre de 2009
^ Xiph.Org Speex FAQ – ¿Bajo qué licencia se publica Speex?, consultado el 1 de septiembre de 2009
^ Xiph.Org (24 de marzo de 2003) Speex alcanza el nivel 1.0; Xiph.Org ahora es una organización sin fines de lucro 501(c)(3), consultado el 1 de septiembre de 2009
^ [1] Página de inicio de Speex, consultada el 11 de abril de 2017
^ "Descripción del códec". www.speex.org .
^ "Encuéntrame si puedes: Descubrir frases habladas en conversaciones VoIP cifradas (Charles V. Wright Lucas Ballard Scott E. Coull Fabian Monrose Gerald M. Masson)" (PDF) .
^ Como lo anunció Ralph Giles, el mantenedor del códec Theora , en el episodio 29 de LugRadio
^ "Un códec libre para la libertad de expresión". Speex . Consultado el 29 de diciembre de 2012 .
^ Lascelles, LLC. "La Biblia en audio más conveniente del mundo". Biblia auditiva . Consultado el 29 de diciembre de 2012 .
^ Lascelles, LLC. "Apoyo". Ear Bible . Consultado el 29 de diciembre de 2012 .
^ "Software de PA/VA, PSIM y sistemas de gestión de estaciones > ASL Safety & Security". Asl-control.co.uk . Consultado el 29 de diciembre de 2012 .
^ IPAM 400: Amplificador de megafonía inteligente basado en IP Archivado el 4 de septiembre de 2011 en Wayback Machine - Manual del usuario
^ "LabQuest 2 > Vernier Software & Technology". Vernier.com. 23 de mayo de 2012. Consultado el 29 de diciembre de 2012 .
^ "Avisos legales". Google Inc. Recuperado el 5 de diciembre de 2014 .
^ Baio, Andy (18 de noviembre de 2008). "Deconstruyendo la búsqueda por voz de Google Mobile en el iPhone".
^ Hoja de datos de Adobe (2008) Flash Player 10, consultado el 1 de septiembre de 2009
^ AskMeFlash.com (10 de mayo de 2009) Speex para Flash, consultado el 12 de agosto de 2009
^ AskMeFlash.com (10 de mayo de 2009) Speex vs Nellymoser Archivado el 15 de abril de 2009 en Wayback Machine , consultado el 12 de agosto de 2009
^ Adobe Systems Incorporated (noviembre de 2008). «Especificación de formato de archivo de vídeo, versión 10» (PDF) . Adobe Systems Incorporated. Archivado desde el original (PDF) el 23 de septiembre de 2010. Consultado el 5 de diciembre de 2014 .
^ Phil Burk. "Applet de grabación de voz JavaSonics ListenUp para Java que carga mensajes a un servidor web". Javasonics.com . Consultado el 29 de diciembre de 2012 .
^ "Applidium — Noticias". Applidium.com. Archivado desde el original el 16 de noviembre de 2011. Consultado el 29 de diciembre de 2012 .
Enlaces externos
RFC 5574 – Formato de carga útil RTP para el códec Speex
Página de inicio oficial de Speex
Página de complementos y software
JSpeex es un puerto de Speex para la plataforma Java
NSpeex es un puerto de Speex para la plataforma .NET y Silverlight basado en JSpeex Archivado el 3 de diciembre de 2011 en Wayback Machine.
CSpeex es un puerto de Speex para la plataforma .NET basado en JSpeex Archivado el 13 de diciembre de 2009 en Wayback Machine.
RFC 5334 – Tipos de medios Ogg
[2] Archivado el 21 de diciembre de 2013 en Wayback Machine - Reproductor de codificadores Speex (César MBUMBA)