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.
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/l16
etaudio/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.
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 :
- Sound eXchangeSoXsox.sourceforge.net).
- FFmpeg ffmpeg.org). Vous pouvez également utiliser FFmpeg pour séparer les données audio d'un fichier multimédia contenant à la fois des données audio et des données vidéo. Pour plus d'informations, voir Transcription de la parole à partir de fichiers vidéo.
- Audacity® audacityteam.org).
- Pour le format Ogg avec le codec Opus, opus-tools.
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.