Comprendre les résultats de la reconnaissance vocale
Quelle que soit l'interface que vous utilisez, le service IBM Watson® Speech to Text renvoie des résultats de transcription qui correspondent aux paramètres que vous spécifiez. Le service renvoie le contenu de toutes les réponses JSON en jeu de caractères UTF-8.
Réponse de transcription de base
Le service renvoie la réponse suivante pour les exemples dans Faire une demande de reconnaissance vocale. Les exemples transmettent un seul fichier audio et son type de contenu. La séquence audio est constituée d'une seule phrase parlée sans pause perceptible entre les mots.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
Le service renvoie un objet SpeechRecognitionResults, qui est l'objet de réponse de niveau supérieur. Pour ces demandes simples, l'objet comprend une zone results et une zone result_index :
- La zone
resultsfournit un tableau d'informations sur les résultats de la transcription. Dans cet exemple, la zonealternativescomprend les paramètrestranscriptet le niveau de confiance (confidence) du service dans les résultats. La zonefinala la valeurtruepour indiquer que ces résultats ne sont pas modifiables. - La zone
result_indexfournit un identificateur unique pour les résultats. L'exemple montre les résultats finaux d'une demande avec un seul fichier audio sans pause, et la demande ne comprend pas de paramètres supplémentaires. Par conséquent, le service renvoie une seule zoneresult_indexavec la valeur0, qui correspond toujours à l'index initial.
Si l'entrée audio est plus complexe ou si la requête comprend d'autres paramètres, les résultats peuvent contenir beaucoup plus d'informations.
Zone alternatives
La zone alternatives fournit une série de résultats de transcription. Pour cette demande, le tableau n'inclut qu'un seul élément.
- La zone
transcriptfournit les résultats de la transcription. - Le champ
confidenceest un score qui indique le niveau de fiabilité du service dans la transcription, qui, pour cet exemple, dépasse 90 %.
Les zones final et result_index qualifient la signification de ces zones.
Les modifications internes et les améliorations apportées au service peuvent affecter les transcriptions et les scores de confiance. Par example, la reconnaissance vocale peut être améliorée pour renvoyer des résultats de transcription plus précis. De même, les scores de confiance des retranscriptions et des mots peuvent varier légèrement en raison de l'amélioration de la reconnaissance vocale. On s'attend à ce que ces changements soient modestes, mais on ne s'attend pas à ce que les transcriptions et les cotes de confiance demeurent inchangées au fil du temps.
Zone final
La zone final indique si la transcription présente les résultats finaux de la transcription :
- La zone a la valeur
trues'il s'agit des résultats finaux, ce qui garantit qu'ils ne changeront pas. Le service n'envoie aucune autre mise à jour pour les résultats finaux. - La zone a la valeur
falses'il s'agit de résultats intermédiaires, qui sont susceptibles de changer. Si vous utilisez le paramètreinterim_resultsavec l'interface WebSocket, le service renvoie des hypothèses évolutives sous la forme de plusieurs zonesresultsà mesure qu'il transcrit l'audio. Pour les résultats provisoires, la zonefinalest toujoursfalseet la zoneconfidenceest toujours omise.
Pour plus d'informations sur l'utilisation de l'interface WebSocket pour obtenir des résultats intermédiaires avec des modèles vocaux de grande taille, des modèles de génération précédente et suivante, consultez les rubriques suivantes :
Zone result_index
La zone result_index fournit un identificateur pour les résultats qui sont propres à cette demande. Si vous demandez des résultats intermédiaires, le service envoie plusieurs zones results présentant l'évolution des
différentes hypothèses de l'entrée audio. Les index des résultats intermédiaires des mêmes données audio ont toujours la même valeur, tout comme les résultats finaux de ces mêmes données.
Le même index peut également être utilisé pour plusieurs résultats finaux d'une même demande. Peu importe si vous demandez des résultats provisoires, le service peut renvoyer plusieurs résultats finaux avec le même index si votre audio inclut des pauses ou des périodes prolongées de silence. Pour plus d'informations, voir Pauses et silence.
Après avoir reçu les résultats finaux de données audio, le service n'envoie pas d'autres résultats avec cet index dans la suite de la demande. L'index de résultats supplémentaires est incrémenté d'une unité.
Si vos données audio produisent plusieurs résultats finaux, concaténez les éléments transcript des résultats finaux pour constituer la transcription complète des données audio. Assemblez les résultats dans l'ordre dans lequel
vous les recevez. Lorsque vous assemblez une transcription finale complète, vous pouvez ignorer les résultats provisoires pour lesquels la zone final est false.
Contenu de réponse supplémentaire
De nombreux paramètres de reconnaissance vocale ont une incidence sur le contenu de la réponse du service. Certains paramètres peuvent amener le service à renvoyer plusieurs résultats de transcription :
end_of_phrase_silence_timeinterim_resultssplit_transcript_at_phrase_end
Certains paramètres peuvent modifier le contenu d'une transcription :
profanity_filterredactionsmart_formatting
D'autres paramètres peuvent ajouter des informations aux résultats :
audio_metricskeywordsetkeywords_thresholdmax_alternativesprocessing_metricsetprocessing_metrics_intervalspeaker_labelstimestampsword_alternatives_thresholdword_confidence
Pour plus d'informations sur les paramètres disponibles, voir Utilisation des paramètres de reconnaissance vocale et Résumé des paramètres.
Pauses et silence
La manière dont le service renvoie les résultats dépend de l'interface et du modèle que vous utilisez pour la reconnaissance vocale, mais aussi de l'audio que vous transmettez au service. Par défaut, le service transcrit tout un flux audio sous la forme d'un seul énoncé et renvoie un seul résultat final pour l'ensemble de l'audio. Toutefois, le service peut renvoyer plusieurs résultats finaux en réponse aux conditions suivantes :
- L'audio contient une pause ou un silence prolongé entre des mots ou des expressions prononcées. Pour la plupart des langues, l'intervalle de pause par défaut utilisé par le service pour déterminer les résultats finaux distincts est de 0,8
seconde. Pour le chinois, l'intervalle par défaut est de 0,6 seconde. Le paramètre
end_of_phrase_silence_timepermet de modifier la durée de l'intervalle de pause. Pour plus d'informations, voir Paramètre end_of_phrase_silence_time. - Pour les modèles de génération antérieure, l'énoncé atteint un maximum de deux minutes. Le service divise une transcription en plusieurs résultats finaux après deux minutes de traitement continu.
Les exemples suivants illustrent des réponses avec deux résultats finaux issus des interfaces HTTP et WebSocket. La même entrée audio est utilisée dans les deux cas. La séquence audio comporte la phrase parlée "one two three four five six," avec une seconde de pause entre les mots "three" et "four." Les exemples utilisent l'intervalle de pause par défaut pour la reconnaissance vocale.
-
Pour les interfaces HTTP, le service envoie toujours un seul objet
SpeechRecognitionResults. Le tableaualternativescomporte un élément distinct pour chaque résultat final. La réponse comporte une seule zoneresult_indexavec la valeur0.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] } -
Pour l'interface WebSocket, le service envoie les mêmes résultats que dans le cas de l'exemple précédent. La réponse inclut un seul objet
SpeechRecognitionResults, le tableaualternativescomporte un élément distinct pour chaque résultat final et la réponse comporte une zoneresult_indexunique avec une valeur0.{ "result_index": 0, "results": [ { "alternatives": [ { "confidence": 0.99, "transcript": "one two three " } ], "final": true }, { "alternatives": [ { "confidence": 0.99, "transcript": "four five six " } ], "final": true } ] }Avec l'interface WebSocket, les réponses pour les résultats provisoires contiennent plus d'objets JSON. Pour plus d'informations sur l'utilisation de l'interface WebSocket pour obtenir des résultats intermédiaires avec des modèles vocaux de grande taille, des modèles de génération précédente et suivante, consultez les rubriques suivantes :
Un silence continu de 30 secondes dans l'audio peut entraîner un dépassement du délai d'inactivité. Pour plus d'informations, voir Délais d'attente.
Hésitations et marqueurs d'hésitation
La parole comprend souvent des hésitations ou des pauses verbales, qui sont également appelées disfluences. Des hésitations se produisent lorsque l'utilisateur insère des charges telles que "uhm", "uh", "hmm", et des énoncés non lexicaux connexes tout en parlant. Le service traite les hésitations différemment pour les grands modèles de parole, les modèles de génération précédente et suivante.
Hésitations pour les modèles de la génération précédente
Pour les modèles de génération précédente, le service inclut des marqueurs d'hésitation dans les résultats de transcription pour la plupart des langues. Les langues peuvent utiliser des marqueurs d'hésitation différents ou ne pas indiquer d'hésitation du tout :
- Pour l'anglais américain, les marqueurs d'hésitation sont indiqués par le jeton
%HESITATION. Les mots qui génèrent des marqueurs d'hésitation sontaah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uh,uh-huh,uh-oh,uh-uh,umetum-hum. - Pour le japonais, les marqueurs d'hésitation commencent généralement par
D_. - Pour l'espagnol, le service ne produit pas de marqueurs d'hésitation.
L'exemple suivant montre le jeton %HESITATION pour une transcription en anglais américain :
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
Des marqueurs d'hésitation peuvent apparaître à fois dans des résultats intermédiaires et dans des résultats finaux. L'activation de la mise en forme intelligente empêche les marqueurs d'hésitation d'apparaître dans les résultats finaux pour l'anglais américain. Pour plus d'informations, voir Formatage intelligent.
Les marqueurs d'hésitation peuvent également apparaître dans d'autres zones d'une transcription. Par exemple, si vous demandez des horodatages de mots pour les mots individuels d'une transcription, le service signale le début et la fin de chaque marqueur d'hésitation.
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"timestamps": [
. . .
[
"that",
7.31,
7.69
],
[
"%HESITATION",
7.69,
7.98
],
[
"that's",
7.98,
8.41
],
[
"a",
8.41,
8.48
],
. . .
],
"confidence": 0.99,
"transcript": ". . . that %HESITATION that's a . . ."
}
],
"final": true
}
]
}
A moins d'en avoir besoin pour votre application, vous pouvez filtrer les marqueurs d'hésitation d'une transcription.
Hésitations pour les modèles de nouvelle génération
Pour les modèles de nouvelle génération, le service inclut les mots d'hésitation réels dans tous les résultats de transcription. Les modèles de la prochaine génération traitent les hésitations comme des mots, de sorte que les hésitations peuvent apparaître dans les résultats intermédiaires, les résultats finaux et d'autres domaines tels que les résultats pour les horodatages de mots. Les modèles de la prochaine génération ne produisent pas de marqueurs d'hésitation, et l'activation du formatage intelligent n'entraîne pas la suppression des hésitations des résultats finaux. Différentes langues peuvent identifier différents mots d'hésitation:
- Pour l'anglais américain, les mots d'hésitation courants, comme pour les modèles de génération précédente, sont
aah,ah,hm,hmm,huh,huh-uh,hum,ohh,ugh,uh,uh-huh,uh-oh,uh-uh,umetum-hum. Tous ces mots d'hésitation n'apparaissent pas dans les transcriptions. - Pour le japonais, les mots d'hésitation sont généralement constitués de caractères de demi-largeur tels que
ア,アノー,ウーン,エート,マ,テ,マetンート. Certaines hésitations peuvent être reconnues comme des caractères pleine largeur.
Pour augmenter la probabilité de voir des hésitations dans votre réponse, vous pouvez utiliser un modèle de langue personnalisé. Dans le modèle personnalisé, ajoutez des corpus qui incluent les hésitations ou créez des mots personnalisés dont les sonorités aiment capturer la façon dont les utilisateurs disent les disfluences. Pour plus d'informations sur les modèles de langue personnalisés, voir Création d'un modèle de langue personnalisé.
L'exemple suivant montre l'hésitation "uhm" dans une transcription en anglais américain :
{
"result_index": 0,
"results": [
{
"alternatives": [
{
"confidence": 0.99,
"transcript": ". . . that uhm that's a . . ."
}
],
"final": true
}
]
}
Capitalisation
Pour la plupart des langues, le service n'utilise pas de majuscules dans les transcriptions des réponses. Si la capitalisation est importante pour votre application, vous devez capitaliser le premier mot de chaque phrase ainsi que d'autres termes pour lesquels la capitalisation est appropriée.
Le service applique la capitalisation automatique uniquement aux langues et modèles suivants. Le service applique toujours cette capitalisation, que vous utilisiez une mise en forme intelligente ou pas.
-
Pour les modèles de génération précédente d'anglais américain, le service met en majuscule de nombreux noms propres. Par exemple, le service renvoie la transcription suivante pour l'expression barack obama graduated from columbia university :
Barack Obama graduated from Columbia UniversityLe service ne permet pas de mettre les noms propres en majuscule pour l'anglais américain avec les modèles de nouvelle génération.
-
Pour les modèles de nouvelle génération d'allemands, le service met en majuscule de nombreux noms. Par exemple, le service renvoie la transcription suivante pour l'expression er braucht erst einen neuen eintrag ins vokabular punkt :
er braucht erst einen neuen Eintrag ins Vokabular PunktLe service ne met pas des noms en majuscule pour l'allemand avec des modèles de génération précédente.
Ponctuation
Par défaut, le service n'insère pas de ponctuation dans les transcriptions de réponses. Vous devez ajouter la ponctuation nécessaire dans les résultats du service.
Pour certaines langues, vous pouvez utiliser le formatage intelligent pour demander au service de remplacer les signes de ponctuation, par exemple les virgules, les points, les points d'interrogation et les points d'exclamation, pour certaines chaînes de mots clés. Pour plus d'informations, voir Formatage intelligent.