Delen via


Nauwkeurigheid van een aangepast spraakmodel testen

In dit artikel leert u hoe u kwantitatief kunt meten en de nauwkeurigheid van de basisspraak naar tekstmodel of uw eigen aangepaste modellen kunt verbeteren. Audio + door mensen gelabelde transcriptgegevens zijn vereist om de nauwkeurigheid te testen. U moet 30 minuten tot 5 uur representatieve audio opgeven.

Belangrijk

Bij het testen voert het systeem een transcriptie uit. Dit is belangrijk om rekening mee te houden, omdat de prijzen per serviceaanbod en abonnementsniveau variëren. Raadpleeg altijd de officiële prijzen voor Azure AI-services voor de meest recente details.

Een test maken

U kunt de nauwkeurigheid van uw aangepaste model testen door een test te maken. Een test vereist een verzameling audiobestanden en de bijbehorende transcripties. U kunt de nauwkeurigheid van een aangepast model vergelijken met een spraak-naar-tekstbasismodel of een ander aangepast model. Nadat u de testresultaten hebt opgehaald , evalueert u de foutfrequentie van het woord (WER) in vergelijking met spraakherkenningsresultaten.

Volg deze stappen om een test te maken:

  1. Meld u aan bij Speech Studio.

  2. Selecteer Aangepaste spraak> Uw projectnaam> Testmodellen.

  3. Selecteer Nieuwe test maken.

  4. Selecteer Nauwkeurigheid evalueren>Volgende.

  5. Selecteer één audio + gegevensset voor transcriptie met menselijk label en selecteer vervolgens Volgende. Als er geen gegevenssets beschikbaar zijn, annuleert u de installatie en gaat u naar het menu Spraakgegevenssets om gegevenssets te uploaden.

    Notitie

    Het is belangrijk dat u een akoestische gegevensset selecteert die verschilt van de gegevensset die u met uw model hebt gebruikt. Deze benadering kan een realistischer beeld bieden van de prestaties van het model.

  6. Selecteer maximaal twee modellen die u wilt evalueren en selecteer vervolgens Volgende.

  7. Voer de testnaam en beschrijving in en selecteer Vervolgens.

  8. Controleer de testdetails en selecteer Opslaan en sluiten.

Gebruik de spx csr evaluation create opdracht om een test te maken. Bouw de aanvraagparameters volgens de volgende instructies:

  • Stel de project parameter in op de id van een bestaand project. Deze parameter wordt aanbevolen, zodat u de test ook kunt bekijken in Speech Studio. U kunt de spx csr project list opdracht uitvoeren om beschikbare projecten op te halen.
  • Stel de vereiste model1 parameter in op de id van een model dat u wilt testen.
  • Stel de vereiste model2 parameter in op de id van een ander model dat u wilt testen. Als u geen twee modellen wilt vergelijken, gebruikt u hetzelfde model voor beide model1 en model2.
  • Stel de vereiste dataset parameter in op de id van een gegevensset die u voor de test wilt gebruiken.
  • Stel de language parameter in, anders stelt de Speech CLI standaard 'en-US' in. Deze parameter moet de landinstelling van de inhoud van de gegevensset zijn. De landinstelling kan later niet meer worden gewijzigd. De speech CLI-parameter language komt overeen met de locale eigenschap in de JSON-aanvraag en het antwoord.
  • Stel de vereiste name parameter in. Deze parameter is de naam die wordt weergegeven in Speech Studio. De speech CLI-parameter name komt overeen met de displayName eigenschap in de JSON-aanvraag en het antwoord.

Hier volgt een voorbeeld van een Speech CLI-opdracht waarmee een test wordt gemaakt:

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"

U ontvangt een antwoordtekst in de volgende indeling:

{
  "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"
  }
}

De eigenschap op het hoogste niveau self in de antwoordtekst is de URI van de evaluatie. Gebruik deze URI voor meer informatie over het project en de testresultaten. U gebruikt deze URI ook om de evaluatie bij te werken of te verwijderen.

Voer de volgende opdracht uit voor Speech CLI-hulp bij evaluaties:

spx help csr evaluation

Als u een test wilt maken, gebruikt u de Evaluations_Create bewerking van de REST API voor spraak-naar-tekst. Bouw de aanvraagbody volgens de volgende instructies:

  • Stel de project eigenschap in op de URI van een bestaand project. Deze eigenschap wordt aanbevolen, zodat u de test ook kunt bekijken in Speech Studio. U kunt een Projects_List aanvraag indienen om beschikbare projecten op te halen.
  • Stel de testingKind eigenschap in op Evaluation binnen customProperties. Als u dit niet opgeeft Evaluation, wordt de test behandeld als een kwaliteitsinspectietest. Of de testingKind eigenschap nu is ingesteld op of Inspectionniet is ingesteldEvaluation, u hebt toegang tot de nauwkeurigheidsscores via de API, maar niet in Speech Studio.
  • Stel de vereiste model1 eigenschap in op de URI van een model dat u wilt testen.
  • Stel de vereiste model2 eigenschap in op de URI van een ander model dat u wilt testen. Als u geen twee modellen wilt vergelijken, gebruikt u hetzelfde model voor beide model1 en model2.
  • Stel de vereiste dataset eigenschap in op de URI van een gegevensset die u voor de test wilt gebruiken.
  • Stel de vereiste locale eigenschap in. Deze eigenschap moet de landinstelling van de inhoud van de gegevensset zijn. De landinstelling kan later niet meer worden gewijzigd.
  • Stel de vereiste displayName eigenschap in. Deze eigenschap is de naam die wordt weergegeven in Speech Studio.

Maak een HTTP POST-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld. Vervang door YourSubscriptionKey de spraakresourcesleutel, vervang deze door YourServiceRegion uw spraakresourceregio en stel de eigenschappen van de aanvraagbody in zoals eerder beschreven.

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"

U ontvangt een antwoordtekst in de volgende indeling:

{
  "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"
  }
}

De eigenschap op het hoogste niveau self in de antwoordtekst is de URI van de evaluatie. Gebruik deze URI voor meer informatie over het project en de testresultaten van de evaluatie. U gebruikt deze URI ook om de evaluatie bij te werken of te verwijderen.

Testresultaten ophalen

U krijgt de testresultaten en evalueert het woordfoutpercentage (WER) in vergelijking met spraakherkenningsresultaten.

Volg deze stappen om testresultaten op te halen:

  1. Meld u aan bij Speech Studio.
  2. Selecteer Aangepaste spraak> Uw projectnaam> Testmodellen.
  3. Selecteer de koppeling op testnaam.
  4. Nadat de test is voltooid, zoals aangegeven door de status die is ingesteld op Geslaagd, ziet u resultaten met het WER-nummer voor elk getest model.

Op deze pagina worden alle uitingen in uw gegevensset en de herkenningsresultaten weergegeven, samen met de transcriptie van de ingediende gegevensset. U kunt verschillende fouttypen in- of uitschakelen, waaronder invoegen, verwijderen en vervangen. Door naar de audio te luisteren en de herkenningsresultaten in elke kolom te vergelijken, kunt u bepalen welk model aan uw behoeften voldoet en bepalen waar meer training en verbeteringen nodig zijn.

Gebruik de spx csr evaluation status opdracht om testresultaten op te halen. Bouw de aanvraagparameters volgens de volgende instructies:

  • Stel de vereiste evaluation parameter in op de id van de evaluatie die u wilt testen.

Hier volgt een voorbeeld van een Speech CLI-opdracht waarmee testresultaten worden opgehaald:

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

De foutpercentages van het woord en meer details worden geretourneerd in de hoofdtekst van het antwoord.

U ontvangt een antwoordtekst in de volgende indeling:

{
  "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"
  }
}

Voer de volgende opdracht uit voor Speech CLI-hulp bij evaluaties:

spx help csr evaluation

Als u testresultaten wilt ophalen, begint u met de Evaluations_Get bewerking van de REST API voor spraak-naar-tekst.

Maak een HTTP GET-aanvraag met behulp van de URI, zoals wordt weergegeven in het volgende voorbeeld. Vervang YourEvaluationId door uw evaluatie-id, vervang deze door YourSubscriptionKey uw Spraak-resourcesleutel en vervang deze door YourServiceRegion uw spraakresourceregio.

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

De foutpercentages van het woord en meer details worden geretourneerd in de hoofdtekst van het antwoord.

U ontvangt een antwoordtekst in de volgende indeling:

{
  "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"
  }
}

Foutpercentage van woorden evalueren (WER)

De industriestandaard voor het meten van modelnauwkeurigheid is woordfoutpercentage (WER). WER telt het aantal onjuiste woorden dat tijdens de herkenning is geïdentificeerd en deelt de som door het totale aantal woorden dat is opgegeven in het door mensen gelabelde transcriptie (N).

Onjuist geïdentificeerde woorden vallen in drie categorieën:

  • Invoeging (I): Woorden die onjuist zijn toegevoegd aan de hypothesetranscriptie
  • Verwijdering (D): woorden die niet zijn gedetecteerd in de hypothesetranscriptie
  • Vervanging (S): Woorden die zijn vervangen door verwijzing en hypothese

In Speech Studio wordt het quotiënt vermenigvuldigd met 100 en weergegeven als een percentage. De resultaten van de Speech CLI en REST API worden niet vermenigvuldigd met 100.

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

Hier volgt een voorbeeld waarin onjuist geïdentificeerde woorden worden weergegeven, in vergelijking met het door mensen gelabelde transcript:

Schermopname van een voorbeeld van onjuist geïdentificeerde woorden.

Het resultaat van spraakherkenning is als volgt mislukt:

  • Invoeging (I): Het woord 'a' toegevoegd
  • Verwijderen (D): het woord 'are' verwijderd
  • Vervanging (S): Vervangt het woord 'Jones' voor 'John'

Het woordfoutpercentage uit het vorige voorbeeld is 60%.

Als u WER-metingen lokaal wilt repliceren, kunt u het sclite-hulpprogramma van de NIST Scoring Toolkit (SCTK) gebruiken.

Fouten oplossen en WER verbeteren

U kunt de WER-berekening van de resultaten van machineherkenning gebruiken om de kwaliteit te evalueren van het model dat u gebruikt met uw app, hulpprogramma of product. Een WER van 5-10% wordt beschouwd als een goede kwaliteit en is klaar voor gebruik. Een WER van 20% is acceptabel, maar misschien wilt u meer training overwegen. Een WER van 30% of meer signalen van slechte kwaliteit en vereist aanpassing en training.

Hoe de fouten worden gedistribueerd, is belangrijk. Wanneer er veel verwijderingsfouten optreden, komt dit meestal door zwakke geluidssignaalsterkte. U kunt dit probleem oplossen door audiogegevens dichter bij de bron te verzamelen. Invoegfouten betekenen dat de audio is opgenomen in een lawaaierige omgeving en crosstalk mogelijk aanwezig is, wat herkenningsproblemen veroorzaakt. Vervangingsfouten worden vaak aangetroffen wanneer een onvoldoende voorbeeld van domeinspecifieke termen wordt verstrekt als transcripties met een menselijk label of gerelateerde tekst.

Door afzonderlijke bestanden te analyseren, kunt u bepalen welk type fouten er bestaan en welke fouten uniek zijn voor een specifiek bestand. Inzicht in problemen op bestandsniveau helpt u bij het doel van verbeteringen.

Foutpercentage van token evalueren (TER)

Naast woordfoutpercentage kunt u ook de uitgebreide meting van Token Error Rate (TER) gebruiken om de kwaliteit van de uiteindelijke end-to-endweergave te evalueren. Naast de lexicale notatie (That will cost $900. in plaats van that will cost nine hundred dollars), houdt TER rekening met de aspecten van de weergave-indeling, zoals interpunctie, hoofdlettergebruik en ITN. Meer informatie over het weergeven van uitvoeropmaak met spraak-naar-tekst.

TER telt het aantal onjuiste tokens dat tijdens de herkenning is geïdentificeerd en deelt de som door het totale aantal tokens dat is opgegeven in de transcriptie met menselijk label (N).

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

De formule van TER-berekening is ook vergelijkbaar met WER. Het enige verschil is dat TER wordt berekend op basis van het tokenniveau in plaats van woordniveau.

  • Invoeging (I): Tokens die onjuist zijn toegevoegd aan de hypothesetranscriptie
  • Verwijdering (D): Tokens die niet zijn gedetecteerd in de hypothesetranscriptie
  • Vervanging (S): Tokens die zijn vervangen door verwijzing en hypothese

In een praktijk kunt u zowel WER- als TER-resultaten analyseren om de gewenste verbeteringen te verkrijgen.

Notitie

Als u TER wilt meten, moet u ervoor zorgen dat de audio - en transcriptietestgegevens transcripties bevatten met weergaveopmaak, zoals interpunctie, hoofdlettergebruik en ITN.

Voorbeeldscenarioresultaten

Spraakherkenningsscenario's variëren per audiokwaliteit en taal (vocabulaire en spreekstijl). In de volgende tabel worden vier veelvoorkomende scenario's onderzocht:

Scenario Audiokwaliteit Woordenschat Spreekstijl
Callcenter Laag, 8 kHz, kan twee personen op één audiokanaal zijn, kan worden gecomprimeerd Smal, uniek voor domein en producten Gesprek, losjes gestructureerd
Spraakassistent, zoals Cortana of een doorrijdend venster Hoog, 16 kHz Entiteitszware (nummertitels, producten, locaties) Duidelijk aangegeven woorden en woordgroepen
Dicteren (chatbericht, notities, zoeken) Hoog, 16 kHz Menigvoudig Notities maken
Ondertiteling van video Gevarieerd, inclusief gevarieerd microfoongebruik, toegevoegde muziek Gevarieerd, van vergaderingen, recited speech, muzikale teksten Lezen, voorbereid of losjes gestructureerd

Verschillende scenario's produceren verschillende kwaliteitsresultaten. In de volgende tabel wordt onderzocht hoe inhoud uit deze vier scenario's in de WER tarieven. In de tabel ziet u welke fouttypen het meest voorkomt in elk scenario. Met de foutpercentages voor invoeging, vervanging en verwijdering kunt u bepalen welk soort gegevens u wilt toevoegen om het model te verbeteren.

Scenario Kwaliteit van spraakherkenning Invoegfouten Verwijderingsfouten Vervangingsfouten
Callcenter Gemiddeld
(< 30% WER)
Laag, behalve wanneer andere mensen op de achtergrond praten Kan hoog zijn. Callcenters kunnen luidruchtig zijn en overlappende sprekers kunnen het model verwarren Gemiddeld. De namen van producten en personen kunnen deze fouten veroorzaken
Spraakassistent Hoog
(kan 10% WER zijn < )
Beperkt Beperkt Gemiddeld, vanwege nummertitels, productnamen of locaties
Dicteren Hoog
(kan 10% WER zijn < )
Beperkt Laag Hoog
Ondertiteling van video Is afhankelijk van het videotype (kan 50% WER zijn < ) Beperkt Kan hoog zijn vanwege muziek, geluiden, microfoonkwaliteit Jargon kan deze fouten veroorzaken

Volgende stappen