Delen via


Spraakinteracties

Integreer spraakherkenning en spraak-naar-spraak (ook wel TTS of spraaksynthese genoemd) rechtstreeks in de gebruikerservaring van uw app.

Spraakherkenning Spraakherkenning converteert woorden die door de gebruiker worden gesproken naar tekst voor formulierinvoer, voor tekstdicteren, om een actie of opdracht op te geven en taken uit te voeren. Zowel vooraf gedefinieerde grammatica's voor dicteren in vrije tekst als webzoekopdrachten en aangepaste grammatica's die zijn geschreven met SRGS -versie 1.0 (Speech Recognition Grammar Specification) worden ondersteund.

TTS TTS maakt gebruik van een spraaksynthese-engine (spraak) om een tekenreeks te converteren naar gesproken woorden. De invoertekenreeks kan eenvoudige, ongestileerde tekst of complexere Speech Synthesis Markup Language (SSML) zijn. SSML biedt een standaardmethode voor het beheren van spraakkenmerken, zoals uitspraak, volume, toonhoogte, spreektempo of snelheid, en nadruk.

Andere spraakgerelateerde onderdelen: Cortana in Windows-toepassingen maakt gebruik van aangepaste spraakopdrachten (gesproken of getypt) om uw app op de voorgrond te starten (de app krijgt de focus, net als wanneer deze is gestart vanuit het menu Start) of wordt geactiveerd als een achtergrondservice (Cortana behoudt de focus, maar levert resultaten van de app). Bekijk Cortana-interacties in Windows-apps.

Ontwerp van spraakinteractie

Wanneer spraak zorgvuldig is ontworpen en geïmplementeerd, kan het een robuuste en aangename manier zijn voor mensen om met uw app te communiceren, aanvullend op of zelfs ter vervanging van toetsenbord, muis, aanraking en gebaren.

In deze richtlijnen en aanbevelingen wordt beschreven hoe u spraakherkenning en TTS het beste kunt integreren in de interactie-ervaring van uw app.

Als u de ondersteuning van spraakinteracties in uw app overweegt:

  • Welke acties kunnen worden uitgevoerd via spraak? Kan een gebruiker navigeren tussen pagina's, opdrachten aanroepen of gegevens invoeren als tekstvelden, korte notities of lange berichten?
  • Is spraakinvoer een goede optie voor het voltooien van een taak?
  • Hoe weet een gebruiker wanneer spraakinvoer beschikbaar is?
  • Luistert de app altijd of moet de gebruiker actie ondernemen om de luistermodus in te schakelen?
  • Welke zinnen initiëren een actie of gedrag? Moeten de woordgroepen en acties op het scherm worden opgesomd?
  • Zijn prompt-, bevestigings- en ondubbelzinnigheidsschermen of TTS vereist?
  • Wat is het interactiedialoogvenster tussen app en gebruiker?
  • Is een aangepaste of beperkte woordenlijst vereist (zoals geneeskunde, wetenschap of landinstelling) voor de context van uw app?
  • Is netwerkconnectiviteit vereist?

Tekstinvoer

Spraak voor tekstinvoer kan variëren van korte vorm (één woord of woordgroep) tot lange vorm (continue dicteren). Korte formulierinvoer moet minder dan 10 seconden lang zijn, terwijl de lange formulierinvoersessie maximaal twee minuten lang kan zijn. (Lange formulierinvoer kan opnieuw worden gestart zonder tussenkomst van de gebruiker om de indruk van continue dicteren te geven.)

U moet een visuele aanwijzing opgeven om aan te geven dat spraakherkenning wordt ondersteund en beschikbaar is voor de gebruiker en of de gebruiker deze moet inschakelen. Een opdrachtbalkknop met een microfoon-glyph (zie opdrachtbalken) kan bijvoorbeeld worden gebruikt om zowel beschikbaarheid als status weer te geven.

Geef doorlopende herkenningsfeedback om elk duidelijk gebrek aan reactie te minimaliseren terwijl de herkenning wordt uitgevoerd.

Laat gebruikers herkenningstekst herzien met behulp van toetsenbordinvoer, ondubbelzinnige prompts, suggesties of aanvullende spraakherkenning.

Stop de herkenning als invoer wordt gedetecteerd vanaf een ander apparaat dan spraakherkenning, zoals aanraakscherm of toetsenbord. Dit geeft waarschijnlijk aan dat de gebruiker naar een andere taak is verplaatst, zoals het corrigeren van de herkenningstekst of interactie met andere formuliervelden.

Geef de tijdsduur op waarvoor geen spraakinvoer aangeeft dat de herkenning voorbij is. Start de herkenning niet automatisch opnieuw op na deze periode, omdat dit meestal aangeeft dat de gebruiker niet meer betrokken is bij uw app.

Schakel alle gebruikersinterface voor continue herkenning uit en beëindig de herkenningssessie als er geen netwerkverbinding beschikbaar is. Voor continue herkenning is een netwerkverbinding vereist.

Bevelvoering

Spraakinvoer kan acties initiëren, opdrachten aanroepen en taken uitvoeren.

Als ruimte is toegestaan, kunt u overwegen de ondersteunde antwoorden voor de huidige app-context weer te geven, met voorbeelden van geldige invoer. Dit vermindert de mogelijke reacties die uw app moet verwerken en elimineert ook verwarring voor de gebruiker.

Probeer uw vragen zo in te stellen dat ze zo specifiek mogelijk een antwoord opvragen. Bijvoorbeeld: 'Wat wilt u vandaag doen?' is zeer open en vereist een zeer grote grammaticadefinitie vanwege hoe gevarieerd de antwoorden kunnen zijn. Als alternatief beperkt de vraag 'Wilt u een game spelen of muziek beluisteren?' het antwoord tot een van de twee geldige antwoorden met een overeenkomstige beperkte grammaticadefinitie. Een kleine grammatica is veel eenvoudiger te ontwerpen en resulteert in veel nauwkeurigere herkenningsresultaten.

Vraag bevestiging van de gebruiker wanneer de betrouwbaarheid van spraakherkenning laag is. Als de intentie van de gebruiker onduidelijk is, is het beter om uitleg te krijgen dan om een onbedoelde actie te starten.

U moet een visuele aanwijzing opgeven om aan te geven dat spraakherkenning wordt ondersteund en beschikbaar is voor de gebruiker en of de gebruiker deze moet inschakelen. Een opdrachtbalkknop met een microfoon-glyph (zie Richtlijnen voor opdrachtbalken) kan bijvoorbeeld worden gebruikt om zowel beschikbaarheid als status weer te geven.

Als de spraakherkenningsschakelaar vaak niet zichtbaar is, kunt u overwegen een indicatie van de status weer te geven in het inhoudsgebied van de app.

Als herkenning door de gebruiker wordt gestart, kunt u overwegen de ingebouwde herkenningservaring voor consistentie te gebruiken. De ingebouwde ervaring omvat aanpasbare schermen met prompts, voorbeelden, ondubbelzinnigheden, bevestigingen en fouten.

De schermen variëren afhankelijk van de opgegeven beperkingen:

  • Vooraf gedefinieerde grammatica (dicteren of zoeken op internet)

    • Het luisterscherm .
    • Het Denken-scherm.
    • Het Heard you say-scherm of het foutscherm.
  • Lijst met woorden of woordgroepen of een SRGS-grammaticabestand

    • Het luisterscherm .
    • Het scherm Hebt u gezegd , als wat de gebruiker zei als meer dan één potentieel resultaat kan worden geïnterpreteerd.
    • Het Heard you say-scherm of het foutscherm.

Op het scherm Luisteren kunt u het volgende doen:

  • Pas de koptekst aan.
  • Geef voorbeeldtekst op van wat de gebruiker kan zeggen.
  • Geef op of het scherm Gehoord dat u zegt wordt weergegeven.
  • Lees de herkende tekenreeks terug naar de gebruiker op het scherm Ik hoorde dat u zei.

Hier volgt een voorbeeld van de ingebouwde herkenningsstroom voor een spraakherkenningsfunctie die gebruikmaakt van een door SRGS gedefinieerde beperking. In dit voorbeeld is spraakherkenning geslaagd.

eerste herkenningsscherm voor een beperking op basis van een sgrs-grammaticabestand

tussenliggend herkenningsscherm voor een beperking op basis van een sgrs-grammaticabestand

laatste herkenningsscherm voor een beperking op basis van een sgrs-grammaticabestand

Altijd luisteren

Uw app kan luisteren naar spraakinvoer en herkennen zodra de app wordt gestart, zonder tussenkomst van de gebruiker.

U moet de grammaticabeperkingen aanpassen op basis van de app-context. Hierdoor blijft de spraakherkenning zeer gericht en relevant voor de huidige taak en worden fouten geminimaliseerd.

Wat kan ik zeggen?

Wanneer spraakinvoer is ingeschakeld, is het belangrijk om gebruikers te helpen ontdekken wat precies kan worden begrepen en welke acties kunnen worden uitgevoerd.

Als spraakherkenning is ingeschakeld, kunt u overwegen de opdrachtbalk of een menuopdracht te gebruiken om alle woorden en woordgroepen weer te geven die in de huidige context worden ondersteund.

Als spraakherkenning altijd is ingeschakeld, kunt u de zin 'Wat kan ik zeggen?' toevoegen aan elke pagina. Wanneer de gebruiker deze woordgroep zegt, geeft u alle woorden en woordgroepen weer die in de huidige context worden ondersteund. Het gebruik van deze woordgroep biedt gebruikers een consistente manier om spraakmogelijkheden in het systeem te detecteren.

Herkenningsfouten

Spraakherkenning mislukt. Fouten treden op wanneer de audiokwaliteit slecht is, wanneer slechts een deel van een woordgroep wordt herkend of wanneer er helemaal geen invoer wordt gedetecteerd.

Omgaan met fouten op een zorgvuldige manier, help een gebruiker begrijpen waarom de herkenning is mislukt en het herstel bevorderen.

Uw app moet de gebruiker informeren dat ze niet begrepen zijn en dat ze het opnieuw moeten proberen.

Overweeg voorbeelden te geven van een of meer ondersteunde woordgroepen. De gebruiker herhaalt waarschijnlijk een voorgestelde woordgroep, waardoor de herkenning toeneemt.

U moet een lijst met mogelijke overeenkomsten weergeven waaruit een gebruiker kan kiezen. Dit kan veel efficiënter zijn dan het herkenningsproces opnieuw doorlopen.

U moet altijd alternatieve invoertypen ondersteunen, wat vooral handig is voor het afhandelen van herhaalde herkenningsfouten. U kunt bijvoorbeeld voorstellen dat de gebruiker een toetsenbord probeert te gebruiken of een aanraakscherm of een muis gebruikt om een keuze te maken uit een lijst met mogelijke overeenkomsten.

Gebruik de ingebouwde spraakherkenningservaring omdat deze schermen bevat waarmee de gebruiker wordt geïnformeerd dat de herkenning niet is geslaagd en de gebruiker een andere herkenningspoging kan doen.

Luister naar en probeer problemen in de audio-invoer op te lossen. De spraakherkenning kan problemen met de audiokwaliteit detecteren die de nauwkeurigheid van spraakherkenning nadelig kunnen beïnvloeden. U kunt de informatie van de spraakherkenning gebruiken om de gebruiker op de hoogte te stellen van het probleem en deze zo mogelijk corrigerende maatregelen te laten nemen. Als de volume-instelling op de microfoon bijvoorbeeld te laag is, kunt u de gebruiker vragen luider te spreken of het volume hoger te zetten.

Constraints

Beperkingen of grammatica definiëren de gesproken woorden en woordgroepen die door de spraakherkenning kunnen worden herkend. U kunt een van de vooraf gedefinieerde grammatica's van de webservice opgeven of u kunt een aangepaste grammatica maken die met uw app is geïnstalleerd.

Vooraf gedefinieerde grammatica's

Vooraf gedefinieerde dicteer- en webzoekopdrachten bieden spraakherkenning voor uw app zonder dat u een grammatica hoeft te schrijven. Wanneer u deze grammatica gebruikt, wordt spraakherkenning uitgevoerd door een externe webservice en worden de resultaten geretourneerd naar het apparaat

  • De standaard grammatica van vrije tekst kan de meeste woorden en woordgroepen herkennen die een gebruiker in een bepaalde taal kan zeggen en is geoptimaliseerd voor het herkennen van korte zinnen. Dicteren in vrije tekst is handig als u de soorten dingen die een gebruiker kan zeggen niet wilt beperken. Typische toepassingen zijn onder andere het maken van notities of het dicteren van de inhoud voor een bericht.
  • De grammatica van de webzoekopdrachten, zoals een dicteer grammatica, bevat een groot aantal woorden en woordgroepen die een gebruiker kan zeggen. Het is echter geoptimaliseerd om termen te herkennen die mensen doorgaans gebruiken bij het zoeken op internet.

Opmerking

Omdat vooraf gedefinieerde dicteren en grammatica's voor zoeken op internet groot kunnen zijn en omdat ze online zijn (niet op het apparaat), zijn de prestaties mogelijk niet zo snel als bij een aangepaste grammatica die op het apparaat is geïnstalleerd.

Deze vooraf gedefinieerde grammatica's kunnen worden gebruikt voor het herkennen van maximaal 10 seconden spraakinvoer en vereisen geen ontwerpinspanningen voor uw deel. Ze hebben echter wel verbinding met een netwerk nodig.

Aangepaste grammatica

Een aangepaste grammatica is ontworpen en geschreven door u en wordt geïnstalleerd met uw app. Spraakherkenning met behulp van een aangepaste beperking wordt uitgevoerd op het apparaat.

  • Programmatische lijstbeperkingen bieden een eenvoudige benadering voor het maken van eenvoudige grammatica met behulp van een lijst met woorden of woordgroepen. Een lijstbeperking werkt goed voor het herkennen van korte, afzonderlijke zinnen. Het expliciet opgeven van alle woorden in een grammatica verbetert ook de nauwkeurigheid van de herkenning, omdat de spraakherkenningsengine alleen spraak moet verwerken om een overeenkomst te bevestigen. De lijst kan ook programmatisch worden bijgewerkt.

  • Een SRGS-grammatica is een statisch document dat, in tegenstelling tot een programmatische lijstbeperking, gebruikmaakt van de XML-indeling die is gedefinieerd door SRGS-versie 1.0. Een SRGS-grammatica biedt de grootste controle over de spraakherkenningservaring door meerdere semantische betekenissen in één herkenning vast te leggen.

    Hier volgen enkele tips voor het ontwerpen van SRGS-grammatica's:

    • Houd elke grammatica klein. Grammatica's die minder woordgroepen bevatten, bieden meestal nauwkeurigere herkenning dan grotere grammatica's die veel woordgroepen bevatten. Het is beter om verschillende kleinere grammatica's te hebben voor specifieke scenario's dan om één grammatica voor uw hele app te hebben.
    • Laat gebruikers weten wat ze moeten zeggen voor elke app-context en schakel grammatica in en uitschakelen indien nodig.
    • Ontwerp elke grammatica zodat gebruikers op verschillende manieren een opdracht kunnen uitspreken. U kunt bijvoorbeeld de GARBAGE-regel gebruiken om spraakinvoer te vinden die niet door uw grammatica wordt gedefinieerd. Hiermee kunnen gebruikers aanvullende woorden uitspreken die geen betekenis hebben voor uw app. Bijvoorbeeld 'geef me', 'en', 'uh', 'misschien', enzovoort.
    • Gebruik het element sapi:subset om spraakinvoer te koppelen. Dit is een Microsoft-extensie voor de SRGS-specificatie om te helpen bij het matchen van gedeeltelijke zinnen.
    • Vermijd het definiëren van woordgroepen in uw grammatica die slechts één lettergreep bevatten. Herkenning is meestal nauwkeuriger voor woordgroepen die twee of meer lettergrepen bevatten.
    • Vermijd het gebruik van zinnen die vergelijkbaar klinken. Woordgroepen zoals 'hello', 'bellow' en 'fellow' kunnen de herkenningsengine verwarren en leiden tot een slechte nauwkeurigheid van de herkenning.

Opmerking

Welk type beperking u gebruikt, is afhankelijk van de complexiteit van de herkenningservaring die u wilt maken. Elke optie kan de beste keuze zijn voor een specifieke herkenningstaak en u vindt mogelijk gebruik voor alle typen beperkingen in uw app.

Aangepaste uitspraken

Als uw app gespecialiseerde woordenschat bevat met ongebruikelijke of fictieve woorden of woorden met ongebruikelijke uitspraken, kunt u de herkenningsprestaties voor deze woorden verbeteren door aangepaste uitspraken te definiëren.

Voor een kleine lijst met woorden en woordgroepen of een lijst met zelden gebruikte woorden en woordgroepen kunt u aangepaste uitspraken maken in een SRGS-grammatica. Zie het tokenelement voor meer informatie.

Voor grotere lijsten met woorden en woordgroepen, of veelgebruikte woorden en woordgroepen, kunt u afzonderlijke uitspraak lexicondocumenten maken. Zie Over Lexicons en fonetische alfabetten voor meer informatie.

Testing

Test de nauwkeurigheid van spraakherkenning en elke ondersteunende gebruikersinterface met de doelgroep van uw app. Dit is de beste manier om de effectiviteit van de interactie-ervaring voor spraak in uw app te bepalen. Krijgen gebruikers bijvoorbeeld slechte herkenningsresultaten omdat uw app niet luistert naar een algemene woordgroep?

Wijzig de grammatica om deze woordgroep te ondersteunen of geef gebruikers een lijst met ondersteunde woordgroepen. Als u al de lijst met ondersteunde woordgroepen opgeeft, moet u ervoor zorgen dat deze gemakkelijk kan worden gedetecteerd.

Tekst-naar-spraak (TTS)

TTS genereert spraakuitvoer van platte tekst of SSML.

Probeer prompts te ontwerpen die beleefd en aanmoedigend zijn.

Overweeg of u lange tekenreeksen met tekst moet lezen. Het is een ding om naar een sms-bericht te luisteren, maar nog een andere om te luisteren naar een lange lijst met zoekresultaten die moeilijk te onthouden zijn.

U moet mediabesturingselementen opgeven om gebruikers TTS te laten onderbreken of stoppen.

Luister naar alle TTS-tekenreeksen om ervoor te zorgen dat ze begrijpelijk en natuurlijk klinken.

  • Het samenvoegen van een ongebruikelijke reeks woorden of het spreken van deelnummers of interpunctie kan ertoe leiden dat een woordgroep onleesbaar wordt.
  • Spraak kan onnatuurlijk klinken wanneer de prosodie of cadans verschilt van de manier waarop een moedertaalspreker een woordgroep zou zeggen.

Beide problemen kunnen worden opgelost met behulp van SSML in plaats van tekst zonder opmaak als invoer voor de spraaksynthese. Zie voor meer informatie over SSML SSML gebruiken om gesynthetiseerde spraak te beheren en Referentie voor Speech Synthesis Markup Language.

Onderwerp Description
Spraakherkenning Gebruik spraakherkenning om invoer te bieden, een actie of opdracht op te geven en taken uit te voeren.
De taal voor spraakherkenning opgeven Meer informatie over het selecteren van een geïnstalleerde taal die moet worden gebruikt voor spraakherkenning.
Aangepaste herkenningsbeperkingen definiëren Meer informatie over het definiëren en gebruiken van aangepaste beperkingen voor spraakherkenning.
Continue dicteren inschakelen Meer informatie over het vastleggen en herkennen van langlopende spraakinvoer.
Problemen met audio-invoer beheren Meer informatie over het beheren van problemen met de nauwkeurigheid van spraakherkenning die wordt veroorzaakt door de kwaliteit van audio-invoer.
Time-outs voor spraakherkenning instellen Stel in hoelang een spraakherkenning stilte of onherkenbare geluiden (babble) negeert en blijft luisteren naar spraakinvoer.

  Voorbeelden