Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Integrera taligenkänning och text till tal (även kallat TTS eller talsyntes) direkt i appens användarupplevelse.
Taligenkänning Taligenkänning konverterar ord som användaren talar till text för formulärinmatning, textdiktering, för att ange en åtgärd eller ett kommando och för att utföra uppgifter. Den stöder både fördefinierade grammatiker för fritextdiktering och webbsökning, och anpassade grammatiker som har skapats med hjälp av SRGS version 1.0 ( Speech Recognition Grammar Specification).
Speech synthesis/Text to Speech (TTS) TTS använder en talsyntesmotor (röst) för att konvertera en textsträng till talade ord. Indatasträngen kan vara antingen grundläggande, omarkerad text eller mer komplext SSML (Speech Synthesis Markup Language). SSML är ett standardsätt för att kontrollera egenskaper för talutdata, till exempel uttal, volym, tonhöjd, hastighet och betoning.
Design av talinteraktion
När du utformar och implementerar tal eftertänksamt kan det vara ett effektivt, tillgängligt och naturligt sätt för människor att interagera med dina Windows program, komplettera eller till och med ersätta traditionella interaktionsupplevelser baserat på mus, tangentbord, styrenhet eller touch.
Dessa riktlinjer och rekommendationer beskriver hur du bäst integrerar både taligenkänning och TTS i interaktionsupplevelsen i din app.
Om du överväger att stödja talinteraktioner i din app kan du ställa dig följande frågor:
- Vilka åtgärder kan användarna vidta genom tal? Kan de navigera mellan sidor, anropa kommandon eller ange data som textfält, korta anteckningar eller långa meddelanden?
- Är talinmatning ett bra alternativ för att slutföra en uppgift?
- Hur vet en användare när talindata är tillgängliga?
- Lyssnar appen alltid eller behöver användaren vidta en åtgärd för att appen ska kunna gå in i lyssningsläge?
- Vilka fraser initierar en åtgärd eller ett beteende? Måste fraserna och åtgärderna räknas upp på skärmen?
- Krävs skärmar för fråga, bekräftelse och förtydligande eller TTS?
- Vad är interaktionen mellan appen och användaren?
- Krävs ett anpassat eller begränsat ordförråd (till exempel medicin, vetenskap eller nationella inställningar) för appens kontext?
- Krävs nätverksanslutning?
Ange text
Textinmatning kan variera från korta formulärinmatningar, till exempel ett ord eller en fras, till långa formulärindata, till exempel flera fraser, stycken eller kontinuerlig diktering. Korta formulärindata är vanligtvis mindre än 10 sekunder långa, medan långa formulärinmatningssessioner kan vara upp till två minuter långa. Långa formulärindata kan startas om utan användarintervention för att ge intryck av kontinuerlig diktering.
Ange en visuell referens som anger att taligenkänning stöds och är tillgänglig för användaren och om användaren behöver aktivera den. Använd till exempel en kommandofältsknapp med en mikrofonskåra (se Kommandostaplar) för att visa både tillgänglighet och tillstånd.
Ge löpande feedback om igenkänning för att minimera eventuell uppenbar brist på svar medan igenkänningen utförs.
Låt användarna ändra igenkänningstexten med hjälp av tangentbordsinmatning, tvetydigheter, förslag eller ytterligare taligenkänning.
Stoppa igenkänning om indata identifieras från en annan enhet än taligenkänning, till exempel pek- eller tangentbord. Den här inmatningen indikerar förmodligen att användaren gick vidare till en annan uppgift, till exempel att korrigera igenkänningstexten eller interagera med andra formulärfält.
Ange hur lång tid avsaknaden av talindata ska vara innan röstigenkänningen anses avslutad. Starta inte om igenkänningen automatiskt efter den här tidsperioden, eftersom det vanligtvis indikerar att användaren slutade interagera med din app.
I vissa fall kan en nätverksanslutning krävas för att stödja taligenkänning. Om en inte är tillgänglig inaktiverar du alla användargränssnitt för kontinuerlig igenkänning och avslutar igenkänningssessionen.
Kommandon
Röstinmatning kan initiera åtgärder, anropa kommandon och utföra uppgifter.
Om utrymmet tillåter kan du överväga att visa de svar som stöds för den aktuella appkontexten, med exempel på giltiga indata. Den här metoden minskar de potentiella svar som din app behöver bearbeta och eliminerar även förvirring för användaren.
Försök att rama in dina frågor för att få ett så specifikt svar som möjligt. "Vad vill du göra i dag?" är till exempel mycket öppen och kräver en mycket stor grammatikdefinition på grund av hur olika svaren kan vara. Alternativt begränsar "Vill du spela ett spel eller lyssna på musik?" svaret till ett av två giltiga svar med en motsvarande liten grammatikdefinition. En liten grammatik är mycket enklare att skriva och resulterar i mycket mer exakta igenkänningsresultat.
Begär bekräftelse från användaren när taligenkänningsförtroendet är lågt. Om användarens avsikt är oklar är det bättre att få ett förtydligande än att initiera en oavsiktlig åtgärd.
Ange en visuell referens som anger att taligenkänning stöds och är tillgänglig för användaren och om användaren behöver aktivera den. Använd till exempel en kommandofältsknapp med en mikrofonikon (se Riktlinjer för kommandofält) för att visa både tillgänglighet och status.
Om taligenkänningsväxeln vanligtvis inte visas bör du överväga att visa en tillståndsindikator i appens innehållsområde.
Om användaren initierar igenkänning bör du överväga att använda den inbyggda igenkänningsupplevelsen för konsekvens. Den inbyggda upplevelsen innehåller anpassningsbara skärmar med frågor, exempel, tvetydigheter, bekräftelser och fel.
Skärmarna varierar beroende på de angivna begränsningarna:
Fördefinierad grammatik (diktering eller webbsökning)
- Lyssningsskärmen.
- Tänkande-skärmen.
- Skärmen Hör dig säga eller felskärmen.
Lista över ord eller fraser eller en SRGS-grammatikfil
- Lyssningsskärmen.
- Skärmen Sa du , om det användaren sa kan tolkas som mer än ett potentiellt resultat.
- Skärmen Hör dig säga eller felskärmen.
På lyssningsskärmen kan du:
- Anpassa rubriktexten.
- Ange exempeltext för vad användaren kan säga.
- Ange om skärmen Hör dig säga visas.
- Läs tillbaka den igenkända strängen till användaren på skärmen Hör dig säga .
Följande bilder visar ett exempel på det inbyggda igenkänningsflödet för en taligenkänning som använder en SRGS-definierad begränsning. I det här exemplet lyckas taligenkänningen.
Lyssnar alltid
Din app kan lyssna efter och känna igen talindata så snart appen startas, utan att användaren kan ingripa.
Anpassa grammatikbegränsningarna baserat på appkontexten. Den här metoden håller taligenkänningsupplevelsen mycket målinriktad och relevant för den aktuella aktiviteten och minimerar fel.
"Vad kan jag säga?"
När du aktiverar taligenkänning, hjälp användarna att upptäcka vad appen kan förstå och vilka åtgärder den kan utföra.
Om användarna aktiverar taligenkänning kan du överväga att använda kommandofältet eller ett menykommando för att visa alla ord och fraser som stöds i den aktuella kontexten.
Om taligenkänning alltid är aktiverat kan du överväga att lägga till frasen "Vad kan jag säga?" på varje sida. När användaren säger den här frasen visar du alla ord och fraser som stöds i den aktuella kontexten. Med den här frasen får användarna ett konsekvent sätt att identifiera talfunktioner i hela systemet.
Igenkänningsfel
Taligenkänningen kan misslyckas. Fel inträffar när ljudkvaliteten är dålig, när identifieraren bara identifierar en del av en fras eller när identifieraren inte identifierar några indata alls.
Hantera fel på ett korrekt sätt, hjälpa användaren att förstå varför igenkänningen misslyckades och återställa.
Din app bör informera användaren om att identifieraren inte förstod dem och att de måste försöka igen.
Överväg att tillhandahålla exempel på en eller flera fraser som stöds. Användaren kommer sannolikt att upprepa en föreslagen fras, vilket ökar igenkänningens framgång.
Visa en lista över potentiella matchningar som användaren kan välja mellan. Den här metoden kan vara mycket effektivare än att gå igenom igenkänningsprocessen igen.
Ha alltid stöd för alternativa indatatyper, vilket är särskilt användbart vid hantering av upprepade igenkänningsfel. Du kan till exempel föreslå att användaren försöker använda ett tangentbord eller använda touch eller en mus för att välja från en lista över potentiella matchningar.
Använd den inbyggda taligenkänningsupplevelsen eftersom den innehåller skärmar som informerar användaren om att igenkänningen inte lyckades och låter användaren göra ett nytt igenkänningsförsök.
Lyssna efter och försök åtgärda problem i ljudinmatningen. Taligenkänningen kan identifiera problem med ljudkvaliteten som kan påverka taligenkänningens noggrannhet negativt. Du kan använda den information som tillhandahålls av taligenkänningen för att informera användaren om problemet och låta dem vidta korrigerande åtgärder, om möjligt. Om volyminställningen på mikrofonen till exempel är för låg kan du uppmana användaren att tala högre eller öka volymen.
Constraints
Begränsningar, eller grammatik, definierar de talade ord och fraser som taligenkänningen kan matcha. Du kan ange en av de fördefinierade webbtjänst grammatik eller så kan du skapa en anpassad grammatik som du installerar med din app.
Fördefinierade grammatiker
Fördefinierade dikterings- och webbsöknings grammatiker ger taligenkänning för din app utan att du behöver skapa en grammatik. När du använder dessa grammatiker utför en fjärrwebbtjänst taligenkänning och returnerar resultatet till enheten.
- Standardmatiken för fritextdiktering identifierar de flesta ord och fraser som en användare kan säga på ett visst språk. Den är optimerad för att identifiera korta fraser. Använd fritextdiktering när du inte vill begränsa vilka typer av saker en användare kan säga. Vanliga användningsområden är att skapa anteckningar eller diktera innehållet för ett meddelande.
- Grammatiken för webbsökning, till exempel en dikterings grammatik, innehåller ett stort antal ord och fraser som en användare kan säga. Den är dock optimerad för att identifiera termer som användare vanligtvis använder när de söker på webben.
Anmärkning
Eftersom fördefinierade dikterings- och webbsöknings grammatiker kan vara stora, och eftersom de är online (inte på enheten), kanske prestandan inte är lika snabb som med en anpassad grammatik installerad på enheten.
Dessa fördefinierade grammatiker kan känna igen upp till 10 sekunders talindata och kräver ingen redigering. De kräver dock anslutning till ett nätverk.
Anpassade grammatikstrukturer
Utforma och skapa en anpassad grammatik och installera den med din app. Enheten utför taligenkänning med hjälp av en anpassad begränsning.
Programmatiska listbegränsningar är ett enkelt sätt att skapa enkla grammatiker med hjälp av en lista med ord eller fraser. En listbegränsning fungerar bra för att identifiera korta, distinkta fraser. Att uttryckligen ange alla ord i en grammatik förbättrar också igenkänningsnoggrannheten, eftersom taligenkänningsmotorn endast får bearbeta tal för att bekräfta en matchning. Du kan också uppdatera listan programmatiskt.
En SRGS-grammatik är ett statiskt dokument som, till skillnad från en programmässig listbegränsning, använder DET XML-format som definieras av SRGS version 1.0. En SRGS-grammatik ger störst kontroll över taligenkänningsupplevelsen genom att du kan samla in flera semantiska betydelser i en enda igenkänning.
Här följer några tips för att redigera SRGS-grammatik:
- Håll varje grammatikregel liten. Grammatiker som innehåller färre fraser tenderar att ge mer exakt igenkänning än större grammatiker som innehåller många fraser. Det är bättre att ha flera mindre grammatiker för specifika scenarier än att ha en enda grammatik för hela appen.
- Låt användarna veta vad de ska säga för varje appkontext och aktivera och inaktivera grammatik efter behov.
- Utforma varje grammatik så att användarna kan tala ett kommando på flera olika sätt. Använd till exempel SKRÄP-regeln för att matcha talindata som grammatiken inte definierar. Med den här regeln kan användarna tala ytterligare ord som inte har någon betydelse för din app. Till exempel "ge mig", "och", "eh", "kanske" och så vidare.
- Använd sapi:subset-elementet för att matcha talinmatning. Det här elementet är ett Microsoft-tillägg till SRGS-specifikationen för att matcha partiella fraser.
- Försök att undvika att definiera fraser i grammatiken som bara innehåller en stavelse. Igenkänning tenderar att vara mer exakt för fraser som innehåller två eller flera stavelser.
- Undvik att använda fraser som låter liknande. Till exempel kan fraser som "hello", "bellow" och "fellow" förvirra igenkänningsmotorn och resultera i dålig igenkänningsnoggrannhet.
Anmärkning
Vilken typ av begränsning du använder beror på komplexiteten i den igenkänningsupplevelse som du vill skapa. Vilken typ som helst kan vara det bästa valet för en specifik igenkänningsuppgift, och du kan hitta användningsområden för alla typer av begränsningar i din app.
Anpassade uttal
Om din app innehåller specialiserade ordförråd med ovanliga eller fiktiva ord, eller ord med ovanliga uttal, kanske du kan förbättra igenkänningsprestandan för dessa ord genom att definiera anpassade uttal.
Om du vill ha en liten lista med ord och fraser, eller en lista över ord och fraser som används sällan, skapar du anpassade uttal i en SRGS-grammatik. Mer information finns i tokenelementet .
För större listor med ord och fraser, eller ofta använda ord och fraser, skapar du separata uttalslexikondokument. Mer information finns i Om lexikon och fonetiska alfabet .
Testar
Testa noggrannheten för taligenkänning och alla stöd för användargränssnittet med appens målgrupp. Den här metoden hjälper dig att avgöra hur effektiv talinteraktionsupplevelsen är i din app. Får användarna till exempel dåliga igenkänningsresultat eftersom appen inte lyssnar efter en vanlig fras?
Ändra grammatiken för att stödja den här frasen eller ge användarna en lista över fraser som stöds. Om du redan anger listan över fraser som stöds kontrollerar du att användarna enkelt kan hitta den.
Text till tal (TTS)
TTS genererar tal från enkel text eller SSML.
Försök att utforma uppmaningar som är artiga och uppmuntrande.
Fundera på om du ska läsa långa textsträngar. Det är en sak att lyssna på ett textmeddelande, men en helt annan att lyssna på en lång lista med sökresultat som är svåra att komma ihåg.
Ange mediekontroller så att användarna kan pausa eller stoppa TTS.
Lyssna på alla TTS-strängar för att säkerställa att de är begripliga och låter naturliga.
- Om du stränger ihop en ovanlig sekvens med ord eller taldelsnummer eller skiljetecken kan det leda till att en fras blir obegriplig.
- Tal kan låta onaturligt när prosodi eller kadens skiljer sig från hur en infödd talare skulle säga en fras.
Du kan åtgärda båda problemen med hjälp av SSML i stället för oformaterad text som indata till talsyntesen. Mer information om SSML finns i 'Använda SSML för att kontrollera syntetiserat tal' och 'Referens för talsyntes markeringsspråk'.