Speex es un códec de compresión de audio diseñado específicamente para la reproducción del habla humana y también un códec de voz de software libre que se puede utilizar en aplicaciones de VoIP y podcasts . [6] Se basa en el algoritmo de codificación de voz CELP . [7] Speex afirma estar libre de restricciones de patentes y está autorizado bajo la licencia BSD revisada (3 cláusulas) . Puede usarse con el formato de contenedor Ogg o transmitirse directamente a través de UDP / RTP . También se puede utilizar con FLV formato contenedor. [8]
![]() | |
Extensión de nombre de archivo | .spx |
---|---|
Tipo de medio de Internet | audio / x-speex, audio / speex, audio / ogg |
Desarrollado por | Fundación Xiph.Org , Jean-Marc Valin |
Tipo de formato | Audio |
Contenido por | Ogg |
Estándar | RFC 5574 |
¿ Formato abierto ? | Sí [1] |
Sitio web | www |
Desarrollador (es) | Fundación Xiph.Org , Jean-Marc Valin [2] |
---|---|
Versión inicial | 1.0 / marzo de 2003 |
Lanzamiento estable | 1.2.0 [3] / 7 de diciembre de 2016 |
Sistema operativo | Multiplataforma |
Tipo | Códec de audio , implementación de referencia |
Licencia | Licencia estilo BSD [4] [5] |
Sitio web | Descargas de Xiph.org |
Los diseñadores de Speex ven su proyecto como un complemento del proyecto de compresión de audio de propósito general de Vorbis .
Speex es un formato con pérdida , es decir , la calidad se degrada permanentemente para reducir el tamaño del archivo.
El proyecto Speex fue creado el 13 de febrero de 2002. [9] Las primeras versiones de desarrollo de Speex se lanzaron bajo licencia LGPL , pero a partir de la versión 1.0 beta 1, Speex se lanza bajo la versión de Xiph de la licencia BSD (revisada). [10] Speex 1.0 se anunció el 24 de marzo de 2003, después de un año de desarrollo. [11] La última versión estable del codificador y decodificador Speex es la 1.2.0. [3]
Xiph.Org ahora considera a Speex obsoleto; su sucesor es el códec Opus más moderno , que supera su rendimiento en la mayoría de las áreas, excepto en las frecuencias de muestreo más bajas. [12]
Descripción
Speex está dirigido a voz sobre IP (VoIP) y compresión basada en archivos. Los objetivos del diseño han sido crear un códec que se optimice para una voz de alta calidad y una tasa de bits baja. Para lograr esto, el códec utiliza múltiples velocidades de bits y admite banda ultraancha ( frecuencia de muestreo de 32 kHz ), banda ancha (frecuencia de muestreo de 16 kHz) y banda estrecha (calidad de teléfono, frecuencia de muestreo de 8 kHz). Dado que Speex fue diseñado para VoIP en lugar del uso de teléfonos celulares, el códec debe ser resistente a los paquetes perdidos, pero no a los corruptos. 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 principales razones es que CELP ha demostrado durante mucho tiempo que puede hacer el trabajo y escalar bien tanto a velocidades de bits bajas (como lo demuestra DoD CELP a 4,8 kbit / s) como a velocidades de bits altas (como con G.728) A 16 kbit / s). Las principales características se pueden resumir de la siguiente manera:
- Software libre / código abierto , patente y libre de regalías .
- Integración de banda estrecha y banda ancha en el mismo flujo de bits.
- Amplia gama de velocidades de bits disponibles (desde 2 kbit / sa 44 kbit / s).
- Conmutación dinámica de tasa de bits y tasa de bits variable (VBR).
- Detección de actividad de voz (VAD, integrado con VBR) (no funciona desde la versión 1.2).
- Complejidad variable.
- Modo de banda ultra ancha a 32 kHz (hasta 48 kHz).
- Opción de codificación estéreo de intensidad .
Características
- Tasa de muestreo
- 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. Estos se denominan respectivamente banda estrecha, banda ancha y banda ultraancha.
- Calidad
- La codificación Speex se controla la mayor parte del tiempo mediante 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 de -1 a -9 para 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 la CPU para la complejidad 10 son aproximadamente cinco veces más altos que para la complejidad 1. En la práctica, la mejor compensación es entre 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.
- Velocidad de bits variable (VBR)
- 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 codifica. En el ejemplo de Speex, los sonidos como 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 syf) 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 inconvenientes principales: primero, al especificar solo la calidad, no hay garantía sobre la tasa de bits promedio final. En segundo lugar, para algunas aplicaciones en tiempo real como 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. En tercer lugar, es posible que el cifrado de voz codificada en VBR no garantice la privacidad completa, ya que las frases aún pueden identificarse, al menos en un entorno controlado con un pequeño diccionario de frases, [14] mediante el análisis del 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 más baja que la obtenida mediante la codificación en VBR con exactamente la configuración de calidad correcta para cumplir con la tasa de bits promedio objetivo.
- Detección de actividad de voz (VAD)
- Cuando está habilitada, la detección de actividad de voz detecta si el audio que se codifica es voz o silencio / ruido de fondo. VAD siempre se activa implícitamente cuando se codifica en VBR, por lo que la opción solo es útil en operaciones que no son VBR. En este caso, Speex detecta períodos sin habla y los codifica con los bits suficientes para reproducir el ruido de fondo. Esto se denomina " generación de ruido de confort " (GNC). La última versión de VAD que funcionaba bien es la 1.1.12, ya que la versión 1.2 se ha reemplazado por una simple detección de cualquier actividad.
- Transmisión discontinua (DTX)
- La transmisión discontinua es una adición a la operación VAD / VBR que permite dejar de transmitir completamente cuando el ruido de fondo está estacionario. En un archivo, se utilizan 5 bits por cada trama que falta (correspondiente a 250 bit / s).
- Mejora de la percepción
- La mejora de la percepción es una parte del decodificador que, cuando se enciende, 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 de la percepción hace que el sonido se aleje objetivamente del original (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 cuadro, más una cierta cantidad de "anticipación" necesaria para procesar cada cuadro. En la operación de banda estrecha (8 kHz), el retardo es de 30 ms, mientras que para la banda ancha (16 kHz), el retardo es de 34 ms. Estos valores no tienen en cuenta el tiempo de CPU que se tarda en codificar o decodificar las tramas.
Aplicaciones

Existe una gran base de aplicaciones que admiten el códec Speex. Ejemplos incluyen:
- Aplicaciones de transmisión como teleconferencias (por ejemplo , TeamSpeak , Mumble )
- Sistemas VoIP (por ejemplo, Asterisk )
- Videojuegos (por ejemplo, Xbox Live , [15] Civilization 4 , pistas vocales DropMix , ...)
- Aplicaciones de procesamiento de audio.
La mayoría de estos se basan en el filtro DirectShow o el códec OpenACM (por ejemplo, Microsoft NetMeeting ) en Microsoft Windows , o 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. [dieciséis]
El tipo de medio para Speex es audio / ogg mientras está contenido en Ogg, y audio / speex (anteriormente audio / x-speex) cuando se transporta a través de RTP o sin contenedor.
El ejército de Estados Unidos 's Land Warrior sistema, diseñado por General Dynamics , también utiliza Speex para VoIP en una EPLRS de radio diseñada por Raytheon .
El 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 New American Standard Bible .
El software VIPA OS [20] basado en Linux de ASL Safety & Security [19] que se utiliza en sistemas de megafonía de línea larga y sistemas de alarma por voz en los principales centros de transporte aéreo y redes ferroviarias internacionales.
El proyecto Rockbox utiliza Speex para su interfaz de voz. También puede reproducir archivos Speex en reproductores compatibles, como el iPod de Apple o el iRiver H10.
El dispositivo portátil de adquisición de datos Vernier LabQuest [21] para la educación científica utiliza Speex para las anotaciones de voz creadas por estudiantes y profesores utilizando el micrófono integrado o externo.
La aplicación móvil de Google para iPhone incorpora actualmente Speex. [22] También se ha sugerido que la nueva aplicación para iPhone de búsqueda por voz de Google utiliza 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, lanzado en octubre de 2008. [24] Debido a algunos errores en Flash Player, la primera versión recomendada para el soporte de Speex es 10.0.22.87 y posterior. 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 de 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 Flash Video (.flv), comenzando con 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 aplicaciones principales son la formación de idiomas, la transcripción y las redes sociales.
Speex se utiliza como algoritmo de compresión de voz en la asistencia de voz de 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.
Ver también
- Comparación de formatos de codificación de audio
- Opus (formato de audio) - sucesor de Speex
Fuentes
Este artículo utiliza material del Speex Codec Manual que tiene copyright © Jean-Marc Valin y tiene licencia según los términos de la GFDL .
Referencias
- ^ "PlayOgg! - FSF - Free Software Foundation" . 2010-03-17 . 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 .
- ^ a b "Noticias de Speex" . Fundación Xiph.Org . Consultado el 11 de abril de 2017 .
- ^ "El manual de Speex Codec - Speex License" . Fundación Xiph.Org . Consultado el 1 de septiembre de 2009 .
- ^ "Ejemplo de variante Xiph.Org de la licencia BSD" . Fundación Xiph.Org . Consultado el 29 de agosto de 2009 .
- ^ Xiph.Org Speex: A Free Codec for Free Speech , obtenido el 1 de septiembre de 2009
- ^ a b Introducción de Xiph.Org a la codificación CELP , consultado el 1 de septiembre de 2009
- ^ Especificación de formato Adobe FLV , consultado el 18 de abril de 2016
- ^ Xiph.org Speex releases - pre-1.0 - NEWS y ChangeLog en speex-0.0.1.tar.gz , consultado el 1 de septiembre de 2009
- ^ Preguntas frecuentes de Xiph.Org Speex - ¿Bajo qué licencia se lanza Speex? , Consultado el 1 de septiembre de 2009
- ↑ Xiph.Org (24 de marzo de 2003) Speex alcanza 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, consultado el 11 de abril de 2017
- ^ Descripción del códec
- ^ Mírame si puedes: Descubriendo frases habladas en conversaciones de VoIP cifradas (Charles V. Wright Lucas Ballard Scott E. Coull Fabian Monrose Gerald M. Masson)
- ^ Como lo anunció Ralph Giles, elmantenedor del códec de Theora , en el episodio 29 de LugRadio
- ^ "Un códec gratuito 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 del oído . Consultado el 29 de diciembre de 2012 .
- ^ Lascelles, LLC. "Soporte" . Biblia del oído . Consultado el 29 de diciembre de 2012 .
- ^ "Sistemas de gestión de estaciones y software PA / VA, PSIM> Seguridad y protección de ASL" . Asl-control.co.uk . Consultado el 29 de diciembre de 2012 .
- ^ IPAM 400: Amplificador inteligente de megafonía basado en IP - Manual del usuario
- ^ "LabQuest 2> Vernier Software & Technology" . Vernier.com. 2012-05-23 . Consultado el 29 de diciembre de 2012 .
- ^ "Avisos legales" . Google Inc . Consultado el 5 de diciembre de 2014 .
- ^ 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 de2009
- ↑ AskMeFlash.com (10 de mayo de 2009) Speex for Flash ,obtenido el 12 de agosto de 2009
- ↑ AskMeFlash.com (10 de mayo de 2009) Speex vs Nellymoser. Archivado el 15 de abril de 2009 en la 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) . Sistemas de Adobe incorporados. Archivado desde el original (PDF) el 23 de septiembre de 2010 . Consultado el 5 de diciembre de 2014 . Cite journal requiere
|journal=
( ayuda ) - ^ 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 a la plataforma Java
- NSpeex es un puerto de Speex a la plataforma .NET y Silverlight basado en JSpeex
- CSpeex es un puerto de Speex a la plataforma .NET basado en JSpeex
- RFC 5334 - Tipos de medios Ogg
- http://dirac.epucfe.eu/projets/wakka.php?wiki=P12AB10 - Reproductor codificador Speex (César MBUMBA)