-
TECHNISCHES GEBIET
-
Diese Spezifikation beschreibt Technologien, die Sprachfunktionen betreffen.
-
HINTERGRUND
-
Sprachaktivierte Geräte können Sprachfunktionen als Antwort auf sprachliche Äußerungen ausführen. Zum Beispiel kann eine Person sagen „Computer, ruf 1-888-888-8888 an“ und deren mobiles Computergerät ist in der Lage, ohne eine weitere Eingabe von Seiten der jeweiligen Person, die Nummer 1-888-888-8888 anzurufen.
-
US 2016/0021105 A1 beschreibt Techniken zur sicheren Verarbeitung von Sprachabfragen, wobei eine Rechenvorrichtung Sprachdaten empfangen kann, die einer von einem Benutzer geäußerten Sprachabfrage entsprechen, und als Reaktion auf die Sprachdaten die Identität des Benutzers und einen Abfragetyp der Sprachabfrage bestimmen kann. Die Rechenvorrichtung kann ferner eine erste Sicherheitsstufe, die mit der Identität des Benutzers assoziiert ist, und eine zweite Sicherheitsstufe, die mit dem Abfragetyp assoziiert ist, abrufen, wobei die Rechenvorrichtung dann auf der Grundlage der ersten Sicherheitsstufe und der zweiten Sicherheitsstufe bestimmen kann, ob die Sprachabfrage verarbeitet werden sollte..
-
US 8543834 B1 beschreibt Verfahren, Systeme und Vorrichtungen für Sprachauthentifizierung und -steuerung, wobei das Verfahren umfasst:
- Empfangen von Audiodaten, die eine Äußerung eines Benutzers kodieren, durch eine Datenverarbeitungsvorrichtung, die in einem gesperrten Modus arbeitet, wobei der gesperrte Modus die Datenverarbeitungsvorrichtung daran hindert, mindestens eine Aktion auszuführen; Bereitstellen der Audiodaten für eine sprachbiometrische Maschine und eine Sprachaktionsmaschine, während die Datenverarbeitungsvorrichtung in dem gesperrten Modus arbeitet; Empfangen, während die Datenverarbeitungsvorrichtung in dem gesperrten Modus arbeitet, einer Anzeige von der sprachbiometrischen Maschine, dass der Benutzer biometrisch authentifiziert worden ist; und in Reaktion auf den Empfang der Anzeige, Auslösen der Sprachaktionsmaschine, um eine Sprachaktion zu verarbeiten, die mit der Äußerung verbunden ist.
-
US 2015/0081295 A1 beschreibt ein Verfahren zur Steuerung des Zugriffs auf eine Vielzahl von Anwendungen in einem elektronischen Gerät, wobei das Verfahren umfasst: den Empfang eines Sprachbefehls von einem Sprecher für den Zugriff auf eine Zielanwendung aus der Vielzahl von Anwendungen und die Überprüfung, ob der Sprachbefehl auf einen zum Zugriff auf die Anwendungen autorisierten Benutzer hinweist, basierend auf einem Sprechermodell des autorisierten Benutzers. In diesem Verfahren ist jede Anwendung mit einer Sicherheitsstufe mit einem Schwellenwert verbunden. Das Verfahren umfasst ferner das Aktualisieren des Lautsprechermodells mit dem Sprachbefehl, wenn der Sprachbefehl als Hinweis auf den Benutzer verifiziert wird, und das Anpassen mindestens eines der Schwellenwerte auf der Grundlage des aktualisierten Lautsprechermodells.
-
US 6496107 B1 beschreibt ein Fahrzeugsteuersystem zum Ermöglichen der Sprachsteuerung mindestens einer Vorrichtung in einem Fahrzeug durch mindestens einen Benutzer, das enthält: eine Funktranspondereinheit, die ein HF-Signal ausgibt, das einen Identifikationscode; einen elektronischen Empfänger zum Empfangen des HF-Signals und zum Abwärtswandeln des empfangenen Signals, um den Identifikationscode auszugeben; einen Mikrofon zum Empfangen eines von einem Benutzer gesprochenen akustischen Signals und zum Umwandeln des akustischen Signals in ein digitales Signal; einen Speicher zum Speichern einer Vielzahl von Dateien, wobei jede Datei einen Stimmabdruck eines Benutzers und einen Befehlsbefehl zum Steuern mindestens einer Funktion der Vorrichtung umfasst; und einen Mikroprozessor zum Bestimmen, ob der Identifikationscode gültig ist, und zum Analysieren des digitalen Signals, um zu bestimmen, ob es mit einem der im Speicher gespeicherten Stimmabdrücke übereinstimmt, wenn der Identifikationscode als gültig bestimmt wird, wobei der Mikroprozessor eine Befehlsanweisung ausführt, um die Funktion des Geräts zu steuern, wenn eine Übereinstimmung gefunden wurde.
-
US 2015/0241962 A1 beschreibt Systeme, Verfahren und Instrumente, um die Anwesenheit eines Benutzers in einem mobilen Gerät zu bestimmen, z. B. unter Verwendung eines oder mehrerer Sensoren, wobei ein mobiles Gerät ein Gesicht erkennen kann und eine Gesichtsentfernung bestimmen kann, die mit dem erkannten Gesicht verbunden ist. Das mobile Gerät kann einen Bewegungsstatus bestimmen, der anzeigt, ob das mobile Gerät in Bewegung ist oder sich im Ruhezustand befindet. Das mobile Gerät kann Informationen von einem oder mehreren Sensoren verwenden, um den Bewegungsstatus zu bestimmen. Das mobile Gerät kann die Anwesenheit eines Benutzers auf der Grundlage des Gesichtsabstands und des Bewegungsstatus bestätigen.
-
ZUSAMMENFASSUNG
-
Die Erfindung wird durch die unabhängigen Ansprüche definiert. Abhängige Ansprüche geben Ausführungsformen an. Im Allgemeinen sollen Sprachfunktionen Benutzer in die Lage versetzen, Handlungen auf bequeme Weise auszuführen. Zum Beispiel kann ein Benutzer, während er gerade kocht, einfach sagen, „Computer, stelle einen Zeitmesser auf eine Minute ein“, anstatt mit einem Gerät auf physikalische Art und Weise zu interagieren, um einen Zeitmesser auf eine Minute einzustellen. Bei einigen Sprachbefehlen kann es jedoch vorkommen, dass die Sprachfunktionen, die sie erbitten, ernsthafte Konsequenzen nach sich ziehen können. Zum Beispiel kann das Ausführen einer Sprachfunktion ein Heimsicherheitssystem deaktivieren, Artikel von hohem monetären Wert bestellen, oder die Heimtemperatureinstellungen auf erhebliche Weise verändern. Darüber hinaus können Geräte, die Sprachfunktionen ausführen, mehreren Menschen zugänglich sein. Zum Beispiel kann ein Gerät, das Sprachfunktionen ausführt, sich auf einem Küchentresen befinden und die Spracheingabe von einer anderen Person erhalten, die in der Nähe des Geräts spricht. Dementsprechend kann das Anwenden von Sicherheitseinschränkungen bei der Ausführung von Sprachfunktionen von erheblicher Bedeutung sein. Zum Beispiel kann es für ein System wünschenswert sein, ein Sicherheitssystem als Antwort auf die sprachliche Anweisung eines Hausbesitzers, der sagt „Computer, Sicherheitssystem deaktivieren“, zu deaktivieren und das Sicherheitssystem als Antwort auf die sprachliche Anweisung eines Gasts oder eines Eindringlings, der sagt „Computer, Sicherheitssystem deaktivieren“ nicht zu deaktivieren,
-
Um Sprachfunktionen auf sichere Art und Weise auszuführen, ist ein System dementsprechend in der Lage, einen Sprecher anhand seiner Stimme zu identifizieren und zusätzliche kontextabhängige Signale zu verwenden, um den Sprecher zu authentifizieren. Kontextabhängige Signale können zum Beispiel einen Hinweis darüber, dass das mobile Computergerät des Benutzers sich zu Hause befindet, einen Hinweis darüber, dass das mobile Computergerät des Benutzers sich seit seiner Entsperrung in Kontakt mit dem Körper einer Person befunden hat, bzw. ein sonstiges Signal beinhalten. Zum Beispiel kann das System die Anweisung „Computer, Sicherheitssystem deaktivieren“ erhalten, die Stimme des Sprechers als diejenige des Hausbesitzers identifizieren und als Antwort darauf, ferner ermitteln, dass das mobile Computergerät des Hausbesitzers sich zu Hause befindet. Der Befehl das Computersystem zu deaktivieren, kann auf Basis der erfolgreichen Identifizierung der Stimme und der physikalischen Präsenz des Computergeräts ausgeführt werden. Im Vergleich dazu, kann das System so konfiguriert werden, dass sofern erforderliche kontextabhängige Faktoren nicht präsent sind, z. B. falls die Identifizierung der Stimme fehlschlägt, oder falls sich das Computergerät des Hausbesitzers nicht zu Hause befindet, der Befehl aufgrund mangelnder Erfüllung der Sicherheitsanforderungen, nicht zugelassen werden würde, Infolgedessen kann das System die Sicherheit der Ausführung der Sprachfunktionen verbessern, indem es eine nicht autorisierte Person daran hindert, eine Sprachfunktion auszuführen, wie etwa das Deaktivieren des Sicherheitssystems eines Gebäudes.
-
In einem allgemeinen Aspekt beinhaltet ein Verfahren, bei dem es sich um ein computerimplementiertes Verfahren handelt, das Einholen (i) von akustischen Daten, die einen Sprachbefehl darstellen, der von einem Sprecher ausgesprochen wird und (II) eines Sprecheridentifizierungsergebnisses, das angibt, dass der Sprachbefehl von einem Sprecher ausgesprochen wurde, der eine Sprachfunktion ausgewählt hat, die zumindest auf einer Transkription der akustischen Daten beruht, wobei ein Dienstleistungsanbieter, der der ausgewählten Sprachfunktion entspricht, aus einer Vielzahl von verschiedenen Dienstleistungsanbietern ausgewählt wird, die der ausgewählten Sprachfunktion entsprechen, wobei eine oder mehrere Eingabedatenarten identifiziert werden, die vom ausgewählten Dienstleistungsanbieter verwendet werden, um die Authentifizierung für die ausgewählte sprachliche Funktion durchzuführen und indem diese dem Dienstleistungsanbieter und das Bereitstellen der Im Folgenden Aufgeführten an der Dienstleistungsanbieter (i) eine Anforderung, um die ausgewählten Sprachfunktionen auszuführen und (i) einen oder mehrere Werte, die der identifizierten einen oder den identifizierten mehreren Eingabedatenarten entsprechen. Wie schon erwähnt, ist eine Sprachfunktion (oder eine sprachlich veranlasste Funktion) eine Funktion, die von einem Sprachbefehl (z. B. eine sprachliche Äußerung) eines Benutzers veranlasst wurde.
-
Weitere Implementierungen dieses und sonstiger Aspekte beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sind, um Funktionen der Verfahren, die auf Computerspeichergeräten codiert sind, durchzuführen. Ein System des einen oder der mehreren Computer kann so, aufgrund der Software, Firmware, Hardware oder einer Kombination dieser, auf einem System so installiert sein, dass es, sofern dieses sich in Betrieb befindet, das System dazu veranlassen kann, diese Funktionen durchzuführen. Ein oder mehrere Computerprogramme können aufgrund der Verfügung über Anweisungen so konfiguriert sein, dass, diese, wenn sie von der Datenverarbertungsvorrichtung ausgeführt werden, das System dazu veranlassen, die entsprechenden Funktionen auszuführen. In einem weiteren Aspekt speichert ein Computerspeichermedium, bei dem es sich um ein nicht-flüchtiges Computerspeichermedium handelt, ein Computerprogramm, wobei das Programm Anweisungen umfasst, die wenn sie von einem oder mehreren Computern ausgeführt werden, das eine oder die mehreren Computer dazu veranlassen, Operationen auszuführen, welche das Einholen der im Folgenden Aufgeführten umfassen: (i) akustische Daten, die einen von einem Sprecher ausgesprochenen Sprachbefehl darstellen und (ii) ein Sprecheridentifizierungsergebnis, das angibt, dass der Sprachbefehl von einem Sprecher ausgesprochen wurde, das Auswählen einer Sprachfunktion, die mindestens auf einer Transkription der akustischen Daten beruht: das Auswählen eines Dienstleistungsanbieters aus einer Vielzahl unterschiedlicher Dienstleistungsanbieter, welcher der ausgewählten Sprachfunktion entspricht; das Identifizieren einer oder mehrerer Eingabedatenarten, die vom ausgewählten Dienstleistungsanbieter verwendet werden, um die Authentifizierung für die ausgewählte Sprachfunktion auszuführen; und das Bereitstellen der im Folgenden Aufgeführten an den Dienstleistungsanbieter: (i) eine Anforderung, die ausgewählte Sprachfunktion durchzuführen und (i) ein oder mehrere Werte, die der identifizierten einen oder den identifizierten mehreren Eingabedatenarten entsprechen,
-
Implementierungen können auch ein oder mehrere der folgenden Merkmale beinhalten. Zum Beispiel kann in gewissen Aspekten das Einholen (i) von akustischen Daten, die einen Sprachbefehl darstellen, der von einem Sprecher ausgesprochen wird und (ii) eines Sprecheridentifizierungsergebnisses, das angibt, dass der Sprachbefehl von einem Sprecher ausgesprochen wurde, das Einholen von akustischen Daten, die einen Sprachbefehl darstellen, der von einem Sprecher ausgesprochen wird, das Einholen eines Stimmabdrucks für den Sprecher, und dabei ermitteln, dass der Sprachabdruck für den Sprecher mit den akustischen Daten übereinstimmt, die den vom Sprecher ausgesprochenen Sprachbefehl darstellen, und als Antwort auf das Ermitteln, dass der Stimmabdruck für den Sprecher mit den akustischen Daten übereinstimmt, die den vom Sprecher ausgesprochenen Sprachbefehl darstellen, das Generieren eines Sprechidentifikationsergebnisses, welches angibt, dass der Sprachbefehl vom Sprecher ausgesprochen wurde.
-
In einigen Aspekten beinhaltet das Auswählen einer Sprachfunktion, die mindestens auf einer Transkription der Audiodaten basiert, einen Satz von Sprachfunktionen, im Rahmen derer jede Sprachfunktion einen oder mehrere Begriffe identifiziert, die dieser jeweiligen Sprachfunktionen entsprechen, wobei ermittelt wird, dass ein oder mehrere Begriffe in der Transkription mit einem oder mit mehreren Begriffen, die der Sprachfunktion sprechen, übereinstimmen, und als Antwort auf Ermitteln, dass ein oder mehrere Begriffe in der Transkription mit einem oder mit mehreren Begriffen, die der Sprachfunktionen entsprechen, übereinstimmen, das Auswählen der Sprachfunktionen aus einem Satz von Sprachfunktionen.
-
In einigen Implementierungen beinhaltet das Auswählen eines Dienstleistungsanbieters, welcher der ausgewählten Sprachfunktion aus einer Vielzahl verschiedener Dienstleistungsanbieter entspricht, das Einholen einer Leitung der Sprachfunktionen zur Mehrheit der Dienstleistungsanbieter, wobei diese Führung für jede Sprachfunktion einen Dienstleistungsanbieter beschreibt, der die Sprachfunktion durchführen kann, und dabei ermittelt, dass die Leitung der Sprachfunktionen angibt, dass der Dienstleistungsanbieter die ausgewählte Sprachfunktionen durchführen kann und als Antwort auf das Ermitteln, dass die Leitung der Sprachfunktionen angibt, dass der Dienstleistungsanbieter die ausgewählte Sprachfunktion durchführen kann, das Auswählen des Dlenstleistungsanbieters.
-
In einigen Aspekten beinhaltet das Identifizieren des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktionen durchzuführen, die an einen ausgewählten Dienstleistungsanbieter bereitgestellte Anfrage nach einer Identifizierung des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktionen durchzuführen, und erhält dabei vom ausgewählten Dienstleistungsanbieter eine Antwort auf die Anfrage nach der Identifikation und das aus der Antwort auf die Anfrage nach der Identifikation durchgeführte Identifizieren des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktionen durchzuführen.
-
In einigen Aspekten beinhalten die Funktionen das Generieren der Transkription der akustischen Daten unter Verwendung einer automatischen Spracherkennungsvorrichtung. In einigen Implementierungen beinhalten die Funktionen das Erhalten einer Angabe vom Dienstleistungsanbieter, gemäß der die ausgewählte Sprachfunktion ausgeführt wurde. In gewissen Aspekten beinhalten die Funktionen das Erhalten einer Angabe vom Dienstleistungsanbieter, dass eine zusätzliche Authentifizierung erforderlich ist, um die ausgewählte Sprachfunktion durchzuführen und als Antwort auf den Erhalt der Angabe vom Dienstleistungsanbieter, dass eine zusätzliche Authentifizierung erforderlich ist, um die ausgewählte Sprachfunktion durchzuführen, das Bereitstellen einer Anfrage nach einer zusätzlichen Authentifizierung. In einigen Aspekten beinhaltet das Identifizieren des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktion durchzuführen, das identifizieren, dass der ausgewählte Dienstleistungsanbieter eine oder mehrere einer Eingabedatenart verwendet, die angibt, ob das mobile Rechengerät des Sprechers sich seit der letzten Entsperrung des mobilen Rechengeräts in Kontakt mit einem Körper befunden hat, eine Eingabedatenart, die angibt, ob das mobile Computergerät eines Sprechers sich in einer Nahbereichskommunikation mit einem bestimmten Gerät befindet, eine Eingabedatenart, die angibt, ob das mobile Computergerät eines Sprechers sich innerhalb eines bestimmten geographischen Bereichs befindet, oder eine Eingabedatenart, die angibt, ob das Gesicht eines Sprechers sich im Sichtfeld eines Gerätes befindet.
-
In einigen Aspekten kann es vor dem Bereitstellen der Anfrage an den Dienstleistungsanbieter, (i) die ausgewählte Sprachfunktion durchzuführen und vor dem Bereitstellen des (ii) einen oder der mehreren Werte an den Dienstleistungsanbieter, die dem einen oder den mehreren identifizierten Datentypen entsprechen, eine einleitende Ermittlung geben, ob der eine oder die mehreren Werte der einen oder den mehreren bekannten Mindestanforderungen des Dienstleistungsanbieters entsprechen. Falls die Ermittlung positiv ist, wird die Anfrage an den Dienstleistungsanbieter gesendet, falls die Ermittlung aber negativ ist, wird die Anfrage nicht an den Dienstleistungsanbieter gesendet.
-
Die Details einer oder mehrerer Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands werden in den beigefügten Zeichnungen und in der nachstehenden Beschreibung dargelegt. Andere potentielle Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich. Es versteht sich von selbst, dass Aspekte und Implementierungen kombiniert werden können, und dass die im Kontext des einen Aspekts oder der einen Implementierung beschriebenen Merkmale im Kontext anderer Aspekte und Implementierungen implementiert werden können.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
- 1 ist ein Blockdiagramm, das eine exemplarische Interaktion mit einem System für das sichere Ausführen von Sprachfunktionen veranschaulicht.
- 2 ist ein Blockdiagramm eines exemplarischen Systems für das sichere Ausführen von Sprachfunktionen.
- 3 ist ein Blockdiagramm eines exemplarischen Sprachfunktionen-Servers für das sichere Ausführen von Sprachfunktionen
- 4 ist ein Flussdiagramm, das ein Beispiel eines Verfahrens für das sichere Ausführen von Sprachfunktionen veranschaulicht.
- 5 ist ein Diagramm von Beispielen von Computergeräten.
-
In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet,
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein Blockdiagramm, das eine exemplarische Interaktion 100 mit einem System für das sichere Ausführen von Sprachfunktionen veranschaulicht. Die Interaktion 100 findet zwischen einem Benutzer 110 und dem System 120 statt. Im Beispiel beinhaltet das System 120 einen Fernseher, der ein Mikrofon beinhaltet, das in der Lage ist, den sprachlichen Äußerungen eines Benutzers 110 zuzuhören und einen Lautsprecher, der in der Lage ist, synthetisierte sprachliche Äußerungen an den Benutzer 110 auszugeben, In anderen Beispielen kann das System 120 ein zusätzliches oder alternierendes Gerät beinhalten, das in der Lage ist, Sprachfunktionen auszuführen. Wie im Beispiel ersichtlich, erzwingt das System 120, je nach Art des Sprachbefehls und je nach Kontext des Sprachbefehls, unterschiedliche Sicherheitsanforderungsebenen für Sprachbefehle, und verwendet die Sprachidentifikation auch als einen Teil des Ermittelns, ob eine Sprachfunktion ausgeführt werden soll.
-
Wie veranschaulicht, sagt der Benutzer 110 anfänglich „Die Temperatur auf 70 Grad ändern.“ Das System 120 erhält die Äußerung vom Benutzer 110, ermittelt, dass die gegenwärtige Temperatur 68 Grad beträgt und ermittelt als Antwort darauf, dass das Ändern der Temperatur auf 70 Grad eine kleine Änderung darstellt, die keine Authentifizierung erfordert. Das System 120 ändert dann die Temperatureinsteilungen des Heims auf 70 Grad und gibt die folgende synthetisierte sprachliche Äußerung aus: „Temperatur von 68 Grad auf 70 Grad geändert.“
-
Unter Fortsetzung des aufgeführten Beispiels sagt der Benutzer 110 später „Temperatur auf 80 Grad ändern.“ Das System 120 erhält eine Äußerung vom Benutzer 110, ermittelt, dass die gegenwärtige Temperatur 70 Grad beträgt und ermittelt als Antwort darauf, dass die Änderung der Temperatur auf 80 Grad eine große Änderung darstellt, die ein geringfügiges Maß an Authentifizierung erfordert. Das System 120 identifiziert den Sprecher als „John Doe“, indem es einen gespeicherten Stimmabdruck für „John Doe“ mit der Äußerung abgleicht und ermittelt, dass sich im Helm ein mobiles Computergerät befindet, das unter dem Namen „John Doe“ registriert ist. Da das System 120 ermittelt, dass die Stimmenidentifikation und/oder Gegenwart des mobilen Computergeräts das geringfügige Maß an Authentifizierung erfüllt, ändert das System 120 die Temperatureinstellung des Heims auf 80 Grad und gibt die folgende synthetisierte sprachliche Äußerung aus: „Temperatur von 70 Grad auf 80 Grad geändert.“ Ein gespeicherter Stimmabdruck kann einen Laut der Stimme eines Benutzers einschließlich eines oder mehrerer aus Tonhöhe, Geschwindigkeit, Tonfall, Aussprache, Akzent, Modulation oder sonstige Aspekte beinhalten.
-
Der Benutzer 110 sagt später „Sicherheitssystem deaktivieren,“ Das System 120 erhält die Äußerung vom Benutzer 110, ermittelt, dass das Deaktivieren des Sicherheitssystems ein hohes Maß an Authentifizierung erfordert, was bedeutet, dass höhere Sicherheitsanforderungen als bei den anderen in 2 dargestellten Befehlen erforderlich sind. Um zu ermitteln, ob der Befehl befolgt werden soll, identifiziert das System 120 den Sprecher als „John Doe“, indem es einen gespeicherten Stimmabdruck für „John Doe“ mit der tatsächlichen Äußerung abgleicht und dabei ermittelt, dass ein mobiles Computergerät, das unter dem Namen „John Doe“ registriert ist, sich im Heim befindet und dabei auch ermittelt, dass ein mobiles Computergerät, das unter dem Namen „John Doe“ registriert ist, sich seit seiner letzten Entsperrung in Kontakt mit dem Körper einer Person befunden hat. Das System 120 ermittelt, dass diese Faktoren zusammengenommen ein „hohes“ Maß an Authentifizierung erfüllen und deaktiviert als Antwort darauf das Sicherheitssystem und gibt die folgende synthetisierte sprachliche Äußerung aus: „Sicherheitssystem deaktiviert.“
-
im Allgemeinen kann ein Gerät unter Verwendung eines oder mehrerer Sensoren ermitteln, ob es seit der letzten Entsperrung ununterbrochen von einem Benutzer getragen wurde. Zum Beispiel kann ein Gerät einen kapazitativen Sensor, einen resistiven Sensor, einen optischen Sensor einen Temperatursensor, einen Drucksensor, einen EKG-Sensor, und sonstige Sensoren für das Erfassen der Gegenwart und/oder der Charakteristiken des Körpers eines Bedieners beinhalten. Der Sensor kann in einem Intervall (z. B. alle 100 ms, jede Sekunde, oder alle 10 Sekunden, usw.) Daten generieren und die Daten können darauf schließen lassen, ob das Gerät sich mit dem Körper eines Benutzers in Kontakt befindet, oder ob es sich innerhalb einer vorgegebenen Entfernung davon befindet. Als ein Beispiel kann eine Armbanduhr einen Sensor beinhalten, der in Richtung des Handgelenks eines Trägers zugewandt ist oder sich damit in Kontakt befindet. Der Sensor kann auf Basis seiner Erfassungskapazität den Kontakt mit der Haut des Benutzers oder einen Mangel dessen erfassen. Darüber hinaus oder als eine Alternative dazu, kann der Sensor Licht, das im hinteren Teil der Armbanduhr erfasst wird, messen, indem er dem Handgelenk des Benutzers zugewandt ist, zum Beispiel, um zu zeigen, dass der hintere Teil der Uhr zugedeckt bleibt, oder um die Lichtspiegelung oder die Lichtabsorption der LEDs des Geräts, die das Licht in Richtung des Handgelenks des Benutzers lenken, zu messen. Daten von den Sensoren können im Laufe der Zeit nachverfolgt werden und mit vorgegebenen Grenzwerten und Reichweiten verglichen werden, um zu ermitteln, ob die Armbanduhr seit ihrer Entsperrung ununterbrochen getragen wurde. Ähnliche Techniken können verwendet werden, um zu ermitteln, ob Halsketten, Hüte, Ringe und sonstige tragbare Geräte über einen bestimmten Zeitraum ununterbrochen getragen wurden.
-
2 ist ein Blockdiagramm eines exemplarischen Systems 200 für das sichere Ausführen von Sprachfunktionen. In einigen Implementierungen kann es sich bei dem System 200 um das in 1 dargestellte System 120 handeln. Das System 200 für das sichere Ausführen von Sprachfunktionen kann ein örtliches Gerät 210, einen Sprachfunktionsserver 220, ein mobiles Computergerät 230, und die Dienstleistungsanbieter 240A, 240B, 240C, (gemeinsam als 240 bezeichnet) beinhalten.
-
Bei dem örtlichen Gerät 210 kann es sich um ein Gerät handeln, das ein Mikrofon beinhaltet, das sich innerhalb eines akustischen Hörbereichs eines einen Sprachbefehl erteilenden Benutzers befindet. Zum Beispiel kann es sich bei dem örtlichen Gerät 210 um ein sprachfunktionsfähiges Fernsehen, Heim-Sprachautomatisierungsgerät für die Arbeitsplatte oder ein Heimsicherheitssystem mit einer Sprachautomatisierungsfunktionalität handeln. Ein Sprachbefehl kann sich auf eine Äußerung beziehen, die das System 200 dazu veranlasst, zu versuchen eine Sprachfunktion auszuführen. Zum Beispiel können Sprachbefehle, welche die Sprachfunktion zur Deaktivierung eines Sicherheitssystems anfordern die Befehle „Sicherheitssystem deaktivieren“, „Sicherheitssystem ausschalten“ oder „Sicherheitssystem in den deaktivierten Zustand schalten“ beinhalten. Eine Sprachfunktion kann auf eine Funktion verweisen, die von einer sprachlichen Äußerung veranlasst wird. Zum Beispiel kann eine Sprachfunktion zur Deaktivierung eines Sicherheitssystems auf eine Funktion verweisen, die von einer sprachlichen Äußerung zur Deaktivierung eines Sicherheitssystems veranlasst wird.
-
Das örtliche Gerät 210 kann eine von einem Benutzer gemachte Äußerung empfangen und Audiodaten bereitstellen, welche die Äußerung an den Sprachfunktionsserver 220 darstellen. Audiodaten können Mel-Frequenz-Cepstrum-Koeffizienten (MFCC), die die Äußerung darstellen, beinhalten. Zum Beispiel kann das örtliche Gerät 210 ein Mikrofon benutzen, um Laute, einschließlich der sprachlichen Äußerung des Benutzers „Sicherheitssystem deaktivieren“, zu erfassen und Audiodaten, welche diese Äußerung zum Sprachfunktionsserver 220 darstellen, als Antwort bereitzustellen. Das örtliche Gerät 210 kann zusätzlich oder alternativ dazu, Informationen vom Sprachfunktionsserver 220 erhalten, um diese einem Benutzer bereitzustellen. Zum Beispiel kann das örtliche Gerät 210 Audiodaten hinsichtlich einer synthetisierten sprachlichen Äußerung des Befehls „Sicherheitssystem deaktiviert“ erhalten und diese synthetisierte sprachliche Äußerung über einen Lautsprecher an den Benutzer ausgeben.
-
Der Sprachfunktionsserver 220 ist in der Lage eine Äußerung darstellende Audiodaten vom örtlichen Gerät 210 zu erhalten, diese Äußerung von den erhaltenen Daten zu extrahieren und zu ermitteln, eine Sprachfunktion, die der Äußerung entspricht, ausgeführt werden soll. Zum Beispiel kann der Sprachfunktionsserver 220 Audiodaten erhalten, welche die Äußerung „Sicherheitssystem deaktivieren“ repräsentieren und die Entscheidung treffen, eine Sprachfunktion zur Deaktivierung eines Heimsicherheitssystems durchzuführen. Der Sprachfunktionsserver 220 ermöglicht auch die Kommunikation mit den Dienstleistungsanbietern 240 und das Erfassen von kontextabhängigen Informationen, welche die Dienstleistungsanbieter 240 in die Lage versetzen, zu ermitteln, ob die Sicherheitsanforderungen für die Sprachfunktionen erfüllt wurden. Zum Beispiel kann der Sprachfunktionsserver 220 kontextabhängige Informationen vom örtlichen Gerät 210 erhalten und die Informationen an die Dienstleistungsanbieter 240 weiterleiten, Wenn zusätzliche Informationen vom Benutzer erforderlich sind, oder wenn Fehler auftreten, können Informationen zwischen dem Benutzer und den Serviceanbietern 240 über den Sprachfunktionsserver 220 übermittelt werden.
-
Bei der Entscheidung eine Sprachfunktion auszuführen, kann der Sprachfunktionsserver 220 einen Dienstleistungsanbieter auswählen, der die Sprachfunktion ausführen soll. Jeder der Dienstleistungsanbieter 240 kann mit bestimmten Funktionen oder Arten von Funktionen, die sie handhaben, in Verbindung gebracht werden und der Sprachfunktionsserver 220 kann jede Anfrage an den entsprechenden Serviceanbieter 240 weiterleiten. Sofern zum Beispiel die Entscheidung getroffen wird, eine Sprachfunktion zur Deaktivierung eines Heimsicherheitssystems durchzuführen, kann der Sprachfunktionsserver 220 Dienstleistungsanbieter A 240A auswählen, der mit einem Heimsicherheitssystem in Verbindung gebracht werden kann. In einem anderen Beispiel kann der Sprachfunktionsserver 220 als Antwort auf die Entscheidung, eine Sprachfunktion zur Durchführung einer Buchung in einem Restaurant auszuführen, Dienstleistungsanbieter B 240B auswählen, der mit einer Restaurantreservierungsmanagementanwendung oder Webseite in Verbindung gebracht wird.
-
Der Sprachfunktionsserver 220 kann Eingabedatenarten identifizieren, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung und die Werte für diese Datenarten durchzuführen. Verschiedene Dienstleistungsanbieter 240 können verschiedene Arten von Eingabedaten verwenden, um zu ermitteln, ob entsprechende Authentifizierungs- und Sicherheitsanforderungen erfüllt wurden. Auf ähnliche Weise können unterschiedliche Sprachfunktionen, die von einem einzelnen Dienstleistungsanbieter unterstützt werden, unterschiedliche Arten von Eingabedaten erfordern. Der Sprachfunktionsserver 220 kann jede Sprachfunktionsvorgabe formatieren, um diejenigen Daten miteinzubeziehen, die erforderlich sind, um die Sicherheitsanforderungen für die jeweils angeforderte Sprachfunktion und für den jeweiligen Dienstleistungsanbieter, an den die Sprachfunktionsanforderung gesendet wird, zu bewerten. Zum Beispiel kann der Sprachfunktionsserver 220 ermitteln, dass der Dienstleistungsanbieter A 240A einen Datentyp einer Sprachabgleichskonfidenz, einen Datentyp, der einem geographischen Standort des mobilen Computergeräts eines Benutzers entspricht und einen Datentyp, der einem Zustand des mobilen Computergeräts eines Benutzers entspricht, welches sich seit der letzten Entsperrung in Kontakt mit dem Körper der Person befunden hat, verwendet. Dann ermittelt der Sprachfunktionsserver 220 Werte für diese Datenarten, z. B Daten, die angeben, dass es eine 90%ige Stimmenabgleichskonfidenz gibt, dass das mobile Computergerät des Benutzers sich innerhalb eines bestimmten geographischen Bereichs befindet und dass das mobile Computergerät des Benutzers sich seit der letzten Entsperrung in Kontakt mit dem Körper der Person befunden hat. In einem anderen Beispiel kann der Sprachfunktionsserver 220 ermitteln, dass der Dienstleistungsanbieter B 240B eine Stimmenabgleichskonfidenz und einen Status verwendet, gemäß dem ein mobiles Computergerät sich seit seiner letzten Entsperrung in Kontakt mit dem Körper einer Person befunden hat und ermittelt dann Werte, die angeben, ob es eine 80%ige Stimmenabgleichskonfidenz gibt und ob das mobile Computergerät des Benutzers sich seit seiner letzten Entsperrung in Kontakt mit dem Körper dieser Person befunden hat,
-
Diese Eingabedatenarten können kontextabhängige Signale repräsentieren, die verwendet werden können, um den Benutzer zu authentifizieren, ohne den Benutzer dazu auffordern zu müssen, explizite Informationen zur Benutzerauthentifizierung bereitzustellen. Eingabedatenarten können eine oder mehrere einer Eingabedatenart beinhalten, die angibt, ob das mobile Computergerät des Sprechers sich seit seiner letzten Entsperrung in Kontakt mit einem Körper befunden hat, einer Eingabedatenart, die angibt, ob das mobile Computergerät eines Sprechers sich In einer Kurzstreckenkommunikation mit einem bestimmten Gerät befunden hat, einer Eingabedatenart, die angibt, ob das mobile Computergerät eines Sprechers sich innerhalb eines bestimmten geographischen Bereichs befindet, oder einer Eingabedatenart, die angibt, ob das Gesicht eines Sprechers sich im Sichtfeld eines Geräts befindet.
-
Zum Beispiel basiert ein Wert für eine Stimmenabgleichsübereinstimmung auf der Verwendung der Audiodaten, die einen Sprachbefehl darstellen, ohne anzufordern, dass der Benutzer zusätzliche Spracheingaben für den Authentifizierungsprozess bereitstellt. In einem anderen Beispiel kann ein Wert für das mobile Computergerät des Benutzers, das sich in physikalischer Nähe befindet, auf Basis der Entscheidung ermittelt werden, ob ein mobiles Computergerät eines Benutzers, das von den Audiodaten, die einen Sprachbefehl darstellen, identifiziert wird, sich innerhalb eines geographischen Bereichs befindet, und ohne dass der Benutzer zusätzliche Informationen bereitstellt. In einem weiteren Beispiel kann der Sprachfunktionsserver 220 ein Bild von einem Sprecher von einer vernetzten Kamera mit einer Ansicht des örtlichen Geräts 210 erhalten und für eine Eingabedatenart, die angibt, ob das Gesicht des Sprechers von der vernetzten Kamera überprüft wurde, einen Wert ermitteln, der angibt, ob das Gesicht des Sprechers überprüft wurde,
-
Der Sprachfunktionsserver 220 kann die Werte für die identifizierten Eingabedatenarten, auf dem mobilen Computergerät 230 des Benutzers basieren, ermitteln. Zum Beispiel kann der Sprachfunktionsserver 220 ermitteln, dass ein mobiles Computergerät 230 des Benutzers sich zu Hause befindet, z. B. dass ein Standort des Geräts 230 mit einem Standort des Benutzers übereinstimmt, das als das Heim des Benutzers festgelegt wurde, oder dass das Computergerät 230 sich in einer Kurzstreckenkommunikation mit dem Gerät 210 befindet, von dem man weiß, dass es sich im Heim des Benutzers befindet. Der Sprachfunktionsserver 220 kann dann einen Wert ermitteln, der angibt, dass das mobile Computergerät 230 des Benutzers sich zu Hause befindet und den Wert einem Dienstleistungsanbieter bereitstellen, sobald dieser Dienstleistungsanbieter konfiguriert wurde, um Daten dieser Art zu erhalten
-
In einigen Implementierungen kann der Sprachfunktionsserver 220 eine Identität des Benutzers aus den Audiodaten ermitteln, das mobile Computergerät 230 des Benutzers identifizieren, einen Status des mobilen Computergerät ermitteln und dann die Werte für die identifizierten Eingabedatenarten auf Basis des Status des mobilen Computergeräts ermitteln. Zum Beispiel kann der Sprachfunktionsserver 220 aufgrund der Tatsache, dass die Stimme im Sprachbefehl mit einem gespeicherten Stimmprofil für „John Doe“ übereinstimmt, ermitteln, dass eine Sprachfunktion von „John Doe“ stammt, einen Geräteidentifikator ermitteln, der für das von „John Doe“ verwendete mobile Computergerät 230 gespeichert wurde, Informationen vom Gerät 230, welches dem Geräteidentifikator entspricht, anfordern, die angeforderten Informationen vom Gerät 230 erhalten, und Werte unter Verwendung der Informationen vom Gerät 230 generieren. In einem anderen Beispiel kann der Sprachfunktionsserver 220 aufgrund der Tatsache, dass die Stimme im Sprachbefehl mit einem gespeicherten Stimmprofil für „John Doe“ übereinstimmt, ermitteln, dass eine Sprachfunktion von „John Doe“ stammt, einen Geräteidentifikator ermitteln, der für das von „John Doe“ verwendete mobile Computergerät 230 gespeichert wurde, Informationen identifizieren, die bereits vom Sprachfunktionsserver 220 gespeichert wurden und dem Geräteidentifikator entsprechen, und Werte unter Verwendung der identifizierten und bereits gespeicherten Informationen generieren.
-
Die vom Gerät 230 stammenden Informationen können eine oder mehrere der folgenden Vorrichtungen oder Sachverhalte beinhalten: einen Standort des Geräts 230 auf Basis eines GPS-Sensors im Gerät 230, sonstige Geräte, mit denen das Gerät 230 sich in drahtloser Nahbereichskommunikation befindet, ob das Gerät 230 seit der letzten Entsperrung des Geräts 230 schon mit dem Körper einer Person in Kontakt getreten ist, ein Bild der gegenwärtigen Ansicht des Geräts 230, oder einige sonstige Informationen.
-
in einem anderen Beispiel kann der Sprachfunktionsserver 220 aufgrund der Tatsache, dass die Stimme im Sprachbefehl mit einem gespeicherten Stimmprofil für „John Doe“ übereinstimmt, ermitteln, dass eine Sprachfunktion von „John Doe“ stammt, einen Geräteidentifikator ermitteln, der für das von „John Doe“ verwendete mobile Computergerät 230 gespeichert wurde, Informationen den anderen Geräten über das Gerät 230, das dem Geräteidentifikator entspricht, anfordern, die angeforderten Informationen von den anderen Geräten erhalten, und Werte unter Verwendung der Informationen von den anderen Geräten generieren. Die Informationen von Gerät 230 können einen oder mehrere der im Folgenden aufgeführten Sachverhalte beinhalten; eine Angabe, dass das andere Gerät sich in drahtloser Nahbereichskommunikation mit dem Gerät 230 befindet, oder, dass das Gerät 230 vom anderen Gerät innerhalb eines geographischen Bereichs erfasst wurde.
-
In einigen Implementierungen erhält der Sprachfunktionsserver 220 zusätzlich oder alternativ dazu, Informationen vom örtlichen Gerät 210, die verwendet werden können, um Werte für Eingabedatenarten zu generieren. Das örtliche Gerät 210 kann Informationen bereitstellen, deren Audiodaten die Äußerung eines Sprachbefehls darstellen oder es kann Informationen als Antwort auf die Tatsache bereitstellen, dass der Sprachfunktionsserver 220 Informationen vom örtlichen Gerät 210 anfordert,
-
Der Sprachfunktionsserver 220 kann dem ausgewählten Dienstleistungsanbieter eine Anfrage bereitstellen, in der dieser dazu aufgefordert wird, eine Sprachfunktion durchzuführen und er kann ihm zusätzlich Werte für die identifizierten Eingabedatenarten bereitstellen, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung durchzuführen. Zum Beispiel kann der Sprachfunktionsserver 220 dem Dienstleistungsanbieter A 240A eine Anfrage bereitstellen, in der dieser dazu aufgefordert wird, ein Sicherheitssystem zu deaktivieren und er kann ihm zusätzlich Werte bereitstellen, welche angeben (i) dass es sich beim Benutzer aufgrund einer 80%igen Sprachabgleichskonfidenz um den Benutzer „John Doe“ handelt und (ii) dass das mobile Computergerät von „John Doe“ sich innerhalb eines bestimmten geographischen Bereichs befindet und sich seit seiner letzten Entsperrung in Kontakt mit dem Körper einer Person befunden hat.
-
Der Sprachfunktionsserver 220 kann dem ausgewählten Dienstleistungsanbieter Werte für die identifizierten Eingabedatenarten bereitstellen, da die Dienstleistungsanbieter möglicherweise über zusätzliche Informationen oder Vorgaben für die Benutzung dieser bei der Ermittlung des entsprechenden Authentifizierungsgrads verfügen, über die der Sprachfunktionsserver 220 möglicherweise nicht verfügt, Zum Beispiel kann der Authentifizierungsgrad für das Ändern einer Heimtemperatur von der Höhe der Änderung abhängen, z. B. benötigen kleine Änderungen keine oder nur ein geringes Maß an Authentifizierung, aber große Änderungen, die möglicherweise beträchtliche Kosten zur Folge haben, können ein zunehmend höheres Maß an Authentifizierung erfordern, und der Sprachfunktionsserver 220 verfügt möglicherweise nicht über die Kenntnisse einer gegenwärtigen Temperatureinstellung eines Heims, die dem Dienstleistungsanbieter, im Gegensatz dazu, sehr wohl bekannt sind. Dementsprechend kann die Anordnung den Dienstleistungsanbieter in die Lage versetzen, flexibel genug zu sein, um Vorgaben für die Authentifizierung festzulegen und kann die Sicherheit durch die Einschränkung der Informationen, die dem Sprachfunktionsserver 220 bereitgestellt werden, aktivieren. Des Weiteren wird in dieser Implementierung vom Sprecher nicht erfordert, ausdrückliche Authentifizierungsinformationen bereitzustellen (wie etwa das Bereitstellen eines Autorisierungs-PIN-Codes), womit das Verfahren sich für den Sprecher durch einen hohen Bedienkomfort auszeichnet.
-
Als Antwort auf das Bereitstellen der Anfrage und der Werte an den ausgewählten Dienstleistungsanbieter, kann der Sprachfunktionsserver 220 eine Angabe erhalten, die besagt, dass die ausgewählte Sprachfunktion ausgeführt wurde. Zum Beispiel kann der Sprachfunktionsserver 220 vom Dienstteistungsanbieter A 430A eine Angabe der Fertigstellung erhalten. Als Antwort auf die Angabe, dass die ausgewählte Sprachfunktion ausgeführt wurde, kann der Sprachfunktionsserver 220 eine Angabe an das örtliche Gerät 210 bereitstellen, die besagt, dass die Sprachfunktion ausgeführt wurde.
-
Darüber hinaus oder alternativ dazu, kann der Sprachfunktionsserver 220 als Antwort auf das Bereitstellen der Anfrage und der Werte an den ausgewählten Dienstleistungsanbieter, eine Angabe erhalten, die besagt, dass eine zusätzliche Authentifizierung erforderlich ist, um die ausgewählte Sprachfunktion durchzuführen. Zum Beispiel kann der Sprachfunktionsserver 220 eine Angabe vom Dienstleistungsanbieter A 430A darüber erhalten, dass eine zusätzliche Authentifizierung vom Dienstleistungsanbieter A 430A erfordert wird.
-
Als Antwort auf die Angabe, dass eine zusätzliche Authentifizierung erfordert wird, kann der Sprachfunktionsserver 220 eine Angabe an das örtliche Gerät 210 darüber bereitstellen, dass die Sprachfunktion nicht durchgeführt wurde, weil eine zusätzliche Authentifizierung erforderlich gewesen wäre. In einigen Implementierungen kann die Angabe vom ausgewählten Dienstleistungsanbieter eine Eingabedatenart für die zusätzliche Authentifizierung, die erforderlich ist, angeben, und der Sprachfunktionsserver 220 kann eine Anfrage an das örtliche Gerät 210 bereitstellen, die den Benutzer dazu auffordert, Informationen für die Eingabedaten bereitzustellen, die für die zusätzliche Authentifizierung erforderlich sind. In einigen Implementierungen kann die zusätzliche Authentifizierung eine Anforderung beinhalten, kann ein ausdrücklicher Autorisierungscode, ein Passwort, zusätzliche Sprachüberprüfungsausdrücke sein oder es kann dabei darum gehen, dass der Benutzer sich in Zukunft damit einverstanden erklärt, zusätzliche Arten kontextabhängiger Informationen zu verwenden.
-
In einigen Implementierungen kann der Sprachfunktionsserver 220 zusätzlich oder alternativ dazu, eine Authentifizierung durchführen. Zum Beispiel kann der Sprachfunktionsserver 220 Mindestauthentifizierungsanforderungen für bestimmte Dienstleistungsanbieter oder für bestimmte Sprachfunktionen, die von bestimmten Dienstleistungsanbietern ausgeführt werden, einholen und kann eine anfängliche Entscheidung darüber treffen, ob diese Authentifizierungsanforderungen erfüllt wurden. Falls die Mindestanforderungen nicht erfüllt wurden, kann der Sprachfunktionsserver 220 in diesem Beispiel keine Anforderung an den ausgewählten Dienstleistungsanbieter einsenden, sondern muss stattdessen dem Benutzer gegenüber angeben, dass zusätzliche Authentifizierungsinformationen erforderlich sind. Dies verringert die Zeit, die benötigt wird, um den Benutzer zu authentifizieren, indem die Verzögerung eliminiert wird, die andernfalls durch den Sachverhalt verursacht werden würde, dass der Sprachfunktionsserver die Anforderung an den ausgewählten Dienstleistungsanbieter sendet und vom Dienstleistungsanbieter eine Meldung darüber erhält, dass dieser die Anforderung nicht akzeptiert hat, bevor der Benutzer darüber informiert werden würde, dass zusätzliche Informationen zur Benutzerauthentifizierung notwendig wären.
-
Diese Leistungserbringer 240 können eine oder mehrere der folgenden Vorrichtungen miteinbeziehen: ein Gerät, z. B. einen Thermostat oder ein Heimsicherheltssystem, eine Anwendung, z.B. eine Kalenderanwendung oder eine Sprachwahlanwendung, oder eine Webseite, z. B., eine Online-Banking- oder Online-Shopping-Webseite, oder eine sonstige Entität, die registriert ist, um bestimmte Aktionen oder Funktionsarten durchzuführen. Wie oben besprochen, können die Dienstleistungsanbieter 240 über Informationen verfügen, die dem Sprachfunktionsserver 220 nicht zur Verfügung stehen, und die ermitteln können, ob eine Sprachfunktion auf Basis der Informationen vom Server, die zur Authentifizierung verwendet werden, sowie der Informationen, die dem Sprachfunktionsserver 220 nicht zur Verfügung stehen, aber den Dienstleistungsanbietern 240 zur Verfügung stehen, durchgeführt werden kann.
-
In einigen Implementierungen kann ein Stimmabdruck für den Sprecher nicht zur Verfügung stehen und das System 200 kann Eingabearten, mit Ausnahme der Eingabearten, die auf einer Stimmenüberprüfung zur Authentifizierung basieren, verwenden. Zum Beispiel kann das System 200 Gesichtserkennungsverfahren. nur anstatt Gesichtserkennungs- und Stimmenerkennungsverfahren verwenden.
-
In einigen Implementierungen kann das mobile Computergerät 230 eine Stimmenüberprüfung durchführen. Zum Beispiel erfasst sowohl das mobile Computergerät 230 als auch das örtliche Gerät 210 dieselbe Äußerung. Im Beispiel identifiziert das mobile Computergerät 230 den Sprecher und ermittelt eine Sprachabgleichskonfidenz und stellt dem Sprachfunktionsserver 220 die Identifizierung und die Sprachabgleichskonfidenz bereit. Der Sprachfunktionsserver 220 verwendet dann die Identifizierung und die Sprachabgleichskonfidenz vorn mobilen Computergerät 230 statt der Identifizierung des Sprechers und der Ermittlung einer Sprachabgleichskonfidenz. In einem anderen Beispiel Identifiziert das mobile Computergerät 230 den Sprecher und ermittelt eine Sprachabgleichskonfidenz und stellt die Identifizierung und die Sprachabgleichskonfidenz für das örtliche Gerät 210 bereit, damit diese zusammen mit den Audiodaten, die den Sprachbefehl darstellen, dem Sprachfunktionsserver 220 bereitgestellt werden können, In einem noch weiteren Beispiel stellt das örtliche Gerät 210 die Audiodaten, die den Sprachbefehl darstellen, dem mobilen Computergerät 230 bereit, um den Sprecher zu identifizieren und um eine Sprachabgleichskonfidenz zu ermitteln, und das mobile Computergerät 230 stellt dann die Identifikation des Sprechers und die Sprachabgleichskonfidenz entweder dem örtlichen Gerät 210 bereit, damit dieser sie dem Sprachfunktionsserver 220 bereitstellen kann, oder sie werden dem Sprachfunktionsserver 220 direkt bereitgestellt.
-
Unterschiedliche Konfigurationen des Systems 200 können verwendet werden, wo die Funktionalität des örtlichen Geräts 210, des Sprachfunktionsservers 220, des mobilen Computergeräts 230, und der Dienstlelstungsanbieter 240A, 240B, 240C (gemeinsam als 240 bezeichnet) kombiniert, weiter getrennt, verteilt, oder untereinander ausgetauscht werden kann. Das System 200 kann auf einem einzigen System und auf mehrere Systeme verteilt, implementiert werden.
-
Die Überprüfung des Sprechers kann von Jeglichen der unterschiedlichen Geräte des Systems 200 durchgeführt werden. Zum Beispiel kann das lokale Gerät 210 einen Sprecher eines Befehls identifizieren, der Sprachfunktionsserver 220 kann den Sprecher des Befehls identifizieren oder beide können die Identifizierung des Sprechers entweder unabhängig voneinander oder auf kooperative Art und Weise durchführen. Die Identität eines Sprechers kann unter Verwendung der sprachlichen Äußerung des Befehls an sich, unter Verwendung eines sog. Hotwords oder eines Warnworts, das unmittelbar vor dem Befehl ausgesprochen wird, oder unter Verwendung sonstiger sprachlicher Äußerungen, die vor oder nach dem Befehl gemacht werden, ermittelt werden.
-
3 ist ein Blockdiagramm eines exemplarischen Sprachfunktionsservers 300 für das sichere Ausführen von Sprachfunktionen, In einigen Implementierungen kann der Server 300 der Sprachfunktionsserver 220 sein, der in 2 ersichtlich ist. In anderen Implementierungen kann es sich bei dem Server 300 um einen anderen Sprachfunktionsserver handeln.
-
Der Sprachfunktionsserver 300 kann einen Konversationsmanager 310, eine automatische Spracherkennungsvorrichtung 320, eine Bereitstellungsauswahlmaschine 330, eine Sprachfunktionsdatenbank 332, einen Sprecher-Identifikator 340, eine Sprecher-Stimmabdruck-Datenbank 342, einen Eingabedaten-Wertermittler 350 und eine Schnittstellenbereitstellungsvorrichtung 360 beinhalten,
-
Der Konversationsmanager 310 kann eine Konversation mit einem Benutzer verwalten. Zum Beispiel kann der Konversationsmanager 310 Audiodaten erhalten, welche die sprachlichen Äußerungen von Benutzern darstellen und synthetisierte sprachliche Äußerungen als Antwort auf die sprachlichen Äußerungen des Benutzers bereitstellen. Der Konversationsmanager 310 kann Audiodaten von einem örtlichen Gerät erhalten und die Audiodaten der automatischen Spracherkennungsvorrichtung 320 und dem Sprecher-Identifikator 340 bereitstellen. Zum Beispiel kann der Konversationsmanager 310 Audiodaten erhalten, die den Befehl „Temperatur auf 80 Grad ändern“ darstellen und die Audiodaten der automatischen Spracherkennungsvorrichtung 320 und dem Sprecher-Identifikator 340 bereitstellen. Der Konversationsmanager 310 kann Angaben von der Schnittstellenbereitstellungsvorrichtung 360 erhalten, und zwar unabhängig davon, ob ein Sprachbefehl durchgeführt wurde und kann einem örtlichen Gerät dann eine Angabe bereitstellen. Zum Beispiel kann der Konversationsmanager 310 eine Angabe erhalten, gemäß der ein Sprachbefehl hinsichtlich des Änderns einer Temperatur befolgt wurde, um die Temperatur von 70 Grad auf 80 Grad zu ändern, und um als Antwort darauf, die folgende synthetisierte sprachliche Äußerung zu generieren: „Temperatur von 70 Grad auf 80 Grad geändert“,
-
Die automatische Spracherkennungsvorrichtung 320 kann Audiodaten erhalten, die einen Sprachbefehl darstellen und eine Transkription der Audiodaten generieren. Zum Beispiel kann die automatische Spracherkennungsvorrichtung 320 Audiodaten erhalten, die den Sprachbefehl „Temperatur auf 80 Grad ändern“ darstellen und als Antwort darauf, eine Transkription des Befehls „Temperatur auf 80 Grad ändern“ generieren. Die automatische Spracherkennungsvorrichtung 320 kann die generierte Transkription der Bereitstellungsauswahlmaschine 330 bereitstellen. Zum Beispiel kann die automatische Spracherkennungsvorrichtung 320 die Transkription „Temperatur auf 80 Grad ändern“ der Bereitstellungsauswahlmaschine 330 bereitstellen,
-
Die Bereitstellungsauswahlnisschine 330 kann eine Transkription erhalten und eine Sprachfunktion auf Basis der Transkription auswählen. Zum Beispiel kann die Bereitstellungsauswahlmaschine 330 die Transkription „Temperatur auf 80 Grad ändern“ erhalten, und als Antwort darauf, eine Sprachfunktion, die „Temperatur ändern“ besagt, auf Basis der Transkription auswählen.
-
Durch das Auswählen der Sprachfunktion kann die Bereitstellungsauswahlmaschine 330 auf Daten zugreifen, die einen Satz von Sprachfunktionen aus einer Sprachfunktionsdatenbank 332 angeben, wobei jede Sprachfunktion einen oder mehrere Begriffe identifiziert, welche dieser Sprachfunktion entsprechen. Zum Beispiel kann die Sprachfunktionsdatenbank 332 einen Satz von Sprachfunktionen angeben, einschließlich einer Sprachfunktion, die „Temperatur ändern“ besagt, die mit den Begriffen „Temperatur ändern“, „Temperaturänderung“, „Temperatur einstellen“, und sonstigen Begriffen in Verbindung gebracht wird. Eine weitere Sprachfunktion, die angegeben wird, könnte die Funktion „Sicherheitssystem deaktivieren“ beinhalten, die mit den Begriffen „Sicherheitssystem deaktivieren“, „Sicherheitssystem ausschalten“, „Sicherheitssystem auf Ausschalten einstellen“ und sonstigen Begriffen in Verbindung gebracht wird. Die Bereitstellungsauswahlmaschine 330 kann ermitteln, dass der eine oder die mehreren Begriffe in der Transkription mit dem einen oder den mehreren Begriffen, die einer Sprachfunktion entsprechen, übereinstimmen. Zum Beispiel kann die Bereitstellungsauswahlmaschine 330 ermitteln, dass die Transkription „Temperatur auf 80 Grad ändern“ den Begriff „Temperatur ändern“ beinhaltet. Als Antwort auf das Ermitteln, dass der eine oder die mehreren Begriffe in der Transkription mit dem einen oder den mehreren Begriffen übereinstimmen, die der Sprachfunktion entsprechen, kann die Bereitstellungsauswahlmaschine 330 eine Sprachfunktion aus dem Satz von Sprachfunktionen auswählen. Zum Beispiel kann die Bereitstellungsauswahlmaschine 330 als Antwort auf das Ermitteln, dass die Transkription „Temperatur auf 80 Grad ändern“ den Begriff „Temperatur ändern“ beinhaltet, die Sprachfunktion „Temperatur ändern“ auswählen.
-
Die Bereitstellungsauswahlmaschine 330 kann eine Angabe der ausgewählten Sprachfunktion an die Schnittstellenbereitstellungsvorrichtung 360 bereitstellen. Zum Beispiel kann die Bereitstellungsauswahlmaschine 330 der Schnittstellenbereitstellungsvorrichtung 360 eine Angabe darüber bereitstellen, dass die Sprachaktion des Befehls „Temperatur ändern“ ausgewählt wurde,
-
Der Sprecher-Identifikator 340 kann Audiodaten einholen, die einen Sprachbefehl darstellen, der von einem Sprecher ausgesprochen wird, und ein Sprecheridentifikationsergebnis generieren, das angibt, dass der Sprachbefehl vom Sprecher ausgesprochen wurde. Zum Beispiel kann der Sprecher-Identifikator 340 Audiodaten einholen, welche den Sprachbefehl „Temperatur auf 80 Grad ändern“, der von „John Doe“ ausgesprochen wurde, repräsentieren, und ein Sprecheridentifikationsergebnis generieren, gemäß dem, der Sprachbefehl von „John Doe“ ausgesprochen wurde.
-
Der Sprecher-Identifikator 340 kann das Sprecheridentifikationsergebnis durch das Abgleichen der Audiodaten, die einen Sprachbefehl darstellen, oder eines sog. Hotwords, das dem Sprachbefehl vorangeht, mit einem Stimmabdruck für einen Benutzer generieren. Zum Beispiel kann der Sprecher-Identifikator 340 das Sprecheridentifikationsergebnis generieren, das angibt, dass „John Doe“ auf Basis des Ermittelns, dass die Audiodaten für den Sprachbefehl mit einem gespeicherten Stimmabdruck für „John Doe“ übereinstimmt, derjenige war, der den Sprachbefehl aussprach. Der Sprecher-Identifikator 340 kann den Stimmabdruck für den Benutzer aus einem Stimmabdrucksatz, der in einer Stimmabdruckdatenbank des Sprechers 342 gespeichert ist, einholen.
-
In einigen Implementierungen kann der Sprecher-Identifikator 340 eine Abgleichskonfidenz ermitteln, die einen Abglelchsumfang zwischen dem Stimmabdruck für einen Benutzer und den Audiodaten, die den Sprachbefehl darstellen, repräsentiert, und die Abgleichskonfidenz in das Sprecheridentifikationsergebnis miteinbeziehen. Zum Beispiel kann der Sprecher-Identifikator 340 eine Abgleichskonfidenz von 80% ermitteln und eine Angabe einer Abgleichskonfidenz von 80% in das Sprecheridentifikationsergebnis miteinbeziehen.
-
In einigen Implementierungen kann der Sprecher-Identifikator 340 nur einen einzelnen Benutzer im Sprecheridentifikationsergebnis identifizieren. Zum Beispiel kann der Sprecher-Identifikator 340 den Benutzer mittels der Abgleichskonfidenz, die den höchsten Abgleichsumfang angibt, ermitteln, und den jeweiligen Benutzer im Sprecheridentifikationsergebnis und der Abgleichskonfidenz für diesen entsprechenden Sprecher identifizieren. In anderen Implementierungen kann der Sprecher-Identifikator 340 mehrere Benutzer im Sprecheridentifikationsergebnis identifizieren. Zum Beispiel kann der Sprecher-Identifikator 340 Benutzer mit Abgleichskonfidenzen identifizieren, die den Grenzwert der Abgleichskonfidenz z. B. 50%, 60%, 75%, oder eine sonstige Abgleichskonfidenz, beinhalten und diese Benutzer im Sprecheridentifikationsengebnis und im Rahmen ihrer entsprechenden Abgleichskonfldenzen identifizieren. In einem anderen Beispiel kann der Sprecher-Identifikator 340 diejenigen Benutzer identifizieren, deren Abgleichskonfidenzen zwei, drei oder eine andere Zahl angeben, die über den höchsten Abglelchsumfang verfügen, und diese jeweiligen Benutzer im Sprecheridentifikationsergebnis und deren entsprechenden Abgleichskonfidenzen identifizieren. Der Sprecher-Identifikator 340 kann dem Eingaben-Wertermittler 350 das Sprecheridentifikationsergebnis bereitstellen.
-
In einigen Implementierungen kann ein örtliches Gerät, statt oder zusätzlich zum Sprecher-Identifikator, wie etwa ein Gerät Im Heim oder am Arbeitsplatz eines Benutzers 340, eine Sprecherüberprüfung durchführen. Zum Beispiel kann das örtliche Gerät Informationen speichern, die aus Sprechproben stammen, die der Benutzer bei deiner Anmeldung bereitgestellt hat, und die es dem örtlichen Gerät somit ermöglichen, festzustellen, ob die Stimme eines Sprechers mit den während der Anmeldung beobachteten Charakteristiken der Stimme übereinstimmt. Das örtliche Gerät kann dem Server 300 ein Sprecherüberprüfungskonfidenzergebnis und/oder ein Einstufungsergebnis bereitstellen, gemäß denen ermittelt werden kann, ob es sich bei dem Sprecher mit hoher Wahrscheinlichkeit um einen autorisierten Benutzer handelt. Neben den Sprecherüberprüfungsinformationen ist das lokale Gerät in der Lage, eine Vielzahl von sonstigen kontextabhängigen Informationen bereitzustellen. Im Allgemeinen kann das örtliche Gerät so viele kontextabhängige Informationen bereitstellen, wie ihm zur Verfügung stehen und diese automatisch mit dem Sprachbefehl bereitstellen. Der Server 300 ermittelt dann, welche Informationen erforderlich sind und welches Format am sinnvollsten ist, um an Dienstleistungsanbieter in Form von Sprachfunktionsanforderungen weitergeleitet zu werden.
-
Der Eingabedaten-Wertermittler 350 kann Werte für Eingabedatenarten ermitteln, die von Dienstleistungsanbietern auf Basis des identifizierten Benutzers verwendet werden. Zum Beispiel kann der Eingabedaten-Wertermittler 350 einen binären Wert ermitteln, der angibt, ob ein mobiles Computergerät eines Benutzers, der identifiziert wird, während er einen Sprachbefehl ausspricht, sich innerhalb des Heims des Benutzers befindet. Die Eingabedatenarten können einen oder mehrere der im Folgenden aufgeführten Sachverhalte beinhalten: ob ein mobiles Computergerät eines Benutzers sich auf Basis eines GPS-Sensors im Gerät 230 in einem vertrauenswürdigen Bereich befindet, ob ein mobiles Computergerät eines Benutzers sich in drahtloser Kommunikation mit einem vertrauenswürdigen Gerät befindet, ob das Gerät 230 seit der Entsperrung des Geräts 230 am Körper einer Person getragen wurde, ob der Benutzer in einer gegenwärtigen Ansicht des Geräts 230 mit einem gespeicherten Gesicht des Benutzers oder mit sonstigen anderen Eingabewert-Datenarten übereinstimmt. Bei dem vertrauenswürdigen Bereich kann es sich um einen Bereich handeln, im Rahmen dessen der Benutzer festgelegt hat, dass der Benutzer Sprachbefehle bereitstellen möchte. Bei dem vertrauenswürdigen Gerät kann es sich um ein Gerät handeln, im Rahmen dessen der Benutzer festgelegt hat, dass der Benutzer Befehle bereitstellen möchte, wenn das mobile Computergerät des Benutzers sich in Kommunikation mit dem vertrauenswürdigen Gerät befindet.
-
Ähnlich zu der weiter oben für den Sprachfunktionsserver 220 beschriebenen Art und Weise kann der Eingabedaten-Wertermittler 350 einen Geräteidentifikator, der für das mobile Computergerät gespeichert ist, das vom identifizierten Benutzer verwendet wird, identifizieren, Informationen
vom identifizierten mobilen Computergerät anfordern, die angeforderten Informationen vom identifizierten mobilen Computergerät erhalten und dann Werte für die Eingabedatenarten auf Basis der Informationen generieren. Wie vorstehend beschrieben, kann der Eingabedaten-Wertermittler 350 alternativ dazu, einen Geräteidentifikator, der für das vom identifizierten Benutzer verwendete mobile Computergerät gespeichert ist, identifizieren, Informationen vom identifizierten mobilen Computergerät anfordern, die angeforderten Informationen von den anderen Geräten erhalten, und dann Werte für die Eingabedatenarten auf Basis der Informationen generieren.
-
Der Eingabedaten-Wertermittler 350 kann die ermittelten Datenarten für die Schnittstellenbereitstellungsvorrichtung 360 bereitstellen. Zum Beispiel kann der Eingabedaten-Wertermittler 350 der Schnittstellenbereitstellungsvorrichtung 360 eine Angabe darüber bereitstellen, dass ein mobiles Computergerät des Benutzers sich nicht in einem vertrauenswürdigen Bereich befindet und dass das mobile Computergerät des Benutzers sich seit seiner Entsperrung im Kontakt mit dem Körper einer Person befunden hat.
-
Die Schnittstellenbereiteteilungsvorrichtung 360 kann eine Angabe eines ausgewählten Dienstleistungsanbieters und eine ausgewählte Sprachfunktion von der Bereitstellungsauswahlmaschine 330 erhalten und kann Werte der Eingabedatenarten vom Eingabedaten-Wertermittler 350 erhalten und als Antwort einen oder mehrere Werte der Eingabedatenarten und eine Anfrage an den ausgewählten Dienstleistungsanbieter bereitstellen, um die ausgewählte Sprachfunktion durchzuführen. Zum Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 eine Angabe eines ausgewählten Dienstleistungsanbieters für das Erhitzen, Lüften, Kühlen (HVAC-Steuerung) der Umgebung und eine Angabe der ausgewählten Sprachfunktion zur Änderung der Temperatur erhalten, sowie auch Daten für Eingabedatenarten, die angeben, dass (i) eine 80%ige Stimmenabgleichskonfidenz darüber besteht, dass es sich bei dem Benutzer um „John Doe“ handelt, und (ii) dass das mobile Computergerät von „John Doe“ sich in einem bestimmten geographischen Bereich befindet, und (iii) dass sich das mobile Computergerät vor seiner letzten Entsperrung in Kontakt dem Körper einer Person befunden hat. Mit diesen Informationen stellt die Schnittstellenbereitstellungsvorrichtung 360 dem ausgewählten Dienstleitungsanbieter eine Angabe einer ausgewählten Sprachfunktion zur Änderung der Temperatur bereit und stellt Werte bereit, die angeben, dass (i) eine 80%ige Stimmenabgleichskonfidenz darüber besteht, dass es sich bei dem Benutzer um „John Doe“ handelt, und (ii) dass das mobile Computergerät von „John Doe“ sich in einem bestimmten geographischen Bereich befindet. Die Schnittstellenbereitstellungsvorrichtung 360 kann das Bereitstellen eines Werts, der angibt, dass das mobile Computergerät sich vor seiner letzten Entsperrung in Kontakt mit dem Körper einer Person befunden hat, auslassen, da der ausgewählte Dienstleistungsanbieter diese Art von Eingabedatenart möglicherweise nicht verwendet.
-
Die Schnittstellenbereitstellungsvorrichtung 360 kann einen oder mehrere Werte bereitstellen, die der identifizierten einen oder der mehreren Eingabedatenarten auf Basis des Ermittelns einer Teilmenge an Eingabedatenarten entspricht, die der ausgewählte Dienstleistungsanbieter verwendet, um eine Authentifizierung für eine ausgewählte Sprachfunktion durchzuführen. Auf Basis der Feststellung, dass der ausgewählte Dienstleistungsanbieter für die HVAC-Steuerung diese Eingabedatenarten zur Authentifizierung für die ausgewählte Sprachfunktion zur Änderung der Temperatur verwendet, kann die Schnittstellenbereitstellungsvorrichtung 360 zum Beispiel Werte bereitstellen, die eine Sprachabglelchskonfidenz bereitstellen und besagen, ob ein mobiles Computergerät dieses übereinstimmenden Benutzers sich in einem bestimmten geographischen Bereich befindet. Unterschiedliche kontextabhängige Informationen können, je nachdem welcher Dienstleistungsanbieter ausgewählt wird, bereitgestellt werden, um die Sprachfunktionsanforderung bewältigen zu können. Falls das HVAC-Steuersystem in einem anderen Beispiel die Zustandsinformationen über ein mobiles Computergerät verwendet, kann die Schnittstellenbereitstellungsvorrichtung 360 zusätzlich einen Wert bereitstellen, der angibt, ob das mobile Computergerät sich seit seiner letzten Entsperrung in Kontakt mit dem Körper einer Person befunden hat. In einem nach weiteren Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 Werte der Eingabedatenarten der Sprachabgleichskonfldenz bereitstellen, und besagen, ob ein Gesicht in einer gegenwärtigen Ansicht einer Kamera des mobilen Computergeräts mit der Stimme des abgeglichenen Benutzers übereinstimmt, sofern man von der Feststellung ausgeht, dass für die ausgewählte Sprachfunktion zur Änderung der Temperatur ein anderer, unterschiedlicher ausgewählter Dienstleistungsanbieter zur HVAC-Steuerung diese Eingabedatenarten zum Zwecke der Authentifizierung verwendet.
-
Die Schnittstellenbereitstellungsvorrichtung 360 kann eine Antwort von einem Dienstleistungsanbieter erhalten, in der angegeben wird, ob die Sprachfunktion durchgeführt wurde, oder ob zusätzliche Informationen zum Zwecke der Authentifizierung erforderlich sind. Zum Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 eine Angabe von einem ausgewählten Dienstleistungsanbieter zur HVAC-Steuerung darüber erhalten, dass die Sprachfunktion zur Änderung der Temperatur fertiggestellt wurde. In einem anderen Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 eine Angabe von einem ausgewählten Dienstleistungsanbieter zur HVAC-Steuerung darüber erhalten, dass die Sprachfunktion zur Änderung der Temperatur nicht fertig gestellt wurde, und dass besondere zusätzliche Informationsarten zum Zwecke der Authentifizierung erforderlich sind. Die Schnittstellenbereitstellungsvorrichtung 360 kann die Angabe dem Konversationsmanager 310 bereitstellen und der Konversationsmanager 310 kann die Angabe, wie vorstehend erörtert, dem Benutzer bereitstellen.
-
Verschiedene Konfigurationen des Servers 300 können in denjenigen Fällen verwendet werden, in denen die Funktionalität des Konversationsmanagers 310, der automatischen Spracherkennungsvorrichtung 320, der Bereitstellungsauswahlmaschine 330, der Sprachfunktionsdatenbank 332, des Sprecher-Identifikators 340, der Stimmabdruck-Datenbank des Sprechers 342, des Eingabedaten-Wertermittters 350 und der Schnittstellenbereitstellungsvorrichtung 360 kombiniert, weiter getrennt, verteilt oder untereinander ausgetauscht werden können. Zum Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 die Funktionen des Eingabedaten-Wortermittlers 350 durchführen, um nur diejenigen Werte für Eingabedatenarten zu ermitteln, die von einem ausgewählten Dienstleistungsanbieter zur Authentifizierung für eine ausgewählte Sprachfunktion verwendet werden. Das System 200 kann auf einem einzigen System und auf mehrere Systeme verteilt, Implementiert werden.
-
4 ist ein Flussdiagramm, das ein Beispiel eines Verfahrens für das sichere Ausführen von Sprachfunktionen veranschaulicht. Die Operationen des Verfahrens 400 können von einem oder mehreren Rechensystemen, wie etwa dem Server 300 aus 3 durchgeführt werden.
-
Es werden Audiodaten, die einen Sprachbefehl darstellen, und eine Identifizierung des Sprechers erhalten (410). Zum Beispiel kann der Konversationsmanager 310 Audiodaten erhalten, die „Jane Doe“ repräsentieren, während sie „Sicherheitssystem deaktivieren.“ sagt. Das Erhalten der akustischen Daten und einer Identifizierung des Sprechers können das Einholen von akustischen Daten, die einen Sprachbefehl darstellen, der von einem Sprecher ausgesprochen wird, das Einholen eines Stimmabdrucks für den Sprecher, und dabei ermitteln, dass der Sprachabd ruck für den Sprecher mit den akustischen Daten übereinstimmt, die den vom Sprecher ausgesprochenen Sprachbefehl darstellen, und als Antwort auf das Ermitteln, dass der Stimmabdruck für den Sprecher mit den akustischen Daten übereinstimmt, die den vom Sprecher ausgesprochenen Sprachbefehl darstellen, das Generieren eines Sprechidentifikationsergebnisses, welches angibt, dass der Sprachbefehl vom Sprecher ausgesprochen wurde, beinhalten.
-
Es kann eine Sprachfunktion ausgewählt werden (420). Zum Beispiel kann die automatische Spracherkennungsvorrichtung 320 die Transkription „Sicherheitssystem deaktivieren“ generieren und diese Transkription der Bereitstellungsauswahlmaschine 330 bereitstellen, die ermitteln kann, dass diese Begriffe mit einer Sprachfunktion zur Deaktivierung eines Sicherheitssystems übereinstimmen, die mit den Begriffen „Sicherheitssystem deaktivieren“ in Verbindung gebracht wird. Das Auswählen der Sprachfunktion, kann das Einholen eines Satzes von Sprachfunktionen beinhalten, im Rahmen derer, jede Sprachfunktion einen oder mehrere Begriffe identifiziert, die dieser jeweiligen Sprachfunktionen entsprechen, wobei ermittelt wird, dass ein oder mehrere Begriffe in der Transkription mit einem oder mit mehreren Begriffen, die der Sprachfunktion entsprechen, übereinstimmen, und als Antwort auf das Ermitteln, dass ein oder mehrere Begriffe in der Transkription mit einem oder mit mehreren Begriffen, die der Sprachfunktionen entsprechen, übereinstimmen, findet das Auswählen der Sprachfunktionen aus einem Satz von Sprachfunktionen statt.
-
Ein Dienstleistungsanbieter, der der Sprachfunktion entspricht, kann ausgewählt werden (430). Zum Beispiel kann die Bereitstellungssauswahlmaschine 330 ermitteln, dass ein Dienstleistungsanbieter die Sprachfunktion zur Deaktivierung eines Sicherheitssystems für ein Heimsicherheitssystem durchführen und als Antwort den Dienstleistungsanbieter für ein Heimsicherheitssystem auswählen kann. Das Auswählen eines Dienstleistungsanbieters, welcher der Sprachfunktion entspricht, kann das Einholen einer Leitung der Sprachfunktionen zur Mehrheit der Dienstleistungsanbieter beinhalten, wobei diese Führung für jede Sprachfunktion einen Dienstleistungsanbieter beschreibt, der die Sprachfunktion durchführen kann, und dabei ermittelt, dass die Leitung der Sprachfunktionen angibt, dass der Dienstleistungsanbieter die ausgewählte Sprachfunktionen durchführen kann und als Antwort auf das Ermitteln, dass die Leitung der Sprachfunktionen angibt, dass der Dienstleistungsanbieter die ausgewählte Sprachfunktion durchführen kann, den Dienstleistungsanbieter auswählt.
-
Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung durchzuführen, können identifiziert werden (440). Zum Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 identifizieren, dass der ausgewählte Dienstleistungsanbieter für ein Heimsicherheitssystem die Eingabedatenarten der Sprachabgleichskonfidenz verwendet und ob das mobile Computergerät eines Benutzers mit dem WiFi-Netzwerk eines Heims zur Authentifizierung der Sprachfunktion zur Deaktivierung eines Sicherheitssystems verbunden ist. Das Identifizieren von Eingabedatenarten kann das Bereitstellen einer Anfrage an einen ausgewählten Dienstleistungsanbieter nach einer Identifizierung des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktionen durchzuführen, wobei vom ausgewählten Dienstleistungsanbieter eine Antwort auf die Anfrage nach der Identifikation erhalten wird und aus der Antwort auf die Anfrage nach der Identifikation wird das Identifizieren des einen oder der mehreren Eingabedatenarten, die der ausgewählte Dienstleistungsanbieter verwendet, um die Authentifizierung für die ausgewählte Sprachfunktionen durchzuführen, durchgeführt.
-
Eine Anforderung zur Durchführung einer ausgewählten Sprachfunktion und ein oder mehrere Werte, die den identifizierten Eingabedatenarten entsprechen, können bereitgestellt werden (450). Zum Beispiel kann die Schnittstellenbereitstellungsvorrichtung 360 dem ausgewählten Dienstleistungsanbieter für ein Heimsicherheitssystem eine Angabe darüber bereitstellen, dass die ausgewählte Sprachfunktion das Heimsicherheitssystems deaktiviert und die Werte zu 90% mit der Stimme von „Jane Doe“ übereinstimmen und, dass das mobile Computergerät von „Jane Doe“ mit dem WiFi-Netzwerk des Heims in Verbindung steht.
-
FIG, 5 zeigt ein Beispiel eines Computergeräts 500 und eines mobilen Computergeräts 550, das zur Implementierung der hier beschriebenen Techniken verwendet werden kann. Das Computergerät kann zum Beispiel den Sprachfunktionsserver 300 aus 3 verkörpern oder implementieren. Das Computergerät 500 ist vorgesehen, um die verschiedenen Formen digitaler Computer, wie etwa Laptops, Desktops, Workstations, persönliche digitale Assistenten, Server, Blade-Server, Großrechner und andere geeignete Computer zu repräsentieren. Das mobile Computergerät 550 dient zur Darstellung verschiedener Computergeräte, wie etwa persönliche digitale Assistenten, Mobiltelefone, Smartphones und sonstige ähnliche Computergeräte. Hier gezeigten Komponenten, ihre Verbindungen und Beziehungen, sowie ihre Funktionen sind rein exemplarisch gemeint und sollen keine Einschränkungen darstellen.
-
Das Computergerät 500 beinhaltet einen Prozessor 502, einen Speicher 504, eine Speichereinrichtung 506, eine High-Speed Schnittstelle 508, mit Anschluss an der Speicher 504 und mehrere High-Speed-Ports 510, sowie eine Low-Speed-Schnittstelle 512 mit Anschluss an den Low-Speed-Erweiterungsport 514 und die Speichervorrichtung 506. Jeder der im Folgenden Aufgeführten: der Prozessor 502, der Speicher 504, das Speichergerät 506, die High-Speed-Schnittstelle 508, die High-Speed-Erweiterungsports 510 und die Low-Speed-Schnittstelle 512 werden unter Verwendung verschiedener Busse miteinander verbunden und können auf eine gemeinsame Hauptplatine oder auf sonstige dafür geeignete Weisen angebracht werden. Der Prozessor 502 kann Anweisungen zur Ausführung Innerhalb des Computergeräts 500 verarbeiten, die Anweisungen beinhalten, die in dem Speicher 504 oder auf der Speichervorrichtung 506 gespeichert sind, um grafische Informationen für eine grafische Benutzeroberfläche (GUI) auf einer externen Elngabe-/Ausgabevorrichtung, wie Anzeige 516, die mit Hochgeschwindigkeitsschnittstelle 508 verbunden ist, anzuzeigen. In anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse verwendet werden, wie angemessen, zusammen mit mehreren Speichern und Speichertypen. Außerdem können mehrere Computergeräte verbunden sein, wobei jedes Gerät Abschnitte der nötigen Operationen bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servem oder ein Multiprozessorsystem).
-
Der Speicher 504 speichert Informationen innerhalb des Computergeräts 500. In einigen Implementierungen handelt es sich bei dem Speicher 504 um eine flüchtige Speichereinheit oder mehrere derartige Einheiten. In einigen Implementierungen handelt es sich bei dem Speicher 504 um eine nicht-flüchtige Speichereinheit oder mehrere derartige Speichereinheiten. Der Speicher 504 kann auch eine andere Form von computerlesbarem Medium sein, zum Beispiel ein magnetischer oder optischer Datenträger.
-
Das Speichergerät 506 kann Massenspeicher für das Computergerät 500 bereitstellen. In einigen Implementierungen kann die Speichervorrichtung 506 ein computerlesbares Medium, z. B. ein Diskettenlaufwerk, eine Festplatte, ein optisches Laufwerk oder ein Bandlaufwerk, einen Flash-Speicher oder andere ähnliche Speicherelemente oder mehrere Geräte, einschließlich Geräte in einem Speichernetzwerk oder anderen Konfigurationen beinhalten. Anweisungen können in einem Informationsträger gespeichert werden. Die Anweisungen führen, wenn sie von einem oder mehreren Verarbeitungsgeräten (zum Beispiel Prozessor 502) ausgeführt werden, ein oder mehrere Verfahren, wie etwa die oben beschriebenen, aus. Die Anweisungen können auch auf einem oder mehreren Speichergeräten, wie etwa computer- oder maschinenlesbare, Medien (zum Beispiel der Speicher 504, und das Speichergerät 506, oder Speicher auf dem Prozessor 502) gespeichert werden.
-
Die High-Speed-Schnittstelle 508 verwaltet bandbreitenintensive Vorgänge für das Computergerät 500, während die Low-Speed-Schnittstelle 512 die weniger bandbreitenintensiven Vorgänge verwaltet. Eine solche Zuordnung von Funktionen ist nur exemplarisch. In einigen Implementierungen ist die High-Speed-Schnittstelle 508 an den Speicher 504, den Bildschirm 516 (z.B. durch einen Grafikprozessor oder -Beschleuniger) und die High-Speed-Erweiterungsports 510 gekoppelt, die gegebenenfalls verschiedene Erweiterungskarten (nicht dargestellt) akzeptieren. In der Implementierung ist die Low-Speed-Schnittstelle 512 an die Speichervorrichtung 506 und die Low-Speed-Erweiterungsports 514 gekoppelt. Der Low-Speed-Expansionsport 514, der verschiedene Kommunikationsanschlüsse (z.B. USB, Bluetooth, Ethernet, Funkethernet) beinhalten kann, kann an ein oder mehrere Eingabe-/Ausgabe-Geräte, wie eine Tastatur, ein Zeigegerät, einen Scanner oder ein Netzwerkgerät, wie einen Switch oder Router, z.B. durch einen Netzwerkadapter gekoppelt sein.
-
Das Computergerät 500 kann, wie in der Figur ersichtlich, in einer Reihe verschiedener Formen implementiert sein. Es kann zum Beispiel als Standardserver 520 oder mehrmals in einer Gruppe derartiger Server implementiert sein. Darüber hinaus kann er ebenfalls in einem PC wie einem Laptopcomputer 522 implementiert werden. Er kann ebenfalls als Bestandteil eines Rack-Serversystems 524 implementiert werden. Alternativ können Komponenten des Computergeräts 500 mit anderen Komponenten in einem mobilen Gerät (nicht dargestellt), wie etwa Computergerät 550 kombiniert werden. Jedes solcher Geräte kann ein oder mehrere Computergeräte 500 und das mobile Computergerät 550 beinhalten und ein gesamtes System kann aus mehreren Computergeräten bestehen, die miteinander kommunizieren.
-
Das mobile Computergerät 550 beinhaltet unter anderen Komponenten auch einen Prozessor 552, einen Speicher 564, ein Ein-/Ausgabegerät, wie etwa eine Anzeige 554, eine Kommunikationsschnittstelle 566 und einen Transceiver 568. Das mobile Computergerät 550 kann ebenfalls mit einer Speichervorrichtung ausgestattet sein, wie etwa einem Microdrive oder einem anderen Gerät, um zusätzlichen Speicher bereitzustellen. Alle der Folgenden: der Prozessor 552, der Speicher 564, die Anzeige 554, die Kommunikationsschnittstelle 566, und der Transceiver 568 sind mithilfe verschiedener Busse miteinander verbunden und mehrere der Komponenten können an einer gemeinsamen Hauptplatine oder auf andere Weise, je nach Bedarf, angebracht sein.
-
Der Prozessor 552 kann die Anweisungen innerhalb der mobilen Computereinrichtung 550 ausführen, einschließlich Anweisungen, die im Speicher 564 gespeichert sind. Der Prozessor 552 kann als ein Chipsatz von Chips implementiert werden, die separate und mehrere analoge und digitale Prozessoren beinhalten. Der Prozessor 552 kann zum Beispiel die Koordination der anderen Komponenten des mobilen Computergeräts 550, wie etwa die Kontrolle von Benutzeroberflächen, Anwendungen, die vom mobilen Computergerät 550 ausgeführt werden, und die drahtlose Kommunikation mittels des mobilen Computergerät 550 bereitstellen.
-
Der Prozessor 552 kann mit einem Benutzer über eine Kontrollschnittstelle 558 und eine Displayschnittstelle 556, die an das Display 554 gekoppelt sind, kommunizieren. Das Display 554 kann zum Beispiel ein TFT (Thin-Film-Transistor Liquid Crystal Display)-Display oder ein OLED (Organic Light Emitting Diode)-Display oder eine andere geeignete Displaytechnologie sein. Die Displayschnittstelle 556 kann eine geeignete Schaltung enthalten, die das Display 554 dazu bringt, einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 558 kann Befehle von einem Benutzer empfangen und sie für die Sendung an Prozessor 552 umwandeln. Zusätzlich kann eine externe Schnittstelle 562 eine Kommunikation mit dem Prozessor 552 bereitstellen, um die Nahbereichskommunikation des mobilen Computergeräts 550 mit anderen Geräten zu ermöglichen. Die externe Schnittstelle 562 kann zum Beispiel die drahtgebundene Kommunikation in einigen Implementierungen oder die drahtlose Kommunikation in anderen Implementierungen bereitstellen, wobei ebenfalls mehrere Schnittstellen verwendet werden können
-
Der Speicher 564 Speicherinformationen innerhalb des mobilen Computergeräts 550. Der Speicher 564 kann als eines oder mehrere computerlesbare Medien, flüchtige Speichergeräte oder nicht flüchtige Speichergeräte implementiert werden. Die Speichererweiterung 574 kann ebenfalls bereitgestellt und durch die Expansionsschnittstelle 572, zu der beispielsweise eine SIMM (Single In Line Memory Module) Schnittstelle gehören kann, mit dem mobilen Computergerät 550 verbunden werden. Die Speichererweiterung 574 kann zusätzlichen Speicherplatz für das mobile Computergerät 550 bereitstellen oder ebenfalls Anwendungen oder andere Informationen für das mobile Computergerät 550 speichern. Insbesondere kann die Speichererweiterung 574 Anweisungen enthalten, die zur Ausführung oder Ergänzung der vorstehend beschriebenen Prozesse erforderlich sind; zudem kann sie vertrauliche Informationen beinhalten. So kann die Speichererweiterung 574 zum Beispiel ein Sicherheitsmodul für das mobile Computergerät 550 eingesetzt und mit Anweisungen programmiert werden, die eine sichere Nutzung des mobilen Computergeräts 550 ermöglichen. Zusätzlich dazu können über die SIMM-Cards, zusammen mit zusätzlichen Informationen, wie das Ablegen von Identifizierungsinformationen auf der SIMM-Card, sichere Anwendungen, auf eine Weise, die nicht gehackt werden kann, bereitgestellt werden.
-
Der Speicher kann zum Beispiel Flash-Speicher und/oder NVRAM-Speicher (nicht-flüchtiger Direktzugriffspeicher), wie vorstehend besprochen beinhalten. In einigen Implementierungen werden Anweisungen in einem informationsträger gespeichert, so dass die Anweisungen, wenn sie von einem oder mehreren Verarbeitungsgeräten (zum Beispiel Prozessor 552) ausgeführt werden, ein oder mehrere Verfahren, wie etwa die oben beschriebenen, ausführen. Die Anweisungen können auch mittels eines oder mehrerer Speichergeräte, wie etwa einem oder mehreren computer- oder maschinenlesbaren Medien (zum Beispiel Speicher 564, der Erweiterungsspeicher 574, oder Speicher auf den Prozessor 552), gespeichert werden. In einigen Implementierungen können Anweisungen in einem propagierten Signal empfangen werden, zum Beispiel über der Transceiver 566 oder der externen Schnittstelle 562.
-
Das mobile Computergerät 550 kann drahtlos über die Kommunikationsschnittstelle 566 kommunizieren, die gegebenenfalls eine digitale Signalverarbeitungsschaltung beinhaltet. Die Kommunikationsschnittstelle 566 kann Kommunikationen unter verschiedenen Modi oder Protokollen, unter anderem wie etwa GSM - Sprachverbindungen (Global System for Mobile Communication), SMS, dem Kurzmeldungsdienst (Short Message Service), EMS (dem erweiterten Nachrichtenservice) oder MMS (dem Multimedia Messaging Service), CDMA - (dem Code Division Multiple Access), TDMA - (dem Time Division Multiple Access), PDC - (dem Personal Digital Cellular System), WCDMA - (dem Wideband Code Division Multiple Access), CDMA2000 oder GPRS (dem General Packet Radio System) vorsehen. Eine derartige Kommunikation kann beispielsweise über den Transceiver 568 unter Verwendung einer Radiofrequenz erfolgen. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines Bluetooth-, WLAN- oder anderen solchen Sende-Empfängers (nicht gezeigt). Zusätzlich kann das GPS-Empfängermodul (GPS = Global Positioning System) 570 zusätzliche navigations- und ortsbezogene drahtlose Daten an das mobile Computergerät 550 bereitstellen, die von Anwendungen auf dem mobilen Computergerät 550 entsprechend verwendet werden.
-
Das mobile Computergerät 550 kann ebenfalls unter Verwendung des Audio-Codec 560, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audio-Codec 560 kann gleichermaßen einen hörbaren Ton für einen Benutzer, wie etwa über einen Lautsprecher, zum Beispiel in ein Handset eines mobilen Computergeräts 550, generieren. Ein derartiger Ton kann einen Ton von Sprachfernsprechverbindungen beinhalten, kann aufgenommene Töne (z. B. Sprachnachrichten, Musikdateien, usw.) beinhalten und kann auch Töne, beinhalten, die von Anwendungen generiert werden, die auf einem mobilen Computergerät 550 betrieben werden.
-
Das mobile Computergerät 550 kann, wie aus der Figur hervorgeht, auf verschiedene Weise, implementiert werden. Es kann zum Beispiel als ein Mobiltelefon 580 implementiert werden. Es kann außerdem als Teil eines Smartphones 582, eines persönlichen digitalen Assistenten oder eines anderen ähnlichen mobilen Geräts implementiert werden.