Formatos de audio soportados
El servicio IBM Watson® Speech to Text puede extraer habla del audio en varios formatos. Las secciones posteriores de este tema pueden ayudarle a obtener el máximo partido de su uso del servicio. Si no está familiarizado con el proceso de audio, empiece con la Terminología y características de audio para obtener información sobre los conceptos de audio.
Formatos de audio
La Tabla 1 contiene un resumen de los formatos de audio a los que da soporte el servicio.
- Formato de audio identifica cada formato soportado por su especificación
Content-Type
. - Compresión indica el soporte del formato para la compresión. Si utiliza un formato que dé soporte a la compresión, puede reducir el tamaño de su audio para maximizar la cantidad de datos que puede pasar al servicio. Pero es necesario tener en cuenta los posibles efectos de la compresión en la calidad del audio. Para obtener más información, consulte Límites de datos y compresión.
- Especificación Content-type indica que debe utilizar la cabecera
Content-Type
o un parámetro equivalente para especificar el formato (tipo de MIME) del audio que envía al servicio. Para obtener más información, consulte Especificación de un formato de audio.
En las columnas finales se identifican Parámetros obligatorios y Parámetros opcionales adicionales para cada formato. Las siguientes secciones contienen más información sobre estos parámetros.
Formato de audio | Compresión | Especificación de tipo de contenido | Parámetros necesarios | Parámetros opcionales |
---|---|---|---|---|
audio/alaw | Con pérdidas | Obligatorio | rate={integer} |
Ninguna |
audio/basic | Con pérdidas | Obligatorio | Ninguna | Ninguna |
audio/flac | Sin pérdidas | Opcional | Ninguna | Ninguna |
audio/g729 | Con pérdidas | Opcional | Ninguna | Ninguna |
audio/l16 | Ninguna | Obligatorio | rate={integer} |
channels={integer} endianness=big-endian endianness=little-endian |
audio/mp3 audio/mpeg |
Con pérdidas | Opcional | Ninguna | Ninguna |
audio/mulaw | Con pérdidas | Obligatorio | rate={integer} |
Ninguna |
audio/ogg | Con pérdidas | Opcional | Ninguna | codecs=opus codecs=vorbis |
audio/wav | Ninguno, sin pérdidas o con pérdidas | Opcional | Ninguna | Ninguna |
audio/webm | Con pérdidas | Opcional | Ninguna | codecs=opus codecs=vorbis |
Formato audio/alaw
A-law (audio/alaw
) es un formato de audio de un solo canal con pérdida. Utiliza un algoritmo parecido al algoritmo de u-law que aplican los formatos audio/basic
y audio/mulaw
, aunque el algoritmo
A-law genera distintas características de señal. Si se utiliza este formato, el servicio necesita un parámetro adicional en la especificación de formato.
Parámetro | Descripción |
---|---|
rate Obligatorio |
Un número entero que especifica la frecuencia de muestreo con la que se captura el audio. Por ejemplo, especifique el siguiente parámetro para los datos de audio que se capturan a 8 kHz:
|
Formato audio/basic
Basic audio (audio/basic
) es un formato de audio de un solo canal con pérdida que se codifica utilizando datos u-law (o mu-law) de 8 bits que se muestrean a 8 kHz. Este formato proporciona un denominador lowest-common
que indica el tipo de soporte del audio. El servicio solo da soporte a la utilización de archivos en formato audio/basic
con modelos de banda estrecha.
Para obtener más información, consulte el Request for Comment(RFC)2046 del Internet Engineering Task Force (IETF) y iana.org/assignments/media-types/audio/basic.
Formato audio/flac
Free Lossless Audio Codec (FLAC) (audio/flac
) es un formato de audio sin pérdida.
Formato audio/g729
G.729 (audio/g729
) es un formato de audio con pérdida que da soporte a datos codificados a 8 kHz. El servicio solo da soporte a G.729 Anexo D, no al Anexo J. El servicio solo permite el uso de archivos en formato audio/g729
con modelos de banda estrecha.
Formato audio/l16
Linear 16-bit Pulse-Code Modulation (PCM) (audio/l16
) es un formato de audio no comprimido. Utilice este formato para pasar un archivo PCM sin formato. El audio PCM lineal también se puede transportar dentro de un archivo
Waveform Audio File Format (WAV) contenedor. Cuando se utiliza el formato audio/l16
, el servicio acepta parámetros adicionales obligatorios y opcionales en la especificación del formato.
Parámetro | Descripción |
---|---|
rate Obligatorio |
Un número entero que especifica la frecuencia de muestreo con la que se captura el audio. Por ejemplo, especifique el siguiente parámetro para los datos de audio que se capturan a 16 kHz:
|
channels Opcional |
De forma predeterminada, el servicio trata el audio como si tuviera un solo canal. Si el audio tiene más de un canal, debe especificar un número entero que identifique el número de canales. Por ejemplo, especifique el siguiente
parámetro para los datos de audio de dos canales que se capturan a 16 kHz:
El servicio acepta un máximo de 16 canales. Combina el audio en un canal durante la transcodificación. |
endianness Opcional |
De forma predeterminada, el servicio detecta automáticamente el valor endianness del audio de entrada. Pero su detección automática a veces puede fallar y descartar la conexión para audios cortos en formato audio/l16 . La
especificación del valor endianness desactiva la detección automática. Especifique big-endian o little-endian . Por ejemplo, especifique el parámetro siguiente para los datos de audio que se capturan a 16 kHz
en formato little-endian: la
Sección 5.1 de Solicitud de comentario (RFC) 2045 especifica el formato big-endian para los datos |
Para obtener más información, consulte el Request for Comment(RFC)2586 del IETF.
Formatos audio/mp3 y audio/mpeg
MP3 (audio/mp3
) o Motion Picture Experts Group (MPEG) (audio/mpeg
) es un formato de audio con pérdida. MP3 y MPEG se refieren al mismo formato).
Formato audio/mulaw
Mu-law (audio/mulaw
) es un formato de audio de un solo canal con pérdida. Los datos se codifican mediante el algoritmo u-law (o mu-law). El formato audio/basic
es un formato equivalente que siempre se muestra
a 8 kHz. Si se utiliza este formato, el servicio necesita un parámetro adicional en la especificación de formato.
Parámetro | Descripción |
---|---|
rate Obligatorio |
Un número entero que especifica la frecuencia de muestreo con la que se captura el audio. Por ejemplo, especifique el siguiente parámetro para los datos de audio que se capturan a 8 kHz:
|
Formato audio/ogg
Ogg (audio/ogg
) es un formato contenedor abierto mantenido por la Fundación Xiph.orgxiph.org/ogg). Puede utilizar secuencias de audio comprimidas
con los siguientes códecs con pérdida:
- Opus (
audio/ogg;codecs=opus
). Para más información, consulte opus-codec.org. - Vorbis (
audio/ogg;codecs=vorbis
). Para más información, consulte xiph.org/vorbis.
OGG Opus es el códec preferido. Es el sucesor lógico de OGG Vorbis debido a su baja latencia, alta calidad de audio y tamaño reducido. Está estandarizado por la Internet Engineering Task Force (IETF) como Request for Comment(RFC)6716.
Si omite el códec del tipo de contenido, el servicio lo detecta automáticamente en el audio de entrada.
Formato audio/wav
Waveform Audio File Format (WAV) (audio/wav
) es un formato de contenedor que se suele utilizar para secuencias de audio sin compresión, aunque también puede contener audio comprimido. El servicio da soporte a audio WAV
que utilice cualquier codificación. Acepta audio WAV con un máximo de nueve canales (debido a una limitación de FFmpeg).
Para obtener más información sobre cómo reducir el tamaño del audio WAV convirtiéndolo en el codec Opus, consulte Conversión a audio/ogg con el codec Opus.
Formato audio/webm
Web Media (WebM) (audio/webm
) es un formato contenedor abierto mantenido por el proyecto WebMwebmproject.org). Puede utilizar secuencias de audio
comprimidas con los siguientes códecs con pérdida:
- Opus (
audio/webm;codecs=opus
). Para más información, consulte opus-codec.org. - Vorbis (
audio/webm;codecs=vorbis
). Para más información, consulte xiph.org/vorbis.
Si omite el códec, el servicio lo detecta automáticamente a partir del audio de entrada.
Para ver el código JavaScript que muestra cómo capturar audio de un micrófono en un navegador Chrome y codificarlo en un flujo de datos WebM, consulta jsbin.com/hedujihuqo/edit?js,console. El código no envía el audio capturado al servicio.
Especificar un formato de audio
Utilice la cabecera de solicitud Content-Type
o el parámetro equivalente para especificar el formato (tipo MIME) del audio que envía al servicio. Puede especificar el formato de audio para cualquier solicitud, pero eso no siempre
es necesario:
- Para la mayoría de los formatos, el tipo de contenido es opcional. Puede omitir el tipo de contenido o especificar
application/octet-stream
para que el servicio detecte el formato automáticamente. - Para otros formatos, el tipo de contenido es necesario. Estos formatos no proporcionan la información, como la frecuencia de muestreo, que el servicio necesita para detectar su formato automáticamente. Debe especificar un tipo de contenido
para los formatos
audio/alaw
,audio/basic
,audio/l16
yaudio/mulaw
.
Para obtener más información sobre los formatos que requieren una especificación de tipo de contenido, consulte la Tabla 1 en Formatos de audio. La columna Especificación de tipo de contenido de la tabla indica si debe especificar el tipo de contenido.
Para ver ejemplos de cómo especificar un tipo de contenido con cada una de las interfaces del servicio, consulte Cómo hacer una solicitud de reconocimiento de voz. Todos los ejemplos de ese tema especifican un tipo de contenido.
Cuando utilice el mandato curl
para realizar una solicitud de reconocimiento de voz con las interfaces HTTP, debe especificar el formato de audio con la cabecera Content-Type
, especificar "Content-Type: application/octet-stream"
o especificar sólo "Content-Type:"
. Si omite la cabecera por completo, curl
utiliza el valor predeterminado application/x-www-form-urlencoded
.
Límites de datos y compresión
El servicio acepta un máximo de 100 MB de datos de audio para la transcripción con una solicitud HTTP o WebSocket síncrona y 1 GB de datos de audio con una solicitud HTTP asíncrona. Cuando se reconocen secuencias de audio continuas largas o archivos de audio grandes, es necesario tenerlo en cuenta y adaptarse a estos límites de datos.
Una forma de maximizar la cantidad de datos de audio que puede pasar con una solicitud de reconocimiento de voz es utilizar un formato que ofrezca Compresión. Hay dos tipos básicos de compresión, con pérdidas y sin pérdidas. El formato de audio y el algoritmo de compresión que elija pueden tener un impacto directo en la precisión del reconocimiento de voz.
Los formatos de audio que utilizan la compresión con pérdidas reducen significativamente el tamaño de la secuencia de audio. Pero comprimir el audio demasiado puede reducir la precisión en la transcripción. No se puede escuchar la diferencia, pero el servicio es mucho más sensible a esa pérdida de datos.
Comparación de tamaños de audio aproximados
Consulte el tamaño aproximado de la secuencia de datos que resulta de 2 horas de transmisión de voz continua que se muestrea a 16 kHz y a 16 bits por muestra:
- Si los datos se codifican con el formato
audio/wav
, la secuencia de dos horas tiene un tamaño de 230 MB, muy por encima del límite de 100 MB del servicio. - Si los datos se codifican con el formato
audio/ogg
, la secuencia de dos horas tiene un tamaño de solo 23 MB, muy por debajo del límite del servicio.
En la tabla siguiente se muestra una aproximación de la duración máxima de audio que se puede enviar para el reconocimiento de voz con una solicitud HTTP síncrona o WebSocket en diferentes formatos. La duración tiene en cuenta el límite de 100 MB del servicio. Los valores reales pueden variar en función de la complejidad del audio y de la tasa de compresión alcanzada.
Formato de audio | Duración máxima del audio (aproximada) |
---|---|
audio/wav |
55 minutos |
audio/flac |
1 hora 40 minutos |
audio/mp3 |
3 horas 20 minutos |
audio/ogg |
8 horas 40 minutos |
En pruebas para comparar los diferentes formatos de audio, IBM® determinó que los formatos WAV y FLAC entregaban la mejor tasa de error de palabra (WER). Estos formatos pueden servir como base para la precisión de la transcripción porque mantienen el audio intacto sin pérdida de datos. El formato Ogg con el código Opus mostró una ligera degradación del 2% de WER en relación a la línea base. El formato MP3 presentó los peores resultados, con una degradación del 10% de WER respecto a la línea base.
Los formatos audio/ogg;codecs=opus
y audio/webm;codecs=opus
normalmente son equivalentes, y sus tamaños son casi idénticos. Utilizan el mismo códec de forma interna; solo el formato de contenedor es distinto.
Maximizar la precisión de transcripción
Al elegir un formato de audio y un algoritmo de compresión, considere las siguientes recomendaciones para maximizar la precisión de la transcripción:
- Utilice un formato de audio sin comprimir y sin pérdidas. Si la duración de su audio es inferior a 55 minutos (menos de 100 MB), considere la posibilidad de utilizar el formato
audio/wav
. Aunque el formato WAV puede acomodar sólo 55 minutos de audio, esto es a menudo suficiente para la mayoría de las aplicaciones de transcripción, como las llamadas a centros de atención al cliente. El audio WAV sin comprimir puede producir una transcripción más precisa. - Utilice la interfaz HTTP asíncrona. Si elige utilizar el formato WAV pero su audio excede el límite de 100 MB, la interfaz asíncrona le permite enviar hasta 1 GB de datos.
- Utilice un formato de audio comprimido pero sin pérdidas. Si tiene que comprimir el archivo de audio, utilice el formato
audio/flac
, que emplea la compresión sin pérdidas. La compresión sin pérdidas reduce el tamaño del audio, pero mantiene su calidad. El formato FLAC es un buen candidato para maximizar la precisión de la transcripción. - Utilice la compresión con pérdidas como último recurso. Si necesita una compresión aún mayor, utilice el formato
audio/ogg
con el códec Opus. Aunque el formato Ogg utiliza la compresión con pérdidas, la combinación del formato Ogg con el codec Opus mostró la menor degradación en la precisión de la voz entre los algoritmos de compresión con pérdidas.
El uso de otros formatos con mayores niveles de compresión puede comprometer la precisión de la transcripción. Experimente con el servicio para determinar qué formato es mejor para su audio y aplicación. Para obtener más formas de mejorar el reconocimiento de voz, consulte Consejos para mejorar el reconocimiento de voz.
Conversión de audio
Puede utilizar diversas herramientas para convertir el audio a un formato diferente. Las herramientas pueden resultar útiles si el audio está en un formato al que no da soporte el servicio o si está en un formato no comprimido o sin pérdida. En el último caso, puede convertir el audio a un formato con pérdida para reducir su tamaño.
Dispone de las siguientes herramientas gratuitas para convertir el audio de un formato a otro:
- Sound eXchangeSoX)sox.sourceforge.net).
- FFmpeg ffmpeg.org). También puede utilizar FFmpeg para separar el audio de un archivo multimedia que contenga datos de audio y de vídeo. Para obtener más información, consulte Transcripción de voz desde archivos de vídeo.
- Audacity® audacityteam.org).
- Para el formato Ogg con el códec Opus, opus-tools.
Estas herramientas ofrecen soporte de varias plataformas para múltiples formatos de audio. Además, puede utilizar muchas de las herramientas para reproducir audio. No utilice las herramientas para infringir leyes de copyright.
Conversión a audio/ogg con el codec Opus
Las opus-tools incluyen tres utilidades de línea de comandos para trabajar con audio Ogg en el códec Opus:
- La utilidad opusenc codifica audio de WAV, FLAC y otros formatos a Ogg con el códec Opus. La página muestra cómo comprimir las secuencias de audio. La compresión resulta útil para pasar audio en tiempo real al servicio.
- La utilidad opusdec descodifica audio del códec Opus a archivos WAV PCM sin comprimir.
- La utilidad opusinfo proporciona información sobre los archivos Opus y comprueba su validez.
Muchos usuarios envían archivos WAV para el reconocimiento de voz. Con el límite de 100 MB de datos del servicio para las solicitudes HTTP síncronas y WebSocket, el formato WAV reduce la cantidad de audio que se puede reconocer con una sola
solicitud. El uso del mandato opusenc para convertir el audio en el formato audio/ogg:codecs=opus
preferido puede aumentar en gran medida la cantidad de audio que se puede enviar con una solicitud de reconocimiento.
Por ejemplo, supongamos que tiene un archivo WAV de banda ancha sin comprimir (16 kHz) (input.wav) que utiliza 16 bits por muestra para una velocidad en bits de 256 kbps. El mandato siguiente convierte el audio en un archivo (output.opus) que utiliza el códec Opus:
opusenc input.wav output.opus
La conversión comprime el audio con un factor de cuatro y genera un archivo de salida con una velocidad en bits de 64 kbps. Sin embargo, según la configuración recomendada de Opus,
puedes reducir la velocidad de bits a 24 kbps y conservar una banda completa para el audio de voz. Esta reducción comprime el audio con un factor de 10. El mandato siguiente utiliza la opción --bitrate
para generar un archivo
de salida con una velocidad en bits de 24 kbps:
opusenc --bitrate 24 input.wav output.opus
La compresión con el programa de utilidad opusenc es rápida. La compresión se produce a una velocidad que es aproximadamente 100 veces más rápida que el tiempo real. Cuando termina, el mandato escribe la salida en la consola que proporciona detalles completos sobre su tiempo de ejecución y los datos de audio resultantes.
Transcripción de voz desde archivos de vídeo
No puede transcribir voz desde un archivo multimedia que contenga tanto audio como vídeo. El servicio solo acepta datos de audio para el reconocimiento de voz.
Para transcribe la voz desde un archivo multimedia que contenga audio y vídeo, debe separar los datos de audio de los datos de vídeo. Puede utilizar el programa de utilidad FFmpeg para separar el audio de la fuente de vídeo. Para más información, consulte ffmpeg.org.
Consejos para mejorar el reconocimiento de voz
Los siguientes consejos le pueden ayudar a mejorar la calidad del reconocimiento de voz:
-
El modo en que se graba el audio puede marcar una gran diferencia en los resultados del servicio. El reconocimiento de voz puede ser muy sensible a la calidad del audio de entrada. Para obtener la mejor precisión posible, asegúrese de que la calidad del audio de entrada sea lo mejor posible.
- Utilice un micrófono cercano y orientado al habla (por ejemplo, unos auriculares) siempre que sea posible y ajuste la configuración del micrófono si es necesario. El servicio funciona mejor si se utilizan micrófonos profesionales para capturar el audio.
- Evite utilizar el micrófono incorporado del sistema. Los micrófonos que normalmente se instalan en dispositivos móviles y tabletas resultan a menudo inadecuados.
- Asegúrese de que los oradores estén cerca de los micrófonos. La precisión disminuye a medida que un orador se aleja del micrófono. A una distancia de tres metros, por ejemplo, al servicio le cuesta mucho generar resultados adecuados.
-
Utilice una frecuencia de muestreo que no supere los 16 kHz (para modelos de banda ancha) o los 8 kHz (para modelos de banda estrecha), y utilice 16 bits por muestra. El servicio convierte el audio grabado con una frecuencia de muestreo mayor que el modelo de destino (16 kHz u 8 kHz) a la frecuencia del modelo. Por lo tanto, las frecuencias mayores no mejoran la precisión del reconocimiento, pero aumentan el tamaño de la secuencia de audio.
-
Codifique el audio en un formato que ofrezca compresión de datos. Al codificar los datos de forma más eficiente, puede enviar mucho más audio sin sobrepasar el límite de 100 MB. Debido a que el rango dinámico de la voz humana es más limitado que, por ejemplo, la música, el habla puede acomodar una tasa de bits que es más baja que otros tipos de audio. No obstante, IBM® recomienda que elija cuidadosamente un formato de audio y un algoritmo de compresión. Para obtener más información, consulte Maximizar la precisión de transcripción.
-
El reconocimiento de voz es sensible al ruido de fondo y a los matices de la voz humana.
- El ruido de un motor, el sonido de dispositivos en funcionamiento, el ruido de la calle y las conversaciones de fondo pueden reducir significativamente la precisión del reconocimiento.
- Los acentos regionales y las pronunciaciones diferentes también pueden reducir la precisión.
Si el audio tiene estas características, tenga en cuenta la posibilidad de utilizar la personalización del modelo acústico para mejorar la precisión del reconocimiento de voz. Para obtener más información, consulte Comprender la personalización.
-
Para obtener más información sobre las características de su audio, considere la posibilidad de utilizar métricas de audio con su solicitud de reconocimiento de voz. Si tiene conocimientos sobre el procesamiento de la señal de audio, las métricas pueden proporcionar una visión detallada y significativa de sus características de audio. Para obtener más información, consulte Métricas de audio.