Sprachinteraktionen

Integrieren Sie Spracherkennung und Text-zu-Sprache (auch als TTS oder Sprachsynthese bezeichnet) direkt in die Benutzeroberfläche Ihrer App.

Die Spracherkennung konvertiert Wörter, die vom Benutzer gesprochen werden, in Text für die Formulareingabe, für das Diktieren von Text, zum Angeben einer Aktion oder eines Befehls und zum Ausführen von Aufgaben. Sowohl vordefinierte Grammatiken für die Freitext-Diktierfunktion als auch die Websuche sowie benutzerdefinierte Grammatiken, die mithilfe der Spracherkennungsgrammatikspezifikation (Speech Recognition Grammar Specification, SRGS) Version 1.0 erstellt wurden, werden unterstützt.

TTS TTS verwendet ein Sprachsynthesemodul (Voice), um eine Textzeichenfolge in gesprochene Wörter zu konvertieren. Die Eingabezeichenfolge kann entweder einfacher, ungeadorter Text oder komplexerer Speech Synthesis Markup Language (SSML) sein. SSML bietet eine Standardmethode zum Steuern der Merkmale der Sprachausgabe, z. B. Aussprache, Lautstärke, Neigung, Geschwindigkeit oder Geschwindigkeit und Betonung.

Andere sprachbezogene Komponenten:Cortana in Windows-Anwendungen verwendet angepasste Sprachbefehle (gesprochen oder eingegeben), um Ihre App im Vordergrund zu starten (die App hat den Fokus, genau so, als ob sie über die Menü gestartet wurde) oder als Hintergrunddienst aktiviert (Cortana behält den Fokus bei, stellt aber Ergebnisse aus der App bereit). Anzeigen von Cortana-Interaktionen in Windows-Apps.

Design der Sprachinteraktion

Die durchdachte und implementierte Spracherkennung kann eine robuste und angenehme Möglichkeit sein, mit Ihrer App zu interagieren, ihre App zu ergänzen oder sogar zu ersetzen, Tastatur, Maus, Toucheingabe und Gesten zu ersetzen.

Diese Richtlinien und Empfehlungen beschreiben, wie Sie spracherkennung und TTS am besten in die Interaktionserfahrung Ihrer App integrieren.

Wenn Sie die Unterstützung von Sprachinteraktionen in Ihrer App in Betracht ziehen:

  • Welche Aktionen können durch Spracherkennung ausgeführt werden? Kann ein Benutzer zwischen Seiten navigieren, Befehle aufrufen oder Daten als Textfelder, kurze Notizen oder lange Nachrichten eingeben?
  • Ist die Spracheingabe eine gute Option zum Abschließen einer Aufgabe?
  • Wie weiß ein Benutzer, wann die Spracheingabe verfügbar ist?
  • Hört die App immer zu, oder muss der Benutzer eine Aktion ausführen, damit die App in den Überwachungsmodus wechselt?
  • Welche Ausdrücke initiieren eine Aktion oder ein Verhalten? Müssen die Ausdrücke und Aktionen auf dem Bildschirm aufgezählt werden?
  • Sind Eingabeaufforderungs-, Bestätigungs- und Mehrdeutigkeitsbildschirme oder TTS erforderlich?
  • Was ist das Interaktionsdialogfeld zwischen App und Benutzer?
  • Ist ein benutzerdefiniertes oder eingeschränktes Vokabular (z. B. Medizin, Wissenschaft oder Gebietsschema) für den Kontext Ihrer App erforderlich?
  • Ist netzwerkkonnektivität erforderlich?

Texteingabe

Die Spracherkennung für die Texteingabe kann von kurzer Form (einzelnes Wort oder Ausdruck) bis hin zu langer Form (fortlaufendes Diktieren) reichen. Die Eingabe von kurzen Formularen muss weniger als 10 Sekunden lang sein, während eine lange Formulareingabesitzung bis zu zwei Minuten lang sein kann. (Lange Formulareingabe kann ohne Benutzereingriff neu gestartet werden, um den Eindruck eines kontinuierlichen Diktierens zu vermitteln.)

Sie sollten einen visuellen Hinweis bereitstellen, um anzugeben, dass die Spracherkennung unterstützt und für den Benutzer verfügbar ist und ob der Benutzer sie aktivieren muss. Beispielsweise kann eine Befehlsleistenschaltfläche mit einer Mikrofonglyphe (siehe Befehlsleisten) verwendet werden, um sowohl Verfügbarkeit als auch Zustand anzuzeigen.

Stellen Sie fortlaufendes Erkennungsfeedback bereit, um die scheinbare Antwort zu minimieren, während die Erkennung durchgeführt wird.

Ermöglichen Sie Benutzern, den Erkennungstext mithilfe von Tastatureingaben, Mehrdeutigkeitsaufforderungen, Vorschlägen oder zusätzlicher Spracherkennung zu überarbeiten.

Beenden Sie die Erkennung, wenn eingaben von einem anderen Gerät als der Spracherkennung erkannt werden, z. B. Toucheingabe oder Tastatur. Dies weist wahrscheinlich darauf hin, dass der Benutzer zu einer anderen Aufgabe gewechselt hat, z. B. das Korrigieren des Erkennungstexts oder die Interaktion mit anderen Formularfeldern.

Geben Sie die Zeitspanne an, für die keine Spracheingabe angibt, dass die Erkennung abgelaufen ist. Starten Sie die Erkennung nach diesem Zeitraum nicht automatisch neu, da sie normalerweise anzeigt, dass der Benutzer die Interaktion mit Ihrer App beendet hat.

Deaktivieren Sie alle benutzeroberfläche für die kontinuierliche Erkennung, und beenden Sie die Erkennungssitzung, wenn keine Netzwerkverbindung verfügbar ist. Für die kontinuierliche Erkennung ist eine Netzwerkverbindung erforderlich.

Befehle

Die Spracheingabe kann Aktionen initiieren, Befehle aufrufen und Aufgaben ausführen.

Wenn Platz zulässig ist, sollten Sie die unterstützten Antworten für den aktuellen App-Kontext mit Beispielen für gültige Eingaben anzeigen. Dies reduziert die potenziellen Antworten, die Ihre App verarbeiten muss, und beseitigt auch Verwirrung für den Benutzer.

Versuchen Sie, Ihre Fragen so zu gestalten, dass sie so spezifisch wie möglich antworten. Beispielsweise ist "Was möchten Sie heute tun?", ist sehr offen und würde eine sehr große Grammatikdefinition erfordern, da die Antworten unterschiedlich sein könnten. Alternativ schränkt "Möchten Sie ein Spiel spielen oder Musik hören?" die Antwort auf eine von zwei gültigen Antworten mit einer entsprechend kleinen Grammatikdefinition ein. Eine kleine Grammatik ist viel einfacher zu erstellen und führt zu viel genaueren Erkennungsergebnissen.

Fordern Sie eine Bestätigung des Benutzers an, wenn die Spracherkennungssicherheit niedrig ist. Wenn die Absicht des Benutzers unklar ist, ist es besser, Klarstellung zu erhalten, als eine unbeabsichtigte Aktion zu initiieren.

Sie sollten einen visuellen Hinweis bereitstellen, um anzugeben, dass die Spracherkennung unterstützt und für den Benutzer verfügbar ist und ob der Benutzer sie aktivieren muss. Beispielsweise kann eine Befehlsleistenschaltfläche mit einer Mikrofonglyphe (siehe Richtlinien für Befehlsleisten) verwendet werden, um sowohl Verfügbarkeit als auch Zustand anzuzeigen.

Wenn die Spracherkennungsoption in der Regel nicht sichtbar ist, sollten Sie eine Statusanzeige im Inhaltsbereich der App anzeigen.

Wenn die Erkennung vom Benutzer initiiert wird, sollten Sie die integrierte Erkennungsfunktion zur Konsistenz verwenden. Die integrierte Oberfläche umfasst anpassbare Bildschirme mit Eingabeaufforderungen, Beispielen, Mehrdeutigkeiten, Bestätigungen und Fehlern.

Die Bildschirme variieren je nach den angegebenen Einschränkungen:

  • Vordefinierte Grammatik (Diktat oder Websuche)

    • Der Bildschirm "Überwachung ".
    • Der Bildschirm "Denken ".
    • Der "Gehört" -Bildschirm oder der Fehlerbildschirm.
  • Liste von Wörtern oder Ausdrücken oder einer SRGS-Grammatikdatei

    • Der Bildschirm "Überwachung ".
    • Der Bildschirm hat Sie gesagt , wenn das, was der Benutzer sagte, als mehr als ein potenzielles Ergebnis interpretiert werden könnte.
    • Der "Gehört" -Bildschirm oder der Fehlerbildschirm.

Auf dem Bildschirm "Überwachung" können Sie folgende Aktionen ausführen :

  • Passen Sie den Überschriftentext an.
  • Geben Sie Beispieltext dafür an, was der Benutzer sagen kann.
  • Geben Sie an, ob der Bildschirm "Gehört" angezeigt wird.
  • Lesen Sie die erkannte Zeichenfolge zurück an den Benutzer auf dem Bildschirm "Gehört ".

Hier ist ein Beispiel für den integrierten Erkennungsfluss für eine Spracherkennung, die eine SRGS-definierte Einschränkung verwendet. In diesem Beispiel ist die Spracherkennung erfolgreich.

Initial recognition screen for a constraint based on a sgrs grammar file

Bildschirm für die Zwischenerkennung für eine Einschränkung basierend auf einer sgrs-Grammatikdatei

Endgültiger Erkennungsbildschirm für eine Einschränkung basierend auf einer sgrs-Grammatikdatei

Immer hören

Ihre App kann die Spracheingabe überwachen und erkennen, sobald die App gestartet wird, ohne dass der Benutzer eingreifen muss.

Sie sollten die Grammatikeinschränkungen basierend auf dem App-Kontext anpassen. Dadurch bleibt die Spracherkennung sehr gezielt und relevant für die aktuelle Aufgabe und minimiert Fehler.

Was kann ich sagen?

Wenn die Spracheingabe aktiviert ist, ist es wichtig, den Benutzern zu helfen, zu ermitteln, was genau verstanden werden kann und welche Aktionen ausgeführt werden können.

Wenn die Spracherkennung vom Benutzer aktiviert ist, sollten Sie die Befehlsleiste oder einen Menübefehl verwenden, um alle wörter und Ausdrücke anzuzeigen, die im aktuellen Kontext unterstützt werden.

Wenn die Spracherkennung immer aktiviert ist, sollten Sie den Ausdruck "Was kann ich sagen?" zu jeder Seite hinzufügen. Wenn der Benutzer diesen Ausdruck sagt, zeigen Sie alle Wörter und Ausdrücke an, die im aktuellen Kontext unterstützt werden. Die Verwendung dieses Ausdrucks bietet benutzern eine konsistente Möglichkeit, Sprachfunktionen im gesamten System zu ermitteln.

Erkennungsfehler

Die Spracherkennung schlägt fehl. Fehler treten auf, wenn die Audioqualität schlecht ist, wenn nur ein Teil eines Ausdrucks erkannt wird oder wenn überhaupt keine Eingabe erkannt wird.

Behandeln Sie Fehler ordnungsgemäß, helfen Sie einem Benutzer zu verstehen, warum die Erkennung fehlgeschlagen ist, und wiederherstellen.

Ihre App sollte den Benutzer darüber informieren, dass er nicht verstanden wurde und dass er es erneut versuchen muss.

Erwägen Sie, Beispiele für einen oder mehrere unterstützte Ausdrücke bereitzustellen. Der Benutzer wiederholt wahrscheinlich einen vorgeschlagenen Ausdruck, wodurch der Erkennungserfolg erhöht wird.

Sie sollten eine Liste potenzieller Übereinstimmungen für einen Benutzer anzeigen, aus dem Sie auswählen können. Dies kann wesentlich effizienter sein, als den Erkennungsprozess erneut durchzugehen.

Sie sollten immer alternative Eingabetypen unterstützen, was besonders hilfreich für die Behandlung wiederholter Erkennungsfehler ist. Sie könnten beispielsweise vorschlagen, dass der Benutzer versucht, eine Tastatur zu verwenden, oder die Fingereingabe oder Maus verwenden, um aus einer Liste potenzieller Übereinstimmungen auszuwählen.

Verwenden Sie die integrierte Spracherkennungsfunktion, da sie Bildschirme enthält, die den Benutzer darüber informieren, dass die Erkennung nicht erfolgreich war, und ermöglicht dem Benutzer einen weiteren Erkennungsversuch.

Hören Sie, und versuchen Sie, Probleme in der Audioeingabe zu beheben. Die Spracherkennung kann Probleme mit der Audioqualität erkennen, die sich negativ auf die Genauigkeit der Spracherkennung auswirken können. Sie können die von der Spracherkennung bereitgestellten Informationen verwenden, um den Benutzer über das Problem zu informieren und sie gegebenenfalls Korrekturmaßnahmen zu ergreifen. Wenn die Lautstärkeeinstellung auf dem Mikrofon beispielsweise zu niedrig ist, können Sie den Benutzer auffordern, lauter zu sprechen oder die Lautstärke zu erhöhen.

Einschränkungen

Einschränkungen oder Grammatiken definieren die gesprochenen Wörter und Ausdrücke, die von der Spracherkennung abgeglichen werden können. Sie können eine der vordefinierten Webdienstgrammatiken angeben oder eine benutzerdefinierte Grammatik erstellen, die mit Ihrer App installiert ist.

Vordefinierte Grammatiken

Vordefinierte Diktier- und Websuchgrammatiken bieten spracherkennung für Ihre App, ohne dass Sie eine Grammatik erstellen müssen. Bei Verwendung dieser Grammatiken wird die Spracherkennung von einem Remotewebdienst ausgeführt, und die Ergebnisse werden an das Gerät zurückgegeben.

  • Die Standardmäßige Freitext-Diktiergrammatik kann die meisten Wörter und Ausdrücke erkennen, die ein Benutzer in einer bestimmten Sprache sagen kann, und ist für die Erkennung kurzer Ausdrücke optimiert. Die Freitext-Diktierfunktion ist nützlich, wenn Sie die Arten von Dingen, die ein Benutzer sagen kann, nicht einschränken möchten. Typische Verwendungsmöglichkeiten sind das Erstellen von Notizen oder das Diktieren des Inhalts für eine Nachricht.
  • Die Grammatik der Websuche, z. B. eine Diktiergrammatik, enthält eine große Anzahl von Wörtern und Ausdrücken, die ein Benutzer sagen könnte. Es ist jedoch optimiert, Ausdrücke zu erkennen, die personen in der Regel beim Durchsuchen des Webs verwenden.

Hinweis

Da vordefinierte Diktier- und Websuchgrammatiken groß sein können und online (nicht auf dem Gerät) sind, ist die Leistung möglicherweise nicht so schnell wie bei einer auf dem Gerät installierten benutzerdefinierten Grammatik.

Diese vordefinierten Grammatiken können verwendet werden, um bis zu 10 Sekunden Spracheingaben zu erkennen und erfordern keinen Aufwand für die Dokumenterstellung. Sie erfordern jedoch eine Verbindung mit einem Netzwerk.

Benutzerdefinierte Grammatiken

Eine benutzerdefinierte Grammatik wird von Ihnen entworfen und erstellt und mit Ihrer App installiert. Die Spracherkennung mithilfe einer benutzerdefinierten Einschränkung wird auf dem Gerät ausgeführt.

  • Programmgesteuerte Listeneinschränkungen bieten einen einfachen Ansatz zum Erstellen einfacher Grammatiken mithilfe einer Liste von Wörtern oder Ausdrücken. Eine Listeneinschränkung eignet sich gut zum Erkennen kurzer, eindeutiger Ausdrücke. Durch die explizite Angabe aller Wörter in einer Grammatik wird auch die Erkennungsgenauigkeit verbessert, da das Spracherkennungsmodul nur die Spracherkennung verarbeiten darf, um eine Übereinstimmung zu bestätigen. Die Liste kann auch programmgesteuert aktualisiert werden.

  • Eine SRGS-Grammatik ist ein statisches Dokument, das im Gegensatz zu einer programmgesteuerten Listeneinschränkung das durch die SRGS Version 1.0 definierte XML-Format verwendet. Eine SRGS-Grammatik bietet die größte Kontrolle über die Spracherkennung, indem Sie mehrere semantische Bedeutungen in einer einzigen Erkennung erfassen können.

    Hier sind einige Tipps zum Erstellen von SRGS-Grammatiken:

    • Halten Sie jede Grammatik klein. Grammatiken, die weniger Ausdrücke enthalten, bieten in der Regel eine genauere Erkennung als größere Grammatiken, die viele Ausdrücke enthalten. Es ist besser, für bestimmte Szenarien mehrere kleinere Grammatiken zu haben, als eine einzelne Grammatik für die gesamte App zu verwenden.
    • Informieren Sie Benutzer, was Sie für jeden App-Kontext sagen müssen, und aktivieren und deaktivieren Sie Grammatiken nach Bedarf.
    • Entwerfen Sie jede Grammatik so, dass Benutzer einen Befehl auf unterschiedliche Weise sprechen können. Sie können z. B. die GARBAGE-Regel verwenden, um spracheingaben zu entsprechen, die ihre Grammatik nicht definiert. Auf diese Weise können Benutzer zusätzliche Wörter sprechen, die für Ihre App keine Bedeutung haben. Beispiel: "Gib mir", "und", "uh", "vielleicht" usw.
    • Verwenden Sie das sapi:subset-Element , um die Spracheingabe abzugleichen. Dies ist eine Microsoft-Erweiterung der SRGS-Spezifikation, um Teilausdrücke abzugleichen.
    • Vermeiden Sie die Definition von Ausdrücken in Ihrer Grammatik, die nur eine Silbe enthalten. Die Erkennung ist für Ausdrücke mit zwei oder mehr Silben tendenziell genauer.
    • Vermeiden Sie Ausdrücke, die ähnlich klingen. Beispielsweise können Ausdrücke wie "Hello", "Bellow" und "Fellow" das Erkennungsmodul verwechseln und zu einer schlechten Erkennungsgenauigkeit führen.

Hinweis

Welche Art von Einschränkungstyp Sie verwenden, hängt von der Komplexität der Erkennungserfahrung ab, die Sie erstellen möchten. Dies kann die beste Wahl für einen bestimmten Erkennungsvorgang sein, und Sie finden möglicherweise Verwendungsmöglichkeiten für alle Arten von Einschränkungen in Ihrer App.

Benutzerdefinierte Aussprachen

Wenn Ihre App spezielle Vokabular mit ungewöhnlichen oder fiktiven Wörtern oder Wörtern mit ungewöhnlichen Aussprachen enthält, können Sie möglicherweise die Erkennungsleistung für diese Wörter verbessern, indem Sie benutzerdefinierte Aussprachen definieren.

Für eine kleine Liste von Wörtern und Ausdrücken oder einer Liste selten verwendeter Wörter und Ausdrücke können Sie benutzerdefinierte Aussprachen in einer SRGS-Grammatik erstellen. Weitere Informationen finden Sie unter token-Element .

Bei größeren Listen mit Wörtern und Ausdrücken oder häufig verwendeten Wörtern und Ausdrücken können Sie separate Wörter und Ausdrücke erstellen. Weitere Informationen finden Sie unter "Lexicons" und "Phonetische Alphabete ".

Testen

Testen Sie die Genauigkeit der Spracherkennung und alle unterstützenden UI-Elemente mit der Zielgruppe Ihrer App. Dies ist die beste Methode, um die Effektivität der Sprachinteraktion in Ihrer App zu ermitteln. Erhalten Benutzer beispielsweise schlechte Erkennungsergebnisse, da Ihre App nicht auf einen allgemeinen Ausdruck lauscht?

Ändern Sie entweder die Grammatik, um diesen Ausdruck zu unterstützen, oder stellen Sie Benutzern eine Liste der unterstützten Ausdrücke bereit. Wenn Sie bereits die Liste der unterstützten Ausdrücke angeben, stellen Sie sicher, dass sie leicht auffindbar ist.

Text-zu-Sprache (TTS)

TTS generiert sprachausgabe aus Nur-Text oder SSML.

Versuchen Sie, Eingabeaufforderungen zu entwerfen, die höflich und ermutigend sind.

Überlegen Sie, ob Sie lange Textzeichenfolgen lesen sollten. Es ist eine Sache, eine Textnachricht zu hören, aber eine ganz andere, um eine lange Liste von Suchergebnissen zu hören, die schwer zu merken sind.

Sie sollten Mediensteuerelemente bereitstellen, damit Benutzer TTS anhalten oder beenden können.

Sie sollten alle TTS-Zeichenfolgen hören, um sicherzustellen, dass sie verständlich und natürlich klingen.

  • Wenn Sie eine ungewöhnliche Abfolge von Wörtern oder Wortteilnummern oder Interpunktionszeichen miteinander zeichenfolgen, kann ein Ausdruck unverständlich werden.
  • Die Spracherkennung kann unnatürlich klingen, wenn sich die Prothese oder der Rhythmus von der Art unterscheiden, wie ein Muttersprachler einen Ausdruck sagen würde.

Beide Probleme können mithilfe von SSML anstelle von Nur-Text als Eingabe für den Sprachsynthesizer behoben werden. Weitere Informationen zu SSML finden Sie unter Verwenden von SSML zum Steuern der synthetisierten Spracherkennungs- und Sprachsynthesemarkupsprache.For more info about SSML, see Use SSML to Control Synthesized Speech and Speech Synthesis Markup Language Reference.

Thema Beschreibung
Spracherkennung Verwenden Sie die Spracherkennung, um Eingaben bereitzustellen, eine Aktion oder einen Befehl anzugeben und Aufgaben auszuführen.
Angeben der Sprache für die Spracherkennung Erfahren Sie, wie Sie eine installierte Sprache auswählen, die für die Spracherkennung verwendet werden soll.
Definieren von benutzerdefinierten Erkennungseinschränkungen Erfahren Sie, wie Sie benutzerdefinierte Einschränkungen für die Spracherkennung definieren und verwenden.
Aktivieren des kontinuierlichen Diktierens Erfahren Sie, wie Sie langformige, kontinuierliche Diktier-Spracheingaben erfassen und erkennen.
Verwalten von Problemen mit der Audioeingabe Erfahren Sie, wie Sie Probleme mit der Genauigkeit der Spracherkennung verwalten, die durch die Audioeingabequalität verursacht wird.
Festlegen von Timeouts für die Spracherkennung Legen Sie fest, wie lange eine Spracherkennung Stille oder nicht erkennbare Geräusche (Babble) ignoriert und weiterhin Spracheingaben überwacht.

 Beispiele