Wenn Sie eine Intent-Erkennungsanfrage stellen, können Sie optional einen Sprachkontext angeben, um der Spracherkennung Hinweise zu geben. Diese Hinweise können in einem bestimmten Unterhaltungsstatus bei der Erkennung helfen.
Automatische Sprachanpassung
Das Feature zur automatischen Sprachanpassung verbessert die Genauigkeit der Spracherkennung Ihres Agents, indem automatisch der Unterhaltungsstatus verwendet wird, um relevante Entitäten und Trainingsformulierungen als Sprachkontexthinweise für alle Anfragen zur Intent-Erkennung zu übergeben. Dieses Feature ist standardmäßig aktiviert.
Automatische Sprachanpassung aktivieren oder deaktivieren
So aktivieren oder deaktivieren Sie die automatische Sprachanpassung:
- Rufen Sie die Dialogflow ES-Konsole auf.
- Wählen Sie Ihren Agent im oberen Bereich der linken Seitenleiste aus.
- Klicken Sie neben dem Namen des Agents auf den Button settings für die Einstellungen.
- Wählen Sie den Tab Sprache aus.
- Scrollen Sie zum Abschnitt Improve Speech Recognition Quality.
- Aktivieren oder deaktivieren Sie die Option Enable Auto Speech Adaptation.
Agentendesign für Verbesserungen der Spracherkennung
Wenn die automatische Sprachanpassung aktiviert ist, können Sie Ihren Agent so erstellen, dass Sie ihn zu Ihrem Nutzen verwenden können. In den folgenden Abschnitten wird erläutert, wie die Spracherkennung durch bestimmte Änderungen an den Trainingsformulierungen, Kontexte und Entitäten Ihres Agents verbessert werden kann.
Trainingsformulierungen und Kontexte
- Wenn Sie Trainingsformulierungen mit einer Formulierung wie „stuffy nose“ definieren, wird eine ähnlich klingende Nutzeräußerung zuverlässig als „stuffy nose“ und nicht als „stuff he knows“ erkannt.
Wenn eine Sitzung aktive Kontexte hat, wird die automatische Sprachanpassung am stärksten auf die Trainingsformulierungen von Intents ausgerichtet, bei denen alle Eingabekontexte aktiv sind. Beispiel: Bei den beiden aktiven Kontexten „pay-bill“ und „confirmation“ wirken sich die folgenden Intents alle auf die automatische Spracherkennung aus: Intents mit einem einzelnen Eingabekontext „pay-bill“, Intents mit einem einzelnen Eingabekontext „confirmation“ und Intents mit zwei Eingabekontexten „pay-bill“ und „confirmation“.
Wenn eine Sitzung keine aktiven Kontexte hat, berücksichtigt die automatische Sprachanpassung vorwiegend die Trainingsformulierungen von Intents ohne Eingabekontexte.
- Wenn Sie einen erforderlichen Parameter haben, der Dialogflow zu Slot-Filling-Aufforderungen zwingt, wird die automatische Sprachanpassung stark auf die Entität ausgerichtet, die ausgefüllt wird.
In allen Fällen berücksichtigt die automatische Sprachanpassung lediglich die Spracherkennung, ohne sie zu beschränken. Beispiel: Auch wenn Dialogflow einen Nutzer zur Eingabe eines erforderlichen Parameters auffordert, können Nutzer weiterhin andere Intents auslösen, z. B. einen Intent der obersten Ebene „Mit Mitarbeiter sprechen“.
Systementitäten
Wenn Sie eine Trainingsphrase definieren, die die Systementität @sys.number verwendet, und der Endnutzer „Ich möchte zwei“ sagt, kann dies als „zu“, „auch“, „2“ oder „zwei“ erkannt werden.
Wenn die automatische Sprachanpassung aktiviert ist, verwendet Dialogflow bei der Spracherkennung die Entität @sys.number als Hinweis. Der Parameter wird mit größerer Wahrscheinlichkeit als „2“ extrahiert.
Benutzerdefinierte Entitäten
Wenn Sie eine benutzerdefinierte Entität für Produkt- oder Dienstleistungsnamen definieren, die von Ihrem Unternehmen angeboten werden, und der Endnutzer diese Begriffe in einer Äußerung erwähnt, werden sie mit höherer Wahrscheinlichkeit erkannt. Die Trainingsformulierung „I love Dialogflow“, wobei „Dialogflow“ als @product-Entität annotiert ist, gibt der automatischen Sprachanpassung vor, sich an „I love Dialogflow“, „I love Cloud Speech“ und anderen Einträgen in der @product-Entität zu orientieren.
Es ist besonders wichtig, dass Sie präzise Entitätssynonyme definieren, wenn Sie Dialogflow zur Spracherkennung verwenden. Angenommen, Sie haben zwei @product-Entitätseinträge, „Dialogflow“ und „Dataflow“. Ihre Synonyme für „Dialogflow“ sind beispielsweise „Dialogflow“, „dialogue flow“, „dialogue builder“, „Speaktoit“, „speak to it“, „API.ai“, „API dot AI“. Diese Synonyme sind gut, da sie die gängigsten Varianten abdecken. Sie müssen „the dialogue flow builder“ nicht hinzufügen, da dies von „dialogue flow“ bereits abgedeckt ist.
- Nutzeräußerungen mit aufeinanderfolgenden, aber separaten Zahlenentitäten können mehrdeutig sein.
Beispiel: „I want two sixteen packs“ könnten 2 Pakete mit 16 Sets oder 216 Mengen bedeuten. Durch die Sprachanpassung lassen sich solche Fälle eindeutig unterscheiden, wenn Sie Entitäten mit buchstabierten Werten einrichten:
- Definieren Sie eine
quantity-Entität mit folgenden Einträgen:zeroone...twenty - Definieren Sie eine
product- odersize- Entität mit folgenden Einträgen:sixteen packtwo ounce...five liter - In der Sprachanpassung werden nur Entitätssynonyme verwendet. Sie können also eine Entität mit dem Referenzwert
1und dem einzelnen Synonymonedefinieren, um die Auftragsausführungslogik zu vereinfachen.
- Definieren Sie eine
RegExp-Entitäten
Regexp-Entitäten können die automatische Sprachanpassung für alphanumerische und Ziffernfolgen wie „ABC123“ oder „12345“ auslösen, wenn sie richtig konfiguriert und getestet wurden.Damit diese Sequenzen per Spracheingabe erkannt werden, müssen Sie alle vier der folgenden Anforderungen erfüllen:
1. Anforderung für reguläre Ausdrücke
Mit jedem regulären Ausdruck können Entitäten aus Texteingaben extrahiert werden. Allerdings wird die automatische Sprachanpassung nur bei bestimmten Ausdrücken angewiesen, bei der Spracherkennung buchstabierte alphanumerische oder Ziffernfolgen zu bevorzugen.
In der Regex-Entität muss mindestens ein Eintrag alle dieser Regeln erfüllen:
- Sollte mit einigen alphanumerischen Zeichen übereinstimmen, z. B.
\d,\w,[a-zA-Z0-9] - Darf keine Leerzeichen (
oder\s) enthalten,\s*und\s?sind jedoch zulässig - Darf keine Erfassungs- oder Nicht-Erfassungsgruppen enthalten
() - Sollte nicht versuchen, Sonderzeichen oder Satzzeichen wie die folgenden zu finden:
` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ |
Dieser Eintrag kann die Zeichensätze [] und Wiederholungsquantifizierer wie *, ?, +, {3,5} enthalten.
2. Anforderung für Parameterdefinition
Markieren Sie die RegExp-Entität als erforderlichen Intent-Parameter, damit sie während der Slot-Füllung erfasst werden kann. Dadurch kann die automatische Sprachanpassung stark auf die Sequenzerkennung ausgerichtet werden, anstatt zu versuchen, einen Intent und eine Sequenz gleichzeitig zu erkennen. Andernfalls könnte „Wo ist mein Paket für ABC123“ als „Wo ist mein Paket 4ABC123“ falsch erkannt werden.
3. Anforderung für die Annotation von Trainingsformulierungen
Verwenden Sie die Regex-Entität nicht für eine Annotation einer Intent-Trainingsphrase. Dadurch wird der Parameter im Rahmen der Slot-Füllung aufgelöst.
4. Testanforderung
Weitere Informationen finden Sie unter Sprachanpassung testen.
Beispiele
Beispielsweise löst eine RegExp-Entität mit einem einzelnen Eintrag ([a-zA-Z0-9]\s?){5,9} nicht die Sprachsequenzerkennung aus, da sie eine Erfassungsgruppe enthält.
Um das Problem zu beheben, fügen Sie einfach einen weiteren Eintrag für [a-zA-Z0-9]{5,9} hinzu. Jetzt profitieren Sie von der Sequenzerkennung, wenn „ABC123“ abgeglichen wird. Die NLU gleicht jedoch dank der ursprünglichen Regel, die Leerzeichen zulässt, weiterhin Eingaben wie „ABC 123“ ab.
Die folgenden Beispiele für reguläre Ausdrücke passen sich für alphanumerische Sequenzen an:
^[A-Za-z0-9]{1,10}$
WAC\d+
215[2-8]{3}[A-Z]+
[a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]
Die folgenden Beispiele für reguläre Ausdrücke passen sich für Ziffernsequenzen an:
\d{2,8}
^[0-9]+$
2[0-9]{7}
[2-9]\d{2}[0-8]{3}\d{4}
Problemumgehung mit Regex
Die integrierte Unterstützung für Regex-Entitäten bei der automatischen Sprachanpassung variiert je nach Sprache.
Informationen zu den unterstützten Sprachen für $OOV_CLASS_ALPHANUMERIC_SEQUENCE und $OOV_CLASS_DIGIT_SEQUENCE finden Sie unter Klassentokens für die Spracherkennung.
Ist Ihre Sprache nicht aufgeführt, können Sie diese Einschränkung umgehen. Wenn Sie beispielsweise möchten, dass eine Mitarbeiter-ID, die aus drei Buchstaben gefolgt von drei Ziffern besteht, genau erkannt wird, können Sie Ihren Agenten mit den folgenden Entitäten und Parametern erstellen:
- Definieren Sie eine
digit-Entität, die 10 Entitätseinträge (mit Synonymen) enthält:0, 01, 1...9, 9 - Definieren Sie eine
letter-Entität, die 26 Entitätseinträge (mit Synonymen) enthält:A, AB, B...Z, Z - Definieren Sie eine
employee-id-Entität, die einen einzelnen Entitätseintrag (ohne Synonyme) enthält:@letter @letter @letter @digit @digit @digit - Verwenden Sie
@employee-idals Parameter in einer Trainingsformulierung.
Sprachanpassung testen
Wenn Sie die Funktionen zur Sprachanpassung Ihres Agenten für eine bestimmte Trainingsphrase oder einen bestimmten Entitätsabgleich testen, sollten Sie nicht direkt mit dem Testen des Abgleichs mit der ersten Sprachäußerung einer Unterhaltung beginnen. Sie sollten für die gesamte Unterhaltung vor dem Abgleich, den Sie testen möchten, nur Sprach- oder Ereigniseingaben verwenden. Das Verhalten Ihres KI-Agenten bei einem solchen Test ähnelt dem Verhalten in tatsächlichen Produktionsunterhaltungen.
Beschränkungen
Es gelten folgende Einschränkungen:
- Die Sprachanpassung ist nicht für alle Sprachmodelle und Sprachkombinationen verfügbar. Auf der Seite zur Sprachunterstützung von Cloud Speech können Sie prüfen, ob die „Modellanpassung“ für Ihre Kombination aus Sprachmodell und Sprache verfügbar ist.
- Die automatische Sprachanpassung kann für Actions on Google (Google Assistant) nicht verwendet werden, da die Spracherkennung von Actions on Google durchgeführt wird, bevor Daten an Dialogflow gesendet werden.
- Das Erkennen langer Zeichensequenzen ist schwierig. Die Anzahl der Zeichen, die in einer einzelnen Runde erfasst werden, hängt direkt von der Qualität der Audioeingabe ab.
Wenn Ihre Integration beispielsweise mit Audio von Telefonanrufen arbeitet, müssen Sie erweiterte Sprachmodelle aktivieren, um alphanumerische Sequenzen mit mehr als vier oder fünf Zeichen oder Ziffernfolgen mit mehr als 10 Zeichen zuverlässig zu erkennen.
Wenn Sie alle Richtlinien für Entitäten mit regulären Ausdrücken befolgt haben und immer noch Schwierigkeiten haben, die gesamte Sequenz in einer einzigen Runde zu erfassen, können Sie einige weitere konversationelle Alternativen in Betracht ziehen:
- Wenn Sie die Sequenz anhand einer Datenbank validieren, sollten Sie Querverweise für andere erfasste Parameter wie Datumsangaben, Namen oder Telefonnummern erstellen, um unvollständige Übereinstimmungen zu ermöglichen. Fragen Sie einen Nutzer beispielsweise nicht nur nach seiner Bestellnummer, sondern auch nach seiner Telefonnummer. Wenn der Webhook nun die Datenbank nach dem Bestellstatus abfragt, kann er sich zuerst auf die Telefonnummer verlassen und dann die am besten übereinstimmende Bestellung für dieses Konto zurückgeben. Dies könnte dazu führen, dass Dialogflow „ABC“ falsch als „AVC“ erkennt, aber dennoch den korrekten Bestellstatus für den Nutzer zurückgibt.
- Bei extra langen Sequenzen sollten Sie vielleicht einen Ablauf entwerfen, der Endnutzer dazu veranlasst, eine Pause zu machen, sodass der Bot die Eingabe bestätigen kann. In dieser Anleitung finden Sie weitere Informationen.