Share via


Trainingsgegevens voor weergavetekstindeling voorbereiden voor aangepaste spraak

De Azure AI Speech-service kan als twee onderdelen worden weergegeven: spraakherkenning en tekstopmaak. Spraakherkenning transcribeert audio naar lexicale tekst en vervolgens wordt de lexicale tekst getransformeerd om tekst weer te geven.

Diagram of the flow of speech recognition to lexical to display text.

Dit zijn de landinstellingen die de functie voor de weergavetekstindeling ondersteunen: da-DK, de-DE, en-AU, en-CA, en-GB, en-HK, en-IE, en-IN, en-NG, en-NZ, en-PH, en-SG, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, hi-IN, it-IT, ja-JP, ko-KR, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, sv-SE, tr-TR, zh-CN, zh-HK.

Standaardopmaak van weergavetekst

De weergavetekstpijplijn bestaat uit een reeks opbouwfuncties voor weergave-indelingen. Elke opbouwfunctie komt overeen met een weergave-indelingstaak, zoals ITN, hoofdlettergebruik en grof filteren.

  • Inverse tekstnormalisatie (ITN): als u de tekst van gesproken formuliernummers wilt converteren om het formulier weer te geven. Bijvoorbeeld: "I spend twenty dollars" -> "I spend $20"
  • Hoofdlettergebruik : als u namen van hoofdletters, acroniemen of de eerste letter van een zin wilt gebruiken. Bijvoorbeeld: "she is from microsoft" -> "She is from Microsoft"
  • Scheldwoorden filteren - Maskeren of verwijderen van grof taalgebruik uit een zin. Als 'abcd' bijvoorbeeld een grof woord is, wordt het woord gemaskeerd door grof taalgebruik: "I never say abcd" -> "I never say ****"

Microsoft onderhoudt de basisbouwers van de weergavetekstpijplijn voor de verwerkingstaken voor algemene weergave. U krijgt standaard de basisbouwers wanneer u de Speech-service gebruikt. Zie Weergavetekstopmaak voor meer informatie over out-of-the-box-opmaak.

Aangepaste weergavetekstopmaak

Naast de basisbouwers die door Microsoft worden onderhouden, kunt u aangepaste regels voor weergavetekstopmaak definiëren om de pijplijn voor de weergavetekstopmaak voor uw specifieke scenario's aan te passen. De regels voor aangepaste weergavetekstopmaak worden gedefinieerd in een aangepast bestand met tekstopmaak.

  • AangepastE ITN : breid de functionaliteiten van basis-ITN uit door een op regels gebaseerd aangepast ITN-model van de klant toe te passen.
  • Aangepast herschrijven : herschrijf de ene woordgroep naar een andere op basis van een regel gebaseerd model van de klant.
  • Aangepaste scheldwoordfiltering : voer grof taalgebruik uit op basis van de lijst met grof taalgebruik van de klant.

De volgorde van de pijplijn voor weergavetekstopmaak wordt in dit diagram geïllustreerd.

Diagram of the display format builders.

Aangepaste ITN

De filosofie van aangepaste ITN op basis van patronen is dat u de uiteindelijke uitvoer kunt opgeven die u wilt zien. De Speech-service bepaalt hoe de woorden kunnen worden gesproken en wijs de voorspelde gesproken expressies toe aan de opgegeven uitvoerindeling.

Een aangepast ITN-model is gebouwd op basis van een set ITN-regels. Een ITN-regel is een reguliere expressie, zoals patroontekenreeks, waarin het volgende wordt beschreven:

  • Een overeenkomend patroon van de invoertekenreeks
  • De gewenste indeling van de uitvoertekenreeks

De standaard ITN-regels die door Microsoft worden verstrekt, worden eerst toegepast. De uitvoer van het standaard ITN-model wordt gebruikt als invoer van het aangepaste ITN-model. Het overeenkomende algoritme in het aangepaste ITN-model is niet hoofdlettergevoelig.

Er zijn vier categorieën patroonkoppelingen met aangepaste ITN-regels.

Patronen met letterlijke gegevens

Een ontwikkelaar kan bijvoorbeeld een item (zoals een product) hebben met de alfanumerieke vorm JO:500. De Speech-service weet dat gebruikers het letteronderdeel kunnen zeggen als J O, of ze kunnen zeggen joe, en het nummeronderdeel als five hundred of five zero zero of five oh oh five double zero, en vervolgens een model bouwen dat al deze mogelijkheden weer toewijst JO:500 (inclusief het invoegen van de dubbele punt).

Patronen kunnen parallel worden toegepast door één regel per regel op te geven in het weergavetekstopmaakbestand. Hier volgt een voorbeeld van een weergavetekstopmaakbestand dat twee regels opgeeft:

JO:500
MM:760

Patronen met jokertekens

U kunt verwijzen naar een hele reeks alfanumerieke items (zoals JO:500, JO:600) JO:700zonder dat u alle mogelijkheden op verschillende manieren hoeft te spellen.

Tekenbereiken kunnen worden opgegeven met de notatie [...], dus JO:[5-7]00 komt overeen met het schrijven van drie patronen.

Er is ook een set jokertekenitems die kunnen worden gebruikt. Een van deze is \d, wat elk cijfer betekent. Dus JO:\d00 dekt JO:000, JO:100en anderen tot JO:900.

Net als bij een reguliere expressie zijn er meerdere vooraf gedefinieerde tekenklassen voor een ITN-regel:

  • \d - komt overeen met een cijfer van '0' tot '9' en voert het rechtstreeks uit
  • \l - overeenkomst met een letter (hoofdlettergevoelig) en deze transduceren tot kleine letters
  • \u - overeenkomst met een letter (hoofdlettergevoelig) en deze transduceren tot hoofdletters
  • \a - komt overeen met een letter (hoofdlettergevoelig) en voert deze rechtstreeks uit

Er zijn ook escape-expressies voor het verwijzen naar tekens die anders een speciale syntactische betekenis hebben:

  • \\ - het teken matchen en uitvoeren \
  • \( en \)
  • \{ en \}
  • \|
  • \+en en \?\*

Patronen met regex-stijlnotatie

Om de flexibiliteit van het schrijven van patronen te verbeteren, worden reguliere expressieachtige constructies van woordgroepen met alternatieven en Kleene-sluiting ondersteund.

  • Een woordgroep wordt aangegeven met haakjes, bijvoorbeeld (...) : de haakjes tellen niet letterlijk als tekens die moeten worden vergeleken.
  • U kunt alternatieven binnen een woordgroep aangeven met het | teken, zoals (AB|CDE).
  • U kunt een woordgroep achtervoegsel gebruiken om ? aan te geven dat het optioneel is, + om aan te geven dat deze kan worden herhaald of * om beide aan te geven. U kunt alleen achtervoegsels met deze tekens en niet afzonderlijke tekens (wat meer beperkend is dan de meeste reguliere expressie-implementaties).

Een patroon zoals (AB|CD)-(\d)+ constructies zoals 'AB-9' of 'CD-22' vertegenwoordigen en worden uitgebreid tot gesproken woorden zoals A B nine en C D twenty two (of C D two two).

Patronen met expliciete vervanging

De algemene filosofie is "u laat ons zien hoe de uitvoer eruit moet zien, en de Speech-service weet hoe mensen het zeggen." Maar dit werkt niet altijd omdat sommige scenario's onvoorspelbare manieren hebben om dingen te zeggen, of de achtergrondregels van de Speech-service kunnen hiaten hebben. Er kunnen bijvoorbeeld colloquiale uitspraken zijn voor initialen en acroniemen - ZPI kan worden gesproken als zippy. In dit geval werkt een patroon zoals ZPI-\d\d onwaarschijnlijk als een gebruiker zegt zippy twenty two. Voor dit soort situaties is er een notatie voor de weergavetekstnotatie {spoken>written}. Deze specifieke zaak kan worden weggeschreven {zippy>ZPI}-\d\d.

Dit kan handig zijn voor het afhandelen van zaken die door de regels voor spraaktoewijzing worden verwerkt, maar nog niet worden ondersteund. U kunt bijvoorbeeld een patroon \d0-\d0 schrijven waarin wordt verwacht dat het systeem begrijpt dat '-' een bereik kan betekenen en moet worden uitgesproken to, zoals in twenty to thirty. Maar misschien niet. U kunt dus een explicieter patroon \d0{to>-}\d0 schrijven en vertellen hoe u verwacht dat het streepje wordt gelezen.

U kunt ook het > en volgende geschreven formulier weglaten om aan te geven dat woorden moeten worden herkend, maar genegeerd. Een patroon zoals {write} (\u.)+ herkennen write A B C en uitvoer A.B.Cvan het write onderdeel verwijderen.

Aangepaste ITN-voorbeelden

Groepscijfers

Als u 6 cijfers wilt groeperen in twee groepen en er een '-'--teken tussen wilt toevoegen:

ITN-regel: \d\d\d-\d\d\d voorbeeld: "cadence one oh five one fifteen" -> "cadence 105-115"

Een filmnaam opmaken

Ruimte: 1999 is een beroemde film om het te ondersteunen:

ITN-regel: Space: 1999 voorbeeld: "watching space nineteen ninety nine" -> "watching Space: 1999"

Patroon met vervanging

ITN-regel: \d[05]{ to >-}\d[05] voorbeeld: fifteen to twenty -> 15-20

Aangepast herschrijven

Over het algemeen wordt voor een invoertekenreeks het herschrijfmodel geprobeerd de in de invoertekenreeks te vervangen original phrase door de corresponderende new phrase regel voor elke herschrijfregel. Een herschrijfmodel is een verzameling herschrijfregels.

  • Een herschrijfregel is twee zinnen: de oorspronkelijke woordgroep en een nieuwe woordgroep.
  • De twee zinnen worden gescheiden door een TAB-teken. Bijvoorbeeld original phrase{TAB}new phrase.
  • De oorspronkelijke woordgroep komt overeen (hoofdlettergevoelig) en wordt vervangen door de nieuwe woordgroep (hoofdlettergevoelig). Grammaticapunctietekens in de oorspronkelijke woordgroep worden tijdens de overeenkomst genegeerd.
  • Als er regels voor herschrijven conflicteren, wordt deze met de langere original phrase regel gebruikt als overeenkomst.

Het herschrijfmodel ondersteunt standaard grammaticakapitalisatie, waarbij de eerste letter van een zin wordt gekapitaliseerd voor en-US landinstellingen. Deze functie is uitgeschakeld als de functie hoofdlettergebruik van de weergavetekstopmaak is uitgeschakeld in een aanvraag voor spraakherkenning.

Interpunctie voor grammatica

Grammaticapunctietekens worden gebruikt om een zin of woordgroep te scheiden en verduidelijken hoe een zin of zin moet worden gelezen.

. , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ،

Dit zijn de interpunctieregels voor grammatica:

  • De ondersteunde interpunctietekens zijn voor grammaticapunctie als ze worden gevolgd door spatie of aan het begin of einde van een zin of zin. De in x. y (met een spatie tussen . eny) is bijvoorbeeld . een interpunctie voor grammatica.
  • Interpunctietekens die zich midden in een woord (behalve zh-cn en ja-jp) bevinden, zijn geen interpunctie voor grammatica. In dat geval zijn het gewone tekens. De inwaarde x.y is bijvoorbeeld . geen grammaticapunctie.
  • Voor zh-cn en ja-jp (niet-pacerende landinstellingen) worden interpunctietekens altijd gebruikt als grammaticapunctie, zelfs als ze tussen tekens liggen. De inwaarde is bijvoorbeeld . 中.文 een interpunctie voor grammatica.

Voorbeelden van aangepaste herschrijven

Spellingscorrectie

De naam COVID-19 kan worden herkend als covered 19. Gebruik de volgende herschrijfregel om ervoor te zorgen dat deze COVID-19 is a virus wordt weergegeven in plaats van covered 19 is a virus:

#rewrite
covered 19{TAB}COVID-19

Hoofdlettergebruik van namen

Gottfried Wilhelm Leibniz was een Duitse wiskundige. Gebruik de volgende herschrijfregel om ervoor te zorgen dat dit Gottfried Wilhelm Leibniz hoofdlettergebruik is:

#rewrite
gottfried leibniz{TAB}Gottfried Leibniz

Aangepaste grof taalgebruik

Een aangepast grofheidsmodel fungeert hetzelfde als het basismodel voor grof taalgebruik, met uitzondering van een aangepaste lijst met scheldwoorden. Daarnaast probeert het aangepaste scheldwoordenmodel alle scheldwoorden die zijn gedefinieerd in het weergavetekstopmaakbestand te vinden (hoofdlettergevoelig).

  • De scheldwoorden komen overeen (hoofdlettergevoelig).
  • Als er regels voor grof taalgebruik conflicteren, wordt de langste woordgroep gebruikt als overeenkomst.
  • Deze interpunctietekens worden niet ondersteund in een grof taalgebruik: . , ? 、 ! : ; ? 。 , ¿ ¡ । ؟ ، .
  • Voor zh-CN en ja-JP landinstellingen worden Engelse scheldwoorden niet ondersteund. Engelse grof taalgebruik wordt ondersteund. Scheldwoorden voor zh-CN en ja-JP landinstellingen worden ondersteund.

De grofheid wordt verwijderd of gemaskeerd, afhankelijk van de instellingen van uw spraakherkenningsaanvraag.

Zodra grof taalgebruik is toegevoegd aan het regelbestand voor de weergavetekstindeling en het aangepaste model is getraind, wordt het gebruikt voor de standaarduitvoer in batch-spraak naar tekst en realtime spraak naar tekst.

Voorbeelden van aangepaste grof taalgebruik

Hier volgen enkele voorbeelden van het maskeren van grof taalgebruik en woordgroepen in het bestand met de weergavetekstopmaak.

Voorbeeld van één grof woord maskeren

Stel dat xyz het een grof woord is. Ga als volgende te werk om het toe te voegen:

#profanity
xyz

Hier volgt een testvoorbeeld: Turned on profanity masking to mask xyz -> Turned on profanity masking to mask ***

Scheldwoordzin maskeren

Stel dat abc lmn het een scheldwoord is. Ga als volgende te werk om het toe te voegen:

#profanity
abc lmn

Hier volgt een testvoorbeeld: Turned on profanity masking to mask abc lmn -> Turned on profanity masking to mask *** ***

Volgende stappen