Testnoggrannhet för en anpassad talmodell

I den här artikeln får du lära dig hur du kvantitativt mäter och förbättrar noggrannheten för bastal till textmodell eller dina egna anpassade modeller. Audio + human-märkta transkriptionsdata krävs för att testa noggrannheten. Du bör ange från 30 minuter till 5 timmars representativt ljud.

Viktigt!

Vid testning utför systemet en transkription. Detta är viktigt att tänka på eftersom priserna varierar beroende på tjänsterbjudande och prenumerationsnivå. Se alltid den officiella prissättningen för Azure AI-tjänster för den senaste informationen.

Skapa test

Du kan testa noggrannheten i din anpassade modell genom att skapa ett test. Ett test kräver en samling ljudfiler och deras motsvarande transkriptioner. Du kan jämföra en anpassad modells noggrannhet med en tal till textbasmodell eller en annan anpassad modell. När du har fått testresultatet utvärderar du ordet felfrekvens (WER) jämfört med taligenkänningsresultat.

Följ dessa steg för att skapa ett test:

  1. Logga in på Speech Studio.

  2. Välj Anpassat tal> Projektnamnet >Testmodeller.

  3. Välj Skapa nytt test.

  4. Välj Utvärdera noggrannhet>Nästa.

  5. Välj en ljud- och mänskligt märkt transkriptionsdatauppsättning och välj sedan Nästa. Om det inte finns några tillgängliga datauppsättningar avbryter du installationen och går sedan till menyn Taldatauppsättningar för att ladda upp datauppsättningar.

    Kommentar

    Det är viktigt att välja en akustisk datauppsättning som skiljer sig från den du använde med din modell. Den här metoden kan ge en mer realistisk uppfattning om modellens prestanda.

  6. Välj upp till två modeller att utvärdera och välj sedan Nästa.

  7. Ange testnamnet och beskrivningen och välj sedan Nästa.

  8. Granska testinformationen och välj sedan Spara och stäng.

Använd kommandot för spx csr evaluation create att skapa ett test. Skapa begärandeparametrarna enligt följande instruktioner:

  • Ange parametern project till ID för ett befintligt projekt. Den här parametern rekommenderas så att du även kan visa testet i Speech Studio. Du kan köra spx csr project list kommandot för att hämta tillgängliga projekt.
  • Ange den obligatoriska model1 parametern till ID för en modell som du vill testa.
  • Ange den obligatoriska model2 parametern till ID för en annan modell som du vill testa. Om du inte vill jämföra två modeller använder du samma modell för både model1 och model2.
  • Ange den obligatoriska dataset parametern till ID för en datauppsättning som du vill använda för testet.
  • Ange parametern language , annars anger Speech CLI "en-US" som standard. Den här parametern bör vara språkvarianten för datamängdens innehåll. Språkvarianten kan inte ändras senare. Parametern Speech CLI language motsvarar locale egenskapen i JSON-begäran och -svaret.
  • Ange den obligatoriska name parametern. Den här parametern är namnet som visas i Speech Studio. Parametern Speech CLI name motsvarar displayName egenskapen i JSON-begäran och -svaret.

Här är ett exempel på ett Speech CLI-kommando som skapar ett test:

spx csr evaluation create --api-version v3.1 --project 9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226 --dataset be378d9d-a9d7-4d4a-820a-e0432e8678c7 --model1 ff43e922-e3e6-4bf0-8473-55c08fd68048 --model2 1aae1070-7972-47e9-a977-87e3b05c457d --name "My Evaluation" --description "My Evaluation Description"

Du bör få en svarstext i följande format:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/ff43e922-e3e6-4bf0-8473-55c08fd68048"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/be378d9d-a9d7-4d4a-820a-e0432e8678c7"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/6eaf6a15-6076-466a-83d4-a30dba78ca63"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/0c5b1630-fadf-444d-827f-d6da9c0cf0c3"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca/files"
  },
  "properties": {
    "wordErrorRate2": -1.0,
    "wordErrorRate1": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1
  },
  "lastActionDateTime": "2022-05-20T16:42:43Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-20T16:42:43Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description"
}

Egenskapen på den översta nivån self i svarstexten är utvärderingens URI. Använd den här URI:n för att få information om projektet och testresultaten. Du använder också den här URI:n för att uppdatera eller ta bort utvärderingen.

Kör följande kommando för speech CLI-hjälp med utvärderingar:

spx help csr evaluation

Om du vill skapa ett test använder du den Evaluations_Create åtgärden för REST API för tal till text. Skapa begärandetexten enligt följande instruktioner:

  • project Ange egenskapen till URI för ett befintligt projekt. Den här egenskapen rekommenderas så att du även kan visa testet i Speech Studio. Du kan göra en Projects_List begäran om att få tillgängliga projekt.
  • Ange egenskapen testingKind till Evaluation inom customProperties. Om du inte anger Evaluationbehandlas testet som ett kvalitetsgranskningstest. Oavsett om egenskapen testingKind är inställd på Evaluation eller Inspection, eller inte inställd, kan du komma åt noggrannhetspoängen via API:et, men inte i Speech Studio.
  • Ange den obligatoriska model1 egenskapen till URI:n för en modell som du vill testa.
  • Ange den obligatoriska model2 egenskapen till URI:n för en annan modell som du vill testa. Om du inte vill jämföra två modeller använder du samma modell för både model1 och model2.
  • Ange den obligatoriska dataset egenskapen till URI för en datauppsättning som du vill använda för testet.
  • Ange den obligatoriska locale egenskapen. Den här egenskapen bör vara språkvarianten för datamängdens innehåll. Språkvarianten kan inte ändras senare.
  • Ange den obligatoriska displayName egenskapen. Den här egenskapen är det namn som visas i Speech Studio.

Gör en HTTP POST-begäran med hjälp av URI:n enligt följande exempel. Ersätt YourSubscriptionKey med din Speech-resursnyckel, ersätt YourServiceRegion med resursregionen Speech och ange egenskaperna för begärandetexten enligt beskrivningen ovan.

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.1/models/ff43e922-e3e6-4bf0-8473-55c08fd68048"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/be378d9d-a9d7-4d4a-820a-e0432e8678c7"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226"
  },
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  },
  "locale": "en-US"
}'  "https://YourServiceRegion.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations"

Du bör få en svarstext i följande format:

{
  "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca",
  "model1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/ff43e922-e3e6-4bf0-8473-55c08fd68048"
  },
  "model2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
  },
  "dataset": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/be378d9d-a9d7-4d4a-820a-e0432e8678c7"
  },
  "transcription2": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/6eaf6a15-6076-466a-83d4-a30dba78ca63"
  },
  "transcription1": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/0c5b1630-fadf-444d-827f-d6da9c0cf0c3"
  },
  "project": {
    "self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226"
  },
  "links": {
    "files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca/files"
  },
  "properties": {
    "wordErrorRate2": -1.0,
    "wordErrorRate1": -1.0,
    "sentenceErrorRate2": -1.0,
    "sentenceCount2": -1,
    "wordCount2": -1,
    "correctWordCount2": -1,
    "wordSubstitutionCount2": -1,
    "wordDeletionCount2": -1,
    "wordInsertionCount2": -1,
    "sentenceErrorRate1": -1.0,
    "sentenceCount1": -1,
    "wordCount1": -1,
    "correctWordCount1": -1,
    "wordSubstitutionCount1": -1,
    "wordDeletionCount1": -1,
    "wordInsertionCount1": -1
  },
  "lastActionDateTime": "2022-05-20T16:42:43Z",
  "status": "NotStarted",
  "createdDateTime": "2022-05-20T16:42:43Z",
  "locale": "en-US",
  "displayName": "My Evaluation",
  "description": "My Evaluation Description",
  "customProperties": {
    "testingKind": "Evaluation"
  }
}

Egenskapen på den översta nivån self i svarstexten är utvärderingens URI. Använd den här URI:n för att information om utvärderingens projekt och testresultat. Du använder också den här URI:n för att uppdatera eller ta bort utvärderingen.

Hämta testresultat

Du bör hämta testresultaten och utvärdera ordet felfrekvens (WER) jämfört med taligenkänningsresultat.

Följ dessa steg för att få testresultat:

  1. Logga in på Speech Studio.
  2. Välj Anpassat tal> Projektnamnet >Testmodeller.
  3. Välj länken efter testnamn.
  4. När testet är klart bör du se resultat som innehåller WER-numret för varje testad modell, enligt statusuppsättningen Lyckades.

På den här sidan visas alla yttranden i datamängden och igenkänningsresultaten, tillsammans med transkriptionen från den skickade datamängden. Du kan växla mellan olika feltyper, till exempel infogning, borttagning och ersättning. Genom att lyssna på ljudet och jämföra igenkänningsresultaten i varje kolumn kan du bestämma vilken modell som uppfyller dina behov och avgöra var mer träning och förbättringar krävs.

Använd kommandot för spx csr evaluation status att hämta testresultat. Skapa begärandeparametrarna enligt följande instruktioner:

  • Ange den obligatoriska evaluation parametern till ID:t för utvärderingen som du vill få testresultat.

Här är ett exempel på ett Speech CLI-kommando som hämtar testresultat:

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

Ordet felfrekvens och mer information returneras i svarstexten.

Du bör få en svarstext i följande format:

{
	"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca",
	"model1": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/ff43e922-e3e6-4bf0-8473-55c08fd68048"
	},
	"model2": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
	},
	"dataset": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/be378d9d-a9d7-4d4a-820a-e0432e8678c7"
	},
	"transcription2": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/6eaf6a15-6076-466a-83d4-a30dba78ca63"
	},
	"transcription1": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/0c5b1630-fadf-444d-827f-d6da9c0cf0c3"
	},
	"project": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226"
	},
	"links": {
		"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca/files"
	},
	"properties": {
		"wordErrorRate2": 4.62,
		"wordErrorRate1": 4.6,
		"sentenceErrorRate2": 66.7,
		"sentenceCount2": 3,
		"wordCount2": 173,
		"correctWordCount2": 166,
		"wordSubstitutionCount2": 7,
		"wordDeletionCount2": 0,
		"wordInsertionCount2": 1,
		"sentenceErrorRate1": 66.7,
		"sentenceCount1": 3,
		"wordCount1": 174,
		"correctWordCount1": 166,
		"wordSubstitutionCount1": 7,
		"wordDeletionCount1": 1,
		"wordInsertionCount1": 0
	},
	"lastActionDateTime": "2022-05-20T16:42:56Z",
	"status": "Succeeded",
	"createdDateTime": "2022-05-20T16:42:43Z",
	"locale": "en-US",
	"displayName": "My Evaluation",
	"description": "My Evaluation Description",
	"customProperties": {
		"testingKind": "Evaluation"
	}
}

Kör följande kommando för speech CLI-hjälp med utvärderingar:

spx help csr evaluation

Om du vill få testresultat börjar du med att använda Evaluations_Get-åtgärden för REST-API:et Tal till text.

Gör en HTTP GET-begäran med hjälp av URI:n enligt följande exempel. Ersätt YourEvaluationId med ditt utvärderings-ID, ersätt YourSubscriptionKey med din Speech-resursnyckel och ersätt YourServiceRegion med din Speech-resursregion.

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

Ordet felfrekvens och mer information returneras i svarstexten.

Du bör få en svarstext i följande format:

{
	"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca",
	"model1": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/ff43e922-e3e6-4bf0-8473-55c08fd68048"
	},
	"model2": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/models/base/1aae1070-7972-47e9-a977-87e3b05c457d"
	},
	"dataset": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/datasets/be378d9d-a9d7-4d4a-820a-e0432e8678c7"
	},
	"transcription2": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/6eaf6a15-6076-466a-83d4-a30dba78ca63"
	},
	"transcription1": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/transcriptions/0c5b1630-fadf-444d-827f-d6da9c0cf0c3"
	},
	"project": {
		"self": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/projects/9f8c4cbb-f9a5-4ec1-8bb0-53cfa9221226"
	},
	"links": {
		"files": "https://eastus.api.cognitive.microsoft.com/speechtotext/v3.1/evaluations/8bfe6b05-f093-4ab4-be7d-180374b751ca/files"
	},
	"properties": {
		"wordErrorRate2": 4.62,
		"wordErrorRate1": 4.6,
		"sentenceErrorRate2": 66.7,
		"sentenceCount2": 3,
		"wordCount2": 173,
		"correctWordCount2": 166,
		"wordSubstitutionCount2": 7,
		"wordDeletionCount2": 0,
		"wordInsertionCount2": 1,
		"sentenceErrorRate1": 66.7,
		"sentenceCount1": 3,
		"wordCount1": 174,
		"correctWordCount1": 166,
		"wordSubstitutionCount1": 7,
		"wordDeletionCount1": 1,
		"wordInsertionCount1": 0
	},
	"lastActionDateTime": "2022-05-20T16:42:56Z",
	"status": "Succeeded",
	"createdDateTime": "2022-05-20T16:42:43Z",
	"locale": "en-US",
	"displayName": "My Evaluation",
	"description": "My Evaluation Description",
	"customProperties": {
		"testingKind": "Evaluation"
	}
}

Utvärdera ordfelfrekvens (WER)

Branschstandarden för att mäta modellnoggrannhet är ordet felfrekvens (WER). WER räknar antalet felaktiga ord som identifierades under igenkänningen och dividerar summan med det totala antalet ord som anges i den människomärkta avskriften (N).

Felaktigt identifierade ord finns i tre kategorier:

  • Insättning (I): Ord som felaktigt har lagts till i hypotesavskriften
  • Borttagning (D): Ord som inte identifieras i hypotesavskriften
  • Substitution (S): Ord som ersattes mellan referens och hypotes

I Speech Studio multipliceras kvoten med 100 och visas som en procentandel. Resultatet för Speech CLI och REST API multipliceras inte med 100.

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

Här är ett exempel som visar felaktigt identifierade ord jämfört med den mänskliga avskriften:

Skärmbild som visar ett exempel på felaktigt identifierade ord.

Taligenkänningsresultatet felade på följande sätt:

  • Infoga (I): Ordet "a" har lagts till
  • Borttagning (D): Ordet "are" har tagits bort
  • Substitution (S): Ersatte ordet "Jones" för "John"

Ordet felfrekvens från föregående exempel är 60 %.

Om du vill replikera WER-mått lokalt kan du använda verktyget sclite från NIST Scoring Toolkit (SCTK).

Lösa fel och förbättra WER

Du kan använda WER-beräkningen från datorigenkänningsresultatet för att utvärdera kvaliteten på den modell som du använder med din app, ditt verktyg eller din produkt. En WER på 5-10 % anses vara av god kvalitet och är redo att användas. En WER på 20 % är acceptabel, men du kanske vill överväga mer utbildning. En WER på 30 % eller mer signalerar dålig kvalitet och kräver anpassning och träning.

Hur felen distribueras är viktigt. När många borttagningsfel påträffas beror det vanligtvis på svag ljudsignalstyrka. För att lösa det här problemet måste du samla in ljuddata närmare källan. Infogningsfel innebär att ljudet spelades in i en bullrig miljö och att korshörning kan förekomma, vilket orsakar igenkänningsproblem. Ersättningsfel påträffas ofta när ett otillräckligt urval av domänspecifika termer tillhandahålls som antingen mänskligt märkta transkriptioner eller relaterad text.

Genom att analysera enskilda filer kan du avgöra vilken typ av fel som finns och vilka fel som är unika för en specifik fil. Att förstå problem på filnivå hjälper dig att rikta förbättringar.

Utvärdera tokenfelfrekvens (TER)

Förutom ordfelfrekvens kan du också använda den utökade mätningen av tokenfelfrekvens (TER) för att utvärdera kvaliteten på det slutliga visningsformatet från slutpunkt till slutpunkt. Utöver det lexikala formatet (That will cost $900. i stället för that will cost nine hundred dollars), tar TER hänsyn till visningsformataspekter som skiljetecken, versaler och ITN. Läs mer om visa utdataformatering med tal till text.

TER räknar antalet felaktiga token som identifierades under igenkänningen och dividerar summan med det totala antalet token som anges i den mänskliga avskriften (N).

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

Formeln för TER-beräkningen liknar också WER. Den enda skillnaden är att TER beräknas baserat på tokennivån i stället för ordnivån.

  • Insättning (I): Token som felaktigt läggs till i hypotesavskriften
  • Borttagning (D): Token som inte identifieras i hypotesavskriften
  • Substitution (S): Token som ersattes mellan referens och hypotes

I ett verkligt fall kan du analysera både WER- och TER-resultat för att få önskade förbättringar.

Kommentar

För att mäta TER måste du se till att testdata för ljud + avskrift innehåller transkriptioner med visningsformatering, till exempel skiljetecken, versaler och ITN.

Exempel på scenarioresultat

Scenarier för taligenkänning varierar beroende på ljudkvalitet och språk (vokabulär och talstil). Följande tabell undersöker fyra vanliga scenarier:

Scenario Ljudkvalitet Ordförråd Samtalsstil
Kundtjänst Låg, 8 kHz, kan vara två personer på en ljudkanal, kan komprimeras Smal, unik för domäner och produkter Konversation, löst strukturerad
Röstassistent, till exempel Cortana eller ett drive-through-fönster Hög, 16 kHz Entitetstunga (låttitlar, produkter, platser) Tydligt angivna ord och fraser
Diktering (snabbmeddelande, anteckningar, sökning) Hög, 16 kHz Varierad Anteckningar
Video stängd bildtext Varierad, inklusive varierad mikrofonanvändning, extra musik Varierad, från möten, reciterade tal, musikaliska texter Läs, förberedd eller löst strukturerad

Olika scenarier ger olika kvalitetsresultat. I följande tabell beskrivs hur innehåll från dessa fyra scenarier växlar i WER. Tabellen visar vilka feltyper som är vanligast i varje scenario. Felfrekvensen för infogning, ersättning och borttagning hjälper dig att avgöra vilken typ av data som ska läggas till för att förbättra modellen.

Scenario Taligenkänningskvalitet Infogningsfel Fel vid borttagning Ersättningsfel
Kundtjänst Medium
(< 30% WER)
Låg, förutom när andra pratar i bakgrunden Kan vara hög. Callcenter kan vara bullriga och överlappande högtalare kan förvirra modellen Medel. Produkter och personers namn kan orsaka dessa fel
Röstassistent Högt
(kan vara < 10 % WER)
Låg Låg Medel, på grund av låttitlar, produktnamn eller platser
Diktering Högt
(kan vara < 10 % WER)
Låg Låg Hög
Video stängd bildtext Beror på videotyp (kan vara < 50 % WER) Låg Kan vara hög på grund av musik, ljud, mikrofonkvalitet Jargong kan orsaka dessa fel

Nästa steg