Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
I forbindelse med IVR-programmer (Interactive Voice Response) og bredere opgaver til talegenkendelse for stemmeprogrammer giver en begrænset liste eller "grammatikbaseret genkendelse" betydelige fordele. Den klarer sig langt bedre end traditionel semantisk baseret talegenkendelse, der bruges i moderne STT-programmer (speech-to-text) AI-programmer med hensyn til nøjagtighed, ydeevne og omkostninger. Denne forøgelse af ydeevnen skyldes, at grammatikbaseret genkendelse kan begrænse genkendelsesoutputtet til et foruddefineret sæt regler, hvilket styrker nøjagtigheden.
Grammatik overholder SRGS (Speech Recognition Grammar Specification), som beskrevet i W3C-specifikationen. Når en anmodning kommer ind i programmet, konverteres talelyd ("ytringer") til tekst. Programmet sammenligner derefter den genkendte tekst med grammatikken og eventuelle tilknyttede artefakter, f.eks. udtaleleksikoner. Denne proces giver enten en bogstavelig transskription eller en fortolkning, som grammatikken begrænser til de oplysninger, der er angivet i grammatikken. Ekstra logik, f.eks. ECMAScript, der er indbygget i grammatikken, kan yderligere finjustere fortolkningen.
Begrænset talegenkendelse er ideel til:
Genkender begrænsede lister (adresser, aktiesymboler, postnumre, afdelingsnavne osv.).
Alfanumerisk strenggenkendelse (sporingsnumre, kontonumre, bekræftelseskoder osv.).
- Herunder have positionsmæssige begrænsninger. De første to tegn i medlems-id'et starter f.eks. med AN, FD, NT. Et andet eksempel på positionsbegrænsninger er et køretøjs identifikationsnummer.
Alfanumerisk genkendelse eller ciffergenkendelse med kontrolsummer eller lignende begrænsninger. F.eks. kreditkortnumre, hvor der er en Luhn-kontrolsum.
Instruerede dialogboksprogrammer, hvor bestemte ord eller udtryk skal siges.
Oprettelse af talegrammatik
Skriv begrænset tale grammatik ved hjælp af Grammatisk XML (GrXML). På samme måde som med alle XML-dokumenter skal en grammatikfil begynde med en header, der angiver visse egenskaber ved grammatikken. Hovedteksten i en grammatikfil består af grammatiske regler, der definerer de talte ord, der genkendes af grammatikken, og de tilsvarende variable værdier, som de genkendte elementer returnerer.
Grammatik-filheader
Header i en grammatikfil består af XML-erklæringen og det <grammar> element, der angiver dokumentsproget, roden og navneområdet.
<?xml version="1.0" encoding="UTF-8" ?>
<grammar xmlns="http://www.w3.org/2001/06/grammar"
version="1.0" xml:lang="en-US" root="YesNo"
tag-format="swi-semantics/1.0">
XML-erklærings- og kodningstype
Det første element i header er altid XML-erklæringen. Dette element angiver den version af XML, der bruges i dokumentet (1.0 eller 1.1). Den angiver også den kodning, der gælder for dokumentet, hvilket bestemmer de sprog, der kan eller ikke kan bruges.
Versionen og kodningen er påkrævede attributter. Brug en hvilken som helst kodning, der passer til dine præferencer (f.eks. din computeropsætning, programmet til tekstbehandling osv.). Det begrænsede program til talegenkendelse er ligeglad med, hvilken kodning du bruger.
Der vises en kort liste over typiske kodninger for forskellige sprog i følgende tabel:
| Encoding | Beskrivende tekst |
|---|---|
| ISO-8859-1 | Latinsk-1. Bruges til engelsk, fransk, tysk og spansk. |
| UTF-8 | Bruges til alle sprog. |
| UTF-16 | Bruges til alle sprog. |
| Big5 | Bruges til kantonesisk (ce-HK). |
| GB | Bruges til mandarin (zh-TW). |
| Shift-JIS og EUC-JP | Bruges til japansk. |
| KSC og EUC-KR | Bruges til koreansk. |
De fleste sprog kan repræsenteres med mere end én kodning.
På kørselstidspunktet konverterer systemet automatisk grammatikfilkodningen til UTF-16-format ved hjælp af ICU-biblioteker (International Components for Unicode). Unicode-konsortiets officielle websted er http://site.icu-project.org/.
Sprog, navneområde og semantisk mærkatformat
Det andet element i overskriften er det <grammar> element, hvis attributter angiver standardoplysninger for dokumentet. De påkrævede attributter er:
xml:lang: Angiver id'et for det menneskelige standardsprog, der skal bruges, som defineret i RFC-dokumentet RFC 3066 på IETF-webstedet.Microsoft understøtter en lang række sprog. Det sprog, du vælger, skal være kompatibelt med grammatikkodningstypen.
version: Angiver versionen af GrXML (1.0).xmlns: Angiver navneområdet grammatik. For GrXML-grammatik er denne betegnelse altidhttp://www.w3.org./2001/06/grammar.tag-format: Definerer det format, der bruges til scripts i<tag>elementer i hovedteksten i grammatik for at tildele værdier.
Kodeformatet skal være en af disse strenge:
| Værdi | Format af semantiske mærker |
|---|---|
| swi-semantics/1.0 | Kodesyntaks (bruges, hvis kodeformatet ikke er defineret). Denne syntaks er kendt som swi syntax (for SpeechWorks International). |
| semantik/1.0 | Syntaks for W3C-scriptkode. |
| semantik/1.0-konsonanter | Kodesyntaks for W3C-strengkonstant. |
Note
Strengt taget er attributten tag-format ikke påkrævet, hvis din grammatik ikke bruger elementet
<tag>. De fleste grammatikker bruger<tag>dog til at tildele værdier, så Microsoft anbefaler på det kraftigste, at du angiver mærkatformatet.Peg altid GrXML-attributter og -elementer, f.eks
xmlns. , på navneområdet<http://voicexml.site.com/grammar>.
Ordbøger
I nogle tilfælde skal grammatikken muligvis indeholde ord eller udtryk, som programmet til begrænset talegenkendelse ikke kan fortolke normalt. Et navn kan f.eks. siges og staves anderledes, f.eks. byen "Worcester", som kan udtales "wih-sta".
Brug elementet <lexicon> til at importere ordbøger, der tilknytter ytringer for at matche tekst i grammatikfilen.
Hovedteksten i grammatikfilen
Hovedafsnittet i en grammatikfil indeholder de regler, der rent faktisk definerer grammatikken: de talte ord og udtryk, der skal genkendes, og de værdier, der skal returneres til hovedprogrammet for hvert genkendt element.
Regler
Hovedteksten i en grammatikfil består af regler, der er defineret ved hjælp af GrXML-elementet <rule> . Hver regel har et entydigt id. Hver regel viser de ord og udtryk, den genkender som tekst i et <item> element eller <token> element. Disse elementer kan være indlejret i andre GrXML-elementer:
Elementet
<one-of>præsenterer en liste over acceptable alternativer, og der kræves kun ét alternativ for at aktivere reglen.Elementet
<ruleref>refererer til en anden regel om en subrutine.Elementet
<tag>angiver handlinger, der skal udføres, eller værdier, der skal tildeles til en variabel. Det kan omfatte et script, der er skrevet i kodeformatsproget.
Når brugeren siger et ord eller udtryk, som reglen dækker, udfører reglen de handlinger, værditildelinger eller anden kode, der er defineret for den pågældende sætning.
Rodregel
Rodreglen er den første regel i filen, medmindre andet er angivet i headeren. Den fungerer som standardregel på op-niveau. Når der refereres til grammatikken uden at angive den regel, der skal søges efter, er denne rodregel den første, der bliver hørt.
Regelområde
Tildel hver regel i hovedteksten i en grammatikfil som et område. Området angiver, om du kan referere til reglen uafhængigt af eksterne filer (offentlige) eller kun af en anden regel inden for samme grammatik (privat). Alle regler er som standard private, medmindre du definerer dem som offentlige.
Når reglen er offentlig, kan du bruge dens id-attribut som anker for referencer fra andre dokumenter. Overvej f.eks. følgende syntaks:
<grammar src="../grammars/universals.grxml#YesNo"/>
Når du aktiverer dette grammatikelement, henviser det direkte til den offentlige "YesNo"-regel i filen universals.grxml , uanset om det er filens rodregel.
Note
Rodreglen for en grammatikfil kan være privat. Der kan ikke refereres til denne regel uafhængigt af hinanden. Den bruges dog som standard som indgangspunkt til grammatik, når du aktiverer selve grammatikfilen.
Udtræk betydning og returner resultater
Note
Nøglen SWI_meaning skal indeholde de oplysninger, der returneres til den stemmeaktiverede agent, der arbejder i Copilot Studio.
Nøglen SWI_meaning indeholder den semantiske betydning af et genkendt udtryk. Du kan indstille den kun for rodreglen. Denne nøgle er som standard inkluderet på swirec_extra_nbest_keys listen, så den vises i XML-resultatet, hvis din grammatik angiver denne nøgle.
SWI_meaning filtrerer redundante svar ud, så poster på n-bedste liste er helt entydige. Fjernelse af redundans forbedrer tillidsscores og nytten af n-bedste liste.
Når en genkendt sætning svarer til en anden i grammatikken, har den ofte en lav konfidensscore, fordi det begrænsede program til talegenkendelse er usikkert på, hvilket udtryk der er korrekt. Når du bruger SWI_meaning korrekt, grupperer programmet til begrænset talegenkendelse redundante fortolkninger i det samme slot på den n-bedste liste. I følgende eksempel er indstillet til "direkte opkald hjem", SWI_meaning uanset om det genkendte udtryk er "direkte mine opkald hjem" eller "send mine opkald hjem".
Uden SWI_meaningkan grammatik oprette følgende n-bedste liste:
| N | Tekst |
|---|---|
| 1 | direkte mine opkald til min bil telefon |
| 2 | direkte opkald til min bil |
| 3 | send opkald hjem |
| 4 | Send mine opkald til kontoret |
| 5 | send mine opkald til kontoret |
| 6 | direkte opkald til mit hjem |
Når du bruger SWI_meaning, arrangerer programmet til begrænset talegenkendelse den n-bedste liste efter betydningen af fortolkningen i stedet for det præcise udtryk, der siges, så indgange på n-bedste liste er helt entydige:
| N | Tekst | Nøgle til SWI_meaning på øverste niveau |
|---|---|---|
| 1 | direkte mine opkald til min bil telefon | direkte opkald til bil |
| direkte opkald til min bil | direkte opkald til bil | |
| 2 | send opkald hjem | direkte opkald til hjem |
| direkte opkald til mit hjem | direkte opkald til hjem | |
| 3 | Send mine opkald til kontoret | arbejde med direkte opkald |
| send mine opkald til kontoret | arbejde med direkte opkald |
Programmet til begrænset talegenkendelse indstilles SWI_meaning automatisk, selvom du ikke eksplicit angiver det i et script i grammatikken.
Hvis du ikke eksplicit definerer SWI_meaning på roden, oprettes den ved at sammenkæde alle de nøgler, der er defineret i roden, og deres værdier. Denne konstruktion gælder dog ikke for nøgler, der starter med SWI_, f.eks SWI_literal. . Nøgle-/værdipar sorteres først alfabetisk. Ræsonnementet er, at for så vidt angår ansøgningen, er det returnerede sæt nøgler sætningens betydning.
Hvis der ikke er nogen nøgler, afhænger resultaterne af, om du bruger SISR- eller SWI-semantik. Med SISR angives nøglen SWI_meaning ikke, hvis der ikke er nogen nøgler. I modsætning hertil er SWI-semantik SWI_meaning indstillet til følgende:
{SWI_literal:<literal>}
Hvis SWI_meaning er et objekt, konverteres det til en strengrepræsentation.
Selvom programmet kan få adgang til SWI_meaning, bruger det oftere andre nøgle-/værdipar, der er defineret specifikt for det.
Vært for talegrammatik via Azure Storage
Copilot Studio understøtter begrænset talegenkendelse via talematik. Det understøtter dog ikke direkte oprettelse, test eller hosting af disse grammatikker. Til at hoste grammatik kan du bruge Microsoft Azure Storage til at oprette en pålidelig og sikker forbindelse mellem den stemmeaktiverede agent og grammatiklageret.
Konfigurer en Azure Storage-konto
Opret en Azure Storage-konto. Sørg for, at abonnementet, ressourcegruppen, området og ressourcenavnet på den nye lagerkonto følger organisationens politikker. Brug følgende indstillinger:
Vælg Azure Blob Storage eller Azure Data Lake Storage Gen 2 for Primary Service.
Vælg Premium for ydeevnen.
Få mere at vide under Opret en Azure Storage-konto.
Konfigurer lagervariebeholderen
Brug Static-webstedet som lagerobjektbeholder til dine overførte grammatikfiler. Lagerobjektbeholderen leverer det primære slutpunkt og det sekundære slutpunkt for webstedet.
Når du har uploadet grammatikfilen, skal du vælge filen i mappen for at få vist egenskaberne og detaljerne for filen. Gem URL-adressen til filen, som skal være i følgende format:
https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}
Få mere at vide i Opret en objektbeholder.
Godkend programmet til begrænset talegenkendelse
Hvis begrænset talegenkendelse skal fungere i en stemmeaktiveret agent, skal systemet godkende ved hjælp af den lagerkonto, der blev oprettet i det forrige trin, som en placering, der er tillid til. Denne godkendelse kræver rollen Storage Blob Data Læser.
Få mere at vide i Tildel Azure roller ved hjælp af Azure-portalen.
Log på Azure Portal, åbn en Azure Cloud Shell-session, og kør følgende kommando for at oprette en tjenesteprincipal for et begrænset talegenkendelsesprogram i din lejer.
az ad sp create --id e0e7bef0-777c-40ef-86aa-79d83ba643c7
Note
Når du søger efter tjenesteprincipalen, kan du se, at den indeholder "NRaaS" i navnet.
Ansæt begrænset tale i Copilot Studio
Oprette et eksternt objekt
Du kan tænke på et objekt i Copilot Studio som en informationsenhed, der repræsenterer en bestemt type emne i den virkelige verden. For eksempel et telefonnummer, postnummer, by eller endda en persons navn. Ved hjælp af objekter kan en agent genkende de relevante oplysninger fra et brugerinput og gemme dem til senere brug. I dette scenarie udfører en begrænset tale grammatisk genkendelse.
Brug eksterne enheder til at referere til talematik. Hvis du vil oprette et eksternt objekt, skal du åbne din stemmeaktiverede agent og gå til Indstillinger>Objekter>Tilføj en enhed>Registrer en ekstern enhed.
Note
Når du opretter objektet, skal du enten bruge en global variabel eller en systemvariabel og ikke en miljøvariabel . Hvis du skal bruge en miljøvariabel, skal du oprette en global variabel, der tildeler den værdien af miljøvariablen. Derefter kan denne globale variabel bruges i grammatik-ULR som reference.
Angiv følgende oplysninger:
Navn: Grammatik-URL-adresse i form af
https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}?constrainedrequired=trueNote
URL-adressen skelner mellem store og små bogstaver.
Standardgenkendelsestilstanden er Kun tale. Du kan få flere grammatikkonfigurationer i følgende tabel:
| Type | Forespørgselsparameter | Eksempel: |
|---|---|---|
| Kun tale | None | https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}?constrainedrequired=true |
| DTMF | &mode=dtmf |
https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}?constrainedrequired=true&mode=dtmf |
| Tale eller DTMF (Samme grammatikfil) |
&mode=speechdtmf |
https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}?constrainedrequired=true&mode=speechdtmf |
| Tale eller DTMF (forskellige grammatikfiler) | &mode=speechdtmf&dtmfgrammar={grammarURL} |
https://{resourceName}.blob.core.windows.net/\$web/{grammarFileName}?constrainedrequired=true&mode=speechftmf&dtmfgrammar=https://{resourceName}.blob.core.windows.net/\$web/{DTMFgrammarFileName} |
Note
URL-adresser kan også indeholde navne på direkte variabler i Copilot Studio.
Lad os f.eks. antage, at der er to identiske grammatiske sæt, ét for engelsk og ét for spansk, og hver er gemt i en anden undermappe. Den flersprogede agent skal kunne bruge engelsk grammatik, når der tales på engelsk og på samme måde på spansk. I dette tilfælde er GRAMMATIK-URL-adressen: {Env.BaseURL}/common/**{System.User.Language}**/{grammarFileName}?
Hvor System.User.Language er en_US eller es_US og ændres, når sproget skifter i din agent.
Beskrivelse: En simpel beskrivelse af grammatikken, som vælgeren på lærredet refererer til som objektnavnet. For eksempel "kreditkortnummer".
Datatype: Vælg datatypen Post , og definer skemaet for de forventede mærker som svar. Hvis grammatikken f.eks. returnerer
SWI_meaningog by, ser postskemaet sådan ud:kind: Record properties: city: String SWI_meaning: String
Når du har valgt Gem, vises objektet på listen. I oprettelseslærredet skal du gå til Spørgsmålsnode. På samme måde som med traditionelle enheder skal du vælge det eksterne objekt (knyttet til en grammatik), som agenten skal genkende som et resultat af brugerens svar på prompten.
Kørselsadfærd
Når en stemmeaktiveret agent kører og støder på den logik, der bruger en ekstern grammatik, når den stemmeaktiverede agent ud til Azure Storage-kontoen og henter grammatikken til fortolkning. Agenten matcher derefter det, som brugeren sagde, i forhold til den begrænsning, der er anvendt i grammatikken. Hvis et match lykkes, returnerer systemet svaret i variablen Post i henhold til det skema, der er defineret i det eksterne objekt.
Lærredslogik
Resultatet, der gemmes i nodens variabel, er altid en posttype som defineret i skemaet for det eksterne objekt. Forfattere kan bruge denne postvariabel til at få adgang til nøgler som defineret i skemaet, f.eks variableName.SWI_meaning . eller variableName.city via punktnotation.
Fejlfinding
Fejlkoder
| Fejl | Definition |
|---|---|
| 400 | Forkert anmodning |
| 401 | Ikke-godkendt |
| 403 | Forbudt |
| 404 | Ingen tale |
| 408 | Timeout for input |
| 418 | Timeout for session |
| 419 | Ingen aktive ressourcer – manglende grammatik |
| 500 | Intern fejl – rapportér til Microsoft i en supportanmodning |
SWI_Literal
I forbindelse med mange grammatikker, der arbejder med programmet til begrænset talegenkendelse, SWI_Literal returnerer funktionen konstantsætningen, som brugeren har sagt, ikke det fortolkede resultat. Logfør denne værdi som et af outputtet i Copilot Studio for at hjælpe med fejlfinding.
Kendte begrænsninger
Løsningen har følgende begrænsninger:
- Maksimal størrelse på individuel grammatikfil, som i øjeblikket er begrænset til 100 MB.
- Variabeloverførsel understøttes ikke.
- Lagerkontoen skal være placeret i samme lejer som din agenten.
- URL-adressens størrelse må ikke overstige 500 tegn.
- Det er kun Azure Storage-kontoslutpunkter, der er tilladt.
- Under-grammatik kan kun hostes på den samme lagerkonto (ved hjælp af samme FPA til godkendelse).
- Secure XML-parser (dvs. DTD er ikke tilladt og skal valideres i forhold til SRGS/SISR-skema).
- Kun NLSML-outputformat understøttes internt.
- Den ældre
swirec_simple_result_keyparam har ingen effekt, og alle mærker returneres.
Legal
Microsoft Dynamics-tjenesten behandler begrænsede systemer til talegenkendelse. Når du bruger denne oplevelse, accepterer du Dynamics-vilkårene.