Title:
Zusammenwirkende sprachgesteuerte Geräte
Kind Code:
U1


Abstract:

Computerprogrammprodukt, das eine Reihe von Anweisungen enthält, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren durchzuführen, das Verfahren umfassend:
Identifizieren, durch ein erstes Computergerät, eines zweiten Computergeräts, das konfiguriert ist auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten;
Empfangen von Audiodaten, die einer Äußerung entsprechen;
Empfangen einer Transkription von zusätzlichen Audiodaten, die durch das zweite Computergerät ausgegeben werden, als Antwort auf die Äußerung;
basierend auf der Transkription der zusätzlichen Audiodaten und basierend auf der Äußerung Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht; und
Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht. embedded image




Application Number:
DE202017105526U
Publication Date:
04/16/2018
Filing Date:
09/12/2017
Assignee:
Google LLC (n.d.Ges.d. Staates Delaware) (Calif., Mountain View, US)
International Classes:



Attorney, Agent or Firm:
Maikowski & Ninnemann Patentanwälte Partnerschaft mbB, 10707, Berlin, DE
Claims:
Computerprogrammprodukt, das eine Reihe von Anweisungen enthält, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren durchzuführen, das Verfahren umfassend:
Identifizieren, durch ein erstes Computergerät, eines zweiten Computergeräts, das konfiguriert ist auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten;
Empfangen von Audiodaten, die einer Äußerung entsprechen;
Empfangen einer Transkription von zusätzlichen Audiodaten, die durch das zweite Computergerät ausgegeben werden, als Antwort auf die Äußerung;
basierend auf der Transkription der zusätzlichen Audiodaten und basierend auf der Äußerung Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht; und
Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht.

Computerprogrammprodukt nach Anspruch 1, wobei Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht, umfasst: Bereitstellen eines Anfangsabschnitts der Transkription für einen Sprachsynthesizer des ersten Computergeräts; und Bereitstellen für das zweite Computergerät (i) eines verbleibenden Abschnitts der Transkription und (ii) Anweisungen den verbleibenden Abschnitt der Transkription unter Verwendung eines Sprachsynthesizers des zweiten Computergeräts auszugeben.

Computerprogrammprodukt nach Anspruch 1, das Verfahren umfassend:
vor Ausführen der Spracherkennung an den Audiodaten, die der Äußerung entsprechen:
Bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten; und
Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet.

Computerprogrammprodukt nach Anspruch 1, wobei Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht, umfasst:
Bereitstellen der Transkription, die der Antwort entspricht, für einen Sprachsynthesizer.

Computerprogrammprodukt nach Anspruch 3, wobei Audiodaten, die der synthetisierten Transkription entsprechen, durch ein drittes Computergerät empfangen werden, das konfiguriert ist, eine Antwort basierend auf den Audiodaten, die der synthetisierten Transkription entsprechen, der Transkription der zusätzlichen Audiodaten und der Äußerung zu generieren.

Computerprogrammprodukt nach Anspruch 1, das Verfahren umfassend:
nach Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht, Empfangen, durch das erste Computergerät, von Audiodaten, die einer zweiten Äußerung entsprechen;
basierend auf der Transkription der zusätzlichen Audiodaten, basierend auf der Äußerung, und basierend auf der zweiten Äußerung, Generieren einer zusätzlichen Transkription, die einer Antwort auf die Audiodaten entspricht, die der zweiten Äußerung entsprechen; und
Bereitstellen, zur Ausgabe, der zusätzlichen Transkription.

Computerprogrammprodukt nach Anspruch 3, das Verfahren umfassend:
Empfangen von Daten, die eine Art von Sprachsynthesizer angeben, der durch das zweite Computergerät zum Ausgeben der zusätzlichen Audiodaten verwendet wird,
wobei sich eine Art von Sprachsynthesizer, der die der Antwort entsprechende Transkription empfing, von der Art von Sprachsynthesizer unterscheidet, der durch das zweite Computergerät zum Ausgeben der zusätzlichen Audiodaten verwendet wird.

Computerprogrammprodukt nach Anspruch 1, wobei Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht, umfasst:
Bereitstellen der Transkription für eine Anzeige des ersten Computergeräts.

Computerprogrammprodukt nach Anspruch 2, wobei Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, umfasst:
Empfangen, von dem zweiten Computergerät, eines Kurzstreckenfunksignals, das angibt, dass das zweite Computergerät auf die Audiodaten antwortet;
Empfangen, von dem zweiten Computergerät und durch ein lokales Netzwerk, von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet; oder
Empfangen, von einem Server, von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet.

Computerprogrammprodukt nach Anspruch 2, wobei Bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten, umfasst:
Extrahieren von Audiomerkmalen aus den Audiodaten, die der Äußerung entsprechen;
Erzeugen einer Triggerwort-Konfidenzpunktzahl durch Verarbeiten der Audiomerkmale;
Bestimmen, dass die Triggerwort-Konfidenzpunktzahl einen Triggerwort-Konfidenzschwellenwert erreicht; und
basierend auf Bestimmen, dass die Triggerwort-Konfidenzpunktzahl einen Triggerwort-Konfidenzschwellenwert erreicht, Bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten.

Computerprogrammprodukt nach Anspruch 1, wobei Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht, umfasst:
Bestimmen von Benutzerinformationen, die einem ersten Benutzer des ersten Computergeräts oder einem zweiten Benutzer des zweiten Computergeräts zugeordnet sind; und
wobei die Transkription basierend auf den Benutzerinformationen generiert wird.

Computerprogrammprodukt nach Anspruch 1, wobei Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht, umfasst:
Abrufen von Daten, die der Transkription der zusätzlichen Audiodaten zugeordnet sind; und
wobei die Transkription basierend auf den abgerufenen Daten generiert wird.

Computerprogrammprodukt nach Anspruch 1, das Verfahren umfassend:
Bestimmen eines Standortes des ersten Computergeräts,
wobei die Transkription basierend auf dem Standort des ersten Computergeräts generiert wird.

Computerprogrammprodukt nach Anspruch 2, das Verfahren umfassend:
als Antwort auf Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, Bereitstellen, für das zweite Computergerät oder für einen Server, der Audiodaten, die der Äußerung entsprechen.

Computerprogrammprodukt nach Anspruch 1, das Verfahren umfassend:
Generieren eines ersten Audiofingerabdrucks der Audiodaten, die der Äußerung entsprechen;
Empfangen, von dem zweiten Computergerät, eines zweiten Audiofingerabdrucks der Audiodaten, die der Äußerung entsprechen;
Vergleichen des ersten Audiofingerabdrucks mit dem zweiten Audiofingerabdruck; und
basierend auf Vergleichen des ersten Audiofingerabdrucks mit dem zweiten Audiofingerabdruck Bestimmen, dass die von dem ersten Computergerät empfangenen Audiodaten den von dem zweiten Computergerät empfangenen Audiodaten entsprechen.

Computerprogrammprodukt nach Anspruch 1, das Verfahren umfassend:
Empfangen, von dem zweiten Computergerät oder einem Server, einer Transkription der Audiodaten, die der Äußerung entsprechen,
wobei Generieren der Transkription, die der Antwort auf die zusätzlichen Audiodaten entspricht, ferner auf der Transkription der Audiodaten basiert, die der Äußerung entsprechen.

Computerprogrammprodukt nach Anspruch 1, wobei das erste Computergerät und das zweite Computergerät in der Lage sind, Kurzstreckenfunkkommunikationen voneinander zu erkennen.

Computerprogrammprodukt nach Anspruch 1, wobei das erste Computergerät und das zweite Computergerät am gleichen Standort positioniert sind.

System, umfassend:
einen oder mehrere Computer und ein oder mehrere Speichergeräte, die Befehle speichern, welche bei Ausführung durch den einen oder die mehreren Computer dazu dienen, den einen oder die mehreren Computer zu veranlassen, Vorgänge auszuführen, die Vorgänge umfassend:
Identifizieren, durch ein erstes Computergerät, eines zweiten Computergeräts, das konfiguriert ist, auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten;
Empfangen von Audiodaten, die einer Äußerung entsprechen;
Empfangen einer Transkription von zusätzlichen durch das zweite Computergerät ausgegebenen Audiodaten, als Antwort auf die Äußerung;
basierend auf der Transkription der zusätzlichen Audiodaten und basierend auf der Äußerung Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht; und
Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht.

Nicht flüchtiges computerlesbares Medium, das Software speichert, die durch einen oder mehrere Computer ausführbare Befehle umfasst, die bei einer solchen Ausführung den einen oder die mehreren Computer veranlassen, Vorgänge auszuführen, die Vorgänge umfassend:
Identifizieren, durch ein erstes Computergerät, eines zweiten Computergeräts, das konfiguriert ist, auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten;
Empfangen von Audiodaten, die einer Äußerung entsprechen;
Empfangen einer Transkription von zusätzlichen durch das zweite Computergerät ausgegebenen Audiodaten, als Antwort auf die Äußerung;
basierend auf der Transkription der zusätzlichen Audiodaten und basierend auf der Äußerung Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht; und
Bereitstellen, zur Ausgabe, der Transkription, die der Antwort entspricht.

Description:
TECHNISCHES GEBIET

Diese Beschreibung betrifft allgemein die automatisierte Spracherkennung.

HINTERGRUND

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 Mikrofongeräten implementiert werden, die in verschiedenen Räumen oder Bereichen der Umgebung verteilt sind. Durch solch ein Netzwerk von Mikrofonen kann ein Benutzer das System prinzipiell überall in der Umgebung mündlich abfragen, ohne sich vor oder auch nur in der Nähe eines Computers oder eines anderen Geräts befinden zu müssen. Während ein Benutzer in der Küche kocht, kann er beispielsweise das System fragen „Wie viele Milliliter sind in drei Tassen?“. und als Reaktion, z. B. in Form einer künstlichen Sprachausgabe, eine Antwort vom System erhalten. Alternativ könnte ein Benutzer dem System Fragen stellen, wie „Wann schließt die Tankstelle in meiner Nähe“ oder vor dem Verlassen des Hauses „Soll ich heute einen Mantel anziehen?“. Des Weiteren 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 meine Besprechung mit John?“. oder das System anweisen „Erinnere mich daran, John anzurufen, wenn ich nach Hause komme“.

KURZDARSTELLUNG

Triggerwörter können verwendet werden, um das Aufgreifen von Äußerungen zu vermeiden, die in der Umgebung gemacht wurden, die nicht an das System gerichtet sind. Ein Triggerwort (auch als ein „Aufmerksamkeitswort“ oder „Sprachaktionsinitiierungsbefehl“ bezeichnet) ist ein zuvor festgelegtes Wort oder ein Begriff, der gesprochen wird, um die Aufmerksamkeit des Systems zu erregen. In einer exemplarischen Umgebung besteht das Triggerwort zum Erregen der Aufmerksamkeit des Systems aus den Worten „OK Computer“. Wenn das System erkennt, dass der Benutzer das Triggerwort gesprochen hat, gibt das System einen Bereit-Status zum Empfangen weiterer Benutzerbefehle ein.

In sprachgesteuerten Umgebungen können Geräte ununterbrochen auf Triggerwörter hören. Wenn mehrere Geräte in derselben Umgebung vorhanden sind, die konfiguriert sind, um auf ein bestimmtes Triggerwort zu reagieren, kann jede Äußerung, die das Triggerwort beinhaltet, alle Geräte auslösen und redundante Reaktionen von den mehreren Geräten bereitstellen. Beispielsweise können Alice, Bob und Carl nach einem Restaurant Ausschau halten, wohin sie zum Mittagessen gehen. Alice kann sagen „OK Computer, suche mir Restaurants in der Nähe“. Alle drei ihrer Telefone können gleichzeitig eine Antwort bereitstellen, z. B. eine Liste von Restaurants. Zum Verbessern der Benutzererfahrung kann es wünschenswert sein, wenn die Telefone miteinander kommunizieren, um unterschiedliche Antworten auf koordinierte Art ähnlich einer tatsächlichen Unterhaltung bereitzustellen. Alices Telefon kann eine Liste von Restaurants in der Nähe bereitstellen und Bobs Telefon kann eine Antwort bereitstellen, bei der eines der Restaurants aus der Liste der von Alices Telefon bereitgestellten Restaurants in der Nähe ausgewählt wird. Carls Telefon kann eine Antwort bereitstellen, bei der dem ausgewählten Restaurant basierend auf Carls Bewertung des Restaurants in den sozialen Medien zugestimmt wird.

Gemäß einem innovativen Aspekt des in dieser Spezifikation beschriebenen Gegenstandes identifiziert ein erstes Computergerät ein oder mehrere andere Computergeräte, die konfiguriert sind, um auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten. Das erste Computergerät empfängt eine durch einen Benutzer ausgesprochene Äußerung. Vor dem Ausführen von Spracherkennung an den Audiodaten, die der Äußerung entsprechen, bestimmt das erste Computergerät, dass die Audiodaten das Triggerwort beinhalten und dass ein zweites Computergerät bereits die Audiodaten verarbeitet. Das erste Computergerät empfängt die durch das zweite Computergerät in Reaktion auf die Äußerung ausgegebene Antwort. Basierend auf dieser Antwort und der Äußerung generiert das erste Computergerät eine Antwort und stellt die Antwort zum Ausgeben bereit. Daher erweitert das erste Computergerät die Antwort von dem zweiten Computergerät und stellt eine neue Antwort bereit, die zusätzliche Informationen für die Benutzer bereitstellen kann.

Im Allgemeinen kann ein weiterer innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstandes in einem Computerprogrammprodukt enthalten sein, das eine Reihe von Anweisungen enthält, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren durchzuführen, das die Aktionen des Identifizierens eines zweiten Computergeräts, das zum Antworten auf ein bestimmtes, zuvor festgelegtes Triggerwort konfiguriert ist, durch ein erstes Computergerät; Empfangens von Audiodaten, die einer Äußerung entsprechen; Empfangens einer Transkription von zusätzlichen Audiodaten, die durch das zweite Computergerät als Antwort auf die Äußerung ausgegeben wurden; basierend auf der Transkription der zusätzlichen Audiodaten und basierend auf der Äußerung Generierens einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht; und Bereitstellens der Transkription, die der Antwort entspricht, zum Ausgeben beinhalten, beinhaltet.

Diese und andere Ausführungsformen können gegebenenfalls jeweils ein oder mehrere der folgenden Merkmale beinhalten. In einigen Implementierungen umfasst das Bereitstellen der Transkription zum Ausgeben, die der Antwort entspricht, Bereitstellen eines Anfangsabschnitts der Transkription für einen Sprachsynthesizer des ersten Computergeräts; und Bereitstellen (i) eines verbleibenden Abschnitts der Transkription für das zweite Computergerät und (ii) Anweisungen zum Ausgeben des verbleibenden Abschnitts der Transkription unter Verwendung eines Sprachsythesizers des zweiten Computergeräts.

In einigen Implementierungen beinhalten die Aktionen des Weiteren das Ausführen von Spracherkennung an den Audiodaten, die der Äußerung entsprechen: Bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten; und Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet.

In einigen Implementierungen umfasst das Bereitstellen der Transkription zum Ausgeben, die der Antwort entspricht, Bereitstellen der Transkription, die der Antwort entspricht, für einen Sprachsynthesizer.

In einigen Implementierungen werden die der synthetisierten Transkription entsprechenden Audiodaten durch ein drittes Computergerät empfangen, das konfiguriert ist, um eine Antwort basierend auf den der synthetisierten Transkription entsprechenden Audiodaten, der Transkription der zusätzlichen Audiodaten und der Äußerung zu generieren.

In einigen Implementierungen beinhalten die Aktionen des Weiteren nach dem Bereitstellen der Transkription, die der Antwort entspricht, zum Ausgeben, Empfangen von Audiodaten durch das erste Computergerät, die einer zweiten Äußerung entsprechen; basierend auf der Transkription der zusätzlichen Audiodaten, basierend auf der Äußerung und basierend auf der zweiten Äußerung, Generieren einer zusätzlichen Transkription, die einer Antwort auf die Audiodaten entspricht, die der zweiten Äußerung entsprechen; und Bereitstellen der zusätzlichen Transkription zum Ausgeben.

In einigen Implementierungen beinhalten die Aktionen des Weiteren Empfangen von Daten, die eine Art von Sprachsynthesizer angeben, der durch das zweite Computergerät zum Ausgeben der zusätzlichen Audiodaten verwendet wird, wobei eine Art von Sprachsynthesizer, der die der Antwort entsprechende Transkription empfing, anders als die Art von Sprachsynthesizer ist, der durch das zweite Computergerät zum Ausgeben der zusätzlichen Audiodaten verwendet wird.

In einigen Implementierungen umfasst das Bereitstellen der Transkription zum Ausgeben, die der Antwort entspricht, Bereitstellen der Transkription zum Anzeigen auf einer Anzeige des ersten Computergeräts.

In einigen Implementierungen beinhaltet Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, Empfangen eines Kurzstreckenfunksignals von dem zweiten Computergerät, das angibt, dass das zweite Computergerät auf die Audiodaten antwortet. In einigen Implementierungen beinhaltet Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, Empfangen von Daten von dem zweiten Computergerät und durch ein lokales Netzwerk, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet. In einigen Implementierungen beinhaltet Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, Empfangen von Daten von einem Server, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet.

In bestimmten Aspekten beinhaltet Bestimmen, dass die der Äußerung entsprechenden Audiodaten das bestimmte, zuvor festgelegte Triggerwort beinhalten, die Schritte des Extrahierens von Audiomerkmalen aus den Audiodaten, die der Äußerung entsprechen; Erzeugung einer Triggerwort-Konfidenzpunktzahl durch Verarbeiten der Audiomerkmale; Bestimmen, dass die Triggerwort-Konfidenzpunktzahl einen Triggerwort-Konfidenzschwellenwert erreicht; und basierend auf Bestimmen, dass die Triggerwort-Vertrauenspunktzahl einen Triggerwort-Vertrauensschwellenwert erreicht, Bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten.

In einigen Implementierungen umfasst Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht, Bestimmen von Benutzerinformationen, die der Transkription der zusätzlichen Audiodaten zugeordnet sind, die einem ersten Benutzer des ersten Computergeräts oder einem zweiten Benutzer des zweiten Computergeräts zugeordnet sind; und wobei die Transkription basierend auf den Benutzerinformationen generiert wird.

In bestimmten Aspekten umfasst Generieren einer Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht, die Aktionen des Aufrufens von Daten, die der Transkription der zusätzlichen Audiodaten zugeordnet sind; und Generieren der Transkription basierend auf den aufgerufenen Daten.

Die Aktionen beinhalten des Weiteren Bestimmen eines Standortes des ersten Computergeräts und Generieren der Transkription basierend auf dem Standort des ersten Computergeräts. Die Aktionen beinhalten des Weiteren Bereitstellen der Audiodaten, die der Äußerung entsprechen, als Antwort auf Empfangen von Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet, für das zweite Computergerät oder für einen Server.

In einigen Implementierungen beinhalten die Aktionen des Weiteren Generieren eines ersten Audiofingerabdrucks der Audiodaten, die der Äußerung entsprechen, Empfangen eines zweiten Audiofingerabdrucks der Audiodaten von dem zweiten Computergerät, die der Äußerung entsprechen; Vergleichen des ersten Audiofingerabdrucks mit dem zweiten Audiofingerabdruck; und basierend auf Vergleichen des ersten Audiofingerabdrucks mit dem zweiten Audiofingerabdruck Bestimmen, dass die von dem ersten Computergerät empfangenen Audiodaten den von dem zweiten Computergerät empfangenen Audiodaten entsprechen.

In einigen Implementierungen beinhalten weitere Aktionen Empfangen einer Transkription der Audiodaten von dem zweiten Computergerät, die der Äußerung entsprechen, wobei Generieren der Transkription, die der Antwort auf die zusätzlichen Audiodaten entspricht, des Weiteren auf der Transkription der Audiodaten basiert, die der Äußerung entsprechen.

In einigen Implementierungen sind das erste Computergerät und das zweite Computergerät in der Lage, Kurzstreckenfunkkommunikationen voneinander zu erkennen.

In einigen Implementierungen sind das erste Computergerät und das zweite Computergerät am gleichen Standort positioniert.

Andere Ausführungsformen dieses Aspekts beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die auf Computerspeichergeräte aufgezeichnet sind, von denen jedes konfiguriert ist, die Vorgänge 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. Zunächst kann ein zusammenwirkendes sprachgesteuertes Gerätesystem Gesprächssuche intelligenter und natürlicher gestalten, indem es nahtlos mehrere und sequenzielle Antworten auf koordinierte Art ähnlich wie bei einem tatsächlichen Gespräch bereitstellt. Vor dem Bereitstellen einer Antwort auf eine Abfrage kann ein Gerät die verfügbaren Informationen zum Generieren einer Antwort verarbeiten. Jedes Gerät kann eine einzigartige Antwort bereitstellen, die zum Gespräch hinzugefügt werden kann, und benutzerspezifisch oder standortspezifisch sein kann. Das Gerät kann entweder die einzigartige Antwort bereitstellen oder die Informationen an ein anderes Gerät weiterleiten. Bereitstellen von Informationen für andere Geräte ermöglicht dem Gerät, Gespräche menschlicher zu gestalten, indem absichtlich Teile der einzigartigen Antwort weggelassen werden, sodass andere Geräte die Antwort vervollständigen können. Zweitens kann ein zusammenwirkendes sprachgesteuertes Gerätesystem das Problem lösen, dass mehrere Geräte auf dieselbe Abfrage auf nahezu identische Art antworten. Beispielsweise ermöglicht Kommunikation zwischen den Geräten, dass die Geräte bestimmen, wie und wann die Geräte auf die Abfrage antworten. Dadurch wird die Verschwendung von Computerressourcen und Batterieleistung reduziert, indem redundante Ausgaben vermieden werden. Drittens kann das zusammenwirkende sprachgesteuerte Gerätesystem zum Verbessern der Sprachverarbeitung durch Verwenden mehrerer Geräte mit unterschiedlichen Mikrofonen an unterschiedlichen Standorten zum Verarbeiten von Audiodaten verwendet werden, um eine genauere Transkription der Audiodaten zu erhalten.

Die Details von einer oder mehreren Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstands sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Weitere Merkmale, Aspekte und Vorteile des Gegenstands werden anhand der Beschreibung, der Zeichnungen und der Patentansprüche ersichtlich.

Figurenliste

  • 1 zeigt ein Diagramm eines exemplarischen Systems zum Zusammenwirken zwischen mehreren sprachgesteuerten Geräten.
  • 2 zeigt ein Diagramm eines exemplarischen Verfahrens zum Zusammenwirken zwischen mehreren sprachgesteuerten Geräten.
  • 3 zeigt ein Beispiel eines Computergeräts und eines mobilen Computergeräts.

In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.

AUSFÜHRLICHE BESCHREIBUNG

1 zeigt ein Diagramm eines exemplarischen Systems 100 zum Zusammenwirken zwischen mehreren sprachgesteuerten Geräten. Im Allgemeinen veranschaulicht das System 100 eine Benutzerin Alice, die eine Äußerung 102 „OK Computer, finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“ spricht, die durch Computergeräte 104a und 104b erkannt wird. Computergerät 104a verarbeitet die Äußerung und stellt eine Antwort „Al's Steakhouse in 123 Main Street hat gute Bewertungen“ bereit. Basierend auf der Äußerung 102 und der durch Computergerät 104a bereitgestellten Antwort generiert Computergerät 104b eine Folgeantwort „Al's ist gerade sehr voll, versuchen Sie es stattdessen bei Lone Star Steakhouse in 4 Main Street. Bob gefällt es dort sehr“ und stellt sie bereit.

Ausführlicher ausgedrückt, beginnt die Sequenz von Ereignissen in 1 bei Stufe A. Die Computergeräte 104a und 104b identifizieren einander und andere Computergeräte, die konfiguriert sind, um auf ein bestimmtes, zuvor festgelegtes Triggerwort zu antworten. In einigen Implementierungen identifizieren die Computergeräte einander durch Durchsuchen des lokalen Netzwerks nach anderen Computergeräten, die zum Antworten auf das Triggerwort konfiguriert sind. Beispielsweise kann das Computergerät 104b das lokale Netzwerk durchsuchen, und kann Computergerät 104a als ein anderes Computergerät identifizieren, das zum Antworten auf das Triggerwort konfiguriert ist.

In einigen Implementierungen identifizieren die Computergeräte andere Computergeräte, die zum Antworten auf das Triggerwort konfiguriert sind, durch Identifizieren des an jedem Gerät angemeldeten Benutzers. In einigen Implementierungen, und in diesem Beispiel, kann Computergerät 104a der Benutzerin Alice zugeordnet sein und Computergerät 104b kann einem Benutzer Bob zugeordnet sein. In diesem Fall kann Alice an Computergerät 104a angemeldet sein und Bob kann an Computergerät 104b angemeldet sein. Alice und Bob können Teil einer Gruppe von Benutzern mit zugehörigen Geräten sein, die zum Antworten auf ein bestimmtes, zuvor festgelegtes Triggerwort konfiguriert sein können. Die Gruppe von Benutzern kann eine Gruppe von Arbeitskollegen in einem Unternehmen, oder eine Gruppe von Freunden sein. Jedes Computergerät kann Informationen teilen, die mit dem Benutzer in Zusammenhang stehen, der an dem bestimmten Computergerät angemeldet ist, wie z. B. eine Benutzer-ID.

In einigen Implementierungen können beide Computergeräte 104a und 104b demselben Benutzer zugeordnet sein. Beispielsweise kann Alice an Computergeräten 104a und 104b angemeldet sein. Alice kann das Computergerät 104a in ihrer Hand tragen. Das Computergerät 104b kann ein Haushaltsassistent sein, der auf einem Tisch positioniert ist. Computergerät 104a erkennt Computergerät 104b, und jedes Computergerät teilt Informationen, die mit dem Benutzer in Zusammenhang stehen, der an dem Computergerät angemeldet ist, wie z. B. eine Benutzer-ID.

In einigen Implementierungen können die Computergeräte 104a und 104b, sobald das Computergerät 104b das 104a als ein Computergerät identifiziert hat, das zum Antworten auf dasselbe Triggerwort konfiguriert ist, ihre jeweiligen Geräte-IDs 106 und 108 teilen und speichern. Die IDs können auf einer Art von Gerät, einer IP-Adresse des Geräts, einer MAC-Adresse, einem Namen, der dem Gerät von einem Benutzer gegeben wurde, oder beliebigen Kombinationen derselben basieren. Beispielsweise kann die Geräte-ID 106 für Computergerät 104a „Telefon Alice“ sein. Die Geräte-ID 108 für Computergerät 104b kann „Telefon Bob“ sein. Die Computergeräte 104a und 104b weisen jeweilige Gerätegruppen 110 und 112 auf, wobei die Computergeräte die Geräte-IDs speichern.

In einigen Implementierungen können mehr als zwei Computergeräte vorhanden sein, die zum Antworten auf das bestimmte Triggerwort konfiguriert sind. Jedes Computergerät kann die anderen Computergeräte identifizieren, die zum Antworten auf das bestimmte Triggerwort konfiguriert sind, und kann die Geräte-IDs für die anderen Computergeräte in der Gerätegruppe speichern.

In einigen Implementierungen können die Computergeräte an demselben Standort positioniert sein, sodass sie einen selben Standort oder Platz teilen. Die Computergeräte können innerhalb eines zuvor festgelegten Abstands voneinander, oder in demselben Raum sein. Die Computergeräte können in derselben akustischen Umgebung sein. In einigen Beispielen können die Computergeräte virtuell am gleichen Standort positioniert sein, z. B. wenn die Computergeräte an einer Telefon- oder Videokonferenz teilnehmen.

In einigen Implementierungen können die Computergeräte andere Computergeräte identifizieren, die zum Antworten auf das Triggerwort durch eine Kurzstreckenkommunikation, wie z. B. das Bluetooth-Protokoll oder das Bluetooth-Low-Energy (BLE)-Protokoll, konfiguriert sind. Beispielsweise kann das Computergerät 104a ein Signal durch Kurzstreckenkommunikation übertragen, das nach anderen Computergeräten sucht, die zum Antworten auf das Triggerwort konfiguriert sind. Die Computergeräte können innerhalb eines bestimmten Abstands, wie z. B. zehn Meter, wie durch GPS oder Signalstärke bestimmt, voneinander positioniert sein. Das erste Computergerät kann eine Stärke eines Signals erkennen, das durch das zweite Computergerät übertragen wird, und dies in einen entsprechenden Abstand übersetzen. Die Computergeräte können eine dieser Techniken oder eine Kombination derselben verwenden, um andere Computergeräte zu identifizieren, die konfiguriert sind, um auf das Triggerwort zu antworten.

In diesem Beispiel und in Stufe B spricht Alice die Äußerung 102 „OK Computer, finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“, in der Nähe der Computergeräte 104a und 104b. Die Äußerung 102 wird durch Mikrofone 114 und 116 jeweils von Computergeräten 104a und 104b erkannt.

Die jeweiligen Mikrofone 114 und 116 der Computergeräte 104a und 104b stellen Audiodaten für jeweilige Audiosubsysteme 118 und 120 bereit. Die jeweiligen Audiosubsysteme 118 und 120 können die Audiodaten puffern, filtern und digitalisieren. In einigen Implementierungen können die Computergeräte auch Endpointing an den Audiodaten ausführen. Die Audiosubsysteme 118 und 120 können Audiopuffer zum Speichern von gefilterten und digitalisierten Audiodaten beinhalten.

In Stufe C stellen das jeweilige Audiosubsystem 118 und 120 von jedem Computergerät 104a und 104b die verarbeiteten Audiodaten für die jeweiligen Triggerwortprozessoren 122 und 124 bereit. Die jeweiligen Triggerwortprozessoren 122 und 124 vergleichen die verarbeiteten Audiodaten mit bekannten Triggerwort-Daten und berechnen jeweilige Triggerwort-Konfidenzpunktzahlen, die die Wahrscheinlichkeit angeben, dass die Äußerung 102 ein Triggerwort 126 beinhaltet.

Die Triggerwortprozessoren 124 des Computergeräts 104b können Audiomerkmale von den verarbeiteten Audiodaten extrahieren, wie z. B. Filterbankenergien oder Mel-Frequenz-Cepstrum-Koeffizienten. Der Triggerwortprozessor 124 kann Einstufungsfenster verwenden, um diese Audiomerkmale, beispielsweise unter Verwendung einer Support Vector Machine oder eines neuronalen Netzwerks, zu verarbeiten. Basierend auf der Verarbeitung der Audiomerkmale bestimmt das Computergerät 104b, dass die Äußerung 102 das Triggerwort 126 beinhaltet, wenn der Triggerwortprozessor 124 des Computergeräts 104b eine Triggerwort-Konfidenzpunktzahl berechnet, die eine Schwellenwert-Triggerwort-Konfidenzpunktzahl überschreitet. Auf ähnliche Weise kann der Triggerwortprozessor 122 von Computergerät 104a bestimmen, dass die Äußerung 102 das Triggerwort 126 beinhaltet.

In einigen Implementierungen senden ein oder mehrere der Computergeräte die verarbeiteten Audiodaten zu einem Server und der Server berechnet eine Triggerwort-Konfidenzpunktzahl. In diesem Fall beinhaltet der Server einen Triggerwortprozessor ähnlich den Triggerwortprozessoren 122 und 124. Der Triggerwortporzessor auf dem Server kann bestimmen, dass die Äußerung 102 das Triggerwort beinhaltet, und sendet die Benachrichtigung an das eine oder die mehreren Computergeräte.

In einigen Implementierungen stellt das System das Vorhandensein des Triggerwortes in den Audiodaten fest, ohne eine Spracherkennung der Audiodaten durchzuführen.

In einigen Implementierungen kann jedes Computergerät Audiofingerabdrücke der empfangenen Audiodaten generieren. Computergerät 104b kann einen ersten Audiofingerabdruck der Audiodaten generieren, die der durch Mikrofon 114 des Computergeräts 104a erkannten Äußerung entsprechen. Computergerät 104b kann einen zweiten Audiofingerabdruck der Audiodaten empfangen, die der durch Mikrofon 116 des Computergeräts 104b erkannten Äußerung entsprechen. Die Audiofingerabdrücke können verglichen werden, um zu bestimmen, ob die Computergeräte 104a und 104b auf dieselbe Äußerung antworten.

In einigen Implementierungen können die Audiodaten von den Computergeräten zu einem Server gesendet werden. Der Server kann ein Audiofingerabdruckmodul zum Generieren der Audiofingerabdrücke und Ausführen des Vergleichs beinhalten. In einigen Implementierungen können die Computergeräte auch eine Geräte-ID mit den Audiodaten senden. In einigen Implementierungen können die Computergeräte auch Standortinformationen, die den Computergeräten zugeordnet sind, mit den Audiodaten senden.

In Stufe D identifiziert das sprachgesteuerte System 100 eines der Computergeräte als das Gerät, wofür die Äußerung 102 bestimmt ist. In diesem Beispiel kann Alice die Äußerung 102 in Richtung des Computergeräts 104a sprechen, das sich in ihrer Hand befindet. Das Computergerät 104a wird als das Computergerät identifiziert, wofür die Äußerung 102 bestimmt ist. Das Computergerät 104a benachrichtigt die anderen Geräte, die durch die Äußerung 102 ausgelöst wurden, dass es die Audiodaten verarbeiten wird. In diesem Beispiel sendet das Computergerät 104a einen Antwortindikator 128, der angibt, dass es auf die Audiodaten antwortet, die der Äußerung 102 an Computergerät 104b entsprechen.

In einigen Implementierungen kann der Antwortindikator 128, der angibt, dass 104a auf die Audiodaten antwortet, ein Ultraschall- oder hörbares Audiosignal, oder ein Kurzstreckenfunksignal, wie z. B. Bluetooth, sein. Das Signal wird durch 104b und beliebige andere Computergeräte in der Nähe empfangen. In einigen Implementierungen kann das Benachrichtigungssignal eine bestimmte Frequenz und/oder ein Muster beinhalten. Beispielsweise kann ein Benachrichtigungssignal zwanzig Kilohertz betragen, um anzugeben, dass das zweite Computergerät Spracherkennung an den Audiodaten ausführen wird.

In einigen Implementierungen kann der Antwortindikator 128, der angibt dass 104a auf die Audiodaten antwortet, durch 104b über ein lokales Netzwerk empfangen werden. In einigen Implementierungen kann der Antwortindikator 128, der angibt, dass 104a auf die Audiodaten antwortet, durch 104b über einen Server empfangen werden.

In einigen Implementierungen kann Bestimmen, welches Gerät anfänglich auf eine Benutzeräußerung antwortet, Bestimmen beinhalten, welches Gerät sich am Nächsten zu einem Benutzer befindet. Die Lautstärke der durch das Computergerät empfangenen Audiodaten kann einen Abstand zwischen dem Computergerät und der Quelle des Audios widerspiegeln. Für die Direktweg-Signalausbreitung ist die Lautstärke etwa umgekehrt proportional zu dem Quadrat des Abstandes zwischen der Quelle und dem Empfänger.

In einigen Implementierungen können die Computergeräte eine Lautstärkepunktzahl für die Audiodaten unter Verwendung von einer oder einer Kombination der folgenden Techniken berechnen. Eine Technik kann darin bestehen, den Schalldruck oder Schalldruckpegel zu berechnen, wie er durch das Mikrofon empfangen wird, wenn der Benutzer die Äußerung spricht. Je höher der Schalldruck oder der Schalldruckpegel, umso höher die Lautstärke. Eine zweite Technik besteht im Berechnen des Effektivwerts der Audiodaten. Je höher der Effektivwert der Audiodaten, umso höher die Lautstärke. Eine dritte Technik besteht im Berechnen der Schallintensität der Audiodaten. Je höher die Schallintensität der Audiodaten, umso höher die Lautstärke. Eine vierte Technik besteht im Berechnen der Schallleistung der Audiodaten. Je höher die Schallleistung, umso höher die Lautstärke. Das Computergerät mit der höchsten Lautstärkepunktzahl kann als das Computergerät identifiziert werden, das anfänglich auf die Äußerung 102 antwortet.

In einigen Implementierungen kann Bestimmen, welches Gerät anfänglich auf eine Benutzeräußerung antwortet, Bestimmen beinhalten, welches Gerät die klarsten Audiodaten empfängt. Jedes Computergerät kann eine Klarheitspunktzahl berechnen, die basierend auf dem Signal-Rausch-Verhältnis der Audiodaten bestimmt wird, die der Äußerung 102 zugeordnet sind. Das Computergerät mit der höchsten Klarheitspunktzahl kann als das Computergerät identifiziert werden, das anfänglich auf die Äußerung 102 antwortet.

In einigen Implementierungen kann Bestimmen, welches Gerät anfänglich auf eine Benutzeräußerung antwortet, Ausführen der Sprecheridentifikation an den Audiodaten entsprechend der Äußerung 102 umfassen. Dies kann Bereitstellen der Audiodaten für die jeweiligen Sprecheridentifizierungsmodule 154 und 156 des Computergeräts 104a und 104b umfassen. Die Sprecheridentifizierungsmodule 154 und 156 können in Software implementiert sein, die auf einem Prozessor ausgeführt wird. Die Sprecheridentifizierungsmodule 154 und 156 analysieren die Audiodaten zum Berechnen einer jeweiligen Sprecheridentitäts-Konfidenzpunktzahl, die eine Konfidenz angibt, dass die Identität des Sprechers zu dem Benutzer passt, der dem Computergerät zugeordnet ist. Beispielsweise kann das Sprecheridentifizierungsmodul 154 des Computergeräts 104a eine Konfidenzpunktzahl von 0,8 berechnen, und Sprecheridentifizierungsmodul 156 von Computergerät 104b kann eine Sprecheridentitäts-Konfidenzpunktzahl von 0,05 berechnen, die eine größere Konfidenz angibt, dass die Sprecherin Alice ist.

In einigen Implementierungen können die Computergeräte eine von diesen Punktzahlen oder eine Kombination derselben verwenden, um eine Gesamtkonfidenzpunktzahl zu bestimmen. Die Gesamtkonfidenzpunktzahl kann zum Identifizieren des Computergeräts verwendet werden, das anfänglich auf die Benutzeräußerung 102 antwortet. In einigen Implementierungen kann jedes Computergerät die jeweilige Punktzahl oder eine Kombination von Punktzahlen sowie die jeweilige Geräte-ID zu den anderen Computergeräten in der Gerätegruppe übertragen.

In einigen Implementierungen kann jedes Computergerät einen Punktzahlvergleicher zum Vergleichen der Gesamtkonfidenzpunktzahlen von allen Computergeräten verwenden, die zum Antworten auf das Triggerwort konfiguriert sind. Das Computergerät mit der höchsten Gesamtkonfidenzpunktzahl kann die Spracherkennung an den Audiodaten nach dem Triggerwort initiieren. Ein Computergerät, das nicht die höchste Gesamtkonfidenzpunktzahl aufweist, kann auf Daten warten, die angeben, dass ein anderes Computergerät begonnen hat, die Audiodaten zu verarbeiten.

In einigen Implementierungen kann Bestimmen, welches Gerät anfänglich auf eine Benutzeräußerung antwortet, Analysieren der Einstellungen des Computergeräts umfassen. Wenn beispielsweise die Äußerung auf Französisch, und ein Telefon mit französischen Spracheinstellungen in der Nähe ist, dann ist dies wahrscheinlich das Computergerät, wofür die Äußerung vorgesehen war.

In einigen Implementierungen kann Bestimmen, welches Gerät anfänglich auf eine Benutzeräußerung antwortet, durch Analysieren der Semantik des Befehls oder der Abfrage erfolgen, die in der Äußerung beinhaltet ist, und durch Korrelieren derselben mit dem Status und den Informationen der Computergeräte. Wenn beispielsweise die Abfrage lautet „Mit wem treffe ich mich um zwei Uhr?“, dann kann das sprachgesteuerte System bestimmen, dass die Abfrage für das Computergerät vorgesehen ist, das mit einem Kalender synchronisiert ist, und einen Termin um zwei Uhr hat.

In Stufe E verarbeitet das Computergerät 104a die Audiodaten, die der Äußerung 102 entsprechen. Die Audiodaten können für ein Spracherkennungsgerät 130 vorgesehen sein, das für den Teil der Audiodaten nach dem Triggerwort eine Spracherkennung durchführen kann. In diesem Beispiel kann das Spracherkennungsgerät 130 die Worte identifizieren „Finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“, und den Befehl identifizieren und ausführen.

In einigen Implementierungen kann das Computergerät 104a den Teil der Audiodaten nach dem Triggerwort an einen Server senden. Der Server kann ein Spracherkennungsgerät ähnlich dem Spracherkennungsgerät 130 beinhalten. Das in dem Server beinhaltete Spracherkennungsgerät kann die Spracherkennung durchführen und eine Transkription der Audiodaten für das Computergerät 104a bereitstellen. Das Computergerät 104a kann die Worte identifizieren und den Befehl ausführen.

In einigen Implementierungen kann das Computergerät 104a eine Antwort auf die Audiodaten durch Aufrufen der den Audiodaten zugeordneten Daten generieren. In diesem Beispiel identifiziert das Computergerät 104a den Befehl „Finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“ in der Äußerung 102, und kann eine Websuche ausführen, um ein Steakhaus in der Nähe zu finden. Das Computergerät 104a kann auch Kundenbewertungen vom Web abrufen, um ein Steakhaus auszuwählen, und um eine Transkription 132 entsprechend der Antwort „Al's Steakhouse in 123 Main Street hat gute Bewertungen“ zu generieren.

In Stufe F stellt das Computergerät 104a als Ausgabe eine generierte Antwort auf die der Äußerung 102 zugeordneten Audiodaten bereit. In einigen Implementierungen beinhaltet dies, Bereitstellen der Transkription 132, die der Antwort entspricht, für einen Sprachsynthesizer 134. Die Ausgabe des Sprachsynthesizers kann für einen Sprecher 136 des Computergeräts bereitgestellt werden. In diesem Beispiel stellt das Computergerät 104a als Ausgabe die zusätzlichen Audiodaten 138 „Al's Steakhouse in 123 Main Street hat gute Bewertungen“ bereit.

In einigen Implementierungen kann die der Antwort entsprechende Transkription 132 zu einer Anzeige 140 des Computergeräts 104a gesendet werden.

In Stufe G sendet Computergerät 104b die der Antwort entsprechende Transkription 132 an Computergerät 104b und beliebige andere identifizierte Computergeräte.

In einigen Implementierungen können ein oder mehrere der Computergeräte ein Privatsphärenmodul beinhalten, das die übertragenen oder empfangenen Daten basierend auf Benutzereinstellungen oder -voreinstellungen verwaltet oder filtert.

In Stufe H verarbeitet das Computergerät 104b die Audiodaten entsprechend der Äußerung 102 und die Transkription 132 der Audiodaten, die durch das Computergerät 104b bereitgestellt werden, und generiert eine neue Transkription, die einer Antwort entspricht. In diesem Beispiel generiert Computergerät eine Antwort basierend auf dem Befehl „Finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“ sowie die durch das Computergerät 104a bereitgestellte Antwort „Al's Steakhouse in 123 Main Street hat gute Bewertungen“.

In einigen Implementierungen kann das Computergerät 104b eine Antwort basierend auf Benutzerinformationen 142 generieren, die den Audiodaten zugeordnet sind. Die Benutzerinformationen können einem Benutzer des Computergeräts zugeordnet sein (z. B. Kalender, Kontakte, Mediendateien, persönliche Voreinstellungen usw.). In diesem Beispiel kann das Computergerät 104b basierend auf dem Befehl „Finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“ und die durch das Computergerät 104a bereitgestellte Antwort „Al's Steakhouse in 123 Main Street hat gute Bewertungen“ auf ein Online-Reservierungssystem im Internet zugreifen und kann Bobs Restaurantbewertungen oder persönliche Voreinstellungen aufrufen, um eine Transkription entsprechend der Antwort „Al's ist gerade sehr voll, versuchen Sie es stattdessen bei Lone Star Steakhouse in 4 Main Street. Bob gefällt es dort sehr“ zu generieren.

In einigen Implementierungen kann Computergerät 104b eine Transkription der Audiodaten empfangen, die der Äußerung 102 entsprechen, und diese Transkription zusätzlich zu der Transkription der durch das Computergerät 104b bereitgestellten Antwort und den Audiodaten verwenden, die der Äußerung entsprechen. Dies kann in Fällen helfen, wenn Computergerät 104b weiter von dem Benutzer entfernt ist, der die Äußerung spricht. Da sich Computergerät näher an dem Benutzer befindet, kann es eine genauere Transkription der Äußerung 102 bereitstellen. Dadurch entfällt zudem die Notwendigkeit zum zweimaligen Ausführen der Spracherkennung auf denselben Audiodaten.

In Stufe I stellt das Computergerät 104b die generierte Ausgabe als Antwort auf die Äußerung 102 und die zusätzlichen Audiodaten bereit, die durch Computergerät 104a bereitgestellt werden. In einigen Implementierungen beinhaltet dies, Bereitstellen der Transkription, die der Antwort entspricht, für einen Sprachsynthesizer 144. Die Ausgabe des Sprachsynthesizers kann für einen Sprecher 146 des Computergeräts 104b bereitgestellt werden. In diesem Beispiel stellt das Computergerät 104a als Ausgabe die Äußerung 148 „Al's ist gerade sehr voll, versuchen Sie es stattdessen bei Lone Star Steakhouse in 4 Main Street. Bob gefällt es dort sehr“ bereit.

In einigen Implementierungen umfasst das Bereitstellen der Transkription zum Ausgeben, die der Antwort entspricht, Bereitstellen der Transkription zum Anzeigen auf einer Anzeige 150 des Computergeräts 104a.

In einigen Implementierungen können die Parameter, die die durch den Sprachsynthesizer produzierte Stimme umfassen (z. B. Tonhöhe, Tonfall, Akzent, Geschwindigkeit, Beugung usw.), angepasst werden. Dies ermöglicht die Erzeugung von individuellen Stimmen für jedes Computergerät, wodurch die Benutzererfahrung verbessert wird. Der Sprachsynthesizer kann eine Form von Maschinenlernen zum Generieren der parametrischen Darstellung von Sprache zum Synthetisieren der Sprache verwenden. Beispielsweise kann ein neuronales Netzwerk zum Generieren der Sprachparameter verwendet werden.

In einigen Implementierungen können ein oder mehrere Computergeräte einer anfänglichen Antwort mit einer Frage oder einer Aufforderung für den Benutzer folgen, um zu antworten, bevor weiter fortzufahren. Wenn beispielsweise Alice die Äußerung spricht „OK Computer, finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“, kann Alices Gerät eine Liste von Restaurants in der Nähe bereitstellen. Bobs Gerät kann auf Bobs persönliche Informationen zugreifen und die Antwort bereitstellen „Bob mag argentinische Steaks, es gibt eine Menge guter Steakhäuser in der Nähe. Würden Sie gern mal eins besuchen?“ Eines oder mehrere der Computergeräte kann auf eine Antwort auf die Frage warten und basierend auf der Antwort fortfahren. Nach Empfangen der Antwort „Ja“, könnte Bobs Gerät eine Folgeantwort „Rural Society in 123, Madison Avenue hat gute Bewertungen“ bereitstellen.

In einigen Implementierungen kann das zusammenwirkende sprachgesteuerte Gerätesystem mehr als zwei Geräte aufweisen. Beispielsweise kann eine Gruppe von drei Benutzern Alice, Bob und Carl versuchen, Wegbeschreibungen zu einem Park in der Nähe zu erhalten, wobei jeder sein eigenes Gerät haben kann. Alice spricht die Äußerung „OK Computer, gib mir eine Wegbeschreibung zu Prospect Park“. Alices Gerät kann auf Alices persönliche Informationen zugreifen, die angeben, dass sie gewöhnlich den öffentlichen Personennahverkehr (ÖPNV) nutzt. Alices Gerät kann die Informationen zusammen mit den von einem ÖPNV-Webtool erhaltenen Informationen zum Bereitstellen der Antwort benutzen „In 12 Minuten fährt eine Bahn von Carol Square Station ab, die um 16:59 Uhr an der Prospect Park Station ankommt. Der Fußweg zur Carol Square Station beträgt 4 Minuten, und der Fußweg von der Prospect Park Station zum Eingang des Prospect Park beträgt 5 Minuten“. Bobs Gerät kann diese Antwort durch ein Netzwerk empfangen. Durch Generieren einer Antwort kann Bobs Gerät auf Bobs persönliche Informationen zugreifen und sieht, dass Bob gewöhnlich vorzieht, mit dem Auto zu fahren, und dass er sein Auto in einer Garage in der Nähe geparkt hat. Die Geräte können den Standortwechsel zur Garage, und die Diskussion zwischen Alice, Bob und Carl erkennen, mit dem Auto zu fahren, anstatt den ÖPNV zu nehmen. Bobs Gerät kann ein Web-Landkarten-Suchtool zum Bereitstellen von Wegbeschreibungen zum Park verwenden. Während der Fahrt kann Carls Gerät die Wegbeschreibungen durch das Netzwerk empfangen und kann auf ein Echtzeit-Verkehrstool zugreifen um zu bestimmen, dass es eine schnellere Strecke gibt, und eine Antwort bereitstellen „Wenn Sie Main St anstatt Rock Rd nehmen, dann sind Sie 5 Minuten schneller“.

In einigen Implementierungen können die Geräte vor dem Bereitstellen einer Antwort zusammenwirken, um vollständigere und relevante Antworten zu generieren. Dies kann durch Verwenden der verfügbaren Informationen und Teilen der persönlichen Informationen der Benutzer erfolgen, sofern ein Benutzer vorher ausgewählt hat, die persönlichen Informationen zu teilen. Wenn beispielsweise Alice sagt „OK Computer, finde für mich ein gutes Steakhaus in der Nähe zum Mittagessen“, können alle Geräte beginnen, die Abfrage zu verarbeiten, bevor eine Antwort bereitgestellt wird. Bobs Telefon kann Daten zu den anderen Geräten senden, die angeben, dass Bob Vegetarier ist. Dies ermöglicht den Geräten, ihre Antworten so zu individualisieren, dass sie nur vegetarierfreundliche Restaurant-Optionen bereitstellen.

In einigen Implementierungen können die Geräte entweder eine Antwort bereitstellen oder die Informationen an ein anderes Gerät weiterleiten. Gespräche können menschlicher oder humorvoller gestaltet werden, indem die Antworten absichtlich koordiniert werden, oder durch Weglassen von Teilen aus einer Antwort durch ein Gerät, die von einem anderen Gerät zu vervollständigen ist. Beispielsweise in dem obigen Beispiel, bei dem Bobs Telefon Daten geteilt hat, die angeben, dass Bob Vegetarier ist, stellt Alices Telefon als Antwort auf „Sollten wir Al's Steakhouse in 123 Main Street versuchen?“, keine Antwort bereit, sondern wartet ab, dass Bobs Telefon die Antwort „Sind Steaks vegetarisch?“ bereitstellt.

2 zeigt ein Diagramm eines exemplarischen Verfahrens 200 zum Zusammenwirken zwischen mehreren sprachgesteuerten Geräten. Das Verfahren 200 kann durch ein Computergerät, wie z. B. die Computergeräte 104a und 104b von 1, ausgeführt werden. Das Verfahren 200 bestimmt, dass ein zweites Computergerät eine Audioäußerung verarbeitet, und empfängt eine Transkription einer Antwort auf die Äußerung. Das Verfahren 200 verwendet die Äußerung und Transkription der Antwort, um eine Antwort zu generieren.

Das erste Computergerät identifiziert ein zweites Computergerät, das zum Antworten auf ein bestimmtes, zuvor festgelegtes Triggerwort (210) konfiguriert ist. In einigen Implementierungen kann das erste Computergerät dies durch periodisches Übertragen eines Ultraschall- oder Funksignals tun, das eine Antwort anfragt. Beispielsweise kann das erste Computergerät einen Ultraschall übertragen, der 20,5 Kilohertz beträgt, wenn es nach Computergeräten sucht, die Triggerwörter erkennen. Als Antwort können Computergeräte, die den Ultraschall von 20,5 Kilohertz empfangen, mit einem Ultraschall von einundzwanzig Kilohertz antworten. In einigen Implementierungen kann das Ultraschall- oder Funksignal mit Informationen codiert sein, die das erste Computergerät identifizieren.

In einigen Implementierungen kann das erste Computergerät andere Computergeräte identifizieren, die demselben Benutzer gehören. Beim Einrichten eines neuen Computergeräts kann ein Teil des Einrichtungsverfahrens darin bestehen, andere Computergeräte zu identifizieren, die demselben Benutzer gehören. Dies kann durch Erkennen anderer Geräte erfolgen, an denen der Benutzer angemeldet ist. Sobald das erste Computergerät ein anderes Computergerät identifiziert, können die Computergeräte Daten unter Verwendung eines Ultraschallfrequenzsignals austauschen, das einen Bitstrom so codiert, dass die Computergeräte Daten austauschen, wenn sie ein Triggerwort identifizieren.

Das Ultraschallfrequenzsignal kann durch einen Sprecher übertragen werden. Beispielsweise kann ein Benutzer einen Haushaltsassistenten einrichten, wobei ein Teil des Einrichtungsprozesses im Suchen nach anderen Computergeräten besteht, die sich in der Nähe befinden, und die auf Triggerwörter antworten. Der Haushaltsassistent kann ein Telefon und ein Tablet identifizieren, an denen der Benutzer angemeldet ist. Beispielsweise können der Thermostat, Telefon und Tablet Daten unter Verwendung eines Ultraschallsignals austauschen nach Identifizieren, dass alle in einem selben Raum positioniert sind. Das Ultraschallsignal kann einen Bitstrom beinhalten, der jedes der Geräte identifiziert. Die Geräte können den Ultraschallkanal nach Erkennen eines Triggerwortes verwenden.

In einigen Implementierungen können die Computergeräte andere Computergeräte identifizieren, die zum Antworten auf das Triggerwort durch Identifizieren von Computergeräten konfiguriert sind, die konfiguriert sind, um zu antworten, wenn das Triggerwort durch denselben Benutzer durch Sprecheridentifizierung gesprochen wird. Beispielsweise können die Computergeräte 104a und 104b zum Antworten auf die Stimme von Alice konfiguriert sein, wenn Alice das Triggerwort spricht. Die Computergeräte teilen die Sprecheridentifizierungsinformationen durch Bereitstellen einer Benutzer-ID für Alice miteinander.

Ein Benutzer spricht die Äußerung und ein Mikrofon des ersten Computergeräts empfängt die Audiodaten der Äußerung (220). Das erste Computergerät verarbeitet die Audiodaten durch Puffern, Filtern, Endpointing und Digitalisieren der Audiodaten. Beispielsweise kann der Benutzer „OK Computer“ äußern, und das Mikrofon des ersten Computergeräts empfängt die Audiodaten, die „OK Computer“ entsprechen. Ein Audiosubsystem des ersten Computergeräts sampelt, puffert, filtert und führt Endpointing an den Audiodaten zwecks weiterer Verarbeitung durch das erste Computergerät aus.

In einigen Implementierungen bestimmt das erste Computergerät, dass die Audiodaten, die der Äußerung entsprechen, das bestimmte, zuvor festgelegte Triggerwort beinhalten (230). Die Audiomerkmale der Audiodaten, die der Äußerung entsprechen, werden extrahiert. In einigen Implementierungen kann die Wahrscheinlichkeit, dass die Äußerung ein Triggerwort beinhaltet, durch eine Triggerwort-Konfidenzpunktzahl repräsentiert werden. Die Triggerwort-Konfidenzpunktzahl wird durch Verarbeiten der Audiomerkmale generiert.

Die Triggerwort-Konfidenzpunktzahl kann auf eine Skala von eins zu eins normalisiert werden, wobei eins die höchste Wahrscheinlichkeit angibt, dass die Äußerung ein Triggerwort beinhaltet. Das erste Computergerät kann die Triggerwort-Konfidenzpunktzahl mit einem Triggerwort-Konfidenzschwellenwert vergleichen. Wenn die Triggerwort-Konfidenzpunktzahl einen Triggerwort-Konfidenzschwellenwert erreicht, kann das erste Computergerät bestimmen, dass die Audiodaten, die der Äußerung entsprechen, das zuvor festgelegte Triggerwort beinhalten.

Erreicht die Triggerwort-Konfidenzpunktzahl den Triggerwort-Konfidenzschwellenwert nicht, dann bestimmt das System, dass die Audiodaten das Triggerwort nicht beinhalten. Beträgt der Schwellenwert beispielsweise 0,75, so werden Audiodaten mit einer Triggerwort-Konfidenzpunktzahl von über 0,75 als Triggerwort enthaltend eingestuft, während Audiodaten mit einer Triggerwort-Konfidenzpunktzahl von unter 0,75 als nicht Triggerwort enthaltend eingestuft werden.

In einigen Implementierungen stellt das System das Vorhandensein des Triggerwortes in den Audiodaten fest, ohne eine Spracherkennung der Audiodaten durchzuführen.

In einigen Implementierungen bestimmt das erste Computergerät, dass die Wahrscheinlichkeit, dass die Äußerung ein bestimmtes, zuvor festgelegtes Triggerwort beinhaltet, durch Vergleichen der Audiodaten der Äußerung mit einer Gruppe von Audioproben, die das Triggerwort beinhalten.

In einigen Implementierungen empfängt das erste Computergerät Daten, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet (240). Dabei kann es sich um Daten von einem Server oder von dem zweiten Computergerät und durch ein lokales Netzwerk handeln, die angeben, dass das zweite Computergerät auf die Audiodaten antwortet. Die Daten können ein Benachrichtigungssignal, wie z. B. ein Ultraschall-, ein Kurzstreckenfunksignal oder ein Nahbereichsdrahtlossignal, sein, um anzugeben, dass das zweite Computergerät Spracherkennungsverarbeitung an den Audiodaten initiiert. Zum Empfangen des Signals kann das erste Computergerät sicherstellen, dass das Mikrofon des ersten Computergeräts aktiv bleibt, dass ein Kurzstreckenfunkempfänger aktiv ist, oder dass ein anderer Funk, wie z. B. ein Nahbereichsdrahtlosfunk, aktiv ist.

Das erste Computergerät empfängt eine Transkription von zusätzlichen Audiodaten, die durch das zweite Computergerät ausgegeben werden, als Antwort auf die Äußerung (250).

In einigen Implementierungen kann das zweite Computergerät eine Transkription von zusätzlichen Audiodaten als Antwort auf die Äußerungsantwort auf die empfangenen Daten basierend auf Benutzerinformationen generieren, die den Audiodaten zugeordnet sind. Die Benutzerinformationen können einem Benutzer des ersten Computergeräts zugeordnet sein (z. B. Kalender, Kontakte, Mediendateien, Informationen in den sozialen Medien, persönliche Voreinstellungen usw.).

Wenn beispielsweise Bob die Äußerung „OK Computer, plane eine Besprechung mit Bob für diesen Nachmittag“ spricht, dann kann Computergerät 104b Informationen von dem Bob zugeordneten Kalender verwenden, der auf dem Computergerät 104b gespeichert ist, um einen Vorschlag für eine Besprechungszeit bereitzustellen, und kann die Antwort bereitstellen „Geht entweder 15 oder 16 Uhr?“

Das erste Computergerät generiert eine Transkription, die einer Antwort auf die zusätzlichen Audiodaten entspricht, basierend auf der Transkription der zusätzlichen Audiodaten und der Äußerung (260).

In einigen Implementierungen können ein oder mehrere der Computergeräte 104a und 104b einen Standort des Computergeräts bestimmen und die Standortinformationen zum Generieren einer Antwort verwenden. Wenn beispielsweise Computergerät 104a bestimmt, dass es sich an einem Ort befindet, an dem es unangemessen sein kann, hörbar zu antworten, z. B. in einer Bibliothek, kann das Computergerät 104a möglicherweise keine Antwort bereitstellen oder es kann die Antwort auf der Anzeige 140 des Computergeräts 104A bereitstellen.

In einigen Implementierungen kann das Computergerät Daten aufrufen, die der Transkription der zusätzlichen Audiodaten zugeordnet sind, und die Transkription basierend auf den aufgerufenen Daten generieren. Wenn beispielsweise die Transkription der zusätzlichen Audiodaten eine Abfrage beinhaltet, die Vorschläge für Restaurants in der Nähe abfragt, kann das Computergerät eine Websuche ausführen, Daten aufzurufen, die Restaurants in der Nähe entsprechen. Das Computergerät kann diese aufgerufenen Daten zum Generieren der Transkription entsprechend der Antwort verwenden.

Das Computergerät stellt die der Antwort (270) entsprechende Transkription zum Ausgeben bereit. In einigen Implementierungen beinhaltet dies, Bereitstellen der Transkription, die der Antwort entspricht, für einen Sprachsynthesizer. Die Ausgabe des Sprachsynthesizers kann für einen Audiosprecher des Computergeräts bereitgestellt werden.

In einigen Implementierungen kann die der Antwort entsprechende Transkription zu einer Anzeige des Computergeräts gesendet werden.

In einigen Implementierungen kann Zusammenwirken zwischen mehreren Geräten zum Verbessern der Qualität von Spracherkennung verwendet werden. Da unterschiedliche Geräte unterschiedliche Sensoren (Mikrofone) aufweisen und in den Umgebungen des Benutzers unterschiedlich positioniert sind, könnte es sein, dass keines von ihnen die gesamte Benutzerabfrage korrekt transkribiert hat, wobei jedoch Kombinieren der Transkriptionen aller Computergeräte perfekt zu der Abfrage passen könnte. In einem anderen Beispiel, wenn sich der Benutzer um einen Raum bewegt, und andere Computergeräte zu unterschiedlichen Zeiten während des Sprechens der Abfrage nahe bei dem Benutzer sind, kann durch Verwenden der Transkriptionen von jedem der Computergeräte und deren Kombination eine genauere Transkription erhalten werden.

3 zeigt ein Beispiel eines Computergeräts 300 und eines mobilen Computergeräts 350, die verwendet werden können, um die hier beschriebenen Techniken zu implementieren. Das Computergerät 300 dient der Darstellung verschiedener Formen digitaler Computer, wie z. B. Laptops, Desktops, Workstations, persönlicher digitaler Assistenten, Server, Blade-Server, Großrechner und anderer geeigneter Computer. Das mobile Computergerät 350 soll verschiedene Formen mobiler Geräte wie persönliche digitale Assistenten, Mobiltelefone, Smartphones und andere ähnliche Computergeräte darstellen. Die hier dargestellten Komponenten, deren Verbindungen, Beziehungen und Funktionen sollen lediglich Beispiele sein und sind in keiner Weise als Einschränkung zu verstehen.

Das Computergerät 300 beinhaltet einen Prozessor 302, einen Speicher 304, ein Speichergerät 306, eine Hochgeschwindigkeitsschnittstelle 308, die mit dem Speicher 304 und mehreren Hochgeschwindigkeits-Erweiterungsanschlüssen 310 verbunden ist, und eine Niedergeschwindigkeitsschnittstelle 312, die mit einem Niedergeschwindigkeits-Erweiterungsanschluss 314 und dem Speichergerät 306 verbunden ist. Jedes der nachfolgend gelisteten Teile, der Prozessor 302, der Speicher 304, das Speichergerät 306, die Hochgeschwindigkeitsschnittstelle 308, die Hochgeschwindigkeits-Erweiterungsanschlüsse 310 und die Niedergeschwindigkeitsschnittstelle 312 sind durch verschiedene Busse miteinander verbunden und können auf einer gemeinsamen Hauptplatine oder auf andere geeignete Weise montiert sein. Der Prozessor 302 kann Befehle zur Ausführung innerhalb des Computergeräts 300 verarbeiten, darunter im Speicher 304 oder auf dem Speichergerät 306 abgelegte Befehle für die Anzeige einer GUI auf einem externen Eingabe-/Ausgabegerät wie einer Anzeige 316, die mit der Hochgeschwindigkeitsschnittstelle 308 verbunden ist. Bei anderen Implementierungen können gegebenenfalls mehrere Prozessoren und/oder mehrere Busse zusammen mit mehreren Speichern und Speicherarten verwendet sein. Es können außerdem auch mehrere Computergeräte verbunden sein, wobei jedes Gerät Teile der notwendigen Vorgänge (z. B. als Serverbank, Gruppe von Blade-Servern oder Mehrprozessorsystem) bereitstellt.

Der Speicher 304 speichert Informationen in Computergerät 300. In einigen Implementierungen handelt es sich bei dem Speicher 304 um (eine) flüchtige Speichereinheit(en). In einigen Implementierungen handelt es sich bei dem Speicher 304 um (eine) nicht flüchtige Speichereinheit(en). Der Speicher 304 kann zudem in einer anderen Form eines computerlesbaren Mediums, wie beispielsweise in Form eines magnetischen oder optischen Datenträgers, vorliegen.

Das Speichergerät 306 ist in der Lage, Massenspeicher für die Computergeräte 300 bereitzustellen. In einigen Implementierungen kann das Speichergerät 306 ein computerlesbares Medium, wie z. B. ein Diskettenlaufwerk, ein Festplattenlaufwerk, ein optisches Laufwerk, eine Magnetbandeinheit, ein Flash-Speicher oder ein anderes ähnliches Solid-State-Speichergerät oder eine Reihe von Geräten, einschließlich Geräten in einem Speichernetzwerk oder anderen Konfigurationen, sein oder beinhalten. Befehle können in einem Informationsträger gespeichert werden. Die Anweisungen führen, wenn sie von einem oder mehreren Verarbeitungsgeräten (zum Beispiel Prozessor 302) ausgeführt werden, ein oder mehrere Verfahren, wie z. B. die zuvor beschriebenen, aus. Die Befehle können zudem durch ein oder mehrere Speichergeräte, wie z. B. computer- oder maschinenlesbare Medien (beispielsweise Speicher 304, Speichergerät 306 oder den Speicher im Prozessor 302), gespeichert werden.

Die Hochgeschwindigkeitsschnittstelle 308 verwaltet bandbreitenintensive Vorgänge für das Computergerät 300, während die Niedergeschwindigkeitsschnittstelle 312 niedrigere bandbreitenintensive Vorgänge verwaltet. Diese Zuordnung von Funktionen ist jedoch nur exemplarisch. In einigen Implementierungen ist die Hochgeschwindigkeitsschnittstelle 308 an den Speicher 304, den Bildschirm 316 (z. B. durch einen Grafikprozessor oder -Beschleuniger) und die Hochgeschwindigkeits-Erweiterungsanschlüsse 310 gekoppelt, die gegebenenfalls verschiedene Erweiterungskarten (nicht dargestellt) akzeptieren. In der Implementierung ist die Niedergeschwindigkeitsschnittstelle 312 mit dem Speichergerät 306 und dem Niedergeschwindigkeitserweiterungsanschluss 314 gekoppelt. Der Niedergeschwindigkeitserweiterungsanschluss 314, der ggf. verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, drahtloses Ethernet) beinhaltet, kann mit einem oder mehreren Eingabe-/Ausgabegeräten, wie z. B. einer Tastatur, einem Zeigegerät, einem Scanner oder einem Netzwerkgerät wie einem Switch oder Router z. B. durch einen Netzwerkadapter gekoppelt sein.

Das Computergerät 300 kann, wie in der Figur ersichtlich, in einer Reihe verschiedener Formen implementiert sein. Zum Beispiel kann es als Standardserver 320, oder mehrfach in einer Gruppe jener Server implementiert sein. Darüber hinaus kann es in einem Personal-Computer, wie z. B. Laptop-Computer 322, implementiert sein. Es kann zudem als Teil eines Rackserversystems 324 implementiert sein.

Alternativ können Komponenten des Computergeräts 300 mit anderen Komponenten in einem mobilen Gerät (nicht dargestellt), wie z. B. Computergerät 350, kombiniert werden. Jedes dieser Geräte kann ein oder mehrere der Computergeräte 300 und der mobilen Computergeräte 350 beinhalten, wobei sich ein vollständiges System aus mehreren miteinander kommunizierenden Computergeräten zusammensetzen kann.

Das mobile Computergerät 350 beinhaltet neben anderen Komponenten einen Prozessor 352, einen Speicher 364, ein Eingabe-/Ausgabegerät, wie z. B. eine Anzeige 354, eine Kommunikationsschnittstelle 366 und einen Sendeempfänger 368. Das mobile Computergerät 350 kann zudem mit einem Speichergerät, wie z. B. einem Microdrive oder einem anderen Gerät ausgestattet sein, um zusätzlichen Speicher bereitzustellen. Alle Prozessoren 352, Speicher 364, Anzeigen 354, die Kommunikationsschnittstelle 366 und der Sendeempfänger 368 sind mithilfe verschiedener Busse miteinander verbunden, wobei mehrere der Komponenten auf einer gemeinsamen Hauptplatine oder nach Eignung auf andere Weise montiert sein können.

Der Prozessor 352 kann Befehle innerhalb des mobilen Computergeräts 350, darunter auch die im Speicher 364 gespeicherten Befehle, ausführen. Der Prozessor 352 kann als ein Chipsatz aus Chips implementiert sein, die separate und mehrere analoge und digitale Prozessoren beinhalten. Der Prozessor 352 kann beispielsweise die Koordination der anderen Komponenten des mobilen Computergeräts 350, wie beispielsweise die Steuerung von Benutzeroberflächen, Anwendungen, die durch das mobile Computergerät 350 ausgeführt werden, sowie die drahtlose Kommunikation des mobilen Computergeräts 350 bereitstellen.

Der Prozessor 352 kann mit einem Benutzer über eine Steuerschnittstelle 358 und eine Anzeigeschnittstelle 356 kommunizieren, die mit einer Anzeige 354 verbunden sind. Bei der Anzeige 354 kann es sich zum Beispiel um eine TFT-LCD-Anzeige (Dünnfilmtransistor-Flüssigkristallanzeige) oder eine OLED-Anzeige (organische Leuchtdiode) oder eine andere geeignete Anzeigetechnologie handeln.

Die Anzeigeschnittstelle 356 kann eine geeignete Schaltung zum Betreiben der Anzeige 354 beinhalten, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 358 kann Befehle von einem Benutzer empfangen und diese für das Senden an Prozessor 352 umwandeln. Außerdem kann eine äußere Schnittstelle 362 Kommunikation mit dem Prozessor 352 bereitstellen, um eine Nahbereichskommunikation des mobilen Computergeräts 350 mit anderen Geräten zu ermöglichen. Die externe Schnittstelle 362 kann in einigen Implementierungen beispielsweise eine drahtgebundene Verbindung oder in anderen Implementierungen eine drahtlose Verbindung sein, zudem können mehrere Schnittstellen verwendet werden.

Der Speicher 364 legt Speicherinformationen innerhalb des mobilen Computergeräts 350 ab. Der Speicher 364 kann als ein oder mehrere von computerlesbaren Medien, als flüchtige(r) Speicher oder nicht flüchtige(r) Speicher implementiert sein. Ein Erweiterungsspeicher 374 kann ebenfalls bereitgestellt und mit dem mobilen Computergerät 350 durch eine Erweiterungsschnittstelle 372 verbunden sein, die zum Beispiel eine SIMM- (Single In Line Memory Module) - Kartenschnittstelle beinhalten kann. Der Erweiterungsspeicher 374 kann zusätzlichen Speicherplatz für das mobile Computergerät 350 bereitstellen oder auch Anwendungen oder andere Informationen für das mobile Computergerät 350 speichern. Insbesondere kann der Erweiterungsspeicher 374 Befehle zum Ausführen oder Ergänzen der vorstehend beschriebenen Prozesse sowie sichere Informationen beinhalten. Daher kann der Erweiterungsspeicher 374 beispielsweise als Sicherheitsmodul für das mobile Computergerät 350 bereitgestellt und mit Befehlen programmiert sein, welche die sichere Verwendung des mobilen Computergeräts 350 ermöglichen. 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 bereitgestellt werden, die nicht gehackt werden kann.

Der Speicher kann, wie nachfolgend beschrieben, beispielsweise Flash-Speicher und/oder NVRAM-Speicher (nicht flüchtigen Direktzugriffsspeicher) umfassen. In einigen Implementierungen werden Anweisungen in einem Informationsträger gespeichert, sodass die Anweisungen, wenn sie von einem oder mehreren Verarbeitungsgeräten (zum Beispiel Prozessor 352) ausgeführt werden, ein oder mehrere Verfahren, wie z. B. die zuvor beschriebenen, ausführen. Die Befehle können auch durch ein oder mehrere Speichergeräte, wie ein oder mehrere computer- oder maschinenlesbare Medien (beispielsweise Speicher 364, Erweiterungsspeicher 374 oder den Speicher im Prozessor 352) gespeichert werden. In einigen Implementierungen können die Befehle in einem propagierten Signal beispielsweise über den Sendeempfänger 368 oder die externe Schnittstelle 362 empfangen werden.

Das mobile Computergerät 350 kann durch die Kommunikationsschnittstelle 366 drahtlos kommunizieren, die, wo erforderlich, Digitalsignalverarbeitungsschaltungen beinhalten kann. Die Kommunikationsschnittstelle 366 kann Kommunikationen unter verschiedenen Modi oder Protokollen, unter anderem beispielsweise unter Verwendung von GSM-(Globales Mobilfunkkommunikationssystem) -Sprachverbindungen, SMS (Kurznachrichtendienst), EMS (erweiterter Nachrichtendienst) oder MMS (Multimedia-Nachrichtendienst), CDMA (Codemultiplexverfahren), TDMA (Zeitmultiplexverfahren), PDC (persönliches digitales Mobilfunksystem), WCDMA (Breitband-Multiplexverfahren), CDMA2000 oder GPRS (allgemeiner paketorientierter Funkdienst) bereitstellen. Eine derartige Kommunikation kann beispielsweise über den Sendeempfänger 368 unter Verwendung einer Funkfrequenz erfolgen. Zusätzlich kann eine Kurzstreckenkommunikation, z. B. unter Verwendung eines Bluetooth-, WLAN- oder eines anderen solchen Sendeempfängers (nicht dargestellt), erfolgen. Außerdem kann ein GPS- (globales Positionsbestimmungssystem) -Empfangsmodul 370 zusätzliche navigations- und standortbezogene drahtlose Daten an das mobile Computergerät 350 bereitstellen, die gegebenenfalls durch Anwendungen verwendet werden können, die auf dem mobilen Computergerät 350 ausgeführt werden.

Das mobile Computergerät 350 kann ebenfalls unter Verwendung eines Audiocodec 360, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audiocodec 360 kann gleichermaßen einen hörbaren Ton für einen Benutzer, beispielsweise über einen Lautsprecher, wie zum Beispiel in einem Mobilteil des mobilen Computergeräts 350, erzeugen. Dieser Ton kann Ton von Sprachfernsprechverbindungen, aufgenommene Töne (z. B. Sprachnachrichten, Musikdateien usw.) sowie Töne beinhalten, die von Anwendungen erzeugt werden, die auf dem mobilen Computergerät 350 betrieben werden.

Das mobile Computergerät 350 kann, wie in der Figur dargestell, in einer Reihe unterschiedlicher Formen implementiert sein. Es kann beispielsweise als ein Mobiltelefon 380 implementiert sein. Es kann außerdem als Teil eines Smartphones 382, persönlichen digitalen Assistenten oder eines anderen ähnlichen mobilen Geräts 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 derselben realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, bei dem es sich um einen Spezial- oder Universalprozessor handeln kann und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Befehlen an ein Speichersystem, mindestens ein Eingabegerät und mindestens ein Ausgabegerät gekoppelt ist.

Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten 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. magnetische Platten, optische Datenträger, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor, einschließlich eines maschinenlesbaren Mediums, das Maschinenbefehle als ein maschinenlesbares Signal empfängt, Maschinenbefehle und/oder Daten bereitzustellen. Der Begriff „maschinenlesbares Signal“ bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenbefehle 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 ein Anzeigegerät (wie z. B. einen CRT- (Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeige) -Monitor) aufweist, um dem Benutzer Informationen anzuzeigen, sowie eine Tastatur und ein Zeigegerät (z. B. eine Maus oder ein Trackball) aufweist, mittels denen der Benutzer eine Eingabe an dem Computer vornehmen kann. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer zu ermöglichen; beispielsweise kann eine an den Benutzer bereitgestellte Rückmeldung in einer beliebigen Form von sensorischer Rückmeldung (wie z. B. einer visuellen Rückmeldung, akustischen Rückmeldung oder taktilen Rückmeldung, erfolgen); zudem kann die Eingabe vom Benutzer ebenfalls in beliebiger Form, darunter auch als akustische, taktile oder Spracheingabe, empfangen werden.

Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Backendkomponente (z. B. einen Datenserver) beinhaltet, oder das eine Middlewarekomponente (z. B. einen Anwendungsserver) beinhaltet, oder das eine Frontendkomponente (z. B. einen Clientcomputer mit einer grafischen Benutzeroberfläche oder einem Webbrowser beinhaltet, durch die bzw. den ein Benutzer mit den hier beschriebenen Implementierungen des Systems und der Techniken interagieren kann), oder eine Kombination dieser Backend-, Middleware- oder Frontendkomponenten beinhaltet. 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 beinhalten ein lokales Netzwerk („LAN“), ein Großraumnetzwerk („WAN“) und das Internet.

Das Computersystem kann Clients und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung von Client und Server ergibt sich durch Computerprogramme, die auf den jeweiligen Computern ausgeführt werden und in einer Client-Server-Beziehung zueinander stehen.

Obwohl einige Implementierungen vorstehend im Detail beschrieben wurden, sind andere Modifikationen möglich. Während eine Kundenanwendung als Zugreifen auf den bzw. die Delegierte(n) beschrieben ist, können in anderen Implementierungen der bzw. die Delegierte(n) durch andere Anwendungen verwendet werden, die durch einen oder mehrere Prozessoren implementiert sind, wie beispielsweise eine Anwendung, die auf einem oder mehreren Servern ausgeführt wird. 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 zu den beschriebenen Systemen hinzugefügt oder aus denselben entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.