Gegevens voorbereiden voor Custom Speech
Wanneer u de nauwkeurigheid van Microsoft-spraakherkenning test of uw aangepaste modellen traint, hebt u audio- en tekstgegevens nodig. Op deze pagina behandelen we de typen gegevens die een aangepast spraakmodel nodig heeft.
Gegevensdiversiteit
Tekst en audio die worden gebruikt om een aangepast model te testen en te trainen, moeten voorbeelden bevatten van diverse sprekers en scenario's die door uw model moeten worden herkend. Houd rekening met deze factoren bij het verzamelen van gegevens voor het testen en trainen van aangepaste modellen:
- Uw tekst- en spraakgegevens moeten betrekking hebben op de soorten gesproken instructies die uw gebruikers zullen maken bij het werken met uw model. Een model dat bijvoorbeeld de temperatuur verhoogt en verlaagt, moet worden getraind met instructies die mensen kunnen maken om dergelijke wijzigingen aan te vragen.
- Uw gegevens moeten alle spraakafwijkingen bevatten die uw model moet herkennen. Veel factoren kunnen variëren in spraak, waaronder accenten, dialecten, taalgemixte, leeftijd, geslacht, toonhoogte, stressniveau en tijdstip van de dag.
- U moet voorbeelden opnemen uit verschillende omgevingen (binnen, buiten, wegruis) waar uw model wordt gebruikt.
- Audio moet worden verzameld met behulp van hardwareapparaten die door het productiesysteem worden gebruikt. Als uw model spraak moet identificeren die is opgenomen op opnameapparaten van verschillende kwaliteit, moeten de audiogegevens die u verstrekt voor het trainen van uw model ook deze diverse scenario's vertegenwoordigen.
- U kunt later meer gegevens aan uw model toevoegen, maar zorg ervoor dat de gegevensset divers en representatief is voor uw projectbehoeften.
- Het opnemen van gegevens die niet binnen uw aangepaste modelherkenningsbehoeften vallen, kan de kwaliteit van de herkenning in het algemeen schaden. Neem dus geen gegevens op die uw model niet hoeft te transcriberen.
Een model dat is getraind op een subset van scenario's, kan alleen goed presteren in deze scenario's. Kies zorgvuldig gegevens die het volledige bereik van scenario's vertegenwoordigen die door uw aangepaste model moeten worden herkend.
Tip
Begin met kleine sets met voorbeeldgegevens die overeenkomen met de taal en akoestiek die uw model tegenkomt. Neem bijvoorbeeld een klein maar representatief audiovoorbeeld op dezelfde hardware op en in dezelfde akoestische omgeving die uw model in productiescenario's vindt. Kleine gegevenssets met representatieve gegevens kunnen problemen opleveren voordat u hebt geïnvesteerd in het verzamelen van veel grotere gegevenssets voor training.
Als u snel aan de slag wilt gaan, kunt u voorbeeldgegevens gebruiken. Zie deze opslagplaats GitHub voorbeeld van Custom Speech-gegevens
Gegevenstypen
Deze tabel bevat geaccepteerde gegevenstypen, wanneer elk gegevenstype moet worden gebruikt, en de aanbevolen hoeveelheid. Niet elk gegevenstype is vereist om een model te maken. De gegevensvereisten variëren afhankelijk van of u een test maakt of een model traint.
| Gegevenstype | Wordt gebruikt voor testen | Aanbevolen hoeveelheid | Wordt gebruikt voor training | Aanbevolen hoeveelheid |
|---|---|---|---|---|
| Alleen audio | Yes Wordt gebruikt voor visuele inspectie |
5+ audiobestanden | No | N.v.t. |
| Audio en door mensen gelabelde transcripten | Yes Wordt gebruikt om de nauwkeurigheid te evalueren |
0,5-5 uur audio | Yes | 1-20 uur aan audio |
| Tekst zonder tekst | No | N/a | Yes | 1-200 MB aan gerelateerde tekst |
| Gestructureerde tekst (openbare preview) | No | N/a | Yes | Maximaal 10 klassen met maximaal 4000 items en maximaal 50.000 trainings zinnen |
| Uitspraak | No | N/a | Yes | 1 kB - 1 MB uitspraaktekst |
Bestanden moeten op type worden gegroepeerd in een gegevensset en worden geüpload als .zip bestand. Elke gegevensset kan slechts één gegevenstype bevatten.
Tip
Wanneer u een nieuw model traint, begint u met gegevens in tekst zonder tekst of gestructureerde tekstgegevens. Deze gegevens verbeteren de herkenning van speciale termen en zinnen. Trainen met tekst gaat veel sneller dan trainen met audio (minuten versus dagen).
Notitie
Niet alle basismodellen ondersteunen training met audio. Als een basismodel dit niet ondersteunt, gebruikt de Speech-service alleen de tekst uit de transcripten en negeert de audio. Zie Taalondersteuning voor een lijst met basismodellen die ondersteuning bieden voor training met audiogegevens. Zelfs als een basismodel training met audiogegevens ondersteunt, gebruikt de service mogelijk slechts een deel van de audio. Toch worden alle transcripties gebruikt.
Als u het basismodel wijzigt dat wordt gebruikt voor training en u audio in de trainingsgegevensset hebt, controleert u altijd of het nieuwe geselecteerde basismodel training met audiogegevens ondersteunt. Als het eerder gebruikte basismodel geen ondersteuning biedt voor training met audiogegevens en de trainingsgegevensset audio bevat, neemt de training met het nieuwe basismodel drastisch toe en kan deze eenvoudig van enkele uren naar enkele dagen en meer gaan. Dit geldt met name als uw Speech Service-abonnement zich niet in een regio met de toegewezen hardware voor training.
Als u te maken hebt met het probleem dat in de bovenstaande alinea wordt beschreven, kunt u de training snel verkorten door de hoeveelheid audio in de gegevensset te verminderen of deze volledig te verwijderen en alleen de tekst te verlaten. De laatste optie wordt ten zeerste aanbevolen als uw Speech Service-abonnement zich niet in een regio met de toegewezen hardware voor training.
In regio's met toegewezen hardware voor training gebruikt de Speech-service maximaal 20 uur aan audio voor training. In andere regio's gebruikt het slechts maximaal acht uur aan audio.
Notitie
Training met gestructureerde tekst wordt alleen ondersteund voor de volgende land/landen: en-US, en-UK, en-IN, de-DE, fr-FR, fr-CA, es-ES, es-MX en u moet het meest recente basismodel voor deze landteksten gebruiken.
Voor locales die geen training met gestructureerde tekst ondersteunen, neemt de service trainings zinnen die niet verwijzen naar klassen als onderdeel van de training met tekst zonder tekst.
Gegevens uploaden
Als u uw gegevens wilt uploaden, gaat u naar Speech Studio. Nadat u een project hebt aanmaken, gaat u naar het tabblad Speech-gegevenssets en klikt u op Upload om de wizard te starten en uw eerste gegevensset te maken. Selecteer een spraakgegevenstype voor uw gegevensset en upload uw gegevens.
Notitie
Als de bestandsgrootte van uw gegevensset groter is dan 128 MB, kunt u deze alleen uploaden met behulp van Azure Blob of een gedeelde locatie. U kunt spraak-naar-tekst ook gebruiken REST API v3.0 om een gegevensset van elke toegestane grootte te uploaden. Zie de volgende sectie voor meer informatie.
Eerst moet u opgeven of de gegevensset moet worden gebruikt voor Training of Testing. Er zijn veel soorten gegevens die kunnen worden geüpload en gebruikt voor training of testen. Elke gegevensset die u uploadt, moet correct zijn opgemaakt voordat u uploadt en moet voldoen aan de vereisten voor het gegevenstype dat u kiest. Vereisten worden vermeld in de volgende secties.
Nadat uw gegevensset is geüpload, hebt u een aantal opties:
- U kunt naar het tabblad Aangepaste modellen trainen navigeren om een aangepast model te trainen.
- U kunt naar het tabblad Testmodellen navigeren om de kwaliteit visueel te inspecteren met alleen audiogegevens of nauwkeurigheid te evalueren met audio- en door mensen gelabelde transcriptiegegevens.
Upload met behulp van spraak-naar-tekst-REST API v3.0
U kunt spraak-naar-tekst-REST API v3.0 gebruiken om bewerkingen met betrekking tot uw aangepaste modellen te automatiseren. U kunt deze met name gebruiken om een gegevensset te uploaden. Dit is vooral handig wanneer uw gegevenssetbestand groter is dan 128 MB, omdat grote bestanden niet kunnen worden geüpload met behulp van de optie Lokaal bestand in Speech Studio. (U kunt ook de optie Azure Blob of gedeelde locatie in Speech Studio gebruiken voor hetzelfde doel als beschreven in de vorige sectie.)
Als u een gegevensset wilt maken en uploaden, gebruikt u Gegevenssetaanvraag maken.
REST API gegevenssets en Speech Studio maken
Een gegevensset die is gemaakt met spraak-naar-tekst REST API v3.0, wordt niet verbonden met een van de Speech Studio-projecten, tenzij een speciale parameter is opgegeven in de aanvraagtekst (zie hieronder). Verbinding met een Speech Studio project is niet vereist voor modelaanpassingsbewerkingen, als deze worden uitgevoerd via de REST API.
Wanneer u zich aanmeldt bij de Speech Studio, wordt u via de gebruikersinterface op de hoogte wanneer er een niet-verbonden object wordt gevonden (zoals gegevenssets die zijn geüpload via de REST API zonder projectverwijzing) en wordt aangeboden om dergelijke objecten te verbinden met een bestaand project.
Als u de nieuwe gegevensset tijdens het uploaden wilt verbinden met een bestaand project in de Speech Studio, gebruikt u Gegevensset maken en vult u de aanvraag body in volgens de volgende indeling:
{
"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"
}
}
De Project-URL die is vereist voor project het element, kan worden verkregen met de aanvraag Projecten verkrijgen.
Audio en door mensen gelabelde transcriptiegegevens voor training/testen
Audio en door mensen gelabelde transcriptiegegevens kunnen worden gebruikt voor trainings- en testdoeleinden. Ter verbetering van de akoestische aspecten, zoals lichte accenten, spreekstijlen en achtergrondruis, of om de nauwkeurigheid van de spraak-naar-tekst-nauwkeurigheid van Microsoft te meten bij het verwerken van uw audiobestanden, moet u transcripties met door mensen gelabelde transcripties (woord voor woord) verstrekken ter vergelijking. Hoewel door mensen gelabelde transcriptie vaak tijdrovend is, is het nodig om de nauwkeurigheid te evalueren en het model te trainen voor uw gebruiksgevallen. Houd er rekening mee dat de verbeteringen in de herkenning alleen zo goed zijn als de geleverde gegevens. Daarom is het belangrijk dat alleen transcripten van hoge kwaliteit worden geüpload.
Audiobestanden kunnen stilte aan het begin en einde van de opname hebben. Neem, indien mogelijk, ten minste een halve seconde stilte voor en na spraak op in elk voorbeeldbestand. Hoewel audio met een laag opnamevolume of storende achtergrondruis niet nuttig is, mag dit uw aangepaste model geen kwaad doen. U kunt uw microfoons en hardware voor signaalverwerking altijd upgraden voordat u audiovoorbeelden verzamelt.
| Eigenschap | Waarde |
|---|---|
| Bestandsindeling | RIFF (WAV) |
| Samplefrequentie | 8000 Hz of 16.000 Hz |
| Kanalen | 1 (mono) |
| Maximale lengte per audio | 2 uur (testen) / 60 s (training) |
| Sample-indeling | PCM, 16-bits |
| Archiefindeling | .zip |
| Maximale zip-grootte | 2 GB |
De standaardindeling voor audiostreaming is WAV (16 kHz of 8 kHz, 16-bits en mono PCM). Naast WAV/PCM worden de onderstaande gecomprimeerde invoerindelingen ook ondersteund met behulp van GStreamer.
- MP3
- OPUS/OGG
- FLAC
- ALAW in wav-container
- MULAW in wav-container
- ANY (voor het scenario waarin de media-indeling niet bekend is)
Notitie
Bij het uploaden van trainings- en testgegevens mag .zip bestandsgrootte niet groter zijn dan 2 GB. U kunt slechts testen vanuit één gegevensset. Zorg ervoor dat u deze binnen de juiste bestandsgrootte houdt. Bovendien kan elk trainingsbestand niet langer zijn dan 60 seconden, anders t foutmelding.
Voor het oplossen van problemen zoals het verwijderen of vervangen van woorden is een aanzienlijke hoeveelheid gegevens vereist om de herkenning te verbeteren. Over het algemeen is het raadzaam om transcripties per woord te bieden voor 1 tot 20 uur audio. Maar zelfs 30 minuten kan helpen bij het verbeteren van de herkenningsresultaten. De transcripties voor alle WAV-bestanden moeten worden opgenomen in één bestand met tekst zonder opmaak. Elke regel van het transcriptiebestand moet de naam van een van de audiobestanden bevatten, gevolgd door de bijbehorende transcriptie. De bestandsnaam en transcriptie moeten worden gescheiden door een tab (\t).
Bijvoorbeeld:
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
Belangrijk
Transcriptie moet worden gecodeerd als UTF-8 BOM (Byte Order Mark).
De tekst van de transcripties wordt genormaliseerd zodat ze door het systeem kunnen worden verwerkt. Er moeten echter enkele belangrijke normalisaties worden uitgevoerd voordat de gegevens naar de Speech Studio. Zie How to create a human-labeled transcription (Een door mensen gelabelde transcriptie maken) voor de juiste taal die u kunt gebruiken bij het voorbereiden van uw transcripties
Nadat u uw audiobestanden en bijbehorende transcripties hebt verzameld, verpakt u deze als één .zip voordat u ze uploadt naar Speech Studio . Hieronder vindt u een voorbeeld van een gegevensset met drie audiobestanden en een door mensen gelabeld transcriptiebestand:

Zie Uw Azure-account instellen voor een lijst met aanbevolen regio's voor uw Speech Service-abonnementen. Het instellen van de Spraak-abonnementen in een van deze regio's vermindert de tijd die nodig is om het model te trainen. In deze regio's kan de training ongeveer 10 uur audio per dag verwerken, vergeleken met slechts 1 uur per dag in andere regio's. Als de modeltraining niet binnen een week kan worden voltooid, wordt het model gemarkeerd als mislukt.
Niet alle basismodellen ondersteunen training met audiogegevens. Als het basismodel dit niet ondersteunt, negeert de service de audio en traint deze alleen met de tekst van de transcripties. In dit geval is de training hetzelfde als trainen met gerelateerde tekst. Zie Taalondersteuning voor een lijst met basismodellen die ondersteuning bieden voor training met audiogegevens.
Gegevens in tekst zonder tekst voor training
U kunt domeingerelateerde zinnen gebruiken om de nauwkeurigheid te verbeteren bij het herkennen van productnamen of branche-specifiek jargon. Geef zinnen op in één tekstbestand. Gebruik tekstgegevens die dichter bij de verwachte gesproken utterances staan om de nauwkeurigheid te verbeteren.
Het trainen met tekst zonder tekst wordt doorgaans binnen een paar minuten voltooid.
Als u een aangepast model wilt maken met behulp van zinnen, moet u een lijst met voorbeeld-utterances verstrekken. Uitingen hoeven niet volledig of grammaticaal correct te zijn, maar moeten wel de gesproken invoer weerspiegelen die u in productie verwacht. Als u wilt dat bepaalde termen meer gewicht krijgen, voegt u verschillende zinnen toe die deze specifieke termen bevatten.
Zoals algemene richtlijnen zijn modelaanpassingen het effectiefst wanneer de trainingstekst zo dicht mogelijk bij de verwachte echte tekst in productie ligt. Domeinspecifieke jargon en zinnen die u wilt verbeteren, moeten worden opgenomen in de tekst van de training. Probeer, indien mogelijk, één zin of trefwoord te laten controleren op een afzonderlijke regel. Trefwoorden en woordgroepen die voor u belangrijk zijn (bijvoorbeeld productnamen), kunt u een paar keer kopiëren. Maar vergeet niet te veel te kopiëren. Dit kan van invloed zijn op de algehele herkenningsfrequentie.
Gebruik deze tabel om ervoor te zorgen dat uw gerelateerde gegevensbestand voor uitingen correct is opgemaakt:
| Eigenschap | Waarde |
|---|---|
| Tekstcodering | UTF-8 BOM |
| Aantal utterances per regel | 1 |
| Maximale bestandsgrootte | 200 MB |
Daarnaast moet u rekening houden met de volgende beperkingen:
- Vermijd tekens, woorden of groepen woorden meer dan drie keer te herhalen. Bijvoorbeeld: 'aaaa', 'ja ja ja ja' of 'dat klopt dat klopt dat klopt dat klopt'. De Speech-service kan regels met te veel herhalingen negeren.
- Gebruik geen speciale tekens of UTF-8-tekens boven
U+00A1. - URI's worden geweigerd.
- Voor sommige talen (bijvoorbeeld Japans of Koreaans) kan het importeren van grote hoeveelheden tekstgegevens erg lang duren of kan er een time-out plaatsvinden. Overweeg om de geüploade gegevens op te delen in tekstbestanden van maximaal 20.000 regels elk.
Gestructureerde tekstgegevens voor training (openbare preview)
De verwachte utterances volgen vaak een bepaald patroon. Een veelvoorkomende patroon is dat utterances alleen verschillen in woorden of woordgroepen in een lijst. Voorbeelden hiervan zijn 'Ik heb een vraag over product ', waarbij product een lijst met mogelijke producten is. Of maak die , waarbij een lijst met geometrische object color vormen is en een lijst met object color kleuren is. Om het maken van trainingsgegevens te vereenvoudigen en om betere modellering in het aangepaste taalmodel mogelijk te maken, kunt u een gestructureerde tekst in markdown-indeling gebruiken om lijsten met items te definiëren en hier vervolgens naar te verwijzen in uw trainingsuitingen. Daarnaast ondersteunt de Markdown-indeling ook het opgeven van de phonetic uitspraak van woorden. Het Markdown-bestand moet een extensie .md hebben. De syntaxis van de markdown is hetzelfde als die van de Language Understanding modellen, met name lijstentiteiten en voorbeeld-utterances. Zie de Language Understanding markdown voor meer informatie over de volledige markdown-syntaxis.
Hier is een voorbeeld van de Markdown-indeling:
// 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}
Net als bij tekst zonder tekst duurt het trainen met gestructureerde tekst doorgaans enkele minuten. Uw voorbeeld zinnen en lijsten moeten ook het type gesproken invoer weerspiegelen dat u in productie verwacht. Zie voor uitspraak vermeldingen de beschrijving van de Universal Telefoon Set.
In de onderstaande tabel worden de limieten en andere eigenschappen voor de Markdown-indeling opgegeven:
| Eigenschap | Waarde |
|---|---|
| Tekstcodering | UTF-8 BOM |
| Maximale bestandsgrootte | 200 MB |
| Maximum aantal voorbeeld zinnen | 50,000 |
| Maximum aantal lijstklassen | 10 |
| Maximum aantal items in een lijstklasse | 4000 |
| Maximum aantal spraak-:phoneticlexicon-vermeldingen | 15.000 |
| Maximum aantal uitspraak per woord | 2 |
Uitspraakgegevens voor training
Als er ongebruikelijke termen zonder standaarduitspraken zijn die uw gebruikers tegenkomen of gebruiken, kunt u een aangepast uitspraakbestand verstrekken om de herkenning te verbeteren. Zie Uitspraak in de kolom Aanpassingen in de tabel Spraak-naar-tekstvoor een lijst met talen die ondersteuning bieden voor aangepaste uitspraak.
Belangrijk
Het wordt afgeraden om aangepaste uitspraakbestanden te gebruiken om de uitspraak van veelvoorkomende woorden te wijzigen.
Notitie
U kunt dit type uitspraakbestand niet combineren met gestructureerde teksttrainingsgegevens. Gebruik voor gestructureerde tekstgegevens de functie voor de uitspraak van de telefoon die is opgenomen in de markdown-indeling voor gestructureerde tekst.
Geef uitspraak op in één tekstbestand. Dit omvat voorbeelden van een gesproken utterance en een aangepaste uitspraak voor elke:
| Herkend/weergegeven formulier | Gesproken vorm |
|---|---|
| 3CPO | drie c p o |
| CNTK | c n t k |
| IEEE | i triple e |
De gesproken vorm is de spelling van de telefoonreeks. Het kan bestaan uit letters, woorden, lettergrepen of een combinatie van alle drie.
Gebruik de volgende tabel om ervoor te zorgen dat uw gerelateerde gegevensbestand voor uitspraak correct is opgemaakt. Uitspraakbestanden zijn klein en mogen slechts enkele kilobytes groot zijn.
| Eigenschap | Waarde |
|---|---|
| Tekstcodering | UTF-8 BOM (ANSI wordt ook ondersteund voor het Engels) |
| Aantal uitspraak per regel | 1 |
| Maximale bestandsgrootte | 1 MB (1 kB voor gratis laag) |
Audiogegevens voor testen
Audiogegevens zijn optimaal voor het testen van de nauwkeurigheid van het basismodel van Microsoft voor spraak-naar-tekst of een aangepast model. Houd er rekening mee dat audiogegevens worden gebruikt om de nauwkeurigheid van spraak met betrekking tot de prestaties van een specifiek model te controleren. Als u de nauwkeurigheid van een model wilt kwantificeren, gebruikt u audio + door mensen gelabelde transcripten.
Custom Speech vereist audiobestanden met de volgende eigenschappen:
| Eigenschap | Waarde |
|---|---|
| Bestandsindeling | RIFF (WAV) |
| Samplefrequentie | 8000 Hz of 16.000 Hz |
| Kanalen | 1 (mono) |
| Maximale lengte per audio | 2 uur |
| Sample-indeling | PCM, 16-bits |
| Archiefindeling | .zip |
| Maximale archiefgrootte | 2 GB |
De standaardindeling voor audiostreaming is WAV (16 kHz of 8 kHz, 16-bits en mono PCM). Naast WAV/PCM worden de onderstaande gecomprimeerde invoerindelingen ook ondersteund met behulp van GStreamer.
- MP3
- OPUS/OGG
- FLAC
- ALAW in wav-container
- MULAW in wav-container
- ANY (voor het scenario waarin de media-indeling niet bekend is)
Notitie
Bij het uploaden van trainings- en testgegevens mag .zip bestandsgrootte niet groter zijn dan 2 GB. Als u meer gegevens nodig hebt voor de training, verdeelt u deze in .zip bestanden en uploadt u ze afzonderlijk. Later kunt u ervoor kiezen om te trainen vanuit meerdere gegevenssets. U kunt echter slechts vanuit één gegevensset testen.
Gebruik SoX om audio-eigenschappen te controleren of bestaande audio te converteren naar de juiste indelingen. Hieronder vindt u enkele voorbeelden van SoX-opdrachten:
| Activiteit | SoX-opdracht |
|---|---|
| Controleert de indeling van het audiobestand. | sox --i <filename> |
| Converteert het audiobestand naar één kanaal, 16-bits, 16 kHz. | sox <input> -b 16 -e signed-integer -c 1 -r 16k -t wav <output>.wav |