-
GEBIET
-
Die vorliegende Anmeldung betrifft im Allgemeinen Systeme und Verfahren zum Aktivieren eines Sprachassistenten und zum Bereitstellen eines Indikators, dass der Sprachassistent Hilfe zu leisten hat.
-
HINTERGRUND
-
Wie es hier anerkannt wird, reagieren existierende Sprachassistenten dadurch, dass sie typischerweise entweder durch einen Benutzer, der einen Sprachauslöser verwendet, oder durch die Betätigung einer Schaltfläche oder einer Taste aktiviert werden. Wie es hierin verstanden wird, erfordert dies eine positive Benutzeraktion mit spezifischer Kenntnis entweder der richtigen Taste oder Schaltfläche, die zu betätigen ist, oder des richtigen Sprachauslösers, was für die anderen Tätigkeiten des Benutzers unpraktisch und störend sein kann.
-
KURZDARSTELLUNG
-
Entsprechend umfasst bei einem Aspekt ein Gerät einen Prozessor und ein Speichergerät, auf welches der Prozessor zugreifen kann. Das Speichergerät trägt Anweisungen, die durch den Prozessor ausführbar sind, um Sprache zu empfangen, und zwar ohne einen Benutzerbefehl zu empfangen, um in einen Spracherkennungsmodus einzutreten, und eine Spracherkennung an der Sprache auszuführen, um mehrere Wörter zurückzugeben. Die Anweisungen können durchgeführt werden, um unter Verwendung der mehreren Wörter als Eingabeargument auf eine Datenbank zuzugreifen, um die mehreren Wörter mit Zusatzinformationen zu korrelieren und die Zusatzinformationen zurückzugeben.
-
Die Zusatzinformationen können an mindestens einem Audiolautsprecher ausgegeben werden.
-
Bei beispielhaften Ausführungsformen können die Anweisungen ausführbar sein, um als Reaktion auf das Korrelieren der mehreren Wörter mit den Zusatzinformationen einen Indikator an dem Gerät zu aktivieren, der angibt, dass Zusatzinformationen verfügbar sind. Als Reaktion auf eine nachfolgende Eingabe, die Zusatzinformationen zu präsentieren, werden die Zusatzinformationen präsentiert, wohingegen als Reaktion auf keine nachfolgende Eingabe, die Zusatzinformationen zu präsentieren, die Zusatzinformationen nicht präsentiert werden.
-
Bei beispielhaften Ausführungsformen können die Anweisungen ausführbar sein, um mindestens eine von einer ersten Eingabe, die mit einer Kopfhörerausgabe verknüpft ist, und einer zweiten Eingabe, die mit einer Broadcastausgabe verknüpft ist, zu empfangen, und als Reaktion auf die erste Eingabe die Zusatzinformationen an dem Kopfhörer präsentieren und als Reaktion auf die zweite Eingabe die Zusatzinformationen an einem anderen Broadcastlautsprecher als dem Kopfhörer präsentieren.
-
Bei beispielhaften Ausführungsformen können die Anweisungen ausführbar sein, um unter Verwendung der mehreren Wörter als Eingabeargument auf eine Kalenderdatenbank zuzugreifen und unter Verwendung mindestens einer Zeitangabe, die in den mehreren Wörtern erkannt wird, zu bestimmen, ob die Kalenderdatenbank einen Tätigkeitseintrag für die Zeiteingabe umfasst. Als Reaktion darauf, dass die Kalenderdatenbank einen Tätigkeitseintrag für die Zeiteingabe angibt, können die Anweisungen ausführbar sein, um die Zusatzinformationen auszugeben. Dagegen können als Reaktion darauf, dass die Kalenderdatenbank keinen Tätigkeitseintrag für die Zeiteingabe angibt, die Anweisungen durchführbar sein, um die Zusatzinformationen nicht auszugeben.
-
Die Zusatzinformationen können eine hörbare Angabe des Tätigkeitseintrags für die Zeiteingabe umfassen.
-
Bei beispielhaften Ausführungsformen können die Anweisungen ausführbar sein, um unter Verwendung der mehreren Wörter als Eingangsargument auf eine Grammatikdatenbank zuzugreifen, unter Verwendung der mehreren Wörter zu bestimmen, ob die Grammatikdatenbank angibt, dass mindestens ein Wort fehlt, und als Reaktion darauf, dass die Grammatikdatenbank angibt, dass mindestens ein Wort fehlt, die Zusatzinformationen zurückgeben, wobei die Zusatzinformationen das mindestens ein Wort umfasst.
-
Bei beispielhaften Ausführungsformen können die Anweisungen ausführbar sein, um unter Verwendung der mehreren Wörter als Eingangsargument auf eine Datenbank zuzugreifen, um unter Verwendung der mehreren Wörter zu bestimmen, ob die Datenbank angibt, dass zusätzliche Informationen mit den mehreren Wörtern verknüpft sind, und als Reaktion darauf, dass die Datenbank angibt, dass zusätzliche Informationen mit den mehreren Wörtern verknüpft sind, die Zusatzinformationen zurückzugeben. Die Zusatzinformationen können mindestens einige der zusätzlichen Informationen umfassen.
-
Bei einem anderen Aspekt umfasst ein computerlesbares Speichermedium (CRSM), welches kein transitorisches Signal ist, Anweisungen, die durch einen Prozessor ausführbar sind, um Sprache zu empfangen, um eine Spracherkennung an der Sprache auszuführen, um mindestens ein Wort zurückzugeben, und um das mindestens ein Wort mit Zusatzinformationen zu korrelieren. Die Anweisungen können ausgeführt werden, um als Reaktion auf das Korrelieren des mindestens einen Wortes mit Zusatzinformationen einen Indikator zu aktivieren, der angibt, dass Zusatzinformationen verfügbar sind. Als Reaktion auf eine nachfolgende Eingabe, die Zusatzinformationen zu präsentieren, werden die Zusatzinformationen ausgegeben, und als Reaktion auf keine nachfolgende Eingabe, die Zusatzinformationen zu präsentieren, werden die Zusatzinformationen nicht ausgegeben.
-
Bei einem anderen Aspekt umfasst ein Verfahren das Aktivieren eines Sprachantwortassistenten eines Computergerätes nicht dadurch, dass ein Schlüsselwort gesprochen wird oder ein Knopf gedrückt wird, sondern dass Sprache erkannt wird und bestimmt wird, ob der Zusammenhang der Sprache angibt, dass eine hörbare Sprachunterstützung angemessen ist. Das Verfahren umfasst auch mindestens eines von dem Aufleuchten einer Lampe und dem Aktivieren eines Vibrators, dass der Sprachantwortassistent Hilfe zu leisten hat, ohne die Hilfe an einem Lautsprecher auszugeben, bis ein diesbezüglicher Befehl empfangen wird.
-
Die Einzelheiten der vorliegenden Grundsätze, sowohl bezüglich ihres Aufbaus als auch ihres Betriebs, sind am besten mit Bezug auf die beiliegenden Zeichnungen zu verstehen, in denen sich die gleichen Bezugszeichen auf die gleichen Teile beziehen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Es zeigen:
-
1 ein Blockdiagramm eines beispielhaften Systems gemäß den vorliegenden Grundsätzen;
-
2 ein beispielhaftes Blockdiagramm eines Netzes von Geräten gemäß den vorliegenden Grundsätzen;
-
3 ein Blockdiagramm eines beispielhaften Computergerätes, welches durch ein beliebiges geeignetes der in 1 und 2 beschriebenen Geräte umgesetzt werden kann;
-
4 ein Ablaufschema eines beispielhaften Gesamtalgorithmus gemäß den vorliegenden Grundsätzen;
-
5 bis 7 Ablaufschemata von beispielhaften Algorithmen für spezifische Verwendungsfälle;
-
8 einen Screenshot einer beispielhaften Benutzerschnittstelle (UI) zum Umsetzen des „Wortmeldungs-”Modus und zum Definieren einer privaten oder öffentlichen Ausgabe; und
-
9 ein Ablaufschema einer beispielhaften Logik mit Bezug auf 8.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Mit Bezug auf beliebige hier besprochene Computersysteme kann ein System Server- und Client-Bestandteile umfassen, die über ein Netzwerk verbunden sind, so dass Daten zwischen den Client- und Server-Bestandteilen ausgetauscht werden können. Die Client-Bestandteile können eine oder mehrere Computergeräte umfassen, wozu Fernseher (z.B. Smart-TVs, internetaktivierte TVs), Computer, wie etwa Desktop-, Laptop- und Tablet-Computer, so genannte konvertierbare Geräte (die z.B. eine Tablet-Konfiguration und eine Laptop-Konfiguration aufweisen) und andere mobile Geräte, einschließlich Smartphones, gehören. Diese Client-Geräte können als nicht einschränkende Beispiele Betriebssysteme von Apple, Google oder Microsoft verwenden. Es kann ein Unix- oder ein ähnliches Betriebssystem, wie etwa Linux, verwendet werden. Diese Betriebssysteme können einen oder mehrere Browser ausführen, wie etwa einen Browser, der von Microsoft oder Google oder Mozilla hergestellt wird, oder ein anderes Browser-Programm, das auf Web-Seiten und Anwendungen zugreifen kann, die von den Internet-Servern über ein Netzwerk, wie etwa dem Internet, einem lokalen Intranet oder einem virtuellen privaten Netzwerk, gehostet werden.
-
Wie sie hierin verwendet werden beziehen sich die Anweisungen auf computerumgesetzte Schritte zum Verarbeiten von Informationen in dem System. Die Anweisungen können als Software, Firmware oder Hardware umgesetzt werden; daher werden erläuternde Bauteile, Blöcke, Module, Schaltungen und Schritte manchmal im Hinblick auf ihre Funktionalität dargelegt.
-
Ein Prozessor kann ein beliebiger herkömmlicher universeller Einzel- oder Mehr-Chip-Prozessor sein, der eine Logik anhand von diversen Leitungen, wie etwa Adressleitungen, Datenleitungen und Steuerleitungen, und Registern und Schieberegistern ausführen kann. Des Weiteren können beliebige hierin beschriebene logische Blöcke, Module und Schaltungen zusätzlich zu einem universellen Prozessor in oder von einem digitalen Signalprozessor (DSP), einem Field Programmable Gate Array (FPGA) oder einem anderen programmierbaren logischen Gerät, wie etwa einer anwendungsspezifischen integrierten Schaltung (ASIC), einer diskreten Gatter- oder Transistorlogik, diskreten Hardware-Bauteilen oder einer beliebigen Kombination davon, die ausgelegt ist, um die hier beschriebenen Funktionen auszuführen, umgesetzt oder ausgeführt werden. Ein Prozessor kann durch einen Controller oder eine Zustandsmaschine oder eine Kombination von Computergeräten umgesetzt werden.
-
Jede Software und/oder alle Anwendungen, die hierin anhand von Ablaufschemata und/oder Benutzerschnittstellen beschrieben werden, kann bzw. können diverse Teilroutinen, Arbeitsabläufe usw. umfassen. Es versteht sich, dass die Logik, die offenbart wird, wie sie z.B. von einem Modul ausgeführt wird, auf andere Software-Module umverteilt und/oder zu einem einzigen Modul kombiniert und/oder als gemeinsam nutzbare Bibliothek zur Verfügung gestellt werden kann.
-
Eine Logik kann, wenn sie als Software umgesetzt wird, in einer geeigneten Sprache verfasst sein, wie etwa ohne Einschränkung in C+ oder C++, und kann in einem computerlesbaren Speichermedium (das beispielsweise kein transitorisches Signal ist) gespeichert sein oder darüber übertragen werden, wie etwa in einem Arbeitsspeicher (RAM), einem Festwertspeicher (ROM), einem elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), einem Compact Disk Festwertspeicher (CD-ROM) oder einem anderen optischen Plattenspeichergerät, wie etwa einer Digital Versatile Disk (DVD), einem Magnetplattenspeichergerät oder anderen magnetischen Speichergeräten, wozu auswechselbare USB-Sticks usw. gehören.
-
Bei einem Beispiel kann ein Prozessor über seine Eingangsleitungen von dem Datenspeichergerät, wie etwa von dem computerlesbaren Speichermedium, aus auf Informationen zugreifen, und/oder kann der Prozessor von einem Internet-Server aus drahtlos auf Informationen zugreifen, indem er einen drahtlosen Transceiver aktiviert, um Daten zu senden und zu empfangen. Die Daten werden typischerweise durch Schaltungen zwischen der Antenne und den Registern des Prozessors von analogen zu digitalen Signalen, wenn sie empfangen werden, und von digitalen zu analogen Signalen, wenn sie gesendet werden, umgewandelt. Der Prozessor verarbeitet dann die Daten durch seine Schieberegister, um berechnete Daten auf Ausgangsleitungen auszugeben, um die berechneten Daten an dem Gerät zu präsentieren.
-
Die Bauteile, die bei einer Ausführungsform enthalten sind, können bei anderen Ausführungsformen in einer beliebigen geeigneten Kombination verwendet werden. Beispielsweise können beliebige der diversen hierin beschriebenen und/oder in den Figuren abgebildeten Bauteile kombiniert werden, ausgetauscht werden oder von anderen Ausführungsformen ausgeschlossen sein.
-
Der Begriff „Schaltung” oder „Schaltungen” kann in der Kurzdarstellung, der Beschreibung und/oder den Ansprüchen verwendet werden. Wie es in der Technik wohlbekannt ist, umfasst der Begriff „Schaltungen” alle Ebenen der verfügbaren Integration, z.B. von diskreten logischen Schaltungen bis zur höchsten Ebene der Schaltungsintegration, wie etwa VLSI, und umfasst programmierbare logische Bauteile, die programmiert sind, um die Funktionen einer Ausführungsform auszuführen, sowie universelle oder spezifische Prozessoren, die mit Anweisungen programmiert sind, um diese Funktionen auszuführen.
-
Nun wird insbesondere mit Bezug auf 1 ein beispielhaftes Blockdiagramm eines Informationshandhabungssystems und/oder eines Computersystems 100 gezeigt. Es sei zu beachten, dass bei einigen Ausführungsformen das System 100 ein Desktop-Computersystem, wie etwa eines der PC-Reihe ThinkCentre® oder ThinkPad®, die von Lenovo (US) Inc. aus Morrisville, NC, verkauft werden, oder ein Workstation-Computer, wie etwa die ThinkStation®, die von Lenovo (US) Inc. aus Morrisville, NC, verkauft wird, sein kann; wie es jedoch aus der vorliegenden Beschreibung hervorgeht, kann eine Client-Gerät, ein Server oder eine andere Maschine gemäß den vorliegenden Grundsätzen andere Merkmale oder nur einige der Merkmale des Systems 100 umfassen. Auch kann das System 100 beispielsweise eine Spielkonsole, wie etwa eine XBOX®, sein, und/oder kann das System 100 ein drahtloses Telefon, einen Notebook-Computer und/oder ein anderes tragbares Computergerät umfassen.
-
Wie in 1 gezeigt, kann das System 100 einen so genannten Chipsatz 110 umfassen. Ein Chipsatz bezieht sich auf eine Gruppe von integrierten Schaltungen bzw. Chips, die ausgelegt sind, um zusammen zu arbeiten. Die Chipsätze werden für gewöhnlich als Einzelprodukt vermarktet (siehe z.B. die Chipsätze, die mit den Marken INTEL®, AMD® usw. vermarktet werden).
-
Bei dem Beispiel aus 1 weist der Chipsatz 110 eine bestimmte Architektur auf, die je nach Marke oder Hersteller einigermaßen variieren kann. Die Architektur des Chipsatzes 110 umfasst eine Kern- und Speichersteuerungsgruppe 120 und einen E/A-Steuerknoten 150, der Informationen (beispielsweise Daten, Signale, Befehle usw.) über eine Direct Management Interface oder Direct Media Interface (DMI) 142 oder einen Link-Controller 144 austauscht. Bei dem Beispiel aus 1 ist die DMI 142 eine Chip-zu-Chip-Schnittstelle (gelegentlich auch als Verknüpfung zwischen einer „Northbridge” und einer „Southbridge” bezeichnet).
-
Die Kern- und Speichersteuerungsgruppe 120 umfasst einen oder mehrere Prozessoren 122 (beispielsweise Einzel- oder Mehrkern usw.) und einen Speicher-Steuerknoten 126, die Informationen über einen Front Side Bus (FSB) 124 austauschen. Wie hier beschrieben, können diverse Bauteile der Kern- und Speichersteuerungsgruppe 120 in einem einzigen Prozessorchip integriert sein, um beispielsweise einen Chip zu erstellen, der die herkömmliche Architektur nach Art einer „Northbridge” ersetzt. Der Speicher-Steuerknoten 126 bildet eine Schnittstelle mit dem Speicher 140. Beispielsweise kann der Speicher-Steuerknoten 126 Unterstützung für einen DDR-SDRAM-Speicher (z.B. DDR, DDR2, DDR3 usw.) bereitstellen. Im Allgemeinen ist der Speicher 140 eine Art von Arbeitsspeicher (RAM). Er wird häufig als „Systemspeicher” bezeichnet.
-
Der Speicher-Steuerknoten 126 kann ferner eine Niederspannungs-Differenzialsignalisierungs-(LVDS)Schnittstelle 132 umfassen. Die LVDS 132 kann eine so genannte LVDS-Anzeigeschnittstelle (LDI) zur Unterstützung eines Anzeigegerätes 192 (z.B. eines CRT, eines Flachbildschirms, eines Projektors, einer berührungsaktivierten Anzeige usw.) sein. Ein Block 138 umfasst einige Beispiele von Techniken, die über die LVDS-Schnittstelle 132 unterstützt werden können (z.B. serielles digitales Video, HDMI/DVI, DisplayPort). Der Speicher-Steuerknoten 126 umfasst auch eine oder mehrere PCI-Express-Schnittstellen (PCI-E) 134, beispielsweise zur Unterstützung von diskreter Grafik 136. Die diskrete Grafik, die eine PCI-E-Schnittstelle verwendet, ist zu einem alternativen Lösungsansatz für einen beschleunigten Grafikanschluss (AGP) geworden. Beispielsweise kann der Speicher-Steuerknoten 126 einen 16-spurigen (x16) PCI-E-Anschluss für eine externe Grafikkarte auf PCI-E-Basis umfassen (einschließlich z.B. einer von mehreren GPUs). Ein beispielhaftes System kann AGP oder PCI-E zur Unterstützung der Grafik umfassen.
-
Bei Beispielen, bei denen er verwendet wird, kann der E/A-Steuerknoten 150 diverse Schnittstellen umfassen. Das Beispiel aus 1 umfasst eine SATA-Schnittstelle 151, eine oder mehrere PCI-E-Schnittstellen 152 (wahlweise eine oder mehrere ältere PCI-Schnittstellen), eine oder mehrere USB-Schnittstellen 153, eine LAN-Schnittstelle 154 (ganz allgemein eine Netzwerkschnittstelle zur Kommunikation über mindestens ein Netzwerk, wie etwa das Internet, ein WAN, ein LAM usw. unter der Leitung des oder der Prozessoren 122), eine universelle E/A-Schnittstelle (GPIO) 155, eine Schnittstelle 170 mit geringer Stiftanzahl (LPC), eine Energieverwaltungsschnittstelle 161, eine Taktgeberschnittstelle 162, eine Audioschnittstelle 163 (z.B. für Lautsprecher 194, um Ton auszugeben), eine Gesamtbetriebskosten-(TCO)-Schnittstelle 164, eine Systemverwaltungsbus-Schnittstelle (z.B. eine serielle Multimaster-Computerbusschnittstelle) 165 und eine serielle periphere Flash-Speicher-/Controller-Schnittstelle (SPI-Flash) 166, die bei dem Beispiel aus 1 das BIOS 168 und den Boot-Code 190 umfasst. In Bezug auf die Netzwerkverbindungen kann der E/A-Steuerknoten 150 integrierte Gigabit-Ethernet-Controller-Leitungen umfassen, die mit einem PCI-E-Schnittstellenanschluss gemultiplext sind. Andere Netzwerkmerkmale können unabhängig von einer PCI-E-Schnittstelle funktionieren.
-
Die Schnittstellen des E/A-Steuerknoten 150 können die Kommunikation mit diversen Geräten, Netzwerken usw. bereitstellen. Beispielsweise stellt die SATA-Schnittstelle 151, wenn sie verwendet wird, das Lesen, das Schreiben oder das Lesen und Schreiben von Informationen auf einem oder mehreren Laufwerken 180 bereit, wie etwa auf HDDs, SDDs oder einer Kombination davon, doch auf jeden Fall versteht es sich, dass die Laufwerke 180 z.B. materielle computerlesbare Speichermedien sind, die keine transitorischen Signale sind. Der E/A-Steuerknoten 150 kann auch eine weiterentwickelte Host-Controller-Schnittstelle (AHCI) umfassen, um ein oder mehrere Laufwerke 180 zu unterstützen. Die PCI-E-Schnittstelle 152 ermöglicht drahtlose Verbindungen 182 zu den Geräten, Netzwerken usw. Die USB-Schnittstelle 153 stellt Eingabegeräte 184, wie etwa Tastaturen (KB), Mäuse und diverse andere Geräte (z.B. Kameras, Telefone, Speichergeräte, Medienwiedergabegeräte usw.) bereit.
-
Bei dem Beispiel aus 1 stellt die LPC-Schnittstelle 170 die Verwendung einer oder mehrerer ASICs 171, ein Trusted Platform Module (TPM) 172, einen Super-E/A 173, einen Firmware-Knoten 174, eine BIOS-Unterstützung 175 sowie diverse Arten von Speicher 176 bereit, wie etwa ROM 177, Flash 178 und nicht flüchtigen RAM (NVRAM) 179. In Bezug auf das TPM 172 kann dieses Modul in Form eines Chips vorliegen, der verwendet werden kann, um Software- und Hardware-Geräte zu authentifizieren. Beispielsweise kann ein TPM in der Lage sein, eine Plattformauthentifizierung auszuführen, und kann verwendet werden, um zu überprüfen, dass ein System, das Zugang sucht, das erwartete System ist.
-
Beim Einschalten kann das System 100 konfiguriert sein, um den Boot-Code 190 für das BIOS 168 auszuführen, der in dem SPI-Flash 166 gespeichert ist, und verarbeitet anschließend Daten unter der Kontrolle von einem oder mehreren Betriebssystemen und Anwendungs-Software (beispielsweise im Systemspeicher 140 gespeichert). Ein Betriebssystem kann an einer beliebigen von diversen Stellen gespeichert sein und kann beispielsweise gemäß den Anweisungen des BIOS 168 zugänglich sein.
-
Obwohl dies der Übersichtlichkeit halber nicht gezeigt ist, kann das System 100 bei einigen Ausführungsformen ein Gyroskop, das die Ausrichtung des Systems 100 erfasst und/oder misst und dem Prozessor 122 eine diesbezügliche Eingabe bereitstellt, einen Beschleunigungsmesser, der die Beschleunigung und/oder Bewegung des Systems 100 erfasst und dem Prozessor 122 eine diesbezügliche Eingabe bereitstellt, einen Audioempfänger/ein Mikrofon, der bzw. das dem Prozessor 122 eine Eingabe von dem Mikrofon basierend auf Audiomaterial bereitstellt, das detektiert wird, wie etwa indem ein Benutzer dem Mikrofon eine hörbare Eingabe bereitstellt, und eine Kamera, die ein oder mehrere Bilder aufnimmt und dem Prozessor 122 eine diesbezügliche Eingabe bereitstellt, umfassen. Die Kamera kann eine thermische Bildgebungskamera, eine digitale Kamera, wie etwa eine Webcam, eine dreidimensionale (3D) Kamera und/oder eine Kamera, die anderweitig in das System 100 integriert ist und durch den Prozessor 122 steuerbar ist, um Fotos/Bilder und/oder Video zu sammeln, sein. Ferner, und der Übersichtlichkeit halber ebenfalls nicht gezeigt, kann das System 100 einen GPS-Transceiver umfassen, der konfiguriert ist, um geografische Positionsinformationen von mindestens einem Satelliten zu empfangen und dem Prozessor 122 die Informationen bereitzustellen. Es versteht sich jedoch, dass ein anderer geeigneter Positionsempfänger als ein GPS-Empfänger gemäß den vorliegenden Grundsätzen verwendet werden kann, um den Standort des Systems 100 zu bestimmen.
-
Es versteht sich, dass eine beispielhafte Client-Gerät oder eine andere Maschine/ein anderer Computer eine kleinere oder größere Anzahl von Merkmalen als in dem System 100 aus 1 gezeigt umfassen kann. Auf jeden Fall versteht es sich, dass mindestens basierend auf dem Vorstehenden das System 100 konfiguriert ist, um die vorliegenden Grundsätze umzusetzen.
-
Nun mit Bezug auf 2 werden beispielhafte Geräte gezeigt, die über ein Netzwerk 200, wie etwa das Internet, gemäß den vorliegenden Grundsätze kommunizieren. Es versteht sich, dass jede der mit Bezug auf 2 beschriebenen Geräte mindestens einige der Merkmale, Bauteile und/oder Elemente des zuvor beschriebenen Systems 100 umfassen kann.
-
2 zeigt einen Notebook-Computer und/oder einen konvertierbaren Computer 202, einen Desktop-Computer 204, ein tragbares Gerät 206, wie etwa eine Smart Watch, ein Smart-TV (TV) 208, ein Smartphone 210, einen Tablet-Computer 212 und einen Server 214, wie etwa einen Internet-Server, der eine Cloud-Speicherung, die für die Geräte 202 bis 212 zugänglich ist, bereitstellen kann. Es versteht sich, dass die Geräte 202 bis 214 konfiguriert sind, um über das Netzwerk 200 miteinander zu kommunizieren, um die vorliegenden Grundsätze umzusetzen.
-
Mit Bezug auf 3 wird ein Blockdiagramm eines beispielhaften Computergerätes 300 gezeigt, welches durch ein beliebiges geeignetes, zuvor beschriebenes Gerät umgesetzt werden kann. Somit umfasst das Gerät 300 je nach Bedarf einen oder mehrere der zuvor beschriebenen Bestandteile, wozu ein oder mehrere Prozessoren und ein oder mehrere Computerspeichermedien gehören.
-
Das Gerät 300 kann über eine drahtgebundene und/oder drahtlose Verbindung mit dem Kopfhörer 302 kommunizieren.
-
Das Gerät 300 kann eine Anzeige 304 umfassen, wie etwa eine berührungsempfindliche Anzeige, die eine oder mehrere virtuelle Auswahltasten 306 präsentieren kann. Das Gerät kann auch eine oder mehrere materielle Auswahltasten 308, einen oder mehrere Audiolautsprecher 310 und ein oder mehrere Mikrofone 312 umfassen. Das Gerät 300 kann ferner eine oder mehrere Leuchtanzeigen 314, wie etwa Leuchtdioden (LEDs), einen oder mehrere haptische Signalgeber 316, wie etwa einen Schwingungserzeuger, und einen oder mehrere Näherungssensoren 318, um die Nähe eines Benutzers zu dem Gerät zu erfassen, umfassen. Der Näherungssensor kann durch einen Infrarotsensor umgesetzt werden, dessen Signal durch den Prozessor des Gerätes analysiert wird, um zu bestimmen, ob sich eine Person in der Nähe (beispielsweise innerhalb einer IR-Signalstärkenschwelle) des Gerätes befindet, oder der Sensor 318 kann eine Kamera sein, deren Bilder durch den Prozessor unter Verwendung von Gesichtserkennung analysiert werden, um zu bestimmen, ob eine bestimmte Person erkannt wird, und basierend auf der Größe des Bildes des Gesichts zu bestimmen, ob sich die Person innerhalb einer Näherungsschwelle zu dem Gerät befindet.
-
4 bildet eine Gesamtlogik ab. Beginnend mit Block 400 begibt sich die Logik, ohne einen Auslösebefehl von dem Mikrofon 312 zu empfangen, um in den Sprachassistentenmodus einzutreten, und ohne einen Befehl für einen Sprachassistenten-Eintrittsmodus zu empfangen, indem ein Benutzer einen der Auswahlschalter 306, 308 betätigt, zu Block 402, um unter Verwendung von Spracherkennungsgrundsätzen ein oder mehrere gesprochen Wörter zu erkennen, die über das Mikrofon 312 empfangen werden. Soweit erwünscht, kann die Logik mit der Raute 404 fortfahren, um unter Verwendung der Spracherkennung zu bestimmen, ob die Stimme die eines autorisierten Benutzers ist, und wenn nicht, kann die Logik in dem Zustand 406 enden.
-
Wenn jedoch die autorisierte Benutzerstimme aktiviert ist und der Test an der Raute 404 positiv ist, kann sich die Logik zu Block 408 begeben, um auf eine Datenstruktur zuzugreifen (wobei nachstehend diverse Beispiele gegeben werden), um die erkannten Wörter aus der Sprache mit einem Zusammenhang zu korrelieren, der typischerweise mit Zusatzinformationen verknüpft ist, d.h. Informationen, die nicht die gleichen wie die erkannten Wörter sind, jedoch dazu gehören. Dann wird hörbare Hilfe, wie etwa die Zusatzinformationen, zur Präsentation typischerweise an den Lautsprechern 310 oder dem Kopfhörer 302 in Block 410 ausgegeben.
-
5 bildet einen beispielhaften Verwendungsfall der Logik in 4 ab. Beginnend mit Block 500 wird aus der Sprache, die an dem Mikrofon empfangen wird, ein Wort als Uhrzeit erkannt. Es kann auch ein bestimmtes Datum erkannt werden, wobei die Vorgabe darin besteht, dass falls kein Datum erkannt wird, vorausgesetzt wird, dass die erwähnte Zeitangabe zum aktuellen Datum gehört.
-
In Block 502 wird auf eine elektronische Kalenderdatenstruktur zugegriffen, und wird basierend auf den Informationen in dem Kalender an der Entscheidungsraute 504 bestimmt, ob zu der erkannten Uhrzeit aus Block 500 bereits ein Ereignis geplant ist. Wenn nicht, dann kann die Logik in dem Zustand 506 enden, ansonsten kann sich die Logik jedoch zu Block 508 begeben, um eine Erinnerung an das Ereignis, auf das von dem Kalender in Block 502 aus zugegriffen wurde, typischerweise an den Lautsprechern 310 oder dem Kopfhörer 302 hörbar auszugeben.
-
Falls somit der Benutzer gerade in einem Gespräch mit einem Bekannten ist und sagt „Wir könnten heute um 11 Uhr 30 in der Kantine zusammen zu Mittag essen”, könnte der Algorithmus aus 5 beim Zugreifen auf den Kalender bei 502 herausfinden, dass ein früheres Ereignis für die genannte Zeitangabe geplant ist, und in Block 508 eine diesbezügliche Erinnerung zurückgeben, dass „eine Versammlung von 11 bis 13 Uhr geplant” ist.
-
6 bildet einen anderen beispielhaften Verwendungsfall zum Mindern des Zungenspitzenphänomens (umgangssprachlich als „es liegt mir auf der Zunge” bezeichnet), wobei es sich um die Unfähigkeit handelt, sich an Wörter, Redewendungen oder Namen zu erinnern, ab. Dabei kann die Intelligenz in einer Internet-(Cloud-)Datenstruktur unter Verwendung des Zusammenhangs schnell die fehlenden Wörter ausfindig machen.
-
Entsprechend wird beginnend mit Block 600 ein gesprochener Satz, der aus mehreren Wörtern besteht, über das Mikrofon empfangen und durch Spracherkennung verarbeitet. Auf eine Grammatikdatenbank oder eine Zitatdatenbank oder eine andere geeignete Datenbank kann in Block 602 lokal und/oder in der Cloud unter Verwendung der erkannten Wörter als Eingabeargument zugegriffen werden. Falls an der Entscheidungsraute 604 bestimmt wird, dass die erkannten Wörter einen vollständigen Satz bilden, oder falls in der Datenbank keine Übereinstimmung gefunden wird, kann die Logik in dem Zustand 606 enden.
-
Falls andererseits der Satz unvollständig ist bzw. mit Hilfsinformationen in der Datenbank korreliert, kann sich die Logik zu Block 608 begeben, um die beste Übereinstimmung für das fehlende Wort zurückzugeben.
-
Man nehme beispielsweise an, dass der gesprochene Ausdruck „Sein oder nicht” ist, und dass auf eine Zitatdatenbank zugegriffen wird. Der gesprochene Ausdruck könnte mit dem wohlbekannten Zitat aus Hamlet korrelieren und das Schlusswort „sein” könnte in Block 608 zurückgegeben werden. Man nehme wiederum an, dass der gesprochene Ausdruck „Wer reitet so spät durch Nacht und” ist, was zu der ersten Zeile des klassischen Gedichts „Der Erlkönig” passt, um „Wind” in Block 608 zurückzugeben.
-
7 bildet noch einen weiteren Verwendungsfall ab, der bei einem Sprachaustausch verwendet wird (z.B. um mit einem Gegner zu verhandeln, um dem Vortrag eines Professors zuzuhören, usw.), wobei der Sprachassistent, der durch die vorliegende Logik erstellt wird, eine durchgehende Inhaltsanalyse in Echtzeit ausführt und nützliche Ratschläge und spontanes Wissen hörbar bereitstellt, wozu eine Zusammenfassung des Gesagten, das Erkennen der Absicht eines Sprechers, das Erkennen eines falschen Zitats usw. gehören.
-
Beginnend mit Block 700 wird ein Sprachaustausch zwischen zwei Personen empfangen. Es kann sein, dass die Spracherkennung nicht nur verwendet wird um zu detektieren, welche Wörter gesprochen werden, sondern auch um die verschiedenen gesprochenen Frequenzen, Klangbilder usw. zu analysieren, um zu identifizieren, dass mehr als eine Person spricht, wobei sich die Logik als Reaktion auf einige oder alle Punkte davon zu Block 702 begeben kann, um den Inhalt der erkannten Wörter zu analysieren. Es kann in Block 704 auf ein elektronisches Nachschlagewerk, wie etwa Wikipedia, oder eine andere Datenstruktur, unter Verwendung der erkannten Sprache als Eingabeargument zugegriffen werden, um die erkannte Sprache mit Zusatzinformationen zu korrelieren, die als Ratschlag über die Lautsprecher 310 oder den Kopfhörer 302 in Block 704 zurückgegeben werden können.
-
Die zuvor beschriebene Datenanalyse kann auch eine Rolle bei der Vorhersage anstehender Ereignisse spielen. Die meisten mobilen Geräte speichern heutzutage enorme Datenmengen sowohl auf dem Gerät als auch in der Cloud. Diese Daten können Kontaktlisten, Kalenderereignisse, Alarme, Berührungsereignisse, Standort/GPS, Batteriedaten usw. umfassen. Algorithmen zum maschinellen Lernen und zur Mustererkennung können verwendet werden, um ein Datenelement oder eine Kombination von Daten auszuwählen, um die Gewohnheiten eines Benutzers, wie etwa Arbeit und Freizeit des Benutzers, tägliche Versammlungstermine usw., zu beobachten und zu erlernen. Der Sprachassistent kann nützliche Dienste, wie etwa eine automatische Benachrichtigung für eine Telefonkonferenz basierend auf der Analyse der Arbeitsversammlungen des Benutzers, und Erinnerungen für außerordentliche Tätigkeiten bereitstellen.
-
Somit muss ein Benutzer für die proaktive Auslösung kein Auslösewort verwenden, um den Assistenten zu aktivieren, weil die Assistentenlogik ständig zuhört und sich aktiviert, wenn die Logik bestimmt, dass sie eine Eingabe zu erbringen hat. Mit anderen Worten ist der Assistent selbstauslösend.
-
Die Assistentenlogik kann auch mehrere Auslöseniveaus aufweisen (die sich unter Benutzerkontrolle allmählich steigern), wie 8 und 9 abgebildet.
-
Eine Benutzerschnittstelle (UI) 800 kann z.B. an der Anzeige 304 des in 3 gezeigten Gerätes 300 präsentiert werden und kann den Benutzer auffordern, auszuwählen, ob das aufzurufen ist, was hier aus praktischen Gründen als „Wortmeldungs-”Modus bezeichnet wird. Ein Ja-Auswahlschalter 802 kann ausgewählt werden, um den Wortmeldungsmodus zu aktivieren, und ein Nein-Auswahlschalter 804 kann ausgewählt werden, um den Wortmeldungsmodus zu deaktivieren.
-
Falls gewünscht, kann dem Benutzer ferner die Möglichkeit geboten werden, gewisse Stufen der Assistenzprivatsphäre auszuwählen. Wie gezeigt, kann ein privater Auswahlschalter 806 präsentiert werden, der, wenn er ausgewählt wird, bewirkt, dass eine hörbare Unterstützung nur am Kopfhörer 302 bereitgestellt wird und nicht an dem Broadcast-Lautsprecher 310. Dagegen kann ein öffentlicher Auswahlschalter 808 ausgewählt werden, um zu bewirken, dass eine hörbare Unterstützung unter nicht vertraulichen Bedingungen, oder falls es dem Benutzer einfach nicht peinlich ist, an dem Broadcast-Lautsprecher 310 bereitgestellt wird.
-
9 bildet ab, dass wenn der Wortmeldungsmodus in Block 900 aktiviert wird, ein typischerweise nicht hörbarer Indikator in Block 902 aktiviert werden kann, wenn der hörbare Assistent Zusatzinformationen gemäß der obigen Logik erzielt hat. Beispielsweise kann der Vibrator 316 aktiviert werden, um eine haptische Signalisierung bereitzustellen, dass Zusatzinformationen zur hörbaren Präsentation verfügbar sind, oder die LED 314 kann für den gleichen Zweck aufleuchten. Falls erwünscht, kann jedoch ein diskreter Piepton oder ein anderes hörbares Signal an dem Lautsprecher 310 oder Kopfhörer 302 präsentiert werden, um anzugeben, dass Zusatzinformationen verfügbar sind.
-
Der Benutzer kann wählen, das Signal zu ignorieren oder sich den Ratschlag anhören. Falls bei einem Beispiel kein Befehl „Sag es mir” von dem Benutzer über ein beliebiges geeignetes Eingabemittel an der Raute 904 eingegeben wird, werden die Zusatzinformationen nicht hörbar präsentiert. Als Reaktion auf das Empfangen eines Befehls „Sag es mir” begibt sich die Logik jedoch zu Block 906, um die Zusatzinformationen typischerweise an den Lautsprechern 310 oder dem Kopfhörer 302 zu präsentieren.
-
Bevor zum Schluss gekommen wird, versteht es sich, dass obwohl eine Software-Anwendung zum Umsetzen der vorliegenden Grundsätze mit einem Gerät, wie etwa dem System 100, verkauft werden kann, die vorliegenden Grundsätze in Fällen anwendbar sind, in denen eine derartige Anwendung von einem Server auf ein Gerät über ein Netzwerk, wie etwa das Internet, heruntergeladen wird. Ferner sind die vorliegenden Grundsätze in Fällen anwendbar, in denen eine derartige Anwendung auf einem computerlesbaren Speichermedium enthalten ist, das verkauft und/oder bereitgestellt wird, wobei das computerlesbare Speichermedium kein transitorisches Signal und/oder ein Signal an sich ist.
-
Es versteht sich, dass obwohl die vorliegenden Grundsätze mit Bezug auf einige Ausführungsbeispiele beschrieben wurden, diese nicht dazu gedacht sind, einschränkend zu sein, und dass diverse alternative Anordnungen verwendet werden können, um den hierin beanspruchten Gegenstand umzusetzen. Die Bauteile, die bei einer Ausführungsform enthalten sind, können bei anderen Ausführungsformen in einer beliebigen geeigneten Kombination verwendet werden. Beispielsweise können beliebige der diversen hierin beschriebenen und/oder in den Figuren abgebildeten Bauteile kombiniert werden, ausgetauscht werden oder von anderen Ausführungsformen ausgeschlossen sein.