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:
Meld u aan bij Speech Studio.
Selecteer Aangepaste spraak> Uw projectnaam> Testmodellen.
Selecteer Nieuwe test maken.
Selecteer Nauwkeurigheid evalueren>Volgende.
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.
Selecteer maximaal twee modellen die u wilt evalueren en selecteer vervolgens Volgende.
Voer de testnaam en beschrijving in en selecteer Vervolgens.
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 despx 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 beidemodel1
enmodel2
. - 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-parameterlanguage
komt overeen met delocale
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-parametername
komt overeen met dedisplayName
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 opEvaluation
binnencustomProperties
. Als u dit niet opgeeftEvaluation
, wordt de test behandeld als een kwaliteitsinspectietest. Of detestingKind
eigenschap nu is ingesteld op ofInspection
niet 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 beidemodel1
enmodel2
. - 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:
- Meld u aan bij Speech Studio.
- Selecteer Aangepaste spraak> Uw projectnaam> Testmodellen.
- Selecteer de koppeling op testnaam.
- 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:
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 |