Bewerken

Delen via


Aangepaste spraak naar tekst implementeren

Azure AI services
Azure AI Speech
Azure Machine Learning

In deze tweedelige handleiding worden verschillende benaderingen beschreven voor het efficiënt implementeren van spraakbewuste toepassingen van hoge kwaliteit. Het richt zich op het uitbreiden en aanpassen van het basislijnmodel van spraak naar tekstfunctionaliteit die wordt geleverd door de AI Speech-service.

In dit artikel worden de probleemruimte en het besluitvormingsproces voor het ontwerpen van uw oplossing beschreven. Het tweede artikel, Een aangepaste spraak-naar-tekstoplossing implementeren, biedt een use-case voor het toepassen van deze instructies en aanbevolen procedures.

Het vooraf gebouwde en aangepaste AI-spectrum

Het vooraf gebouwde en aangepaste AI-spectrum vertegenwoordigt meerdere lagen voor aanpassing en ontwikkeling van AI-modellen, variërend van kant-en-klare vooraf gebouwde modellen tot volledig aangepaste AI-oplossingen.

Diagram met het spectrum van aanpassingslagen.

Aan de linkerkant van het spectrum maakt Azure AI-services een snelle en lage frictie-implementatie van AI-mogelijkheden mogelijk in toepassingen via vooraf getrainde modellen. Microsoft cureert uitgebreide gegevenssets om deze basislijnmodellen te trainen en te bouwen. Als gevolg hiervan kunt u basislijnmodellen zonder extra trainingsgegevens gebruiken. Ze worden gebruikt via programmatische API-aanroepen voor verbeterde beveiliging.

Azure AI-services omvatten:

  • Toespraak. Spraak naar tekst, tekst naar spraak, spraakomzetting en sprekerherkenning
  • Taal. Entiteitsherkenning, sentimentanalyse, antwoord op vragen, begrip van conversationele taal en vertaler
  • Gezichtsvermogen. Computer Vision en Face-API
  • Besluit. Anomaliedetector, Content Moderator en Personalizer
  • OpenAI-service. Geavanceerde taalmodellen

Wanneer de vooraf gemaakte basislijnmodellen niet nauwkeurig genoeg presteren op uw gegevens, kunt u ze aanpassen door trainingsgegevens toe te voegen die relatief zijn voor het probleemdomein. Deze aanpassing vereist de extra inspanning om voldoende gegevens te verzamelen om een acceptabel model te trainen en te evalueren. Azure AI-services die kunnen worden aangepast, zijn Custom Vision, Custom Vertalen, Custom Speech en CLU. Het uitbreiden van vooraf gebouwde Azure AI-servicesmodellen bevindt zich in het midden van het spectrum. Het grootste deel van dit artikel is gericht op dat centrale gebied.

Als modellen en trainingsgegevens zich richten op een specifiek scenario en een eigen trainingsgegevensset vereisen, biedt Azure Machine Learning aangepaste oplossingsresources, hulpprogramma's, berekeningen en werkstroomrichtlijnen ter ondersteuning van het bouwen van volledig aangepaste modellen. Dit scenario wordt rechts van het spectrum weergegeven. Deze modellen zijn helemaal zelf gebouwd. Het ontwikkelen van een model met behulp van Azure Machine Learning varieert doorgaans van het gebruik van visuele hulpprogramma's zoals AutoML tot het programmatisch ontwikkelen van het model met behulp van notebooks.

Azure Speech-service

Azure Speech Service integreert spraak-naar-tekst-, tekst-naar-spraak-, spraakomzettings-, spraakassistent- en sprekerherkenningsfunctionaliteit in één abonnement dat is gebaseerd op Azure AI-services. U kunt een toepassing voor spraak inschakelen door te integreren met de Speech-service via gebruiksvriendelijke SDK's en API's.

De Azure-spraak-naar-tekstservice analyseert audio in realtime of asynchroon om het gesproken woord in tekst te transcriberen. Standaard maakt Azure-spraak naar tekst gebruik van een Universeel taalmodel als basislijn die veelgebruikte gesproken taal weerspiegelt. Dit basislijnmodel is vooraf getraind met dialecten en fonetiek die een verscheidenheid aan algemene domeinen vertegenwoordigen. Als gevolg hiervan vereist het verbruik van het basislijnmodel geen extra configuratie en werkt het in de meeste scenario's goed.

Houd er echter rekening mee dat het basislijnmodel mogelijk niet voldoende is als de audio omgevingsruis bevat of veel branche- en domeinspecifieke jargon bevat. In deze gevallen is het bouwen van een aangepast spraakmodel logisch. U doet dit door te trainen met aanvullende gegevens die aan het specifieke domein zijn gekoppeld.

Afhankelijk van de grootte van het aangepaste domein kan het ook zinvol zijn om meerdere modellen te trainen en een model te compartimenteren voor een afzonderlijke toepassing. Zo rapporteren commentatoren van Olympische spelen over verschillende sporten, elk met een eigen jargon. Omdat elke sport een vocabulaire heeft die aanzienlijk verschilt van de andere, verhoogt het bouwen van een aangepast model dat specifiek is voor een sport de nauwkeurigheid door de uitingsgegevens te beperken ten opzichte van die specifieke sport. Hierdoor kan het model leren van een nauwkeurige en gerichte set gegevens.

Er zijn dus drie benaderingen voor het implementeren van Azure-spraak naar tekst:

  • Het basislijnmodel is geschikt wanneer de audio vrij is van omgevingsruis en de getranscribeerde spraak bestaat uit veelgebruikte taal.
  • Met een aangepast model wordt het basislijnmodel uitgebreid met domeinspecifieke woordenlijst die wordt gedeeld in alle gebieden van het aangepaste domein.
  • Meerdere aangepaste modellen zijn zinvol wanneer het aangepaste domein meerdere gebieden heeft, elk met een specifieke woordenlijst.

Diagram met een overzicht van de drie benaderingen voor het implementeren van Azure-spraak naar tekst.

Potentiële gebruikscases

Hier volgen enkele algemene scenario's en gebruiksvoorbeelden waarin aangepaste spraak-naar-tekst nuttig is:

  • Spraaktranscriptie voor een specifiek domein, zoals medische transcriptie of callcentertranscriptie
  • Livetranscriptie, zoals in een app of om onderschrift s te bieden voor live videostreaming

Microsoft SDK's en opensource-hulpprogramma's

Wanneer u met spraak-naar-tekst werkt, zijn deze bronnen mogelijk nuttig:

Ontwerpoverwegingen

In deze sectie worden enkele ontwerpoverwegingen beschreven voor het bouwen van een toepassing op basis van spraak.

Basislijnmodel versus aangepast model

Azure Speech bevat basislijnmodellen die ondersteuning bieden voor verschillende talen. Deze modellen zijn vooraf getraind met een grote hoeveelheid woordenschat en domeinen. Mogelijk hebt u echter een speciale woordenlijst die erkenning nodig heeft. In deze situaties kunnen basislijnmodellen kort zijn. De beste manier om te bepalen of het basismodel voldoende is om de transcriptie te analyseren die is geproduceerd op basis van het basislijnmodel en deze te vergelijken met een door mensen gegenereerde transcriptie voor dezelfde audio. In het implementatieartikel in deze handleiding wordt beschreven hoe u Speech Studio gebruikt om de transcripties te vergelijken en een WER-score (Word Error Rate) te verkrijgen. Als er meerdere onjuiste woordvervangingen in de resultaten voorkomen, raden we u aan een aangepast model te trainen om deze woorden te herkennen.

Eén versus veel aangepaste modellen

Als uw scenario profiteert van een aangepast model, moet u vervolgens bepalen hoeveel modellen u wilt bouwen. Eén model is doorgaans voldoende als de utterances nauw verwant zijn aan één gebied of domein. Meerdere modellen zijn echter het beste als de vocabulaire aanzienlijk verschilt in de domeingebieden. In dit scenario hebt u ook verschillende trainingsgegevens nodig.

Laten we terugkeren naar het voorbeeld van de Olympische Spelen. Stel dat u de transcriptie van audiocommentaar moet opnemen voor meerdere sporten, waaronder ij hockey, rodelen, snowboarden, alpineskiën en meer. Het bouwen van een aangepast spraakmodel voor elke sport verbetert de nauwkeurigheid omdat elke sport unieke terminologie heeft. Elk model moet echter diverse trainingsgegevens hebben. Het is te beperkend en onuitstaanbaar om een model te maken voor elke commentator voor elke sport. Een praktischere benadering is het bouwen van één model voor elke sport, maar audio uit een groep met commentatoren met verschillende accenten, van zowel geslachten als van verschillende leeftijden. Alle domeinspecifieke zinnen met betrekking tot de sport zoals vastgelegd door de diverse commentators bevinden zich in hetzelfde model.

U moet ook rekening houden met de talen en landinstellingen die u wilt ondersteunen. Het kan zinvol zijn om deze modellen te maken op basis van landinstellingen.

Aanpassing van akoestisch en taalmodel

Azure Speech biedt drie opties voor het trainen van een aangepast model:

Aanpassing van taalmodel is de meestgebruikte aanpassing. Een taalmodel helpt bij het trainen van hoe bepaalde woorden samen worden gebruikt in een bepaalde context of een specifiek domein. Het bouwen van een taalmodel is ook relatief eenvoudig en snel. Train eerst het model door een verscheidenheid aan utterances en woordgroepen voor het specifieke domein op te leveren. Als het doel bijvoorbeeld is om transcriptie te genereren voor alpineskiën, verzamelt u door mensen gegenereerde transcripties van meerdere skigebeurtenissen. Maak ze schoon en combineer ze om één trainingsgegevensbestand te maken met ongeveer 50 duizend zinnen en zinnen. Zie Gegevenssets trainen en testen voor meer informatie over de gegevensvereisten voor aangepaste taalmodeltraining.

Uitspraakmodelaanpassing is ook een van de meestgebruikte aanpassingen. Een uitspraakmodel helpt het aangepaste model ongebruikelijke woorden te herkennen die geen standaard uitspraak hebben. Een deel van de terminologie in alpineskiën leen bijvoorbeeld uit andere talen, zoals de termen schuss en mdul. Deze woorden zijn uitstekende kandidaten voor training met een uitspraakgegevensset. Zie Uitspraakgegevens voor training voor meer informatie over het verbeteren van herkenning met behulp van een uitspraakbestand. Zie Wat is Custom Speech?voor meer informatie over het bouwen van een aangepast model met behulp van Speech Studio.

Akoestische modelaanpassing biedt fonetische training over de uitspraak van bepaalde woorden, zodat Azure Speech deze correct kan herkennen. Als u een akoestisch model wilt bouwen, hebt u audiovoorbeelden en bijbehorende door mensen gegenereerde transcripties nodig. Als de herkenningstaal overeenkomt met algemene landinstellingen, zoals en-US, moet het huidige basislijnmodel voldoende zijn. Basislijnmodellen hebben diverse training die gebruikmaakt van de stemmen van native en niet-native Engelse sprekers om een grote hoeveelheid Engelse vocabulaire te dekken. Daarom kan het bouwen van een akoestische modelaanpassing op het basismodel en-US niet veel verbeteren. Het trainen van een aangepast akoestisch model kost ook wat meer tijd. Zie Gegevenssets trainen en testen voor meer informatie over de gegevensvereisten voor aangepaste akoestische training.

Het uiteindelijke aangepaste model kan gegevenssets bevatten die gebruikmaken van een combinatie van alle drie de aanpassingen die in deze sectie worden beschreven.

Een aangepast model trainen

Er zijn twee benaderingen voor het trainen van een aangepast model:

  • Train met talloze voorbeelden van woordgroepen en utterances uit het domein. Neem bijvoorbeeld transcripties op van schoongemaakte en genormaliseerde alpineski-gebeurtenisaudio en door mensen gegenereerde transcripties van eerdere gebeurtenissen. Zorg ervoor dat de transcripties de termen bevatten die worden gebruikt in alpineskiën en meerdere voorbeelden van hoe commentatoren ze uitspreken. Als u dit proces volgt, moet het resulterende aangepaste model domeinspecifieke woorden en woordgroepen kunnen herkennen.

  • Train met specifieke gegevens die gericht zijn op probleemgebieden. Deze benadering werkt goed wanneer er niet veel trainingsgegevens zijn, bijvoorbeeld als er nieuwe taaltermen worden gebruikt tijdens alpineski-evenementen en moeten worden opgenomen in het model. Voor dit type training wordt de volgende methode gebruikt:

    • Gebruik Speech Studio om een transcriptie te genereren en deze te vergelijken met door mensen gegenereerde transcripties.
    • Identificeer probleemgebieden van patronen in wat de commentatoren zeggen. Identificeren:
      • De contexten waarin het probleemwoord of de utterance wordt toegepast.
      • Verschillende inflecties en uitspraken van het woord of de utterance.
      • Unieke commentatorspecifieke toepassingen van het woord of de utterance.

Het trainen van een aangepast model met specifieke gegevens kan tijdrovend zijn. Stappen omvatten het zorgvuldig analyseren van de transcriptie hiaten, het handmatig toevoegen van trainingszinnen en het herhalen van dit proces meerdere keren. Uiteindelijk biedt deze aanpak echter gerichte training voor de probleemgebieden die eerder onjuist waren getranscribeerd. En het is mogelijk om dit model iteratief te bouwen door selectief te trainen op kritieke gebieden en vervolgens door te gaan naar de lijst in volgorde van urgentie. Een ander voordeel is dat de grootte van de gegevensset enkele honderden uitingen bevat in plaats van een paar duizend, zelfs na veel iteraties van het bouwen van de trainingsgegevens.

Nadat u uw model hebt gebouwd

Nadat u uw model hebt gebouwd, moet u rekening houden met de volgende aanbevelingen:

  • Let op het verschil tussen lexicale tekst en weergavetekst. Speech Studio produceert WER op basis van lexicale tekst. Wat de gebruiker ziet, is echter de weergavetekst met interpunctie, hoofdlettergebruik en numerieke woorden die als getallen worden weergegeven. Hieronder volgt een voorbeeld van lexicale tekst versus weergavetekst.

    Lexicale tekst: de snelheid is geweldig en de tijd is nog beter vijftig zeven oh zes drie seconden voor de Duitse

    Weergavetekst: De snelheid is geweldig. En die tijd is nog beter. 57063 seconden voor de Duitse.

    Wat er verwacht (impliciet) is: De snelheid is geweldig. En die tijd is nog beter. 57.063 seconden voor de Duitse

    Het aangepaste model heeft een lage WER-snelheid, maar dat betekent niet dat de door de gebruiker waargenomen foutpercentage (fouten in weergavetekst) laag is. Dit probleem treedt voornamelijk op in alfanumerieke invoer, omdat verschillende toepassingen alternatieve manieren kunnen hebben om de invoer weer te geven. U moet niet alleen vertrouwen op de WER. U moet ook het uiteindelijke herkenningsresultaat bekijken.

    Als de weergavetekst onjuist lijkt, bekijkt u het gedetailleerde herkenningsresultaat van de SDK, dat lexicale tekst bevat, waarin alles is gespeld. Als de lexicale tekst juist is, is de herkenning nauwkeurig. Vervolgens kunt u onnauwkeurigheden in de weergavetekst (het uiteindelijke herkende resultaat) oplossen door regels voor naverwerking toe te voegen.

  • Gegevenssets, modellen en hun versies beheren. Wanneer u in Speech Studio projecten, gegevenssets en modellen maakt, zijn er slechts twee velden: naam en beschrijving. Wanneer u iteratief gegevenssets en modellen bouwt, moet u een goed naamgevings- en versiebeheerschema volgen om de inhoud van een gegevensset eenvoudig te identificeren en welk model aangeeft welke versie van de gegevensset. Zie Een aangepaste spraak-naar-tekstoplossing implementeren voor meer informatie over deze aanbeveling.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen