Förbereda data för Custom Speech
När du testar noggrannheten hos Microsofts taligenkänning eller tränar dina anpassade modeller behöver du ljud- och textdata. På den här sidan går vi in på de typer av data som en anpassad talmodell behöver.
Datamångfald
Text och ljud som används för att testa och träna en anpassad modell måste innehålla exempel från en mängd olika talare och scenarier som du behöver din modell för att känna igen. Tänk på följande när du samlar in data för anpassad modelltestning och träning:
- Dina text- och talljuddata måste täcka de typer av verbala uttryck som användarna kommer att göra när de interagerar med din modell. En modell som till exempel höjer och sänker temperaturen behöver tränas på instruktioner som människor kan göra för att begära sådana ändringar.
- Dina data måste innehålla alla talavvikelser som din modell behöver känna igen. Många faktorer kan variera tal, inklusive accenter, dialekter, språkblandning, ålder, kön, tonhöjd, stressnivå och tid på dagen.
- Du måste ta med exempel från olika miljöer (inomhus, utomhus, vägbrus) där din modell ska användas.
- Ljud måste samlas in med hjälp av maskinvaruenheter som produktionssystemet ska använda. Om din modell behöver identifiera tal som registrerats på inspelningsenheter av varierande kvalitet måste de ljuddata som du tillhandahåller för att träna din modell också representera dessa olika scenarier.
- Du kan lägga till mer data i din modell senare, men var noga med att hålla datauppsättningen mångfaldig och representativ för dina projektbehov.
- Att inkludera data som inte ligger inom dina anpassade modelligenkänningsbehov kan skada kvaliteten på igenkänningen totalt, så ta inte med data som din modell inte behöver transkribera.
En modell som tränats på en delmängd av scenarier kan bara prestera bra i dessa scenarier. Välj noggrant data som representerar hela omfånget av scenarier som du behöver din anpassade modell för att känna igen.
Tips
Börja med små uppsättningar exempeldata som matchar språket och akustik som din modell kommer att stöta på. Du kan till exempel spela in ett litet men representativt ljudexempel på samma maskinvara och i samma akustiska miljö som din modell hittar i produktionsscenarier. Små datauppsättningar med representativa data kan exponera problem innan du har investerat i att samla in mycket större datauppsättningar för träning.
Överväg att använda exempeldata för att snabbt komma igång. Se den GitHub lagringsplatsen för exempel på Custom Speech-data
Datatyper
I den här tabellen visas godkända datatyper, när varje datatyp ska användas och den rekommenderade kvantiteten. Det är inte alla datatyper som krävs för att skapa en modell. Datakraven varierar beroende på om du skapar ett test eller tränar en modell.
| Datatyp | Används för testning | Rekommenderad kvantitet | Används för träning | Rekommenderad kvantitet |
|---|---|---|---|---|
| Endast ljud | Yes Används för visuell kontroll |
Över 5 ljudfiler | No | Ej tillämpligt |
| Ljud + mänskliga etiketterade avskrifter | Yes Används för att utvärdera noggrannhet |
0,5–5 timmars ljud | Yes | 1–20 timmars ljud |
| Oformaterad text | No | Ej a | Yes | 1–200 MB relaterad text |
| Strukturerad text (offentlig förhandsversion) | No | Ej a | Yes | Upp till 10 klasser med upp till 4 000 objekt och upp till 50 000 tränings meningar |
| Uttal | No | Ej a | Yes | 1 kB – 1 MB uttalstext |
Filerna ska grupperas efter typ i en datauppsättning och laddas upp som en .zip fil. Varje datauppsättning kan bara innehålla en enda datatyp.
Tips
När du tränar en ny modell börjar du med oformaterad text eller strukturerade textdata. Dessa data förbättrar igenkänningen av särskilda termer och fraser. Det går mycket snabbare att träna med text än att träna med ljud (minuter kontra dagar).
Anteckning
Alla basmodeller stöder inte träning med ljud. Om en basmodell inte stöder det använder speech-tjänsten endast texten från avskrifterna och ignorerar ljudet. Se Språkstöd för en lista över basmodeller som stöder träning med ljuddata. Även om en basmodell stöder träning med ljuddata kan tjänsten endast använda en del av ljudet. Den använder fortfarande alla avskrifter.
Om du ändrar basmodellen som används för träning och du har ljud i träningsdatauppsättningen kontrollerar du alltid om den nya valda basmodellen stöder träning med ljuddata. Om den tidigare använda basmodellen inte hade stöd för träning med ljuddata och träningsdatamängden innehåller ljud, ökar träningstiden med den nya basmodellen drastiskt och kan lätt gå från flera timmar till flera dagar och mer. Detta gäller särskilt om speech-tjänstprenumerationen inte finns i en region med dedikerad maskinvara för träning.
Om du får problem som beskrivs i stycket ovan kan du snabbt minska träningstiden genom att minska mängden ljud i datauppsättningen eller ta bort den helt och endast lämna texten. Det senare alternativet rekommenderas starkt om speech-tjänstprenumerationen inte finns i en region med dedikerad maskinvara för träning.
I regioner med dedikerad maskinvara för träning använder Speech-tjänsten upp till 20 timmars ljud för träning. I andra regioner använder den bara upp till 8 timmars ljud.
Anteckning
Träning med strukturerad text stöds endast för dessa språk: en-US, en-UK, en-IN, de-DE, fr-FR, fr-CA, es-ES, es-MX och du måste använda den senaste basmodellen för dessa språk.
För språk som inte stöder träning med strukturerad text tar tjänsten eventuella tränings meningar som inte refererar till några klasser som en del av träningen med oformaterad textdata.
Ladda upp data
Om du vill ladda upp data går du till Speech Studio. När du har skapat ett projekt går du till fliken Taldatauppsättningar och Upload data för att starta guiden och skapa din första datauppsättning. Välj en taldatatyp för datauppsättningen och ladda upp dina data.
Anteckning
Om datauppsättningens filstorlek överskrider 128 MB kan du bara ladda upp den med alternativet Azure Blob eller delad plats. Du kan också använda tal till text för att REST API v3.0 för att ladda upp en datauppsättning av valfri tillåten storlek. Mer information finns i nästa avsnitt.
Först måste du ange om datauppsättningen ska användas för träning eller testning. Det finns många typer av data som kan laddas upp och användas för träning eller testning. Varje datauppsättning som du laddar upp måste vara korrekt formaterad innan du laddar upp och måste uppfylla kraven för den datatyp som du väljer. Kraven anges i följande avsnitt.
När datauppsättningen har laddats upp har du några alternativ:
- Du kan gå till fliken Träna anpassade modeller för att träna en anpassad modell.
- Du kan navigera till fliken Testmodeller för att visuellt kontrollera kvalitet med endast ljuddata eller utvärdera noggrannhet med ljud och transkriptionsdata som är märkta med människor.
Upload data med hjälp av tal till text REST API v3.0
Du kan använda tal till text-REST API v3.0 för att automatisera alla åtgärder som är relaterade till dina anpassade modeller. I synnerhet kan du använda den för att ladda upp en datauppsättning. Detta är särskilt användbart när datauppsättningsfilen överskrider 128 MB, eftersom filer som är stora inte kan laddas upp med alternativet Lokal fil i Speech Studio. (Du kan också använda alternativet Azure Blob eller delad plats i Speech Studio för samma syfte som beskrivs i föregående avsnitt.)
Om du vill skapa och ladda upp en datauppsättning använder du Begäran om att skapa datauppsättning.
REST API skapade datauppsättningar och Speech Studio projekt
En datauppsättning som skapats med tal till text-REST API v3.0 ansluts inte till något av Speech Studio-projekten, såvida inte en särskild parameter anges i begärandetexten (se nedan). Anslutning till ett Speech Studio-projekt krävs inte för några modellanpassningsåtgärder, om de utförs via REST API.
När du loggar in på Speech Studio meddelar dess användargränssnitt dig när ett objekt som inte är anslutet hittas (t.ex. datauppsättningar som laddats upp via REST API utan någon projektreferens) och erbjuder att ansluta sådana objekt till ett befintligt projekt.
Om du vill ansluta den nya datauppsättningen till ett befintligt projekt i Speech Studio under uppladdningen använder du Skapa datauppsättning och fyller i begärandetexten enligt följande format:
{
"kind": "Acoustic",
"contentUrl": "https://contoso.com/mydatasetlocation",
"locale": "en-US",
"displayName": "My speech dataset name",
"description": "My speech dataset description",
"project": {
"self": "https://westeurope.api.cognitive.microsoft.com/speechtotext/v3.0/projects/c1c643ae-7da5-4e38-9853-e56e840efcb2"
}
}
Den Project URL som krävs project för elementet kan hämtas med Begäran om Get Projects.
Ljud och mänskligt märkta avskriftsdata för träning/testning
Ljud och mänskligt märkta avskriftsdata kan användas för både träning och testning. Om du vill förbättra de akustiska aspekterna som små accenter, talstilar, bakgrundsbrus eller mäta noggrannheten hos Microsofts tal till text-precision när du bearbetar dina ljudfiler måste du tillhandahålla transkriptioner med mänsklig märkning (ord för ord) för jämförelse. Transkription med mänsklig märkning är ofta tidskrävande, men det är nödvändigt att utvärdera noggrannheten och träna modellen för dina användningsfall. Tänk på att förbättringarna av igenkänningen bara är lika bra som de data som tillhandahålls. Därför är det viktigt att endast avskrifter av hög kvalitet laddas upp.
Ljudfiler kan ha tystnad i början och slutet av inspelningen. Inkludera om möjligt minst en halv sekunds tystnad före och efter tal i varje exempelfil. Ljud med låg inspelningsvolym eller störande bakgrundsljud är inte användbart, men det bör inte skada din anpassade modell. Överväg alltid att uppgradera dina mikrofoner och maskinvara för signalbearbetning innan du samlar in ljudexempel.
| Egenskap | Värde |
|---|---|
| Filformat | RIFF (WAV) |
| Samplingsfrekvens | 8 000 Hz eller 16 000 Hz |
| Kanaler | 1 (mono) |
| Maximal längd per ljud | 2 timmar (testning) /60 s (träning) |
| Samplingsformat | PCM, 16-bitars |
| Arkivformat | .zip |
| Maximal zip-storlek | 2 GB |
Standardformatet för ljudströmning är WAV (16 kHz eller 8 kHz, 16-bitars och mono PCM). Utanför WAV/PCM stöds även komprimerade indataformat som anges nedan med hjälp av GStreamer.
- MP3
- GS/OGG
- FLAC
- A WAV i wav-container
- MUCF i wav-container
- ANY (för scenariot där medieformatet inte är känt)
Anteckning
När du laddar upp tränings- och testdata får .zip större än 2 GB. Du kan bara testa från en enda datauppsättning, se till att hålla den inom lämplig filstorlek. Dessutom får varje träningsfil inte överskrida 60 sekunder, annars uppstår ett fel.
För att lösa problem som ordborttagning eller ersättning krävs en stor mängd data för att förbättra igenkänningen. I allmänhet rekommenderar vi att du tillhandahåller transkriptioner ord för ord i 1 till 20 timmars ljud. Men så lite som 30 minuter kan hjälpa till att förbättra igenkänningsresultatet. Transkriptioner för alla WAV-filer bör ingå i en enda fil med oformaterad text. Varje rad i transkriptionsfilen ska innehålla namnet på en av ljudfilerna följt av motsvarande transkription. Filnamnet och transkriptionen ska separeras med ett tabbtecken (\t).
Exempel:
speech01.wav speech recognition is awesome
speech02.wav the quick brown fox jumped all over the place
speech03.wav the lazy dog was not amused
Viktigt
Transkriptionen ska kodas som UTF-8-byteordningsmärke (BOM).
Transkriptionerna textnormaliseras så att de kan bearbetas av systemet. Det finns dock vissa viktiga normaliseringar som måste göras innan du laddar upp data till Speech Studio. Information om vilket språk du ska använda när du förbereder transkriptionerna finns i Så här skapar du en transkription med mänsklig etikett
När du har samlat in ljudfiler och motsvarande transkriptioner paketerar du dem som en enda .zip-fil innan du laddar upp till Speech Studio . Nedan visas en exempeldatamängd med tre ljudfiler och en transkriptionsfil med mänsklig märkning:

Se Konfigurera ditt Azure-konto för en lista över rekommenderade regioner för dina Speech-tjänstprenumerationer. Genom att konfigurera Speech-prenumerationerna i en av dessa regioner minskar den tid det tar att träna modellen. I dessa regioner kan träning bearbeta cirka 10 timmars ljud per dag jämfört med bara 1 timme per dag i andra regioner. Om modellträningen inte kan slutföras inom en vecka markeras modellen som misslyckad.
Alla basmodeller stöder inte träning med ljuddata. Om basmodellen inte stöder det ignorerar tjänsten ljudet och tränar bara med texten i transkriptionerna. I det här fallet är träningen samma som träning med relaterad text. Se Språkstöd för en lista över basmodeller som stöder träning med ljuddata.
Oformaterad textdata för träning
Du kan använda domänrelaterade meningar för att förbättra noggrannheten vid igenkänning av produktnamn eller branschspecifik jargong. Ange meningar i en enda textfil. För att förbättra noggrannheten använder du textdata som ligger närmare de förväntade talade yttrandena.
Träning med oformaterad text slutförs vanligtvis inom några minuter.
Om du vill skapa en anpassad modell med meningar måste du ange en lista över exempelyttranden. Yttranden behöver inte vara fullständiga eller grammatiskt korrekta, men de måste korrekt återspegla de talade indata som du förväntar dig i produktion. Om du vill att vissa termer ska ha ökad vikt lägger du till flera meningar som innehåller dessa specifika termer.
Som allmänna riktlinjer är modellanpassning mest effektiv när träningstexten är så nära den verkliga text som förväntas i produktion som möjligt. Domänspecifik jargong och fraser som du vill förbättra bör ingå i träningstexten. När det är möjligt kan du försöka kontrollera en mening eller ett nyckelord på en separat rad. För nyckelord och fraser som är viktiga för dig (till exempel produktnamn) kan du kopiera dem några gånger. Men tänk på att kopiera inte för mycket – det kan påverka den övergripande igenkänningsfrekvensen.
Använd den här tabellen för att säkerställa att din relaterade datafil för talindata är korrekt formaterad:
| Egenskap | Värde |
|---|---|
| Textkodning | UTF-8 BOM |
| antal yttrande per rad | 1 |
| Maximal filstorlek | 200 MB |
Dessutom bör du ta hänsyn till följande begränsningar:
- Undvik att upprepa tecken, ord eller grupper av ord mer än tre gånger. Till exempel: ”aaaa”, ”ja ja ja ja”, eller ”det stämmer det stämmer det stämmer det stämmer”. Taltjänsten kan släppa rader med för många upprepningar.
- Använd inte specialtecken eller UTF-8-tecken över
U+00A1. - URI:er avvisas.
- För vissa språk (till exempel japanska eller koreanska) kan import av stora mängder textdata ta mycket lång tid eller en time out. Överväg att dela upp uppladdade data i textfiler på upp till 20 000 rader vardera.
Strukturerade textdata för träning (offentlig förhandsversion)
De förväntade yttrandena följer ofta ett visst mönster. Ett vanligt mönster är att yttranden endast skiljer sig åt med ord eller fraser från en lista. Exempel på detta kan vara "Jag har en fråga om product ," där product är en lista över möjliga produkter. Eller "Make that object color ", där object är en lista över geometriska former och är en lista med color färger. För att förenkla skapandet av träningsdata och möjliggöra bättre modellering i den anpassade språkmodellen kan du använda en strukturerad text i markdown-format för att definiera listor med objekt och sedan referera till dem i dina träningsyttraden. Dessutom stöder markdown-formatet också att ange ords fonetiska uttal. Markdown-filen bör ha ett .md tillägg. Syntaxen för markdown är samma som från Language Understanding, särskilt listentiteter och exempelyttranden. Mer information om den fullständiga markdownsyntaxen finns i Language Understanding markdown.
Här är ett exempel på markdownformatet:
// This is a comment
// Here are three separate lists of items that can be referenced in an example sentence. You can have up to 10 of these
@ list food =
- pizza
- burger
- ice cream
- soda
@ list pet =
- cat
- dog
@ list sports =
- soccer
- tennis
- cricket
- basketball
- baseball
- football
// This is a list of phonetic pronunciations.
// This adjusts the pronunciation of every instance of these word in both a list or example training sentences
@ speech:phoneticlexicon
- cat/k ae t
- cat/f i l ai n
// Here are example training sentences. They are grouped into two sections to help organize the example training sentences.
// You can refer to one of the lists we declared above by using {@listname} and you can refer to multiple lists in the same training sentence
// A training sentence does not have to refer to a list.
# SomeTrainingSentence
- you can include sentences without a class reference
- what {@pet} do you have
- I like eating {@food} and playing {@sports}
- my {@pet} likes {@food}
# SomeMoreSentence
- you can include more sentences without a class reference
- or more sentences that have a class reference like {@pet}
Precis som oformaterad text tar träning med strukturerad text vanligtvis några minuter. Dina exempel på meningar och listor bör också återspegla den typ av talade indata som du förväntar dig i produktion. Uttalsposter finns i beskrivningen av Universal Telefon Set.
Tabellen nedan anger gränser och andra egenskaper för markdown-formatet:
| Egenskap | Värde |
|---|---|
| Textkodning | UTF-8 BOM |
| Maximal filstorlek | 200 MB |
| Maximalt antal exempel på meningar | 50 000 |
| Maximalt antal listklasser | 10 |
| Maximalt antal objekt i en listklass | 4 000 |
| Maximalt antal tal:phoneticicon-poster | 15 000 |
| Maximalt antal uttal per ord | 2 |
Uttalsdata för träning
Om det finns ovanliga termer utan standarduttal som användarna kommer att stöta på eller använder kan du ange en anpassad uttalsfil för att förbättra igenkänningen. En lista över språk som stöder anpassat uttal finns i Uttal i kolumnen Anpassningar i tal till text-tabellen.
Viktigt
Vi rekommenderar inte att du använder anpassade uttalsfiler för att ändra uttalet av vanliga ord.
Anteckning
Du kan inte kombinera den här typen av uttalsfil med strukturerade träningsdata för text. För strukturerade textdata använder du funktionen för fonetiskt uttal som ingår i formatet för strukturerad text markdown.
Ange uttal i en enda textfil. Detta inkluderar exempel på talade yttranden och ett anpassat uttal för var och en:
| Identifierat/visat formulär | Talat formulär |
|---|---|
| 3CPO | tre c p o |
| CNTK | c n t k |
| IEEE | i triple e |
Det talade formuläret är den fonetiska sekvensen som är utstavad. Den kan bestå av bokstäver, ord, stavelser eller en kombination av alla tre.
Använd följande tabell för att se till att den relaterade datafilen för uttal är korrekt formaterad. Uttalsfiler är små och bör bara vara några få kilobyte stora.
| Egenskap | Värde |
|---|---|
| Textkodning | UTF-8 BOM (ANSI stöds också för engelska) |
| Antal uttal per rad | 1 |
| Maximal filstorlek | 1 MB (1 kB för den kostnadsfria nivån) |
Ljuddata för testning
Ljuddata är optimala för att testa noggrannheten i Microsofts baslinjemodell för tal till text eller en anpassad modell. Tänk på att ljuddata används för att kontrollera talprecisionen med avseende på en specifik modells prestanda. Om du vill kvantifiera noggrannheten för en modell använder du ljud + mänskligt märkta avskrifter.
Custom Speech kräver ljudfiler med följande egenskaper:
| Egenskap | Värde |
|---|---|
| Filformat | RIFF (WAV) |
| Samplingsfrekvens | 8 000 Hz eller 16 000 Hz |
| Kanaler | 1 (mono) |
| Maximal längd per ljud | 2 timmar |
| Samplingsformat | PCM, 16-bitars |
| Arkivformat | .zip |
| Maximal arkivstorlek | 2 GB |
Standardformatet för ljudströmning är WAV (16 kHz eller 8 kHz, 16-bitars och mono PCM). Utanför WAV/PCM stöds även komprimerade indataformat som anges nedan med hjälp av GStreamer.
- MP3
- GS/OGG
- FLAC
- A WAV i wav-container
- MUCF i wav-container
- ANY (för scenariot där medieformatet inte är känt)
Anteckning
När du laddar upp tränings- och testdata får .zip större än 2 GB. Om du behöver mer data för träning kan du dela upp dem i .zip filer och ladda upp dem separat. Senare kan du välja att träna från flera datauppsättningar. Du kan dock bara testa från en enda datauppsättning.
Använd SoX för att verifiera ljudegenskaper eller konvertera befintligt ljud till lämpliga format. Nedan visas några soX-exempelkommandon:
| Aktivitet | SoX-kommando |
|---|---|
| Kontrollera ljudfilformatet. | sox --i <filename> |
| Konvertera ljudfilen till en enda kanal, 16-bitars, 16 KHz. | sox <input> -b 16 -e signed-integer -c 1 -r 16k -t wav <output>.wav |