-
TECHNISCHES GEBIET
-
Diese Beschreibung betrifft generell automatisierte Spracherkennung.
-
ALLGEMEINER STAND DER TECHNIK
-
Die Realität eines sprachgesteuerten Haushaltes oder einer anderen Umgebung – d. h. eine, in der ein Benutzer nur eine Abfrage oder einen Befehl laut aussprechen muss und ein computerbasiertes System die Abfrage beantwortet und/oder verursacht, dass der Befehl ausgeführt wird – ist da. Eine sprachgesteuerte Umgebung (z. B. Haushalt, Arbeitsplatz, Schule usw.) kann unter Verwendung eines Netzwerks von verbundenen Mikrofonvorrichtungen, die in den verschiedenen Räumen oder Bereichen der Umgebung verteilt sind, implementiert werden. Durch solch ein Netzwerk von Mikrofonen hat ein Benutzer die Möglichkeit, das System von im Wesentlichen irgendwo in der Umgebung mündlich abzufragen, ohne die Notwendigkeit, einen Computer oder eine andere Vorrichtung vor sich oder gar in der Nähe zu haben. Während er in der Küche kocht, kann ein Benutzer beispielsweise das System fragen „Wie viele Milliliter in drei Tassen?“ und als Reaktion eine Antwort vom System z. B. in der Form einer künstlichen Sprachausgabe erhalten. Alternativ könnte ein Benutzer dem System Fragen stellen wie „Wann schließt meine nahest gelegene Tankstelle“, oder beim Vorbereiten, aus dem Haus zu gehen „Sollte ich eine Jacke anziehen?“.
-
Weiter kann ein Benutzer eine Abfrage des Systems anfordern und/oder einen Befehl ausgeben, der die persönlichen Informationen des Benutzers betrifft. Beispielsweise könnte ein Benutzer das System fragen „Wann ist mein Treffen mit John?“ oder das System anweisen „Erinnere mich daran, John anzurufen, wenn ich nach Hause komme“.
-
KURZDARSTELLUNG
-
Bei einem sprachgesteuerten System ist die Art und Weise, in der der Benutzer mit dem System interagiert, hauptsächlich, wenn nicht ausschließlich, mittels Spracheingabe konzipiert. Daher kann das System, das potenziell alle Äußerungen aufnimmt, die in der Umgebung auftreten, einschließlich denjenigen, die nicht an das System gerichtet sind, eine Art von Erkennung aufweisen, wann irgendeine gegebene Äußerung an das System gerichtet ist, anstatt im Gegensatz dazu z. B. an eine in der Umgebung anwesende Person gerichtet zu sein. Eine Art, das zu erreichen, ist, ein Hotword zu verwenden, das anhand der Übereinstimmung unter den Benutzern in der Umgebung als ein vorbestimmtes Wort reserviert ist, das ausgesprochen wird, um die Aufmerksamkeit des Systems aufzurufen. Bei einer beispielhaften Umgebung ist das Hotword, das verwendet wird, um die Aufmerksamkeit des Systems aufzurufen, die Worte „OK Computer“. Daher wird jedes Mal, wenn die Worte „OK Computer“ gesprochen werden, dies durch ein Mikrofon aufgenommen, zum System transportiert, das Spracherkennungstechniken ausführen oder Audiomerkmale und neuronale Netze verwenden kann, um zu bestimmen, ob das Hotword gesprochen wurde, und, wenn dies so ist, auf einen folgenden Befehl oder eine Abfrage wartet. Dementsprechend weisen an das System gerichtete Äußerungen die allgemeine Form [HOTWORD] [ABFRAGE] auf, wobei „HOTWORD“ in diesem Beispiel „OK Computer“ und „ABFRAGE“ jede Frage, Befehl, Aussage oder andere Anforderung sein kann, die Sprache sein kann, die vom System erkannt, geparst und behandelt wurde, entweder allein oder in Verbindung mit dem Server über das Netzwerk.
-
Innovative Aspekte des hierin beschriebenen Gegenstandes betreffen Computerprogrammprodukte, Systeme und Ausrüstung einschließlich Computerprogrammen, die auf einem Computerspeichermedium codiert sind, zur Hotword-Detektion auf mehreren Vorrichtungen. Verschiedene Implementierungen sind derart konfiguriert, dass die Verwendung von Computerressourcen reduziert ist, wenn sich mehr als eine Vorrichtung nahe einem Benutzer befindet, wenn der Benutzer ein Hotword spricht.
-
Ein innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstandes kann in Verfahren verkörpert sein, welche die Aktionen umfassen, Empfangen durch eine Computervorrichtung, von Audiodaten, die einer Äußerung entsprechen; Bestimmen, dass die Äußerung wahrscheinlich ein bestimmtes vordefiniertes Hotword umfasst; als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, Senden, an einen Server, (i) von Daten, die anzeigen, dass die Computervorrichtung wahrscheinlich das bestimmte vordefinierte Hotword empfangen hat, (ii) von Daten, welche die Computervorrichtung identifizieren, und (iii) von Daten, die eine Gruppe von in der Nähe befindlichen Computervorrichtungen identifizieren, welche die Computervorrichtung umfasst; Empfangen eines Befehls vom Server, Spracherkennungsverarbeitung an den Audiodaten zu beginnen; und als Reaktion auf das Empfangen des Befehls, Spracherkennungsverarbeitung an den Audiodaten zu beginnen, Verarbeiten von mindestens einem Abschnitt der Audiodaten unter Verwendung eines automatisierten Spracherkenners auf der Computervorrichtung.
-
Diese und andere Ausführungsformen können jeweils optional ein oder mehrere von den folgenden Merkmalen umfassen. Die Aktionen umfassen weiter das Empfangen, von einer zusätzlichen Computervorrichtung, von Daten, die anzeigen, dass die zusätzliche Computervorrichtung konfiguriert ist, auf ein bestimmtes vordefiniertes Hotword anzusprechen; Senden, an die zusätzliche Computervorrichtung, der Daten, die anzeigen, dass die Computervorrichtung konfiguriert ist, auf ein bestimmtes vordefiniertes Hotword anzusprechen; Bestimmen eines Gruppenbezeichners für eine Gruppe von Computervorrichtungen, welche die Computervorrichtung und die zusätzliche Computervorrichtung umfasst; und Senden, an die zusätzliche Computervorrichtung, des Gruppenbezeichners. Die zusätzliche Computervorrichtung ist eine Computervorrichtung, die sich in der Nähe der Computervorrichtung befindet. Die Daten, welche die Gruppe von in der Nähe befindlichen Computervorrichtungen identifizieren, welche die Computervorrichtung umfasst, sind den Gruppenbezeichner. Die Aktionen umfassen weiter das Empfangen, durch die Computervorrichtung, zusätzlicher Audiodaten, die einer zusätzlichen Äußerung entsprechen; das Bestimmen, dass die zusätzliche Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst; als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, Senden, an den Server, (i) der Daten, die anzeigen, dass die Computervorrichtung wahrscheinlich das bestimmte vordefinierte Hotword empfangen hat, (ii) der Daten, welche die Computervorrichtung identifizieren, und (iii) der Daten, welche die Gruppe von in der Nähe befindlichen Computervorrichtungen identifiziert, welche die Computervorrichtung umfasst; das Empfangen, von dem Server, eines Befehls, Spracherkennungsverarbeitung an den Audiodaten nicht zu beginnen; und als Reaktion auf das Empfangen des Befehls, Spracherkennungsverarbeitung an den Audiodaten nicht zu beginnen, das Verarbeiten der Audiodaten unter Verwendung des automatisierten Spracherkenners auf der Computervorrichtung einzustellen.
-
Die Aktionen umfassen weiter das Bestimmen einer Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten; und als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, Senden, an den Server, der Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten. Die Aktion des Bestimmens einer Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten umfasst das Bestimmen einer Leistung der Audiodaten, die mit dem bestimmten vordefinierten Hotword verknüpft sind, und das Bestimmen einer Leistung von Audiodaten, die mit dem bestimmten vordefinierten Hotword nicht verknüpft sind, und welche die Computervorrichtung vor den Audiodaten empfangen hat, die mit dem bestimmten vordefinierten Hotword verknüpft sind. Die Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten basiert auf der Leistung der Audiodaten, die mit dem bestimmten vordefinierten Hotword verknüpft sind, und der Leistung der Audiodaten, die mit dem bestimmten vordefinierten Hotword nicht verknüpft sind, und welche die Computervorrichtung vor den Audiodaten empfangen hat, die mit dem bestimmten vordefinierten Hotword verknüpft sind. Die Aktionen umfassen weiter das Bestimmen einer Konfidenzpunktzahl, die eine Wahrscheinlichkeit reflektiert, dass die mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten dem bestimmten vordefinierten Hotword entsprechen; und als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, das Senden, an den Server, der Konfidenzpunktzahl.
-
Die Aktion des Bestimmens einer Konfidenzpunktzahl, die eine Wahrscheinlichkeit reflektiert, dass die mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten dem bestimmten vordefinierten Hotword entsprechen, umfasst das Bestimmen von Audiomerkmalen von den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten; und basierend auf den Audiomerkmalen, das Bestimmen der Konfidenzpunktzahl unter Verwendung eines neuronalen Netzwerks. Die Aktionen umfassen weiter, als Reaktion auf das Bestimmen, das die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, das Senden, an den Server, von Daten, die einen Ort der Computervorrichtung anzeigen. Die Aktionen umfassen weiter, als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, das Senden, an den Server, von Daten, die eine abgelaufene Zeit seit einer vorhergehenden Verwendung der Computervorrichtung anzeigen. Die Aktionen umfassen weiter, als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, das Senden, an den Server, von Daten, die eine durch die Computervorrichtung zuvor ausgeführte Aktion anzeigen.
-
Andere Ausführungsformen dieses Aspekts umfassen entsprechende Systeme, Vorrichtungen und Computerprogramme, die auf Computerspeichervorrichtungen aufgezeichnet sind, von denen jedes konfiguriert ist, die Operationen der Verfahren auszuführen.
-
Ein weiterer innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstandes kann in Verfahren verkörpert werden, welche die Aktionen des Empfangens, durch einen Server und von einer Computervorrichtung, (i) von Daten, die anzeigen, dass die Computervorrichtung wahrscheinlich ein bestimmtes vordefiniertes Hotword empfangen hat, (ii) von Daten, welche die Computervorrichtung identifizieren, und (iii) von Daten, die eine Gruppe von Computervorrichtungen identifiziert, die der Computervorrichtung nahe sind, und welche die Computervorrichtung umfasst; das Zugreifen auf Kontextdaten, die einen Kontext der Computervorrichtung anzeigen; basierend auf den Kontextdaten der Computervorrichtung, das Bestimmen, dass die Computervorrichtung Spracherkennungsverarbeitung an mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt; und das Senden, zur Computervorrichtung, eines Befehls, Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten zu beginnen.
-
Diese und andere Ausführungsformen können jeweils optional ein oder mehrere von den folgenden Merkmalen umfassen. Die Aktionen umfassen weiter das Empfangen, durch einen Server und von einer zusätzlichen Computervorrichtung, (i) von Daten, die anzeigen, dass die zusätzliche Computervorrichtung wahrscheinlich das bestimmte vordefinierte Hotword empfangen hat, (ii) von Daten, welche die zusätzliche Computervorrichtung identifizieren, und (iii) von Daten, welche die Gruppe von Computervorrichtungen identifizieren, die der zusätzlichen Computervorrichtung nahe sind, und welche die Computervorrichtung und die zusätzliche Computervorrichtung umfasst; das Zugreifen auf Kontextdaten, die einen Kontext der zusätzlichen Computervorrichtung anzeigen; basierend auf den Kontextdaten der Computervorrichtung und den Kontextdaten der zusätzlichen Computervorrichtung, das Bestimmen, dass die zusätzliche Computervorrichtung Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten nicht beginnt; und das Senden, an die zusätzliche Computervorrichtung, eines Befehls, Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten nicht zu beginnen.
-
Die Aktionen umfassen weiter das Empfangen, durch einen Server und von einer ersten Computervorrichtung, von Daten, die anzeigen, dass die erste Computervorrichtung konfiguriert ist, auf ein bestimmtes vordefiniertes Hotword anzusprechen; das Empfangen, durch einen Server und von einer zweiten Computervorrichtung, von Daten, die anzeigen, dass die zweite Computervorrichtung konfiguriert ist, auf das bestimmte vordefinierten Hotword anzusprechen; das Bestimmen, durch den Server, eines Gruppenbezeichners für eine Gruppe von Computervorrichtungen, welche die erste Computervorrichtung und die zweite Computervorrichtung umfasst; und das Senden, an die erste Computervorrichtung und die zweite Computervorrichtung, des Gruppenbezeichners. Die Daten, welche die Gruppe von Computervorrichtungen identifizieren, die sich nahe der Computervorrichtung befinden, und welche die Computervorrichtung umfasst, sind den Gruppenbezeichner. Die mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten sind Audiodaten, die einer Äußerung entsprechen. Die Kontextdaten, die einen Kontext der Computervorrichtung anzeigen, umfassen Daten, die eine von mehreren Fähigkeiten der Computervorrichtung anzeigen.
-
Die Aktion des Bestimmens, dass die Computervorrichtung Spracherkennungsverarbeitung an mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt, basiert auf der einen von mehreren Fähigkeiten der Computervorrichtung. Die Kontextdaten, die einen Kontext der Computervorrichtung anzeigen, umfassen Daten, die eine abgelaufene Zeit seit einer vorhergehenden Verwendung der Computervorrichtung anzeigen. Die Aktion des Bestimmens, dass die Computervorrichtung Spracherkennungsverarbeitung an mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt, basiert auf der abgelaufenen Zeit seit der vorhergehenden Verwendung der Computervorrichtung. Die Kontextdaten, die einen Kontext der Computervorrichtung anzeigen, umfassen Daten, die eine durch die Computervorrichtung zuvor ausgeführte Aktion anzeigen. Die Aktion des Bestimmens, dass die Computervorrichtung Spracherkennungsverarbeitung an mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt, basiert auf der durch die Computervorrichtung zuvor ausgeführten Aktion. Die Aktionen umfassen weiter das Empfangen, von der Computervorrichtung, von Daten die eine Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten anzeigen. Die Aktion des Bestimmens, dass die Computervorrichtung Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt, basiert weiter auf der Lautstärke der mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten.
-
Die Aktionen umfassen weiter das Empfangen, durch den Server und von der Computervorrichtung, von Daten, die einen Ort der Computervorrichtung anzeigen. Die Aktion des Bestimmens, dass die Computervorrichtung Spracherkennungsverarbeitung an mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten beginnt, basiert weiter auf dem Ort der Computervorrichtung. Die Aktionen umfassen weiter das Empfangen, von der Computervorrichtung, von Daten, die eine Aktion anzeigen, die mit den Audiodaten verknüpft sind, und von Daten, die Aktionen anzeigen, die durch die Computervorrichtung innerhalb eines bestimmten Zeitraums nach dem Empfangen des Befehls ausgeführt werden, Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten zu beginnen; und das Aktualisieren der Kontextdaten der Computervorrichtung basierend auf den Daten, welche die Aktion anzeigen, die mit den Audiodaten verknüpft ist, und den Daten, welche die Aktionen anzeigen, die durch die Computervorrichtung innerhalb des bestimmten Zeitraums nach dem Empfangen des Befehls ausgeführt werden, Spracherkennungsverarbeitung an den mit dem bestimmten vordefinierten Hotword verknüpften Audiodaten zu beginnen.
-
Andere Ausführungsformen dieses Aspekts umfassen entsprechende Systeme, Vorrichtungen und Computerprogramme, die auf Computerspeichervorrichtungen aufgezeichnet sind, von denen jede konfiguriert ist, die Operationen der Verfahren auszuführen.
-
Bestimmte Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen. Ein Benutzer kann ein Hotword in einem Raum mit mehreren Vorrichtungen sprechen, die fähig sind, auf Hotwords anzusprechen, und nur eine Vorrichtung wird ansprechen. Der Benutzer kann ein Hotword sprechen und nur die naheste Vorrichtung wird auf das Hotword ansprechen, selbst wenn andere Vorrichtungen das Hotword hören. Das System, das die Vorrichtung auswählt, das auf das Hotword ansprechen soll, kann eine geeignete Vorrichtung basierend auf dem Kontext der Vorrichtung und anderen in der Nähe befindlich Vorrichtungen auswählen.
-
Die Details von einer oder mehreren Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstandes sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Diagramm eines beispielhaften Systems zur Hotword-Detektion.
-
2 ist ein Ablaufdiagramm eines beispielhaften Prozesses zur Hotword-Detektion.
-
3 ist ein Ablaufdiagramm eines beispielhaften Prozesses zur Hotword-Detektion.
-
4 ist ein Beispiel einer Computervorrichtung und einer mobilen Computervorrichtung.
-
Gleiche Bezugsnummern und Bezeichnungen in den verschiedenen Zeichnungen verweisen auf ähnliche Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Da Systeme, die konfiguriert sind, auf Hotwords anzusprechen, häufiger anzutreffen sind, steigt die Wahrscheinlichkeit, dass sich mehr als eines nahe einem Benutzer befindet, wenn der Benutzer das Hotword spricht. Beispielsweise kann ein Benutzer im Wohnzimmer sein und fernsehen. Ein Tablet kann auf dem Tisch liegen und ein Telefon kann sich auf der Couch neben dem Benutzer befinden. Gemäß verschiedener Ausführungsformen, wenn das Telefon, das Tablet und der Fernseher ein Hotword detektiert, kommunizieren diese jeweils mit einem Server und benachrichtigen den Server, dass die Vorrichtung ein Hotword detektiert hat. Mit jeder an den Server gesendeten Benachrichtigung sendet jede Vorrichtung einen Gruppenbezeichner und die Vorrichtungsart. Der Gruppenbezeichner ist Daten, die eine Vorrichtungsgruppe identifizieren, von der nur eine Vorrichtung auf ein Hotword ansprechen sollte. Beispielsweise können Vorrichtungen im gleichen Raum einen Gruppenbezeichner teilen.
-
Wenn der Server Daten von jedem von dem Telefon, Tablet und Fernseher empfängt, vergleicht der Server die Kontextdaten jeder Vorrichtung, um zu bestimmen, welche auf das Hotword ansprechen sollte. Die Kontextdaten können die Fähigkeiten der Vorrichtungen, die Zeit, seit jede Vorrichtung zuvor verwendet wurde, die vorhergehend ausgeführte Aktion, der Ort der Vorrichtung und die Lautstärke des detektierten Hotwords umfassen. Basierend auf diesen Kontextdaten wählt der Server eine der Vorrichtungen zum Ansprechen auf das Hotword aus. Beispielsweise kann der Server das Tablet zum Ansprechen auf das Hotword basierend auf den Vorrichtungen auswählen, die sich im Zuhause des Benutzers befinden, und auf der Tatsache, dass der Benutzer meistens das Tablet verwendet, während er zu Zuhause ist. Der Server stellt dann einen Befehl an das Tablet bereit, um die Sprache des Benutzers zu verarbeiten. Das Tablet verarbeitet den Befehl „Musik abspielen“ und beginnt Musik abzuspielen. Der Server stellt auch Befehle an den Fernseher und das Telefon bereit, die Sprache des Benutzers nicht zu verarbeiten. Das Telefon kehrt zu seinem vorhergehenden Zustand zurück und der Fernseher fährt fort, die Fernsehshow ohne Unterbrechung abzuspielen.
-
Auf diese Weise wird die Verwendung von Computerressourcen reduziert, wenn ein Benutzer einen Sprachbefehl an das System richtet. Anstatt, dass jede Vorrichtung unabhängig voneinander auf den Sprachbefehl anspricht, wird das System in der hierin näher beschriebenen Art und Weise konfiguriert, sodass nur eine der Vorrichtungen die angeforderte Aktion als Reaktion auf den Sprachbefehl annimmt.
-
1 veranschaulicht ein beispielhaftes System 100 zur Hotword-Detektion. Kurz gesagt, und wie nachfolgend ausführlicher beschrieben, spricht ein Benutzer 102 eine Äußerung 104, die durch Mikrofone von Computervorrichtungen 106 und 108 detektiert wird. Die Computervorrichtungen 106 und 108 verarbeiten die Audiodaten der Äußerung 104 und bestimmen, ob die Äußerung 104 ein Hotword umfasst. Vor dem Ausführen von Spracherkennung an der Äußerung 104 kommunizieren die Computervorrichtungen 106 und 108 mit dem Server 110. Der Server 110 verwendet Kontextdaten sowohl für die Computervorrichtung 106 als auch für die Computervorrichtung 108, um eine der Computervorrichtungen 106 oder 108 auszuwählen und Spracherkennung an den Audiodaten zu beginnen, die das Hotword umfassen. Basierend auf den Kontextdaten wählt der Server 110 die Computervorrichtung 106 aus und sendet Befehle an die Computervorrichtung 106, eine Spracherkennung an den Audiodaten zu beginnen. Der Server 110 sendet auch Befehle an die Computervorrichtung 108, Spracherkennung an den Audiodaten nicht zu beginnen.
-
Im gezeigten Beispiel in 1 befindet sich der Benutzer 102 in einem Raum sowohl mit der Computervorrichtung 106, wie beispielsweise einem Mobiltelefon, als auch mit Computervorrichtung 108, wie beispielsweise einem Fernseher. Wenn der Benutzer 102 einen Sprachbefehl spricht, empfangen sowohl das Telefon 106 als auch der Fernseher 108 durch deren entsprechenden Mikrofone die Audiodaten, die dem Sprachbefehl des Benutzers entsprechen. Sowohl das Telefon 106 als auch der Fernseher 108 sind konfiguriert, auf Sprachbefehle anzusprechen, aber es ist unwahrscheinlich, dass, wenn der Benutzer 102 „OK Computer, Musik abspielen“ spricht, der Benutzer 102 möchte, dass sowohl das Telefon 106 als auch der Fernseher 108 Musik abzuspielen beginnt. Um die Situation zu vermeiden, dass beide Vorrichtungen auf einen Sprachbefehl ansprechen, können die Computervorrichtungen 106 und 108 mit dem Identifizieren anderer Vorrichtungen in der näheren Umgebung beginnen, die konfiguriert sind, auf Sprachbefehle anzusprechen, die ein Hotword umfassen. Die nähere Umgebung kann Vorrichtungen umfassen, die sich im gleichen lokalen Netzwerk befinden, Vorrichtungen, die durch Signale für kurze Reichweiten kommunizieren können, oder Vorrichtungen, die sich in einem gleichen Raum befinden.
-
Bei einigen Implementierungen befinden sich das Telefon 106 und der Fernseher 108 im gleichen lokalen Netzwerk, wie beispielsweise einem drahtlosen Heimnetzwerk. Das Telefon 106 oder der Fernseher 108, kommuniziert mit den anderen Vorrichtungen im Netzwerk und identifiziert die Vorrichtungen, die konfiguriert sind, auf Sprachbefehle anzusprechen, die ein Hotword umfassen. Sobald das Telefon 106 den Fernseher 108 identifiziert und bestätigt, dass der Fernseher 108 auch konfiguriert ist, auf ein Hotword anzusprechen, verhandeln das Telefon 106 und der Fernseher 108 in Stufe A einen Gruppenbezeichner zur Verwendung, wenn sie den Server 110 benachrichtigen, dass entweder das Telefon 106 oder der Fernseher 108 ein Hotword detektiert hat. Beispielsweise kann den Gruppenbezeichner die E-Mail-Adresse, user@example.com von dem Benutzer sein, der sich bei einer oder beiden Vorrichtungen angemeldet hat. Das Telefon 106 speichert user@example.com als den Gruppenbezeichner 112 und der Fernseher 108 speichert user@example.com als den Gruppenbezeichner 114. Bei einigen Implementierungen geschieht diese Verhandlung periodisch, um sicherzustellen, dass eine Vorrichtung in der Nähe befindliche Vorrichtungen identifiziert, die konfiguriert sind, auf ein Hotword anzusprechen. Beispielsweise kann die Verhandlung einmal pro Stunde geschehen. Alternativ kann eine Vorrichtung nach in der Nähe befindlichen Vorrichtungen suchen, wenn sich die Vorrichtung mindestens einen Schwellenabstand wie beispielsweise hundert Meter bewegt, basierend auf Ortsdaten, die von der Vorrichtung empfangen wurden.
-
Bei einigen Implementierungen befinden sich das Telefon 106 und der Fernseher 108 in unterschiedlichen Netzwerken. Beispielsweise befindet sich das Telefon 106 in einem Mobilfunknetz und der Fernseher 108 in einem lokalen drahtlosen Netzwerk. In diesem Fall können das Telefon 106 und der Fernseher 108 in der Lage sein, durch lokalen Nahbereichsfunk zu kommunizieren und einen Gruppenbezeichner zu verhandeln. Wenn das Telefon 106 und der Fernseher 108 unfähig sind, zu kommunizieren, dann kann jede Vorrichtung einen Gruppenbezeichner auswählen, das dem Benutzer entspricht, der bei der Vorrichtung angemeldet ist. Wenn der Benutzer 102 beispielsweise sowohl am Telefon 106 als auch am Fernseher 108 angemeldet ist, dann können beide Vorrichtungen den Gruppenbezeichner user@example.com auswählen.
-
Bei Stufe B spricht der Benutzer 102 die Äußerung 104 „OK Computer, Musik abspielen“. Die Äußerung 104 umfasst sowohl ein Hotword 116 „OK Computer“ als auch einen Sprachbefehl 118 „Musik abspielen“. Da sich der Benutzer 102 nahe genug am Telefon 106 und dem Fernseher 108 befindet, empfangen sowohl das Telefon 106 als auch der Fernseher 108 durch ihre entsprechenden Mikrofone die Audiodaten, die der Äußerung 102 entsprechen.
-
Bei Stufe B1 empfängt das Telefon 106 die Audiodaten, die der Äußerung 102 entsprechen, und verarbeitet diese. Das Telefon 106 umfasst einen Puffer 120. Der Puffer 120 speichert das gegenwärtige Audio, das durch das Mikrofon des Telefons 106 empfangen wurde. Beispielsweise speichert der Puffer 120 die vorhergehenden fünf Sekunden an Audiodaten. Der Hotworder 122 analysiert kontinuierlich die Audiodaten, die im Puffer 120 gespeichert sind. Der Hotworder 122 berechnet eine Hotword-Konfidenzpunktzahl, welche die Wahrscheinlichkeit reflektiert, dass gegenwärtige Audiodaten im Puffer 120 ein Hotword umfassen. Um die Hotword-Konfidenzpunktzahl zu berechnen, kann der Hotworder 122 Audiomerkmale von den Audiodaten wie Filterbankenergien oder Mel-Frequenz-Cepstrum-Koeffizienten extrahieren. Der Hotworder 122 kann Einstufungsfenster verwenden, um diese Audiomerkmale beispielsweise unter Verwendung einer Support Vector Machine oder eines neuronalen Netzwerks zu verarbeiten. Bei einigen Implementierungen führt der Hotworder 122 keine Spracherkennung aus, um eine Hotword-Konfidenzpunktzahl zu bestimmen.
-
Zu annähernd der gleichen Zeit, zu der das Telefon 106 die Äußerung 104 verarbeitet, und bei Stufe B2, verarbeitet der Fernseher 108 Audiodaten, die durch sein Mikrofon empfangen wurden. Der Fernseher 108 umfasst auch einen Puffer 124, der die gegenwärtigen durch das Mikrofon empfangenen Audiodaten speichert. Der Puffer 124 kann beispielsweise die vorhergehenden sieben Sekunden von Audiodaten speichern. Der Hotworder 126 analysiert kontinuierlich die Audiodaten, die im Puffer 124 gespeichert sind. Der Hotworder 126 analysiert kontinuierlich die Audiodaten, die im Puffer 124 gespeichert sind. Der Hotworder 126 berechnet eine Hotword-Konfidenzpunktzahl, welche die Wahrscheinlichkeit reflektiert, dass gegenwärtige Audiodaten im Puffer 124 ein Hotword umfassen. Um die Hotword-Konfidenzpunktzahl zu berechnen, kann der Hotworder 126 Audiomerkmale von den Audiodaten wie Filterbankenergien oder Mel-Frequenz-Cepstrum-Koeffizienten extrahieren. Der Hotworder 126 kann Einstufungsfenster verwenden, um diese Audiomerkmale beispielsweise unter Verwendung einer Support Vector Machine oder eines neuronalen Netzwerks zu verarbeiten. Bei einigen Implementierungen führt der Hotworder 126 keine Spracherkennung aus, um eine Hotword-Konfidenzpunktzahl zu bestimmen.
-
Während das Telefon 106 eine Hotword-Konfidenzpunktzahl für die Audiodaten im Puffer 120 berechnet, vergleicht das Telefon 106 die Hotword-Konfidenzpunktzahl mit einem Hotword-Konfidenzpunktzahlschwellenwert. Wenn die Hotword-Konfidenzpunktzahl den Hotword-Konfidenzpunktzahlschwellenwert erfüllt, dann schreitet das Telefon 106 zu Stufe C1 fort. Wenn die Hotword-Konfidenzpunktzahl beispielsweise 0,8 ist und der Schwellenwert 0,7 ist, dann schreitet das Telefon 106 zu Stufe C1 fort. Der Hotword-Konfidenzpunktzahlschwellenwert stellt eine Hotword-Konfidenzpunktzahl dar, die wahrscheinlich dem Detektieren eines Hotwords entspricht. Bei Fällen, bei denen ein Benutzer „OK, Computer“ deutlich spricht und sich nahe der Empfangsvorrichtung befindet, kann die Hotword-Konfidenzpunktzahl 0,9 sein. Hotword-Konfidenzpunktzahlen können sich verringern, wenn der Lautsprecher von den Vorrichtungen weiter entfernt ist oder weniger deutlich spricht. In Fällen, bei denen ein Benutzer „Alice anrufen“ spricht, kann die Hotword-Konfidenzpunktzahl 0,1 sein.
-
In Stufe C1 erzeugt das Telefon 106 ein Datenpaket und sendet es an den Server 110. Das Datenpaket kann Daten umfassen, die anzeigen, dass das Telefon 106 ein Hotword, einen Datenbezeichner 128 für das Telefon 106 und den Gruppenbezeichner 112 detektiert hat. Die Daten, die anzeigen, dass das Telefon 106 ein Hotword detektiert hat, können ein Flag umfassen, das anzeigt, dass das Telefon 106 ein Hotword detektiert hat, oder können die Hotword-Konfidenzpunktzahl oder beides umfassen. Der Datenbezeichner 128 für das Telefon 106 kann jeder eindeutige Bezeichner für das Telefon 106, wie die MAC-Adresse, die IMEI-Nummer, ein vom Benutzer gegebener Name, die Telefonnummer oder die Seriennummer und das Modell, sein. Bei einigen Implementierungen umfasst der Datenbezeichner 128 mindestens das Modell des Telefons 106.
-
Während ungefähr der gleichen Zeit, zu der das Telefon 106 die Hotword-Konfidenzpunktzahl berechnet und an den Server 110 das Datenpaket sendet, das Daten umfasst, die anzeigen, dass das Telefon 106 ein Hotword 116, einen Datenbezeichner 128 für das Telefon 106 und den Gruppenbezeichner 112 detektiert hat, berechnet der Fernseher 108 auch eine Hotword-Konfidenzpunktzahl für die Audiodaten im Puffer 124 und das Telefon 106 vergleicht die Hotword-Konfidenzpunktzahl mit einem Hotword-Konfidenzpunktzahlschwellenwert. Wenn die Hotword-Konfidenzpunktzahl den Hotword-Konfidenzpunktzahlschwellenwert erfüllt, dann schreitet der Fernseher 108 zu Stufe C2 fort. Wenn die Hotword-Konfidenzpunktzahl beispielsweise 0,75 ist und der Hotword-Konfidenzpunktzahlschwellenwert 0,7 ist, dann schreitet der Fernseher 108 zu Stufe C2 fort. Die Hotword-Konfidenzpunktzahl für den Fernseher 108 kann niedriger als die Hotword-Konfidenzpunktzahl für das Telefon 106 sein, da sich der Benutzer 102 vom Fernseher 108 weiter entfernt befindet oder der Fernseher gegenwärtig eine Fernsehshow mit Tönen anzeigt, die das Mikrofon dabei stören, die Sprache des Benutzers zu detektieren.
-
In Stufe C2 und ähnlich zu Stufe C1 erzeugt der Fernseher 108 ein Datenpaket und sendet es an den Server 110, ein Datenpaket, das Daten umfassen kann, die anzeigen, dass der Fernseher 108 ein Hotword 116, einen Datenbezeichner 130 für den Fernseher 108 und den Gruppenbezeichner 114 detektiert hat. Die Daten, die anzeigen, dass der Fernseher 108 ein Hotword detektiert hat, können ein Flag umfassen, das anzeigt, dass der Fernseher 108 ein Hotword detektiert hat, oder können die Hotword-Konfidenzpunktzahl oder beides umfassen. Der Datenbezeichner 130 für den Fernseher 108 kann jeder eindeutige Bezeichner für den Fernseher 108, wie die MAC-Adresse, ein vom Benutzer gegebener Name oder die Seriennummer und das Modell, sein. Bei einigen Implementierungen umfasst der Datenbezeichner 130 mindestens das Modell des Fernsehers 108.
-
Bei einigen Implementierungen und wie veranschaulicht in Stufe C1' sendet das Telefon 106 zusätzliche Daten an den Server. Die zusätzlichen Daten können Daten umfassen, die eine verstrichene Zeit anzeigen, seit das Telefon 106 zuvor verwendet wurde und wie das Telefon 106 verwendet wurde. Beispielsweise kann der Benutzer 102 zuvor das Telefon 106 verwendet haben, um eine Kurznachricht zu senden, zwei Minuten, bevor das Telefon 106 das Hotword 116 detektiert. Das Telefon 106 kann eine Historie der vorausgehenden Verwendung des Telefons 106 in den Verwendungsdaten 132 speichern. Jeder Eintrag in den Verwendungsdaten 132 kann jede Kombination aus einer verwendeten Anwendung, einer Aktion, die durch das Telefon 106 ausgeführt wird, einer Aktion, die durch Benutzer 102 ausgeführt wird, und einen Zeitstempel umfassen. Bei einigen Implementierungen kann das Telefon 106 zusätzliche Daten senden, die mit mehr als einer vorhergehenden Aktion, wie beispielsweise den vorhergehenden drei Aktionen, in Zusammenhang stehen.
-
Bei einigen Implementierungen und in Stufe C1' sendet das Telefon 106 Daten, die einen aktuellen Zustand des Telefons 106 anzeigen, als das Telefon 106 das Hotword 116 detektiert hat. Der aktuelle Zustand kann beispielsweise sein, dass das Telefon 106 schläft, das Telefon 106 wach ist, wobei der Bildschirm aus oder abgedunkelt ist, oder das Telefon 106 ist wach und der Benutzer 102 verwendet die E-Mail-Anwendung des Telefons 106. In dem gezeigten Beispiel in 1 ist das Telefon 106 gegenwärtig in einem Schlafzustand, wenn es das Hotword 116 detektiert.
-
Bei einigen Implementierungen und wie veranschaulicht in Stufe C1' sendet das Telefon 106 Daten an den Server 110, welche die Lautstärke des detektierten Hotwords 116 anzeigen. Der Lautstärkepunktezähler 134 greift auf den Puffer 120 zu und misst die Lautstärke des Abschnitts von Audiodaten, die dem Hotword 116 entsprechen. Bei einigen Implementierungen berechnet der Lautstärkepunktezähler 134 die Leistung oder den Effektivwert der Audiodaten, die dem Hotword 116 entsprechen. Beispielsweise kann der Lautstärkepunktezähler 134 die Lautstärke als fünfzig Dezibel berechnen. Bei einigen Implementierungen normalisiert der Lautstärkepunktezähler 134 die Leistung oder den Effektivwert der Audiodaten, die dem Hotword 116 entsprechen, durch Subtrahieren der Leistung oder des Effektivwerts der Audiodaten im Puffer 120, die dem Hotword 116 nicht entsprechen. Die Audiodaten im Puffer 120, die dem Hotword 116 nicht entsprechen, können dem Umgebungsgeräusch um das Telefon 108 herum entsprechen. Beispielsweise berechnet der Lautstärkepunktezähler 134 die Leistung oder den Effektivwert von ungefähr einer Sekunde von Audiodaten vor dem Hotword 116 als dreißig Dezibel. Daher beträgt der Lautstärkeunterschied zehn Dezibel. Das Telefon 106 kann dann die Lautstärkedaten an den Server 110 senden. Bei einigen Implementierungen kann das Telefon 106 die Lautstärke der gesamten Äußerung 104 oder von nur dem Sprachbefehl 116 berechnen. Das Telefon 106 kann dann Daten, welche die Lautstärke der gesamten Äußerung 104 oder von nur dem Sprachbefehl 116 anzeigen, an den Server 110 senden.
-
Bei einigen Implementierungen und wie veranschaulicht in Stufe C1' sendet das Telefon 106 die Hotword-Konfidenzpunktzahl an den Server 110. Beispielsweise berechnet das Telefon 106 eine Hotword-Konfidenzpunktzahl von 0,8 für das Hotword 116 und sendet die Punktzahl an den Server 110. Bei einigen Implementierungen sendet das Telefon 106 Standortdaten an den Server 110. Die GPS-Einheit am Telefon 106 kann beispielsweise jede Kombination aus geografischer Lage, geografischer Geschwindigkeit und geografischer Bewegung detektieren und das Telefon 106 kann diesen geografischen Ort, diese geografische Geschwindigkeit und geografische Bewegung an den Server 110 senden. Als ein weiteres Beispiel kann das Telefon 106 Triangulation verwenden, um einen geografischen Ort zu bestimmen. Bei einigen Implementierungen kann der Spracherkenner 136 des Telefons 106 Spracherkennung an den Audiodaten ausführen, die im Puffer 120 gespeichert sind, einschließlich der Audiodaten, die dem Hotword 116 oder Sprachbefehl 118 oder beiden entsprechen. Der Spracherkenner 136 kann eine Spracherkennungskonfidenzpunktzahl berechnen und die Spracherkennungskonfidenzpunktzahl an den Server 110 senden. Die Spracherkennungskonfidenzpunktzahl kann die Wahrscheinlichkeit reflektieren, dass die Transkription, die durch den Spracherkenner 136 erzeugt wurde, korrekt ist. Beispielsweise kann der Spracherkenner 136 eine Spracherkennungskonfidenzpunktzahl von 0,7 berechnen und die Punktzahl von 0,7 an den Server 110 senden. Bei einigen Implementierungen sendet das Telefon 106 die Transkription der Äußerung 104 oder nur einen Abschnitt der Äußerung 104, wie beispielsweise das Hotword 116 oder den Sprachbefehl 118, an den Server 110. Beispielsweise transkribiert der Spracherkenner 136 den Sprachbefehl 118 und sendet „Musik abspielen“ an den Server 110. Bei einigen Implementierungen sendet das Telefon 106 auch Daten, welche die Anwendungen anzeigen, die auf dem Telefon 106 installiert sind. Wenn auf dem Telefon 106 beispielsweise die Anwendung „Instant Movies” und „Love Music“ installiert sind, dann kann das Telefon 106 Daten senden, die „Instant Movies” und „Love Music“ identifizieren. Bei einigen Implementierungen kann das Telefon 106 viele installierte Anwendungen aufweisen. In diesem Fall kann das Telefon 106 nur Daten senden, welche die am meisten verwendeten Anwendungen identifizieren, wie beispielsweise die zehn am häufigsten verwendeten Anwendungen.
-
Bei einigen Implementierungen und wie veranschaulicht in Stufe C2' sendet der Fernseher 108 zusätzliche Daten an den Server. Der Fernseher 108 sendet zusätzliche Daten, die den vorstehend beschriebenen zusätzlichen Daten in Bezug auf das Telefon 106 in Stufe C1' ähnlich sind. Der Fernseher 108 kann Verwendungsdaten 138, die mit vorhergehenden Verwendungen des Fernsehers 108 in Zusammenhang stehen, speichern und kann die Verwendungsdaten an den Server 110 senden. Beispielsweise kann der Fernseher 108 Daten senden, die anzeigen, dass der Benutzer 102 zuvor vor zwei Stunden die Anwendung „Instant Movies“ verwendet hat, um „Love Story“ anzusehen. Der Fernseher 108 kann Daten senden, die seinen aktuellen Zustand anzeigen. Beispielsweise kann der Fernseher 108 Daten senden, die anzeigen, dass der Fernseher 108 gegenwärtig den World News-Kanal zeigt und dies seit den letzten fünfzehn Minuten getan hat.
-
Der Fernseher 108 kann die Lautstärke der Äußerung 104, das Hotword 116 oder den Sprachbefehl 118 berechnen. Der Lautstärkepunktezähler 134 kann die Lautstärke basierend auf der Leistung oder dem Effektivwert der entsprechenden Audiodaten berechnen. Der Lautstärkepunktezähler 134 kann auch die Leistung oder den Effektivwert der entsprechenden Audiodaten durch Subtrahieren der Leistung oder des Effektivwerts der Audiodaten normalisieren, die im Puffer 124 gespeichert sind und nicht der Äußerung 104 entsprechen. Beispielsweise kann der Lautstärkepunktezähler 134 die Lautstärke des Hotwords 116 als dreißig Dezibel berechnen und die Lautstärke der Audiodaten, die in den zwei Sekunden vor dem Hotword 116 empfangen wurden, als zweiunddreißig Dezibel berechnen. Daher beträgt der Lautstärkewert, der an den Server 110 gesendet wird, zwei Dezibel.
-
Bei einigen Implementierungen sendet der Fernseher 108 eine Hotword-Konfidenzpunktzahl. Der Hotworder 126 kann beispielsweise eine Hotword-Konfidenzpunktzahl von 0,75 berechnen und der Fernseher 108 sendet die Punktzahl von 0,75 an den Server 110. Der Fernseher 108 kann seinen geografische Ort an den Server 110 senden. Der Spracherkenner 142 kann Spracherkennung an den Audiodaten im Puffer 124 ausführen. Der Spracherkenner 142 kann eine Transkription sowie eine Spracherkennungskonfidenzpunktzahl erzeugen. Der Fernseher 108 kann die Transkription oder die Spracherkennungskonfidenzpunktzahl oder beide an den Server 110 senden. Der Fernseher 108 kann Daten senden, welche die Anwendungen anzeigen, die auf dem Fernseher 108 installiert sind, oder die am häufigsten installierten Anwendungen. Beispielsweise kann der Fernseher 108 Daten senden, welche die installierte Anwendung von „Jungle Movies“ und „Social Pictures“ identifizieren.
-
Der Server 110 empfängt anfänglich entweder das Telefon-106-Datenpaket von der Stufe C1 oder das Fernsehdatenpaket von der Stufe C2 abhängig davon, welche Vorrichtung das Datenpaket eher verarbeitet und erzeugt und möglicherweise abhängig von einer Netzwerklatenz. Bei diesem Beispiel empfängt der Server 110 das Telefon-106-Datenpaket zuerst. Nach dem Empfangen des Telefon-106-Datenpakets, greift der Server 110 auf die empfangenen Hotword-Detektionen 144 zu und vergleicht den Gruppenbezeichner des Telefon-106-Datenpakets mit den Gruppenkennzeichendaten und Zeitstempeldaten in den empfangenen Hotword-Detektionen 144. Der Server 110 speichert zuvor empfangene Datenpakete, die als Reaktion auf Hotword-Detektionen empfangen wurden, in den empfangenen Hotword-Detektionen 144. Durch Vergleichen von eingehenden Datenpaketen mit gespeicherten Datenpaketen kann der Server 110 den Vorrichtungsselektor 146 verwenden, um die Vorrichtung auszuwählen, die auf das Hotword ansprechen soll.
-
Bei diesem Beispiel vergleicht der Server 110 die Daten, die vom Telefon 106 empfangen wurden. Der Server 110 durchsucht die empfangenen Hotword-Detektionen 144 und findet keine anderen Hotword-Detektionsdatenpakete, die den Gruppenbezeichner 112 user@example.com umfassen. Ohne andere user@example.com-Datenpakete speichert der Server 110 das Datenpaket zusammen mit einem Zeitstempel, der die Empfangszeit anzeigt, in den empfangenen Hotword-Detektionen 144. Der Server 110 vergleicht anschließend die empfangenen Hotword-Detektionsdatenpakete mit den Datenpaketen, die in den empfangenen Hotword-Detektionen 144 gespeichert sind. Wenn ein Schwellenzeitraum vergangen ist, wie beispielsweise zwei Sekunden, und der Server 110 keine zusätzlichen Datenpakete mit dem Gruppenbezeichner user@example.com empfängt, dann sendet der Server 110 einen Befehl an das Telefon 106, um Spracherkennung an den Audiodaten zu beginnen und auf den Befehl anzusprechen. Nach dem Senden des Befehls an das Telefon 106, um Spracherkennung zu beginnen, entfernt der Server 110 das Datenpaket, das vom Telefon 106 empfangen wurde, aus den empfangenen Hotword-Detektionen 144. Bei einigen Implementierungen kann das Telefon 106 keine in der Nähe befindlichen Vorrichtungen identifizieren und kann in diesem Fall nicht mit dem Server 110 kommunizieren. Stattdessen kann das Telefon 106 Spracherkennung an den Audiodaten beginnen, ohne mit dem Server 110 zu kommunizieren.
-
Innerhalb des Schwellenzeitraums empfängt der Server 110 ein Hotword-Detektionsdatenpaket vom Fernseher 108. Das Datenpaket vom Fernseher umfasst den gleichen Gruppenbezeichner user@example.com. Der Server 110 kann dann den Vorrichtungsselektor 146 verwenden, um eine Vorrichtung auszuwählen und Spracherkennung an den Audiodaten zu beginnen, oder der Server 110 kann im Falle, dass ein anderes Hotword-Detektionsdatenpaket mit dem gleichen Gruppenbezeichner am Server 110 eintrifft, auf einen Schwellenzeitraum warten. Im Beispiel von 1 empfängt der Server 110 Hotword-Detektionsdatenpakete vom Fernseher 108 und vom Telefon 106 und verwendet den Vorrichtungsselektor 146, um eine Vorrichtung auszuwählen.
-
In Stufe D greift der Server 110 auf die Kontextdaten 148 zu und der Vorrichtungsselektor 146 verwendet die Telefonkontextdaten 150 und die Fernsehkontextdaten 152, um eine Vorrichtung auszuwählen und Spracherkennung an den Audiodaten zu beginnen. Der Server 110 kann Kontextdaten erfassen, während der Benutzer 102 das Telefon 106 und den Fernseher 108 verwendet, speziell in Fällen, in denen das Telefon 106 oder der Fernseher 108 auf den Server 110 oder einen Server, der Daten mit dem Server 110 teilt, zugreift. Der Benutzer 102 kann beispielsweise Musik an dem Telefon 106 durch Zugreifen auf einen Musik-Streaming-Dienst auf einem Server in der Cloud 154 abspielen. Der Musik-Streaming-Server kann mit dem Server 110 kommunizieren, der sich auch in der Cloud 154 befindet, und die Daten teilen, auf die das Telefon 106 beim Musik-Streaming-Dienst zugegriffen hat. Der Server 110 kann dann diese Informationen in den Telefonkontextdaten 150 möglicherweise zusammen mit einem Zeitstempel speichern. Als ein weiteres Beispiel kann der Benutzer 102 das Telefon 106 verwenden, um eine E-Mail unter Verwendung einer E-Mail-Anwendung zu senden, die mit einem Server in der Cloud 154 interagiert. Der E-Mail-Server kann mit dem Server 110 kommunizieren und der Server kann Telefonkontextdaten 150, die anzeigen, dass der Benutzer 102 auf die E-Mail-Anwendung auf dem Telefon 106 zugegriffen hat, zusammen mit einem Zeitstempel speichern.
-
Ähnlich kann der Server 110 Fernsehkontextdaten 152 von anderen Servern in der Cloud 154 empfangen, die mit dem Fernseher 108 kommunizieren. Beispielsweise kann der Benutzer 102 den Fernseher verwenden, um eine Internetsuche unter Verwendung einer Suchmaschine auszuführen, die sich in der Cloud 154 befindet. Die Suchmaschine kann mit dem Server 110 kommunizieren und der Server 110 kann Fernsehkontextdaten 152, die anzeigen, dass der Benutzer 102 auf die Suchmaschine auf dem Fernseher 108 zugegriffen hat, zusammen mit einem Zeitstempel speichern. Als ein weiteres Beispiel kann der Benutzer 102 den Fernseher 108 verwenden, um ein Video unter Verwendung eines Video-Streaming-Dienstes von einem Server in der Cloud 154 anzusehen. Der Video-Streaming-Server kann mit dem Server 110 kommunizieren und der Server 110 kann Fernsehkontextdaten 152, die anzeigen, dass der Benutzer 102 ein Video unter Verwendung des Video-Streaming-Servers angesehen hat, zusammen mit einem Zeitstempel speichern. Bei einigen Implementierungen können die Telefonkontextdaten 150 und die Fernsehkontextdaten 152 Standortdaten umfassen. Beispielsweise können die Telefonkontextdaten Daten umfassen, welche den geografischen Ort des Telefons 106 anzeigen, als der Benutzer auf den Musik-Streaming-Server zugegriffen hat.
-
Bei einigen Implementierungen können die Kontextdaten 148 Daten, die Fähigkeiten von verschiedenen Vorrichtungen beschreiben, umfassen oder Zugriff darauf haben. Die Fähigkeiten können umfassen, ob die Vorrichtung eine Kamera, Mobilfunk, Funkvorrichtung für kurze Reichweiten, GPS oder andere Komponenten aufweist. Die Fähigkeiten können auch technische Daten der Vorrichtung wie Bildschirmgröße, Bildschirmauflösung, Prozessortyp und -geschwindigkeit, Speicher usw. umfassen. Die Kontextdaten 148 können diese Fähigkeitsdaten tatsächlich nicht speichern. Stattdessen kann der Kontextserver 110 in der Lage sein, einen anderen Server abzufragen, um Vorrichtungsfähigkeitsdaten abzurufen. In einigen Fällen kann der Kontextserver 110 einige Fähigkeitsdaten innerhalb der Kontextdaten 148 für einige allgemeiner verwendete Vorrichtungen wie populäre Telefonmodelle speichern.
-
Um eine Vorrichtung auszuwählen und Spracherkennung an der Äußerung 104 zu beginnen, kann der Vorrichtungsselektor 146, bei Stufe E eine Anzahl an Faktoren berücksichtigen, und in einigen Fällen kann der Vorrichtungsselektor 146 jedes Mal, wenn der Vorrichtungsselektor 146 eine Vorrichtung auswählt, keinen Zugriff auf alle Faktoren haben. Bei einigen Implementierungen kann der Vorrichtungsselektor 146 die Vorrichtung auswählen, welche die höchste Lautstärke für das Hotword 116 detektierte. Beispielsweise detektierte das Telefon 106 eine Hotword-Lautstärke, die auf zehn Dezibel normalisiert wurde. Der Fernseher 108 detektierte eine Hotword-Lautstärke, die auf zwei Dezibel normalisiert wurde. Der Vorrichtungsselektor 146 kann das Telefon 106 auswählen, da die Hotword-Lautstärke am größten war. Bei einigen Implementierungen kann der Vorrichtungsselektor 146 Zugriff auf Hotword-Lautstärkepegel und die vorhergehende Verwendung von jeder Vorrichtung haben. In diesem Fall kann der Vorrichtungsselektor 146 die Hotword-Lautstärkepegel nicht berücksichtigen und stattdessen die Vorrichtung auswählen, die zuletzt verwendet wurde. Wenn das Telefon 106 beispielsweise kürzlich gemäß den Telefonkontextdaten 150 und den Fernsehkontextdaten 152 aktiver war, dann kann der Vorrichtungsselektor 146 das Telefon 106 auswählen. Bei einigen Implementierungen kann der Vorrichtungsselektor 146 Zugriff auf Kontextdaten haben, die anzeigen, dass der Fernseher 108 gegenwärtig in Verwendung ist, indem er ein Video anzeigt, und das Telefon 106 in den letzten zehn Minuten nicht verwendet wurde. Der Vorrichtungsselektor 152 kann das Telefon 106 auswählen, sodass es anspricht, um Spracherkennung an der Äußerung 104 zu beginnen, da das Telefon 106 nicht verwendet wird.
-
Bei einigen Implementierungen kann der Server 110 eine Hotword-Konfidenzpunktzahl empfangen. In diesem Fall kann der Vorrichtungsselektor 146 die Vorrichtung mit der höchsten Hotword-Konfidenzpunktzahl auswählen. Bei einigen Implementierungen kann der Server 110 Standortdaten empfangen und eine Vorrichtung basierend darauf auswählen, dass sich der Benutzer 102 an einem Ort befindet, wo eine der Vorrichtungen gewöhnlicher verwendet wird als die andere. Beispielsweise können die Vorrichtungen ein Tablet und ein Telefon sein. Wenn der Benutzer 102 sich von der geografischen Lage entfernt befindet, die dem Zuhause des Benutzers oder der Arbeit entspricht, dann können die Kontextdaten 148 reflektieren, dass der Benutzer 102 wahrscheinlicher das Telefon anstatt das Tablet verwendet. Wenn der Benutzer 102 das Hotword 116 spricht und das Telefon und Tablet Hotword-Detektionspakete, die Ortsinformationen umfassen, an den Server 110 senden, dann kann der Server 110 dementsprechend das Telefon auswählen, wenn der Vorrichtungsselektor 146 bestimmt, dass der Benutzer 102 nicht zu Hause oder bei der Arbeit ist.
-
Bei einigen Implementierungen kann der Server 110 eine Transkription des Sprachbefehls 118 empfangen. In diesem Fall haben die Vorrichtungen bereits Spracherkennung an dem Sprachbefehl 118 ausgeführt und der Vorrichtungsselektor 146 wählt eine Vorrichtung aus, die bezüglich des Sprachbefehls 118 agieren soll. Mit der Transkription des Sprachbefehls kann der Vorrichtungsselektor 146 auf die Kontextdaten 148 zugreifen, um eine geeignete Vorrichtung auszuwählen, die auf den Sprachbefehl ansprechen soll. Wenn der Sprachbefehl beispielsweise „Alice anrufen“ ist, dann würde der Vorrichtungsselektor 146 das Telefon 106 auswählen, um den Sprachbefehl zu verarbeiten, da der Benutzer 102 typischerweise das Telefon 106 verwendet, um anzurufen, selbst in dem Fall, in dem der Fernseher 108 konfiguriert ist, Sprachanrufe zu verarbeiten, oder da das Telefon 106 die einzige Vorrichtung ist, die konfiguriert ist, Sprachanrufe zu verarbeiten.
-
Bei einigen Implementierungen kann der Vorrichtungsselektor 146 die gegenwärtige oder vorhergehende Verwendung der Vorrichtung verwenden, um eine Vorrichtung auszuwählen, die auf den Sprachbefehl ansprechen soll. Die gegenwärtige oder vorhergehende Verwendung kann mit der Sprachabfrage zusammenhängen. Beispielsweise kann der Sprachbefehl sein: „Stoppe Musik abzuspielen“. Wenn der Vorrichtungsselektor 146 Zugriff auf Kontextdaten 148 hat, die eine der Vorrichtungen als Musik abspielend beschreiben, dann wählt der Vorrichtungsselektor 146 die Vorrichtung aus, die Musik abspielt, sodass sie auf den Sprachbefehl anspricht. Als ein weiteres Beispiel kann der Sprachbefehl „Zeige das Musikvideo erneut“ sein. Wenn der Vorrichtungsselektor 146 Zugriff auf Kontextdaten 148 hat, die anzeigen, dass eine der Vorrichtungen ein Musikvideo für „Rockgruppe“ in den letzten zehn Minuten abgespielt hat, dann wählt der Vorrichtungsselektor 146 diese Vorrichtung aus, sodass sie auf diesen Sprachbefehl anspricht.
-
Bei einigen Implementierungen kann der Server 110 eine Spracherkennungskonfidenzpunktzahl von jeder Vorrichtung empfangen. Der Vorrichtungsselektor 146 kann die Vorrichtung mit der höchsten Spracherkennungskonfidenzpunktzahl auswählen. Das Telefon 106 kann beispielsweise eine Spracherkennungskonfidenzpunktzahl von 0,7 berechnen und der Fernseher 108 kann eine Spracherkennungskonfidenzpunktzahl von 0,65 berechnen. Der Vorrichtungsselektor 146 wählt das Telefon 106 aus, um auf die Suchanfrage als Folge der höheren Spracherkennungskonfidenzpunktzahl anzusprechen.
-
Bei einigen Implementierungen kann der Server 110 Kontextdaten empfangen, die mit den Anwendungen in Zusammenhang stehen, die auf dem Telefon 106 und Fernseher 108 installiert sind. Der Vorrichtungsselektor 146 kann die mit den installierten Anwendungen in Zusammenhang stehenden Kontextdaten verwenden, um eine Vorrichtung auszuwählen, die auf die Sprachabfrage ansprechen soll. Beispielsweise kann der Sprachbefehl „Super Ninja spielen“ sein. Der Vorrichtungsselektor 146 kann Kontextinformationen aufweisen, dass auf dem Telefon 106 Superninja installiert ist. Daher wählt der Vorrichtungsselektor 146 das Telefon 106 aus, auf den Befehl „Super Ninja spielen“ anzusprechen. Bei einigen Implementierungen kann der Server 110 Daten empfangen, die installierte Anwendungen anzeigen, wenn der Benutzer die Anwendungen von einem Anwendungsserver in der Cloud 154 herunterlädt, und der Anwendungsserver kommuniziert mit dem Server 110 bezüglich der installierten Anwendungen.
-
In Stufe E wählt der Server 110 eine Vorrichtung aus, um Spracherkennung an dem Sprachbefehl auszuführen und dann den Sprachbefehl auszuführen. Wenn der Server 110 eine Transkription des Sprachbefehls empfängt, wählt der Server 110 eine Vorrichtung aus, den Sprachbefehl auszuführen. Im in 1 gezeigten Beispiel wählt der Server 110 das Telefon 106 basierend auf den Fernsehkontextdaten 152 aus, die anzeigen, dass der Fernseher gegenwärtig verwendet wird, sodass das Telefon 106 besser sein kann, um auf einen neuen Sprachbefehl anzusprechen. In Fällen, in denen der Server 110 eine Transkription des Sprachbefehls 118 empfängt, kann der Server Kontextdaten verwenden, die anzeigen, dass der Fernseher 108 ein Video zeigt, während des Telefons 106 untätig ist, um zu bestimmen, dass das Telefon auf den Sprachbefehl „Musik abspielen“ ansprechen sollte. Der Vorrichtungsselektor 146 kann irgendwelche der vorstehend beschriebenen Kriterien in jeder Kombination verwenden und jeden Faktor unterschiedlich gewichten, um eine Vorrichtung auszuwählen.
-
In Stufe F1 und F2 sendet der Server 110 die Befehle an das Telefon 106 und den Fernseher 108. Die Befehle für das Telefon 106 weisen das Telefon 106 an, die Abfrage zu verarbeiten und gegebenenfalls Spracherkennung an der Äußerung 104 zu beginnen. Die Befehle für den Fernseher 108 weisen den Fernseher 108 an, das Verarbeiten der Abfrage einzustellen.
-
In den Stufen G1 und G2 führen das Telefon 106 und der Fernseher 108 die Befehle aus, die durch den Server 110 empfangen wurden. Das Telefon 106 verarbeitet die Äußerung 104 möglicherweise durch Ausführen von Spracherkennung und dann Musik abspielen 156. Der Fernseher verarbeitet die Äußerung 104 nicht und fährt fort, das Nachrichtenvideo 158 zu zeigen.
-
Bei einigen Implementierungen kann das Telefon 106 und der Fernseher 108 die Aktionen an den Server senden, die vom Benutzer 102 ausgeführt werden, nachdem das Telefon 106 und der Fernseher 108 die Äußerung 104 verarbeitet haben. Wenn beispielsweise das Telefon 106 beginnt, Musik abzuspielen 156, und der Benutzer 102 die Musik abschaltet 156, dann wechselt der Fernseher 108 vom Anzeigen des Nachrichtenvideos 158 zum Abspielen von Musik. Das Telefon 106 und der Fernseher 108 berichten dann diese Aktionen zurück an den Server 110. Der Server 110 kann den Selektionsalgorithmus des Vorrichtungsselektors 146 unter Verwendung von Maschinenlernen aktualisieren. Mit Maschinenlernen kann der Server 110 die Gewichtungen ändern, die jedem von den Elementen von Kontextdaten gegeben sind, um die wahrscheinlichste Vorrichtung zum Verarbeiten der Äußerung 104 auszuwählen. Bei einigen Implementierungen kann das Maschinenlernen benutzerspezifisch sein. Der Vorrichtungsselektor 146 kann beispielsweise den Selektionsalgorithmus basierend auf der Tendenz des Benutzers 102, das Telefon 106 während der traditionellen Geschäftszeit und den Fernseher außerhalb der Geschäftszeit zu verwenden, oder basierend auf der Tendenz des Benutzers, bestimmte Vorrichtungen zu verwenden, wenn er sich an besonderen Orten befindet, anpassen.
-
Bei einigen Implementierungen können zwei Vorrichtungen, die möglicherweise von der gleichen Art sind, im gleichen Raum enden und beide sind mit einem unterschiedlichen Gruppenbezeichner verknüpft. Wenn in diesem Fall jede Vorrichtung ein Hotword-Detektionsdatenpaket an den Server 110 sendet, empfängt der Server 110 den Gruppenbezeichner von den empfangenen Datenpaketen und vergleicht ihn mit den Gruppenbezeichnern, die in den empfangenen Hotword-Detektionen 144 gespeichert sind, die von anderen kürzlich empfangenen Datenpaketen stammen. Bei unterschiedlichen Gruppenbezeichnern kann der Server 110 nicht bestimmen, dass nur eine Vorrichtung auf das Hotword ansprechen sollte. Um diesem potenziellen Problem abzuhelfen, können die Vorrichtungen konfiguriert sein, ein oder mehr von geografischen Ortsdaten, Hotword-Lautstärkedaten, Sprecheridentifikationsdaten, Gerätekontextdaten, Spracherkennungskonfidenzpunktzahlen, Hotword-Konfidenzpunktzahlen und einer Transkription der Äußerung 104 zu senden. Der Server 110 kann identifizieren, dass zwei Hotword-Detektionsdatenpakete geografische Ortsdaten umfassen, die sich innerhalb eines Schwellenabstandes voneinander von beispielsweise zehn Metern befinden, und dass der Server 110 innerhalb von kleiner als einer Schwellenzeit voneinander empfangen hat, wie beispielsweise eine Sekunde. In diesem Fall kann der Server 110 bestimmen, dass, selbst wenn die Vorrichtungen mit unterschiedlichen Gruppenbezeichnern verknüpft wären, nur eine auf das Hotword ansprechen sollte. Um die Vorrichtung auszuwählen, die auf das Hotword ansprechen soll, kann der Vorrichtungsselektor 146 beispielsweise die Lautstärkedaten und Konfidenzpunktzahlen auswählen, welche die höchsten sind, und kann die entsprechende Vorrichtung anweisen, auf das Hotword anzusprechen, während er die anderen Vorrichtungen anweist, auf das Hotword nicht anzusprechen. In Fällen, in denen der Server 110 die Transkription der Äußerung 104 empfängt, kann der Server 110 bestimmen, dass die Hotword-Detektionsdatenpakete der gleichen Äußerung entsprechen, da der Text der Äußerung 104 der gleiche war und die Datenpakete zu ungefähr der gleichen Zeit empfangen wurden. Der Vorrichtungsselektor 146 kann die Vorrichtung, die auf die Äußerung 104 ansprechen soll, basierend auf der Transkription, den Vorrichtungsfähigkeiten und dem Kontext, den geografische Ortsdaten, den Hotword-Lautstärkedaten, den Sprecheridentifikationsdaten, den Spracherkennungskonfidenzpunktzahlen und den Hotword-Konfidenzpunktzahlen unter Verwendung irgendeiner der vorstehend beschriebenen Techniken auswählen.
-
Bei einigen Implementierungen kann der Sprachbefehl 118, der mit einer einzelnen Instanz eines Hotwords verknüpft, mehr als einen Befehl umfassen. In bestimmten Fällen kann es für mehr als eine Vorrichtung geeignet sein, die Befehle entweder seriell oder parallel zu verarbeiten. Beispielsweise kann ein Benutzer 102 „OK Computer, spiele Love Story ab und rufe Mama an“ sprechen. In diesem Fall kann es besser sein, dass das Telefon 106 den Anruf macht und der Fernseher 108 den Film „Love Story“ abspielt. Damit der Server 110 Befehle sowohl an das Telefon 106 als auch an den Fernseher 108 bereitstellen kann, kann der Server 110 die Transkription der Äußerung 104 benötigen. Mit der Transkription der Äußerung 104 kann der Vorrichtungsselektor 146 die zwei Befehle in der Äußerung 104 und die in der Nähe befindlichen Vorrichtungen, die am besten ausgestattet sind, um die Befehle auszuführen, basierend auf den Kontextdaten von jeder Vorrichtung und den Fähigkeitsdaten jeder Vorrichtung identifizieren. Bei diesem Beispiel kann der Vorrichtungsselektor 146 bestimmen, dass der Fernseher 108 besser ausgestattet ist, „Love Story“ zu zeigen, da der Fernseher 108 einen größeren Bildschirm und leistungsstärkere Lautsprecher hat als das Telefon 106. Der Vorrichtungsselektor 146 kann bestimmen, dass das Telefon 106 besser ausgestattet ist, um den Telefonanruf zu behandeln, da das Telefon 106 einen Mobilfunk aufweist. Der Server 110 kann dann Befehle an das Telefon 106 senden, um Mama anzurufen, und an den Fernseher 108, um den Film „Love Story“ abzuspielen.
-
Bei einigen Implementierungen kann das Telefon 106 und der Fernseher 108 keine Hotword-Detektionspakete an den Server 110 senden und stattdessen untereinander verhandeln, um zu bestimmen, welche Vorrichtung auf das Hotword 116 ansprechen sollte. Die Vorrichtungen können den Kontext der Vorrichtungen, wie beispielsweise geografischer Ort und Bewegungsdaten verwenden, um zu bestimmen, welches auf das Hotword ansprechen sollte. Wenn sich der Benutzer 102 mit durchschnittlich oder periodisch mehr als fünfzehn Meilen pro Stunde bewegt, dann besteht eine hohe Wahrscheinlichkeit, dass der Benutzer 102 in einem Fahrzeug unterwegs ist. Wenn das Fahrzeug konfiguriert ist, auf ein Hotword anzusprechen, dann kann das Fahrzeug mit jeder anderen in der Nähe befindlichen Vorrichtung kommunizieren und die anderen Vorrichtungen benachrichtigen, dass das Fahrzeug auf das Hotword anspricht. Das Fahrzeug kann immer noch Kommunikationsmerkmale einer anderen Vorrichtung verwenden, wie beispielsweise, dass das Fahrzeug einen Anruf durch ein Mobiltelefon abschließt, aber das Fahrzeug den Telefonanruf originiert. In Fällen, in denen der Benutzer 102 sich im Fahrzeug befindet, sich aber für einen Schwellenzeitraum nicht bewegt, kann das Fahrzeug die anderen Vorrichtungen nicht benachrichtigen, dass es auf irgendwelche Hotwords anspricht, oder es kann die anderen Vorrichtungen benachrichtigen, nach dem Detektieren eines Hotwords mit dem Server 110 zu kommunizieren. Das Fahrzeug und die anderen Vorrichtungen können mit dem Server 110 kommunizieren und Befehle vom Server 110 empfangen, wenn sie auf Hotwords ansprechen.
-
Bei einigen Implementierungen kann das Telefon 106 oder der Fernseher 108 oder jede andere Vorrichtung eine Schnittstelle darstellen, die dem Benutzer 102 erlaubt, eine Präferenz dafür einzugeben, welche Vorrichtung auf ein Hotword anspricht. Der Benutzer 102 kann beispielsweise in die Schnittstelle eingeben, dass der Benutzer 102 bevorzugt, dass das Telefon 106 auf ein Hotword anspricht, wenn der Benutzer 102 das Telefon 106 und den Fernseher 108 benutzt. Der Benutzer 102 kann auch in der Lage sein, eine Option auszuwählen, die den Server 110 die Präferenz des Benutzers in Fällen zu übersteuern, in denen eine Vorrichtung nicht in der Lage sein mag, den Sprachbefehl auszuführen. Wenn der Server 110 die Transkription der Äußerung nicht empfängt, kann der Server 110 die Vorrichtung gemäß der Benutzerpräferenz auswählen. Als ein Beispiel zu einer Serverübersteuerung kann der Server 110 ein Hotword-Detektionsdatenpaket sowohl vom Telefon 106 als auch vom Fernseher 108 empfangen. Die Hotword-Detektionsdatenpakete umfassen die Transkription des Sprachbefehls, die „OK Computer, schalte „World News Now“ ein sein kann. Der Benutzer 102 hat zuvor ausgewählt dass, wenn sich der Benutzer 102 nahe dem Fernseher 108 und dem Telefon 106 befindet, das Telefon 106 auf einen Sprachbefehl ansprechen sollte. In diesem Fall ist das Telefon 106 jedoch nicht konfiguriert, die Nachrichtensendung „World News Now“ zu zeigen, da das Telefon 106 keinen Zugriff auf den Dienst hat, der dieses Nachrichtenprogramm bereitstellt. Dementsprechend weist der Server 110 den Fernseher 108 an, auf das Hotword und den Sprachbefehl anzusprechen, und das Telefon 106 nicht auf das Hotword und den Sprachbefehl anzusprechen.
-
2 veranschaulicht einen beispielhaften Prozess 200 zur Hotword-Detektion. Im Allgemeinen verarbeitet der Prozess 300 Audiodaten und basierend darauf, dass die Audiodaten wahrscheinlich ein Hotword umfassen, beginnt der Prozess Spracherkennung an den Audiodaten, wenn er durch einen Server angewiesen wird. Der Prozess 200 wird als durch ein Computersystem ausgeführt beschrieben, das einen oder mehrere Computer umfasst, wie beispielsweise die mobile Vorrichtung 106 oder den Fernseher 108 wie gezeigt in 1.
-
Das System empfängt Audiodaten, die einer Äußerung (210) entsprechen. Der Benutzer kann beispielsweise Audiodaten empfangen, die dem entsprechen, dass der Benutzer „OK Computer, gib mir eine Wegbeschreibung nach Hause“ spricht. Bei einigen Implementierungen kann das System von einem anderen System Daten empfangen, die anzeigen, dass das andere System konfiguriert ist, auf Hotwords anzusprechen. Das System und das andere System können einen Gruppenbezeichner verhandeln, das jedes in Datenpakete einschließen kann, die an den Server zu senden sind, wenn entweder das System oder das andere System ein Hotword detektiert. Der Gruppenbezeichner kann beispielsweise eine E-Mail-Adresse des Benutzers sein, der an einer oder beiden Vorrichtungen angemeldet ist. Bei einigen Implementierungen empfängt das System Audiodaten, wenn es sich in einem Schlafzustand befindet und der Bildschirm ausgeschaltet ist. In diesem Fall kann das System in einem Schlafzustand verbleiben und immer noch die Audiodaten empfangen und verarbeiten. Bei einigen Implementierungen kann das System in einem aktiven Zustand sein, wie ein Video abzuspielen. In diesem Fall empfängt und verarbeitet das System die Audiodaten und fährt fort, das Video abzuspielen.
-
Das System bestimmt, dass die Äußerung wahrscheinlich ein bestimmtes vordefiniertes Hotword (220) umfasst. Beispielsweise kann das System bestimmen, dass die Äußerung wahrscheinlich „OK Computer“ umfasst. Bei einigen Implementierungen kann sich das System in einem Schlafzustand befinden und nach Empfang des Identifizierens des Hotwords wird der Bildschirm des Systems möglicherweise bei einem reduzierten Energiesparzustand aktiviert und zeigt an, dass das System Audiodaten verarbeitet.
-
Das System sendet als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das bestimmte vordefinierte Hotword umfasst, an einen Server (i) Daten, die anzeigen, dass die Computervorrichtung wahrscheinlich das bestimmte vordefinierte Hotword empfangen hat, (ii) Daten, welche die Computervorrichtung identifizieren, und (iii) Daten, die eine Gruppe von in der Nähe befindlichen Computervorrichtungen identifizieren, welche die Computervorrichtung (230) umfasst. Bei einigen Implementierungen sind die Daten, welche die Computervorrichtung identifizieren, das Modell und die Seriennummer. Bei einigen Implementierungen sind die Daten, die eine Gruppe von in der Nähe befindlichen Computervorrichtungen identifizieren, den Gruppenbezeichner. Bei einigen Implementierungen bestimmt das System eine Lautstärke der Audiodaten, die dem Hotword entsprechen, und sendet als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das Hotword umfasst, die Lautstärke an den Server. Das System kann beispielsweise die Lautstärke als dreißig Dezibel bestimmen und diesen Wert an den Server senden. Bei einigen Implementierungen bestimmt das System die Leistung der Audiodaten, die dem Hotword entsprechen, und die Leistung der kurz vor dem Hotword empfangenen Audiodaten. Das System berechnet dann den Unterschied zwischen den zwei Werten und sendet den Unterschied als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das Hotword umfasst, an den Server.
-
Bei einigen Implementierungen bestimmt das System eine Hotword-Konfidenzpunktzahl, welche die Wahrscheinlichkeit reflektiert, dass das System ein Hotword detektiert hat. Das System sendet dann die Hotword-Konfidenzpunktzahl an den Server als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das Hotword umfasst. Das System kann ein neuronales Netzwerk verwenden, um die Hotword-Konfidenzpunktzahl zu bestimmen. Bei einigen Implementierungen kann das System seinen geografische Ort als Reaktion auf das Bestimmen, dass die Äußerung wahrscheinlich das Hotword umfasst, an den Server senden. Bei einigen Implementierungen kann das System Daten senden, die eine abgelaufene Zeit seit einer vorhergehenden Verwendung der Computervorrichtung anzeigen und möglicherweise die vorhergehende Aktion einschließen. Der Benutzer kann beispielsweise das System vor zwei Minuten verwendet haben, um eine Textnachricht zu senden. Das System kann diese Informationen an den Server senden.
-
Das System empfängt vom Server, ein Befehl, Spracherkennungsverarbeitung an den Audiodaten (240) zu beginnen. Beispielsweise führt das System Spracherkennung an den Audiodaten aus, die nicht dem Hotword entsprechen, und bestimmt die Transkription „Gib mir eine Wegbeschreibung nach Hause“. Bei einigen Implementierungen kann das System einen Befehl empfangen, Spracherkennung an den Audiodaten nicht zu beginnen. Bei einigen Implementierungen kann das System bereits Spracherkennung an den Audiodaten ausgeführt und die Transkription an den Server gesendet haben. In diesem Fall kann das System einen Befehl empfangen, den Sprachbefehl in der Transkription zu verarbeiten oder den Sprachbefehl nicht zu verarbeiten. Wenn das System einen Befehl empfängt, den Sprachbefehl nicht zu verarbeiten, dann kann das System zu seinem vorhergehenden Zustand, wie beispielsweise einem Schlafzustand oder dem Anzeigen eines Videos, zurückkehren. Das System verarbeitet als Reaktion auf das Empfangen des Befehls, Spracherkennungsverarbeitung an den Audiodaten zu beginnen, mindestens einen Abschnitt der Audiodaten unter Verwendung eines automatisierten Spracherkenners auf der Computervorrichtung (250). Das System kann dann jeden vom Benutzer gesprochenen Sprachbefehl ausführen. Das System kann dem Benutzer beispielsweise eine Wegbeschreibung nach Hause bereitstellen.
-
3 veranschaulicht einen beispielhaften Prozess 300 zur Hotword-Detektion. Im Allgemeinen wählt der Prozess 300 eine Computervorrichtung aus, um Spracherkennung an Audiodaten zu beginnen, die wahrscheinlich ein Hotword umfassen. Der Prozess 300 wird als durch ein Computersystem ausgeführt beschrieben, das einen oder mehrere Computer umfasst, wie beispielsweise der Server 110, wie es in 1 gezeigt ist.
-
Das System empfängt, durch einen Server und von einer Computervorrichtung, (i) Daten, die anzeigen, dass die Computervorrichtung wahrscheinlich ein bestimmtes vordefiniertes Hotword empfangen hat, (ii) Daten, welche die Computervorrichtung identifizieren, und (iii) Daten, die eine Gruppe von Computervorrichtungen identifizieren, die sich nahe der Computervorrichtung befinden, und welche die Computervorrichtung (310) umfasst. Bei einigen Implementierungen empfängt der Server vor dem Empfangen dieser Daten Daten, die anzeigen, dass die Computervorrichtung und vielleicht eine andere Computervorrichtung konfiguriert ist, auf ein Hotword anzusprechen. Wenn sich die Vorrichtungen nahe beieinander befinden, dann wählt der Server einen Gruppenbezeichner aus, um die Gruppe zu identifizieren, wenn er benachrichtigt wurde, dass die Computervorrichtung ein Hotword detektiert hat.
-
Das System greift auf Kontextdaten zu, die einen Kontext der Computervorrichtung (320) anzeigen. Bei einigen Implementierungen entsprechen die Kontextdaten den Fähigkeiten der Computervorrichtung. Das System kann auf die Fähigkeitendaten basierend auf der Modellnummer, die durch die Computervorrichtung bereitgestellt wird, zugreifen. Ein Telefon kann beispielsweise eine Kamera, Funkvorrichtung für kurze Reichweiten, einen Fünf-Zoll-Bildschirm, Speicherkartensteckplatz usw. aufweisen. Bei einigen Implementierungen entsprechen die Kontextdaten einer abgelaufenen Zeit seit einer vorhergehenden Verwendung oder einer vorhergehenden Aktion der Computervorrichtung oder von beidem. Beispielsweise kann die vorhergehende Verwendung das Ansehen eines Nachrichtenvideos sein, und dies kann zur gleichen Zeit aufgetreten sein, als die Computervorrichtung das Hotword detektiert hat. Die Computervorrichtung kann die Zeit seit der vorhergehenden Verwendung und der vorhergehenden Aktion bereitstellen. Bei einigen Implementierungen kann das System auf die Daten zugreifen oder die Daten von anderen Servern empfangen. Bei einigen Implementierungen umfassen die Kontextdaten eine Lautstärke der Audiodaten, die dem Hotword entsprechen. Bei einigen Implementierungen empfängt das System geografische Ortsdaten von der Computervorrichtung.
-
Das System bestimmt basierend auf den Kontextdaten der Computervorrichtung, dass die Computervorrichtung Spracherkennungsverarbeitung an Audiodaten beginnt, die mit dem bestimmten vordefinierten Hotword (330) verknüpft sind. Bei einigen Implementierungen entsprechen die Audiodaten einer Äußerung, wie dass ein Benutzer „OK Computer, gib mir eine Wegbeschreibung nach Hause“ spricht. Bei einigen Implementierungen wählt das System die Computervorrichtung; basierend auf irgendeiner Kombination aus den Fähigkeiten der Vorrichtung, dem Ort der Vorrichtung, der Zeit, seit die Vorrichtung zuletzt verwendet wurde, die letzte Aktion, die durch die Vorrichtung ausgeführt wurde, oder der Lautstärke der Audiodaten aus. Bei einigen Implementierungen kann das System nicht genug Informationen aufweisen, um eine Computervorrichtung auszuwählen. In diesem Fall kann das System die Computervorrichtung auffordern, Spracherkennung an der Äußerung auszuführen und eine Transkription der Äußerung bereitzustellen. Das System kann dann die Kontextdaten und die Transkription verwenden, um die Computervorrichtung auszuwählen. Bei einigen Implementierungen kann das System die Computervorrichtung anstatt oder zusätzlich zum Abfragen der Transkription nach zusätzlichen Kontextinformationen abfragen. Beispielsweise kann das System die Computervorrichtung nach Konfidenzpunktzahlen des Hotwords und der Spracherkennung abfragen.
-
Das System sendet an die Computervorrichtung einen Befehl, Spracherkennungsverarbeitung an den Audiodaten zu beginnen, die mit dem bestimmten vordefinierten Hotword (340) verknüpft sind. Bei einigen Implementierungen kann das System einen Befehl, Spracherkennungsverarbeitung nicht zu beginnen, an andere durch das System nicht ausgewählte Computervorrichtungen senden.
-
Bei einigen Implementierungen kann das System Daten von der Computervorrichtung empfangen, die vom Benutzer vorgenommene Aktionen identifizieren, nachdem die Computervorrichtung die Audiodaten verarbeitet hat. Die Computervorrichtung kann den Sprachbefehl der Audiodaten ausführen und einen Benutzer die Ausführung des Sprachbefehls stoppen lassen. Der Benutzer kann dann die Aktion des Sprachbefehls auf der durch das System nicht ausgewählten Computervorrichtung manuell ausführen. In diesem Fall wird das System diese Daten empfangen und bestimmen, dass das System die falsche Vorrichtung zum Ansprechen auf das Hotword ausgewählt hat. Das System kann dann Maschinenlernen verwenden, um den Selektionsalgorithmus anzupassen. Bei einigen Implementierungen kann der Selektionsalgorithmus benutzerspezifisch sein.
-
4 zeigt ein Beispiel einer Computervorrichtung 400 und einer mobilen Computervorrichtung 450, die verwendet werden können, um die hier beschriebenen Techniken zu implementieren. Die Computervorrichtung 400 soll verschiedene Formen von digitalen Computern wie Laptops, Desktops, Arbeitsstationen, Personal Digital Assistants, Fernseher, Server, Blade-Server, Mainframes und andere geeignete Computer darstellen. Die mobile Computervorrichtung 450 soll verschiedene Formen mobiler Vorrichtungen, wie Personal Digital Assistants, Mobiltelefone, Smartphones und andere ähnliche Computervorrichtungen darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur Beispiele sein und sind nicht dazu beabsichtigt, zu begrenzen.
-
Die Computervorrichtung 400 umfasst einen Prozessor 402, einen Speicher 404, eine Speichervorrichtung 406, eine Hochgeschwindigkeitsschnittstelle 408, die mit dem Speicher 404 verbindet, und mehrere Hochgeschwindigkeitserweiterungsanschlüsse 410 und eine Niedergeschwindigkeitsschnittstelle 412, die mit einem Niedergeschwindigkeitserweiterungsanschluss 414 verbindet, und die Speichervorrichtung 406. Der Prozessor 402, der Speicher 404, die Speichervorrichtung 406, die Hochgeschwindigkeitsschnittstelle 408, die Hochgeschwindigkeitserweiterungsanschlüsse 410 und die Niedergeschwindigkeitsschnittstelle 412 sind jeweils unter Verwendung verschiedener Busse miteinander verbunden und können auf einer gemeinsamen Hauptplatine oder auf andere Weisen wie jeweils anwendbar angebracht sein. Der Prozessor 402 kann Befehle zur Ausführung innerhalb der Computervorrichtung 400 verarbeiten, die Befehle umfassen, die in dem Speicher 404 oder auf der Speichervorrichtung 406 gespeichert sind, um grafische Informationen für eine GUI auf einer externen Eingabe-/Ausgabevorrichtung wie einer Anzeige 416, die mit der Hochgeschwindigkeitsschnittstelle 408 verbunden ist, anzuzeigen. Bei anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse, wie jeweils anwendbar, zusammen mit mehreren Speichern und Speicherarten verwendet sein. Es können außerdem auch mehrere Computervorrichtungen verbunden sein, wobei jede Vorrichtung Teile der notwendigen Vorgänge bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
-
Der Speicher 404 speichert Informationen innerhalb der Computervorrichtung 400. Bei einigen Implementierungen ist der Speicher 404 eine flüchtige Speichereinheit oder -einheiten. Bei einigen Implementierungen ist der Speicher 404 eine nichtflüchtige Speichereinheit oder -einheiten. Der Speicher 404 kann auch eine andere Form von computerlesbarem Medium sein, wie beispielsweise ein magnetischer oder optischer Datenträger.
-
Die Speichervorrichtung 406 ist in der Lage, Massenspeicher für die Computervorrichtungen 400 bereitzustellen. Bei einigen Implementierungen kann die Speichervorrichtung 406 ein computerlesbares Medium sein oder beinhalten, wie ein Floppy-Disk-Laufwerk, ein Festplattenlaufwerk, ein optisches Laufwerk, eine Magnetbandeinheit, ein Flash-Speicher oder eine andere ähnliche Solid-State-Speichervorrichtung oder eine Reihe von Vorrichtungen, einschließlich Vorrichtungen in einem Speichernetzwerk oder anderen Konfigurationen. Befehle können in einem Informationsträger gespeichert werden. Die Befehle führen bei Ausführung durch ein oder mehrere Verarbeitungsvorrichtungen (beispielsweise Prozessor 402) ein oder mehrere Verfahren wie diejenigen, die vorstehend beschrieben sind, aus. Die Befehle können auch durch eine oder mehrere Speichervorrichtungen wie computer- oder maschinenlesbare Medien (beispielsweise der Speicher 404, die Speichervorrichtung 406 oder Speicher auf dem Prozessor 402) gespeichert werden.
-
Die Hochgeschwindigkeitsschnittstelle 408 verwaltet bandbreitenintensive Operationen für die Computervorrichtung 400, während die Niedergeschwindigkeitsschnittstelle 412 niedrigere bandbreitenintensive Operationen verwaltet. Eine solche Zuordnung von Funktionen ist nur beispielhaft. Bei einigen Implementierungen ist die Hochgeschwindigkeitsschnittstelle 408 mit dem Speicher 404, der Anzeige 416 (z. B. durch einen Grafikprozessor oder Beschleuniger) und mit den Hochgeschwindigkeitserweiterungsanschlüssen 410 gekoppelt, die verschiedene Erweiterungskarten (nicht gezeigt) aufnehmen können. In der Implementierung ist die Niedergeschwindigkeitsschnittstelle 412 mit der Speichervorrichtung 406 und dem Niedergeschwindigkeitserweiterungsanschluss 414 gekoppelt. Der Niedergeschwindigkeitserweiterungsanschluss 414, der verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, drahtloses Ethernet) umfassen kann, kann mit einer oder mehreren Eingabe-/Ausgabevorrichtungen wie einer Tastatur, einer Zeigevorrichtung, einem Scanner oder einer Netzwerkvorrichtung wie einem Switch oder Router z. B. durch einen Netzwerkadapter gekoppelt sein.
-
Die Computervorrichtung 400 kann in einer Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. So kann sie beispielsweise als ein Standardserver 420 oder in einer Gruppe solcher Server mehrfach implementiert sein. Zusätzlich kann sie in einem Personal Computer wie einem Laptop 422 implementiert sein. Sie kann außerdem als Teil eines Rackserversystems 424 implementiert sein. Alternativ können Komponenten von der Computervorrichtung 400 mit anderen Komponenten in einer mobilen Vorrichtung (nicht gezeigt) wie einer mobilen Computervorrichtung 450 kombiniert werden. Jede solcher Vorrichtungen kann eine oder mehrere von der Computervorrichtung 400 und der mobilen Computervorrichtung 450 enthalten und ein vollständiges System kann aus mehreren Computervorrichtungen gebildet sein, die miteinander kommunizieren.
-
Die mobile Computervorrichtung 450 umfasst neben anderen Komponenten einen Prozessor 452, einen Speicher 464, eine Eingabe-/Ausgabevorrichtung wie eine Anzeige 454, eine Kommunikationsschnittstelle 466 und einen Transceiver 468. Die mobile Computervorrichtung 450 kann auch mit einer Speichervorrichtung, wie einem Microdrive oder einer andere Vorrichtung ausgestattet sein, um zusätzlichen Speicher bereitzustellen. Der Prozessor 452, der Speicher 464, die Anzeige 454, die Kommunikationsschnittstelle 466 und der Transceiver 468, sind jeweils unter Verwendung verschiedener Busse miteinander verbunden und mehrere von den Komponenten können auf einer gemeinsamen Hauptplatine oder auf anderen Weisen wie jeweils anwendbar angebracht sein.
-
Der Prozessor 452 kann Befehle innerhalb der mobilen Computervorrichtung 450 ausführen, einschließlich im Speicher 464 gespeicherter Befehle. Der Prozessor 452 kann als ein Chipsatz von Chips implementiert sein, die separate und mehrere analoge und digitale Prozessoren umfassen. Der Prozessor 452 kann beispielsweise die Koordination der anderen Komponenten der mobilen Computervorrichtung 450, wie beispielsweise die Steuerung von Benutzerschnittstellen, Anwendungen, die durch die mobile Computervorrichtung 450 ausgeführt werden, und drahtlose Kommunikation von der mobilen Computervorrichtung 450 bereitstellen.
-
Der Prozessor 452 kann mit einem Benutzer durch eine Steuerungsschnittstelle 458 und eine Anzeigeschnittstelle 456, die mit der Anzeige 454 gekoppelt ist, kommunizieren. Die Anzeige 454 kann beispielsweise eine TFT-(Dünnschichttransistor-Flüssigkristallanzeige)-Anzeige oder ein OLED-(organische Leuchtdiode)-Anzeige oder eine andere geeignete Anzeigetechnologie sein. Die Anzeigeschnittstelle 456 kann geeignete Schaltungen zum Ansteuern der Anzeige 454 umfassen, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 458 kann Befehle von einem Benutzer empfangen und sie zur Eingabe in den Prozessor 452 konvertieren. Außerdem kann eine äußere Schnittstelle 462 Kommunikation mit dem Prozessor 452 bereitstellen, um Nahbereichskommunikation der mobilen Computervorrichtung 450 mit anderen Vorrichtungen zu ermöglichen. Die externe Schnittstelle 462 kann beispielsweise bei manchen Implementierungen eine drahtgestützte Verbindung oder bei anderen Implementierungen eine drahtlose Verbindung sein, und es können auch mehrere Schnittstellen verwendet werden.
-
Der Speicher 464 speichert Informationen innerhalb der mobilen Computervorrichtung 450. Der Speicher 464 kann als ein oder mehrere von einem computerlesbaren Medium oder Medien, einem flüchtigen Speicher oder Speichern oder einem nicht flüchtigen Speicher oder Speichern implementiert sein. Ein Erweiterungsspeicher 474 kann ebenfalls bereitgestellt und mit der mobilen Computervorrichtung 450 durch eine Erweiterungsschnittstelle 472 verbunden sein, die zum Beispiel eine SIMM-(Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Der Erweiterungsspeicher 474 kann zusätzlichen Speicherplatz für die mobile Computervorrichtung 450 bereitstellen oder kann auch Anwendungen oder andere Informationen für die mobile Computervorrichtung 450 speichern. Insbesondere kann der Erweiterungsspeicher 474 Befehle zum Ausführen oder Ergänzen der vorstehend beschriebenen Prozesse umfassen und er kann außerdem sichere Informationen umfassen. Daher kann der Erweiterungsspeicher 474 beispielsweise als ein Sicherheitsmodul für die mobile Computervorrichtung 450 bereitgestellt sein und er kann mit Befehlen programmiert sein, welche die sichere Verwendung der mobilen Computervorrichtung 450 erlauben. Zusätzlich dazu können über die SIMM-Karten sichere Anwendungen zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Karte auf eine Weise, die nicht gehackt werden kann, bereitgestellt werden.
-
Der Speicher kann beispielsweise Flash-Speicher und/oder NVRAM-Speicher (nicht flüchtiger Random Access Memory) wie nachfolgend beschrieben umfassen. Bei einigen Implementierungen werden Befehle in einem Informationsträger gespeichert, sodass die Befehle bei Ausführung durch eine oder mehrere Verarbeitungsvorrichtungen (beispielsweise Prozessor 452) ein oder mehrere Verfahren wie diejenigen, die vorstehend beschrieben sind, ausführen. Die Befehle können auch durch eine oder mehrere Speichervorrichtungen, wie ein oder mehrere computer- oder maschinenlesbare Medien (beispielsweise der Speicher 464, der Erweiterungsspeicher 474 oder Speicher auf dem Prozessor 452) gespeichert werden. Bei einigen Implementierungen können die Befehle in einem propagierten Signal beispielsweise über den Transceiver 468 oder die externe Schnittstelle 462 empfangen werden.
-
Die mobile Computervorrichtung 450 kann durch die Kommunikationsschnittstelle 466 drahtlos kommunizieren, die wo erforderlich Digitalsignalverarbeitungsschaltungen umfassen kann. Die Kommunikationsschnittstelle 466 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) bereitstellen. Eine derartige Kommunikation kann beispielsweise über den Transceiver 468 unter Verwendung einer Funkfrequenz erfolgen. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines Bluetooth-, WLAN- oder anderen solchen Transceivers (nicht gezeigt). Außerdem kann ein GPS-(globales Positionsbestimmungssystem)-Empfangsmodul 470 zusätzliche navigations- und ortsbezogene drahtlose Daten an die mobile Computervorrichtung 450 bereitstellen, die wie jeweils anwendbar durch Anwendungen verwendet werden können, die auf der mobilen Computervorrichtung 450 ausführen.
-
Die mobile Computervorrichtung 450 kann ebenfalls unter Verwendung eines Audiocodec 460, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audiocodec 460 kann gleichermaßen einen hörbaren Ton für einen Benutzer beispielsweise über einen Lautsprecher, wie zum Beispiel in einem Handset einer mobilen Computervorrichtung 450, 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 der mobilen Computervorrichtung 450 betrieben werden.
-
Die mobile Computervorrichtung 450 kann in einer Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. Sie kann beispielsweise als ein Mobiltelefon 480 implementiert sein. Sie kann außerdem als Teil eines Smartphones 482, Personal Digital Assistant oder einer anderen ähnlichen mobilen Vorrichtung implementiert sein.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltungen, integrierten Schaltungen, speziell konzipierten ASICs (anwendungsorientierten integrierten Schaltungen), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen umfassen, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor umfasst, der ein spezieller oder für allgemeine Zwecke sein kann und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Befehlen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
-
Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) umfassen Maschinenbefehle für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assembler-/Maschinensprache implementiert sein. Wie hierin verwendet, bezeichnen die Begriffe „maschinenlesbares Medium“ und „computerlesbares Medium“ ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenbefehle und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenbefehle als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal“ bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
-
Um eine Interaktion mit einem Benutzer bereitzustellen, können die hier beschriebenen Systeme und Techniken auf einem Computer implementiert werden, der eine Anzeigevorrichtung (wie z. B. einen CRT-(Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige)-Monitor) aufweist, um dem Benutzer Informationen anzuzeigen, und eine Tastatur und eine Zeigeeinrichtung (z. B. eine Maus oder ein Trackball) mittels denen der Benutzer eine Eingabe an den Computer bereitstellen kann. Es können auch andere Arten von Vorrichtungen verwendet werden, um für eine Interaktion mit einem Benutzer zu sorgen; beispielsweise kann eine an den Benutzer bereitgestellte Rückkopplung eine beliebige Form von sensorischer Rückkopplung sein, wie z. B. eine visuelle Rückkopplung, auditorische Rückkopplung oder taktile Rückkopplung; und die Eingabe vom Benutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe.
-
Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Backendkomponente (z. B. als einen Datenserver) umfasst, oder das eine Middlewarekomponente (z. B. einen Anwendungsserver) umfasst, oder das eine Frontendkomponente (z. B. einen Clientcomputer mit einer grafischen Benutzerschnittstelle oder einem Webbrowser umfasst, durch die bzw. den ein Benutzer mit hier beschriebenen Systemimplementationen und Techniken interagieren kann) oder jeder Kombination aus solchen Backend-, Middleware- oder Frontendkomponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein). Beispiele von Kommunikationsnetzwerken umfassen ein lokales Netzwerk („LAN“), ein Fernnetzwerk („WAN“) und das Internet.
-
Das Computersystem kann Clients und Server umfassen. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander aufweisen.
-
Obwohl einige Implementierungen vorstehend im Detail beschrieben wurden, sind andere Modifikationen möglich. Während eine Kundenanwendung als Zugreifen auf den bzw. die Delegierten beschrieben ist, können bei anderen Implementierungen der bzw. die Delegierten durch andere Anwendungen verwendet werden, die durch einen oder mehrere Prozessoren implementiert sind, wie beispielsweise eine Anwendung, die auf einem oder mehreren Servern ausführt. Außerdem erfordern die in den Figuren dargestellten logischen Abläufe nicht die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. Darüber hinaus können andere Aktionen vorgesehen oder Aktionen aus den beschriebenen Abläufen eliminiert werden und andere Komponenten können zu den beschriebenen Systemen hinzugefügt oder davon entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.