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 results fournit un tableau d'informations sur les résultats de la transcription. Dans cet exemple, la zone alternatives comprend les paramètres transcript et le niveau de confiance (confidence) du service dans les résultats. La zone final a la valeur true pour indiquer que ces résultats ne sont pas modifiables.
  • La zone result_index fournit 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 zone result_index avec la valeur 0, 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 transcript fournit les résultats de la transcription.
  • Le champ confidence est 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 true s'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 false s'il s'agit de résultats intermédiaires, qui sont susceptibles de changer. Si vous utilisez le paramètre interim_results avec l'interface WebSocket, le service renvoie des hypothèses évolutives sous la forme de plusieurs zones results à mesure qu'il transcrit l'audio. Pour les résultats provisoires, la zone final est toujours false et la zone confidence est 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_time
  • interim_results
  • split_transcript_at_phrase_end

Certains paramètres peuvent modifier le contenu d'une transcription :

  • profanity_filter
  • redaction
  • smart_formatting

D'autres paramètres peuvent ajouter des informations aux résultats :

  • audio_metrics
  • keywords et keywords_threshold
  • max_alternatives
  • processing_metrics et processing_metrics_interval
  • speaker_labels
  • timestamps
  • word_alternatives_threshold
  • word_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_time permet 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 tableau alternatives comporte un élément distinct pour chaque résultat final. La réponse comporte une seule zone result_index avec la valeur 0.

    {
      "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 tableau alternatives comporte un élément distinct pour chaque résultat final et la réponse comporte une zone result_index unique avec une valeur 0.

    {
      "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 sont aah, ah, hm, hmm, huh, huh-uh, hum, ohh, ugh, uh, uh-huh, uh-oh, uh-uh, um et um-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, um et um-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 University
    

    Le 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 Punkt
    

    Le 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.