Partager via


Tester l’exactitude d’un modèle de reconnaissance vocale personnalisée

Dans cet article, vous allez apprendre à mesurer et à améliorer de manière quantitative la précision du modèle de reconnaissance vocale de base ou de vos modèles personnalisés. Les données de transcription audio + étiquetées par l’homme sont requises pour tester la précision. Vous devez fournir de 30 minutes à 5 heures d’audio représentatif.

Important

Lors des tests, le système effectue une transcription. Il est important de garder à l’esprit que les tarifs varient en fonction de l’offre de service et du niveau d’abonnement. Pour obtenir les informations les plus récentes, reportez-vous toujours aux tarifs officiels d’Azure AI services.

Créer un test

Vous pouvez tester la précision de votre modèle personnalisé en créant un test. Un test nécessite une collection de fichiers audio et leurs transcriptions correspondantes. Vous pouvez comparer la précision d’un modèle personnalisé à un modèle de reconnaissance vocale de base ou tout autre modèle personnalisé. Après avoir obtenu les résultats des tests, évaluez le taux d’erreur de mot (WER) par rapport aux résultats de la reconnaissance vocale.

Pour créer un test, effectuez les étapes suivantes :

  1. Connectez-vous à Speech Studio.

  2. Sélectionnez Reconnaissance vocale personnalisée> Votre nom de projet >Tester des modèles.

  3. Sélectionnez Créer un test.

  4. Sélectionnez Évaluer la précision>Suivant.

  5. Sélectionnez un jeu de données de transcription audio + étiqueté à la main, puis sélectionnez Suivant. Si aucun jeu de données n’est disponible, annulez la configuration, puis accédez au menu Jeux de données Speech pour charger des jeux de données.

    Notes

    Il est important de sélectionner un jeu de données acoustique différent de celui que vous avez utilisé avec votre modèle. Cette approche peut donner une idée plus réaliste des performances du modèle.

  6. Sélectionnez jusqu’à deux modèles à évaluer, puis Suivant.

  7. Entrez le nom et la description du test, puis sélectionnez Suivant.

  8. Passez en revue les détails du test, puis sélectionnez Enregistrer et fermer.

Pour créer un test, utilisez la commande spx csr evaluation create. Construisez les paramètres de la requête conformément aux instructions suivantes :

  • Définissez le paramètre project sur l’ID d’un projet existant. Ce paramètre est recommandé afin que vous puissiez également voir le test dans Speech Studio. Vous pouvez exécuter la commande spx csr project list pour obtenir les projets disponibles.
  • Définissez le paramètre requis model1 sur l’ID d’un modèle que vous souhaitez tester.
  • Définissez le paramètre requis model2 sur l’ID d’un autre modèle que vous souhaitez tester. Si vous ne souhaitez pas comparer deux modèles, utilisez le même modèle pour model1 et model2.
  • Définissez le paramètre requis dataset sur l’ID d’un jeu de données que vous souhaitez utiliser pour le test.
  • Définissez le paramètre language, sinon l’interface CLI Speech définit « en-US » par défaut. Ce paramètre doit être les paramètres régionaux du contenu du jeu de données. Vous ne pourrez plus changer de paramètres régionaux. Le paramètre language CLI Speech correspond à la propriété locale dans la requête et la réponse JSON.
  • Définissez le paramètre requis name. Ce paramètre est le nom qui est affiché dans Speech Studio. Le paramètre name CLI Speech correspond à la propriété displayName dans la requête et la réponse JSON.

Voici un exemple de commande CLI Speech qui crée un test :

spx csr evaluation create --api-version v3.2 --project 0198f569-cc11-4099-a0e8-9d55bc3d0c52 --dataset 23b6554d-21f9-4df1-89cb-f84510ac8d23 --model1 ff43e922-e3e6-4bf0-8473-55c08fd68048 --model2 13fb305e-09ad-4bce-b3a1-938c9124dda3 --name "My Evaluation" --description "My Evaluation Description"

Vous devriez recevoir un corps de réponse au format suivant :

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": -1.0,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1,
    "wordErrorRate2": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1
  },
  "lastActionDateTime": "2024-07-14T21:31:14Z",
  "status": "NotStarted",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

La propriété self de niveau supérieur dans le corps de la réponse est l’URI de l’évaluation de données. Utilisez cet URI pour obtenir des détails sur les résultats du projet et des tests. Vous utilisez également cet URI pour mettre à jour ou supprimer l’évaluation.

Pour l’aide de l’interface CLI Speech avec les évaluations, exécutez la commande suivante :

spx help csr evaluation

Pour créer un test, utilisez l’opération Evaluations_Create de l’API REST de reconnaissance vocale. Construisez le corps de la requête conformément aux instructions suivantes :

  • Définissez la propriété project sur l’URI d’un projet existant. Cette propriété est recommandée afin que vous puissiez également voir le test dans Speech Studio. Vous pouvez effectuer une requête Projects_List pour obtenir les projets disponibles.
  • Définissez la propriété testingKind sur Evaluation dans customProperties. Si vous ne spécifiez pas Evaluation, le test est traité comme un test d’inspection de la qualité. Que la propriété testingKind soit définie sur Evaluation ou Inspection, ou pas définie, vous pouvez accéder aux scores de précision via l’API, mais pas dans Speech Studio.
  • Définissez la propriété requise model1 sur l’URI d’un modèle que vous souhaitez tester.
  • Définissez la propriété requise model2 sur l’URI d’un autre modèle que vous souhaitez tester. Si vous ne souhaitez pas comparer deux modèles, utilisez le même modèle pour model1 et model2.
  • Définissez la propriété requise dataset sur l’URI d’un jeu de données que vous souhaitez utiliser pour le test.
  • Définissez la propriété requise locale. Cette propriété doit être les paramètres régionaux du contenu du jeu de données. Vous ne pourrez plus changer de paramètres régionaux.
  • Définissez la propriété requise displayName. Cette propriété est le nom qui est affiché dans Speech Studio.

Effectuez une requête HTTP POST à l’aide de l’URI, comme illustré dans l’exemple suivant. Remplacez YourSubscriptionKey par votre clé de ressource Speech, remplacez YourServiceRegion par votre région de ressource Speech et définissez les propriétés du corps de la requête comme décrit précédemment.

curl -v -X POST -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey" -H "Content-Type: application/json" -d '{
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  },
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations"

Vous devriez recevoir un corps de réponse au format suivant :

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": -1.0,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1,
    "wordErrorRate2": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1
  },
  "lastActionDateTime": "2024-07-14T21:31:14Z",
  "status": "NotStarted",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

La propriété self de niveau supérieur dans le corps de la réponse est l’URI de l’évaluation de données. Utilisez cet URI pour obtenir des détails sur le projet d’évaluation et les résultats du test. Vous utilisez également cet URI pour mettre à jour ou supprimer l’évaluation.

Obtenir des résultats des tests

Vous devez obtenir les résultats des tests, et évaluer le taux d’erreur de mot (WER) par rapport aux résultats de la reconnaissance vocale.

Suivez ces étapes pour obtenir les résultats des tests :

  1. Connectez-vous à Speech Studio.
  2. Sélectionnez Reconnaissance vocale personnalisée> Votre nom de projet >Tester des modèles.
  3. Sélectionnez le lien par nom de test.
  4. Une fois le test terminé, comme indiqué par l’état défini sur Réussite, vous devez voir les résultats qui incluent le numéro WER pour chaque modèle testé.

Cette page liste tous les énoncés de votre jeu de données et les résultats de la reconnaissance avec la transcription du jeu de données soumis. Vous pouvez voir les différents types d’erreurs (insertion, suppression et substitution). En écoutant l’audio et en comparant les résultats de la reconnaissance dans chaque colonne, vous pouvez identifier le modèle qui répond à vos besoins et déterminer où davantage d’entraînement et des améliorations s’imposent.

Pour obtenir les résultats des tests, utilisez la commande spx csr evaluation status. Construisez les paramètres de la requête conformément aux instructions suivantes :

  • Définissez le paramètre requis evaluation sur l’ID de l’évaluation que vous souhaitez obtenir les résultats des tests.

Voici un exemple de commande CLI Speech qui obtient les résultats des tests :

spx csr evaluation status --api-version v3.2 --evaluation 8bfe6b05-f093-4ab4-be7d-180374b751ca

Les taux d’erreur de mot et plus de détails sont retournés dans le corps de la réponse.

Vous devriez recevoir un corps de réponse au format suivant :

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": 0.028900000000000002,
    "sentenceErrorRate1": 0.667,
    "tokenErrorRate1": 0.12119999999999999,
    "sentenceCount1": 3,
    "wordCount1": 173,
    "correctWordCount1": 170,
    "wordSubstitutionCount1": 2,
    "wordDeletionCount1": 1,
    "wordInsertionCount1": 2,
    "tokenCount1": 165,
    "correctTokenCount1": 145,
    "tokenSubstitutionCount1": 10,
    "tokenDeletionCount1": 1,
    "tokenInsertionCount1": 9,
    "tokenErrors1": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    },
    "wordErrorRate2": 0.028900000000000002,
    "sentenceErrorRate2": 0.667,
    "tokenErrorRate2": 0.12119999999999999,
    "sentenceCount2": 3,
    "wordCount2": 173,
    "correctWordCount2": 170,
    "wordSubstitutionCount2": 2,
    "wordDeletionCount2": 1,
    "wordInsertionCount2": 2,
    "tokenCount2": 165,
    "correctTokenCount2": 145,
    "tokenSubstitutionCount2": 10,
    "tokenDeletionCount2": 1,
    "tokenInsertionCount2": 9,
    "tokenErrors2": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    }
  },
  "lastActionDateTime": "2024-07-14T21:31:22Z",
  "status": "Succeeded",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

Pour l’aide de l’interface CLI Speech avec les évaluations, exécutez la commande suivante :

spx help csr evaluation

Pour obtenir les résultats des tests, commencez par utiliser l’opération Evaluations_Get de l’API REST de reconnaissance vocale.

Effectuez une requête HTTP GET à l’aide de l’URI, comme illustré dans l’exemple suivant. Remplacez YourEvaluationId par votre ID d’évaluation, remplacez YourSubscriptionKey par votre clé de ressource Speech et remplacez YourServiceRegion par votre région de ressource Speech.

curl -v -X GET "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/YourEvaluationId" -H "Ocp-Apim-Subscription-Key: YourSubscriptionKey"

Les taux d’erreur de mot et plus de détails sont retournés dans le corps de la réponse.

Vous devriez recevoir un corps de réponse au format suivant :

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/models/base/13fb305e-09ad-4bce-b3a1-938c9124dda3"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/datasets/23b6554d-21f9-4df1-89cb-f84510ac8d23"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/transcriptions/b50642a8-febf-43e1-b9d3-e0c90b82a62a"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/projects/0198f569-cc11-4099-a0e8-9d55bc3d0c52"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.2/evaluations/dda6e880-6ccd-49dc-b277-137565cbaa38/files"
  },
  "properties": {
    "wordErrorRate1": 0.028900000000000002,
    "sentenceErrorRate1": 0.667,
    "tokenErrorRate1": 0.12119999999999999,
    "sentenceCount1": 3,
    "wordCount1": 173,
    "correctWordCount1": 170,
    "wordSubstitutionCount1": 2,
    "wordDeletionCount1": 1,
    "wordInsertionCount1": 2,
    "tokenCount1": 165,
    "correctTokenCount1": 145,
    "tokenSubstitutionCount1": 10,
    "tokenDeletionCount1": 1,
    "tokenInsertionCount1": 9,
    "tokenErrors1": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    },
    "wordErrorRate2": 0.028900000000000002,
    "sentenceErrorRate2": 0.667,
    "tokenErrorRate2": 0.12119999999999999,
    "sentenceCount2": 3,
    "wordCount2": 173,
    "correctWordCount2": 170,
    "wordSubstitutionCount2": 2,
    "wordDeletionCount2": 1,
    "wordInsertionCount2": 2,
    "tokenCount2": 165,
    "correctTokenCount2": 145,
    "tokenSubstitutionCount2": 10,
    "tokenDeletionCount2": 1,
    "tokenInsertionCount2": 9,
    "tokenErrors2": {
      "punctuation": {
        "numberOfEdits": 4,
        "percentageOfAllEdits": 20.0
      },
      "capitalization": {
        "numberOfEdits": 2,
        "percentageOfAllEdits": 10.0
      },
      "inverseTextNormalization": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      },
      "lexical": {
        "numberOfEdits": 12,
        "percentageOfAllEdits": 12.0
      },
      "others": {
        "numberOfEdits": 1,
        "percentageOfAllEdits": 5.0
      }
    }
  },
  "lastActionDateTime": "2024-07-14T21:31:22Z",
  "status": "Succeeded",
  "createdDateTime": "2024-07-14T21:31:14Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

Évaluer le taux d’erreurs de mot (WER, Word Error Rate)

Le standard de mesure de la précision d’un modèle est le taux d’erreur de mots (WER, de l’anglais « Word Error Rate »). Il compte le nombre de mots incorrects identifiés lors de la reconnaissance, puis divise la somme par le nombre total de mots fournis dans la transcription étiquetée à la main.

Les mots mal identifiés se décomposent en trois catégories :

  • Insertion (I) : mots ajoutés à tort à l’hypothèse de transcription
  • Suppression (D) : mots non détectés dans l’hypothèse de transcription
  • Substitution (S) : mots substitués entre la référence et l’hypothèse

Dans Speech Studio, le quotient est multiplié par 100 et affiché sous la forme d’un pourcentage. Les résultats de l’interface CLI Speech et de l’API REST ne sont pas multipliés par 100.

$$ WER = {{I+D+S}\over N} \times 100 $$

Voici un exemple qui montre des mots identifiés incorrectement, par rapport à la transcription étiquetée par l’homme :

Capture d’écran présentant un exemple de mots mal identifiés.

Le résultat de la reconnaissance vocale s’est erré comme suit :

  • Insertion (I) : Ajout du mot « a »
  • Suppression (D) : suppression du mot « are »
  • Substitution (S) : remplacement du mot « Jones » pour « John »

Le taux d’erreur de mot de l’exemple précédent est de 60 %.

Si vous souhaitez répliquer les mesures du taux WER en local, vous pouvez utiliser l’outil sclite du Scoring Toolkit (SCTK) NIST.

Résoudre les erreurs et améliorer le taux WER

Le calcul WER peut être utilisé à partir des résultats de la reconnaissance automatique pour évaluer la qualité du modèle que vous utilisez avec une application, un outil ou un produit. Un taux WER compris entre 5 et 10 % est considéré comme étant de bonne qualité et prêt à l’emploi. Un taux de 20 % est acceptable, mais vous voudrez certainement envisager davantage d’entraînement. Un taux supérieur ou égal à 30 % est signe de qualité médiocre et demande une personnalisation et un apprentissage.

La distribution des erreurs est importante. La présence de nombreuses erreurs de suppression est généralement due à une puissance faible du signal audio. Pour résoudre ce problème, vous devez collecter des données audio plus près de la source. Les erreurs d’insertion signifient que l’audio a été enregistré dans un environnement bruyant et qu’il y a un risque de diaphonie, ce qui pose des problèmes de reconnaissance. Les erreurs de substitution se rencontrent souvent lorsque l’échantillon de termes propres à un domaine fourni sous la forme de transcriptions étiquetées à la main ou de texte associé est insuffisant.

En analysant les fichiers un par un, vous pouvez identifier les différents types d’erreurs, ainsi que les erreurs propres à un fichier donné. Il est essentiel de comprendre les problèmes au niveau du fichier pour fixer des objectifs d’amélioration.

Évaluer le taux d’erreurs de jeton (TER, Token Error Rate)

Outre le taux d’erreurs de mot, vous pouvez aussi utiliser la mesure étendue du taux d’erreurs de jeton pour évaluer la qualité du format d’affichage final de bout en bout. Outre le format lexical (That will cost $900. au lieu de that will cost nine hundred dollars), le TER tient compte des aspects du format d’affichage, comme la ponctuation, la mise en majuscules et la normalisation de texte inverse (ITN). En savoir plus sur la mise en forme de l’affichage du résultat avec la reconnaissance vocale.

Le TER compte le nombre de jetons incorrects identifiés lors de la reconnaissance, puis divise la somme par le nombre total de mots fournis dans la transcription étiquetée à la main (N).

$$ TER = {{I+D+S}\over N} \times 100 $$

La formule de calcul du TER est également similaire à celle du WER. La seule différence est que le TER est calculé en fonction du niveau du jeton au lieu du niveau du mot.

  • Insertion (I) : les jetons ajoutés à tort dans l’hypothèse de transcription
  • Deletion (D) (suppression) : les mots non détectés dans l’hypothèse de transcription
  • Substitution (S) : les mots qui ont été substitués entre la référence et l’hypothèse

Dans un cas concret, vous pouvez analyser à la fois les résultats du WER et du TER pour obtenir les améliorations souhaitées.

Remarque

Pour mesurer le TER, vous devez faire en sorte que les données de test audio + transcription incluent des transcriptions avec une mise en forme de l’affichage, comme la ponctuation, la mise en majuscule et la normalisation de texte inverse (ITN).

Exemples de résultats du scénario

Les scénarios de reconnaissance vocale varient en fonction de la qualité et de la langue de l’audio (vocabulaire et style d’élocution). Le tableau suivant examine quatre scénarios courants :

Scénario Qualité audio Vocabulaire Style d’élocution
Centre d’appels Low, 8 kHz, deux personnes sont possiblement sur une même chaîne audio, compression possible Étroit, propre au domaine et aux produits Conversationnel, vaguement structuré
Assistant vocal (tel que Cortana) ou fenêtre de drive Élevée, 16 kHz Lourd au niveau des entités (titres de chanson, produits, emplacements) Mots et phrases clairement énoncés
Dictée (message instantané, notes, recherche) Élevée, 16 kHz Différentes possibilités Prise de note
Sous-titrage vidéo Variée (utilisation variée du microphone, ajout de musique, etc.) Varié (réunions, discours, paroles de chanson, etc.) Texte lu, préparé ou faiblement structuré

Différents scénarios produisent des résultats de qualité différents. Le tableau suivant examine le taux d’erreurs sur les mots (WER) du contenu de ces quatre scénarios. Le tableau indique les types d’erreur les plus courants dans chaque scénario. Les taux d’erreurs d’insertion, de substitution et de suppression vous aident à déterminer le type de données à ajouter pour améliorer le modèle.

Scénario Qualité de la reconnaissance vocale Erreurs d’insertion Erreurs de suppression Erreurs de substitution
Centre d’appels Moyenne
(< 30 % WER)
Faible, sauf quand d’autres personnes parlent en arrière-plan Peut être élevé Les centres d’appels peuvent être bruyants et les opérateurs qui parlent en même temps peuvent être source de confusion pour le modèle Moyenne. Les noms de produits et de personnes peuvent entraîner ces erreurs
Assistant vocal Élevé
(peut être < 10 % WER)
Faible Faible Moyen, en raison de titres de chanson, de noms de produits ou de localisations
Dictation Élevé
(peut être < 10 % WER)
Faible Faible Élevé
Sous-titrage vidéo Dépend du type de vidéo (peut être < 50 % WER) Faible Peut être élevé en raison de la musique, des bruits et de la qualité du microphone L’utilisation de jargon peut provoquer ces erreurs

Étapes suivantes