IBM Cloud Docs
Formats audio pris en charge

Formats audio pris en charge

Le service IBM Watson® Speech to Text peut extraire des conversations audio dans de nombreux formats. Des sections ultérieures de cette rubrique vous aideront à tirer le meilleur parti de votre utilisation du service. Si vous n'êtes pas familiarisé avec le traitement audio, commencez par Terminologie et caractéristiques de l'audio pour obtenir des informations sur les concepts audio.

Formats audio

Le tableau 1 présente un récapitulatif des formats audio pris en charge par le service.

  • Format audio identifie chaque format pris en charge par sa spécification Content-Type.
  • Compression indique le support du format pour la compression. En utilisant un format prenant en charge la compression, vous pouvez réduire la taille de vos données audio pour maximiser la quantité de données que vous pouvez transmettre au service. Cependant, vous devez tenir compte des effets possibles de la compression sur la qualité de l'audio. Pour plus d'informations, voir Limites et compression de données.
  • La spécification content-type indique si vous devez utiliser l'en-tête Content-Type ou un paramètre équivalent pour spécifier le format (type MIME) des données audio que vous envoyez au service. Pour plus d'informations, voir Spécification d'un format audio.

Les colonnes finales identifient d'autres paramètres obligatoires et paramètres facultatifs pour chaque format. Les sections suivantes délivrent plus d'informations sur ces paramètres.

Résumé des formats audio pris en charge
Format audio Compression Spécification de type de contenu Paramètres obligatoires Paramètres facultatifs
audio/alaw Avec perte Obligatoire rate={integer} Aucun
audio/basic Avec perte Obligatoire Aucun Aucun
audio/flac Sans perte Facultatif Aucun Aucun
audio/g729 Avec perte Facultatif Aucun Aucun
audio/l16 Aucun Obligatoire rate={integer} channels={integer}
endianness=big-endian
endianness=little-endian
audio/mp3
Audio / mpeg
Avec perte Facultatif Aucun Aucun
audio/mulaw Avec perte Obligatoire rate={integer} Aucun
audio/ogg Avec perte Facultatif Aucun codecs=opus
codecs=vorbis
audio/wav Aucun, sans perte ou avec perte Facultatif Aucun Aucun
audio/webm Avec perte Facultatif Aucun codecs=opus
codecs=vorbis

Format audio/alaw

A-law (audio/alaw) est un format audio avec perte mono-canal. Il utilise un algorithme similaire à l'algorithme u-law appliqué par les formats audio/basic et audio/mulaw, bien que l'algorithme A-law produise des caractéristiques de signal différentes. Lorsque vous utilisez ce format, le service nécessite un paramètre supplémentaire sur la spécification de format.

Paramètre Description
rate
Obligatoire
Nombre entier indiquant la fréquence d'échantillonnage de capture
  audio. Par exemple, spécifiez le paramètre suivant pour les données audio capturées à 8 kHz :  \n   \n `audio/alaw;rate=8000` |

Format audio/basic

Basic audio (audio/basic) est un format audio avec perte mono-canal codé en utilisant des données u-law (ou mu-law) 8 bits échantillonnées à 8 kHz. Ce format fournit un plus petit dénominateur commun pour indiquer le type de support audio. Le service prend en charge l'utilisation de fichiers au format audio/basic uniquement avec les modèles à bande étroite.

Pour plus d'informations, voir la Request for Comment(RFC)2046 de l'Internet Engineering Task Force (IETF) et iana iana.org/assignments/media-types/audio/basic.

Format audio/flac

Free Lossless Audio Codec (FLAC) (audio/flac) est un format audio sans perte.

Format audio/g729

G.729 (audio/g729) est un format audio avec perte qui prend en charge les données codées à 8 kHz. Le service prend en charge uniquement G.729 Annex D, et non pas Annex J, ainsi que l'utilisation des fichiers au format audio/g729 uniquement avec les modèles à bande étroite.

Format audio/l16

PCM (Pulse-Code Modulation) 16 bits linéaire (audio/l16) est un format audio non compressé. Utilisez ce format pour transmettre un fichier PCM brut. Le format audio PCM linéaire peut également être transporté dans un fichier conteneur WAV (Waveform Audio File Format). Lorsque vous utilisez le format audio/l16, le service accepte des paramètres supplémentaires obligatoires et facultatifs sur la spécification de format.

Paramètre Description
rate
Obligatoire
Nombre entier indiquant la fréquence d'échantillonnage de capture
  audio. Par exemple, spécifiez le paramètre suivant pour les données audio capturées à 16 kHz :  \n   \n `audio/l16;rate=16000` |

| channels \n Facultatif | Par défaut, le service traite l'audio comme s'il n'y avait qu'un seul canal. Si l'audio a plus d'un canal, vous devez spécifier un nombre entier identifiant le nombre de canaux. Par exemple, spécifiez le paramètre suivant pour les données audio à deux canaux capturées à 16 kHz : \n \n audio/l16;rate=16000;channels=2 \n \n Le service accepte un maximum de 16 canaux. Il règle le mixage audio à un canal lors du transcodage. | | endianness \n Facultatif | Par défaut, le service détecte automatiquement l'ordre d'octets (endianness) des données audio entrantes. Mais cette détection peut parfois échouer et supprimer la connexion pour un fichier audio court au format audio/l16. Indiquer l'ordre d'octets désactive la détection automatique. Spécifiez big-endian ou little-endian. Par exemple, spécifiez le paramètre suivant pour les données audio qui sont capturées à 16 kHz au format little-endian : \n \n audio/l16;rate=16000;endianness=little-endian \n \n La section 5.1 de la demande de commentaires (RFC) 2045 spécifie le format big-endian pour les données audio/l16, mais de nombreuses personnes utilisent le format little-endian. |

Pour plus d'informations, voir l'appel à commentaires(RFC)2586 de l'IETF.

audio/mp3 and audio/mpeg formats

MP3 (audio/mp3) ou MPEG (Motion Picture Experts Group) (audio/mpeg) est un format audio avec perte. MP3 et MPEG désignent le même format.).

Format audio/mulaw

Mu-law (audio/mulaw) est un format audio avec perte mono-canal. Les données sont codées en utilisant l'algorithme u-law (ou mu-law). Le format audio/basic est un format équivalent qui est toujours échantillonné à 8 kHz. Lorsque vous utilisez ce format, le service nécessite un paramètre supplémentaire sur la spécification de format.

Paramètre Description
rate
Obligatoire
Nombre entier indiquant la fréquence d'échantillonnage de capture
  audio. Par exemple, spécifiez le paramètre suivant pour les données audio capturées à 8 kHz :  \n   \n `audio/mulaw;rate=8000` |

Format audio/ogg

Ogg (audio/ogg) est un format de conteneur ouvert géré par la fondation Xiph.orgxiph.org/ogg). Vous pouvez utiliser des flux audio compressés avec les codecs avec perte suivants :

  • Opus (audio/ogg;codecs=opus). Pour plus d'informations, voir opus-codec.org
  • Vorbis (audio/ogg;codecs=vorbis). Pour plus d'informations, voir xiph.org/vorbis.

OGG Opus est le codec préféré. C'est le successeur logique d'OGG Vorbis en raison de son faible temps d'attente, de sa qualité audio élevé et de sa taille réduite. Il est normalisé par l'Internet Engineering Task Force (IETF) en tant que Request for Comment(RFC)6716.

Si vous omettez le codec du type de contenu, le service le détecte automatiquement à partir de l'audio en entrée.

Format audio/wav

Waveform Audio File Format (WAV) (audio/wav) est un format conteneur souvent utilisé pour les flux audio non compressés, mais il peut également contenir des données audio compressées. Le service prend en charge le format audio WAV utilisant n'importe quel codage. Il accepte le format audio WAV avec une limite maximale de 9 canaux (en raison d'une limitation de l'outil FFmpeg).

Pour plus d'informations sur la réduction de la taille des données audio WAV en les convertissant avec le codec Opus, voir Conversion au format audio/ogg avec le codec Opus.

Format audio/webm

Web Media (WebM ) (audio/webm) est un format de conteneur ouvert géré par le projet WebMwebmproject.org). Vous pouvez utiliser des flux audio compressés avec les codecs avec perte suivants :

  • Opus (audio/webm;codecs=opus). Pour plus d'informations, voir opus-codec.org
  • Vorbis (audio/webm;codecs=vorbis). Pour plus d'informations, voir xiph.org/vorbis.

Si vous omettez le codec, le service le détecte automatiquement dans l'entrée audio.

Pour le code JavaScript qui montre comment capturer le son d'un microphone dans un navigateur Chrome et l'encoder dans un flux de données WebM, voir jsbin.com/hedujihuqo/edit?js,console. Le code ne soumet pas les captures audio au service.

Spécification d'un format audio

On utilise l'en-tête de requête Content-Type ou un paramètre équivalent pour spécifier le format (type MIME) de l'audio que l'on envoie au service. Vous pouvez indiquer le format audio pour n'importe quelle demande, mais ce n'est pas toujours nécessaire :

  • Pour la plupart des formats, le type de contenu est facultatif. Vous pouvez omettre le type de contenu ou indiquer application/octet-stream pour que le service détecte automatiquement le format.
  • Pour les autres formats, le type de contenu est obligatoire. Ces formats ne fournissent pas les informations, telles que la fréquence d'échantillonnage, dont le service a besoin pour détecter automatiquement le format. Vous devez spécifier un type de contenu pour les formats audio/alaw, audio/basic, audio/l16et audio/mulaw.

Pour plus d'informations sur les formats qui nécessitent une spécification de type de contenu, voir le tableau 1 dans Formats audio. La colonne Spécification de type de contenu de la table indique si vous devez spécifier le type de contenu.

Pour des exemples de spécification d'un type de contenu avec chacune des interfaces du service, voir Faire une demande de reconnaissance vocale. Tous les exemples de cette rubrique indiquent un type de contenu.

Lorsque vous utilisez la commande curl pour effectuer une demande de reconnaissance vocale avec les interfaces HTTP, vous devez spécifier le format audio avec l'en-tête Content-Type, spécifier "Content-Type: application/octet-stream" ou spécifier uniquement "Content-Type:". Si vous omettez complètement l'en-tête, la commande curl utilise la valeur par défaut application/x-www-form-urlencoded.

Limites et compression de données

Le service accepte un maximum de 100 Mo de données audio pour la transcription avec une requête HTTP ou WebSocket synchrone, et 1 Go de données audio avec une requête HTTP asynchrone. Lorsque vous reconnaissez de longs flux audio continus ou des fichiers audio de grande taille, vous devez prendre en compte ces limites de données.

Une façon de maximiser la quantité de données audio que vous pouvez transmettre avec une demande de reconnaissance vocale consiste à utiliser un format qui prend en charge la Compression. Il y a deux types fondamentaux de compression : avec perte et sans perte. Le format audio et l'algorithme de compression que vous choisissez peuvent avoir un impact direct sur l'exactitude de la reconnaissance vocale.

Les formats audio qui utilisent la compression avec perte réduisent considérablement la taille de votre flux audio. Cependant, une compression trop importante de l'audio peut entraîner une diminution de la précision de la transcription. Vous ne pouvez pas entendre la différence, mais le service est beaucoup plus sensible à cette perte de données.

Comparaison des tailles audio approximatives

Envisagez une taille approximative d'un flux de données correspondant à 2 heures de transmission vocale continue échantillonnée à 16 kHz et à 16 bits par échantillon :

  • Si les données sont codées au format audio/wav, les deux heures de flux ont une taille de 230 Mo, bien au-delà de la limite de 100 Mo du service.
  • Si les données sont codées au format audio/ogg, les deux heures de flux ont une taille de seulement 23 Mo, bien au-dessous de la limite du service.

Le tableau suivant indique les valeurs approximatives de durée maximale des données audio pouvant être envoyées pour la reconnaissance vocale avec une demande WebSocket ou HTTP synchrone en différents formats. La durée tient compte de la limite du service établie à 100 Mo. Les valeurs réelles peuvent varier en fonction de la complexité audio et du taux de compression obtenu.

Durée maximale de l'audio dans différents formats
Format audio Durée audio maximale (approximative)
audio/wav 55 minutes
audio/flac 1 heure 40 minutes
audio/mp3 3 heures 20 minutes
audio/ogg 8 heures 40 minutes

En faisant des tests pour comparer les différents formats audio, IBM® a déterminé que les formats WAV et FLAC ont fourni le meilleur taux d'erreurs sur les mots (WER). Ces formats peuvent servir de base pour la précision de la transcription, car ils maintiennent l'audio intact sans perte de données. Le format Ogg avec l'Opus codé a montré une légère dégradation de 2 % du WER par rapport à la ligne de base. Le format MP3 a donné les pires résultats, avec une dégradation de 10 % du WER par rapport à la ligne de référence.

Les formats audio/ogg;codecs=opus et audio/webm;codecs=opus sont en principe équivalents, et leurs tailles sont quasiment identiques. Ils utilisent le même codec en interne, seul le format conteneur est différent.

Maximiser l'exactitude de la transcription

Lorsque vous choisissez un format audio et un algorithme de compression, vous devez tenir compte des recommandations suivantes pour maximiser l'exactitude de la transcription:

  • Utilisez un format audio non compressé et sans perte. Si la durée de votre audio est inférieure à 55 minutes (moins de 100 Mo), envisagez d'utiliser le format audio/wav. Bien que le format WAV ne puisse prendre en charge que 55 minutes d'audio, cela est souvent suffisant pour la plupart des applications de transcription, comme les appels au service clients. Et l'audio WAV non compressé peut produire une transcription plus exacte.
  • Utilisez l'interface HTTP asynchrone. Si vous choisissez d'utiliser le format WAV, mais que votre audio dépasse la limite de 100 Mo, l'interface asynchrone vous permet d'envoyer jusqu'à 1 Go de données.
  • Utilisez un format audio compressé, mais sans perte. Si vous devez compresser votre fichier audio, utilisez le format audio/flac, qui utilise une compression sans perte. La compression sans perte réduit la taille de l'audio, mais maintient sa qualité. Le format FLAC est un bon candidat pour maximiser l'exactitude de la transcription.
  • Utiliser la compression sans perte comme dernier recours. Si vous avez besoin d'une compression encore plus importante, utilisez le format audio/ogg avec le codec Opus. Bien que le format Ogg utilise la compression avec perte, la combinaison du format Ogg avec le codec Opus a montré le moins de dégradation dans la précision de la parole parmi les algorithmes de compression avec perte.

L'utilisation d'autres formats avec des niveaux de compression plus élevés peut compromettre l'exactitude de la transcription. Essayez avec le service de déterminer le format qui convient le mieux à votre audio et à votre application. Pour plus d'options sur la façon d'améliorer la reconnaissance vocale, voir Conseils pour améliorer la reconnaissance vocale.

Conversion audio

Vous pouvez recourir à divers outils pour convertir vos données audio dans un autre format. Les outils peuvent s'avérer utiles lorsque vos données audio sont dans un format qui n'est pas pris en charge par le service ou dans un format non compressé ou sans perte. Dans ce dernier cas, vous pouvez convertir les données dans un format avec perte pour en réduire la taille.

Les outils logiciels gratuits suivants sont disponibles pour convertir vos données audio d'un format à un autre :

Ces outils offrent une prise en charge multiplateforme pour plusieurs formats audio. De plus, vous pouvez utiliser de nombreux outils pour lire vos données audio. Veillez à respecter les lois sur les droits d'auteur applicables en utilisant ces outils.

Conversion en format audio/ogg avec le codec Opus

Les opus-tools comprennent trois utilitaires en ligne de commande pour travailler avec de l'audio Ogg dans le codec Opus :

  • L'utilitaire opusenc encode l'audio de WAV, FLAC et d'autres formats en Ogg avec le codec Opus. La page indique comment compresser les flux audio. La compression est utile pour transmettre des données audio en temps réel au service.
  • L'utilitaire opusdec décode l'audio du codec Opus en fichiers WAV PCM non compressés.
  • L'utilitaire opusinfo fournit des informations sur les fichiers Opus et en vérifie la validité.

De nombreux utilisateurs envoient des fichiers WAV pour la reconnaissance vocale. Avec la taille limite de 100 Mo du service pour les demandes WebSocket et HTTP synchrones, le format WAV réduit la quantité de données audio pouvant être reconnues avec une seule demande. L'utilisation de la commande opusenc pour convertir les données audio au format privilégié audio/ogg:codecs=opus peut considérablement augmenter le volume de données audio que vous pouvez envoyer avec une demande de reconnaissance.

Par exemple, envisagez un fichier WAV à large bande (16 kHz) non compressé (input.wav) utilisant 16 bits par échantillon pour un débit binaire de 256 kbit/s. La commande suivante convertit le fichier audio en fichier (output.opus) qui utilise le codec Opus :

opusenc input.wav output.opus

La conversion offre une compression audio multipliée par quatre et produit un fichier de sortie avec un débit binaire de 64 kbit/s. Cependant, selon les paramètres recommandés par Opus, vous pouvez sans risque réduire le débit binaire à 24 kbps et conserver une bande complète pour le son de la parole. Cette réduction offre une compression audio multipliée par 10. La commande suivante utilise l'option --bitrate pour obtenir un fichier de sortie avec un débit binaire de 24 kbit/s :

opusenc --bitrate 24 input.wav output.opus

La compression avec l'utilitaire opusenc est rapide. Elle s'effectue à une fréquence environ 100 fois plus rapide qu'en temps réel. Lorsqu'elle se termine, la commande imprime la sortie dans la console et fournit les détails complets sur sa durée d'exécution et les données audio obtenues.

Transcription de la parole à partir de fichiers vidéo

Vous ne pouvez pas transcrire la parole à partir d'un fichier multimédia contenant à la fois des données audio et des données vidéo. Le service accepte uniquement des données audio pour la reconnaissance vocale.

Pour transcrire la parole à partir d'un fichier multimédia contenant à la fois des données audio et des données vidéo, vous devez séparer les données audio des données vidéo. Vous pouvez avoir recours à l'utilitaire FFmpeg pour séparer la source audio de la source vidéo. Pour plus d'informations, voir ffmpeg.org

Astuces pour améliorer la reconnaissance vocale

Les astuces suivantes peuvent vous aider à améliorer la qualité de la reconnaissance vocale :

  • Votre manière d'enregistrer les données audio peut faire toute la différence au niveau des résultats du service. La reconnaissance vocale peut être très sensible à la qualité de l'entrée audio. Pour obtenir la meilleure précision possible, vérifiez que la qualité de l'entrée audio est irréprochable.

    • Utilisez un micro pour la voix (par exemple un casque) autant que possible et réglez les paramètres du micro si nécessaire. Le service est optimal si vous utilisez des micros professionnels pour capturer des données audio.
    • Evitez d'utiliser un micro intégré dans un système. Les micros habituellement installés sur les appareils mobiles et les tablettes sont souvent inadaptés.
    • Veillez à ce que les haut-parleurs soient situés à proximité des micros. Vous obtenez un résultat moins précis si le locuteur est éloigné du micro. A une distance d'environ 3 mètres, par exemple, le service a du mal à produire des résultats corrects.
  • Utilisez une fréquence d'échantillonnage ne dépassant pas 16 kHz (pour les modèles à large bande) ou 8 kHz (pour les modèles à bande étroite), et utilisez 16 bits par échantillon. Le service convertit les données audio enregistrées à une fréquence d'échantillonnage plus élevée que le modèle cible (16 kHz ou 8 kHz) à la fréquence du modèle. Par conséquent, des fréquences plus élevées ne contribuent pas à une reconnaissance plus précise, mais elles augmentent la taille du flux audio.

  • Codez vos données audio dans un format avec compression de données. En codant vos données de manière plus efficace, vous pouvez envoyer beaucoup plus de données audio sans dépasser la taille limite de 100 Mo. Parce que la gamme dynamique de la voix humaine est plus limitée que, par exemple, la musique, la parole peut s'accommoder d'un débit binaire inférieur à d'autres types d'audio. Néanmoins, IBM® vous recommande de choisir soigneusement un format audio et l'algorithme de compression. Pour plus d'informations, voir Maximiser l'exactitude de la transcription.

  • La reconnaissance vocale est sensible aux bruits de fond et aux nuances de la voix humaine.

    • Les bruits de moteur, les appareils en fonctionnement, les bruits de la rue et les conversations en arrière-plan peuvent nuire considérablement à la précision de la reconnaissance.
    • Les accents régionaux et les différences de prononciation peuvent également avoir un impact négatif sur la précision.

    Si vos données audio ont ces caractéristiques, envisagez d'utiliser la personnalisation de modèle acoustique pour obtenir une meilleure reconnaissance vocale. Pour plus d'informations, voir Compréhension de la personnalisation.

  • Pour en savoir plus sur les caractéristiques de votre audio, pensez à utiliser des mesures audio avec votre demande de reconnaissance vocale. Si vous êtes bien renseigné sur le traitement des signaux audio, les mesures peuvent fournir un aperçu significatif et détaillé de vos caractéristiques audio. Pour plus d'informations, voir Métriques audio.