DE102018130631A1 - Hierarchische Spracherkennungsauflösung - Google Patents

Hierarchische Spracherkennungsauflösung Download PDF

Info

Publication number
DE102018130631A1
DE102018130631A1 DE102018130631.8A DE102018130631A DE102018130631A1 DE 102018130631 A1 DE102018130631 A1 DE 102018130631A1 DE 102018130631 A DE102018130631 A DE 102018130631A DE 102018130631 A1 DE102018130631 A1 DE 102018130631A1
Authority
DE
Germany
Prior art keywords
asr
level
asr engine
engine
resolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018130631.8A
Other languages
English (en)
Inventor
Douglas Gabel
Jonathan Huang
Sylvia J. Downing
Narayan Biswal
Binuraj Ravindran
Willem Beltman
Vered Bar Bracha
Ze'Ev Rivling
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018130631A1 publication Critical patent/DE102018130631A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Abstract

Ein System, ein Verfahren, eine Vorrichtung und ein computerlesbares Medium zur Auflösung der hierarchischen Spracherkennung. Das Verfahren zur Auflösung einer hierarchischen Spracherkennung auf einer Plattform beinhaltet das Empfangen eines Sprachstroms von einem Mikrofon. Der Sprachstrom wird unter Verwendung einer automatischen Spracherkennungs-Engine (ASR-Engine) der niedrigstmöglichen Stufe von den mehrstufigen ASR-Engines aufgelöst. Die Auswahl der ASR-Engine der niedrigstmöglichen Stufe basiert auf Richtlinien, die für die Plattform definiert wurden. Wenn die Sprachauflösung als geringer bewertet wird als eine vorbestimmte Vertrauensstufe, wird die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines verschoben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensstufe erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.

Description

  • GEBIET DER TECHNIK
  • Ausführungsformen beziehen sich im Allgemeinen auf Spracherkennung. Insbesondere beziehen sich Ausführungsformen auf eine hierarchische Spracherkennungsauflösung.
  • HINTERGRUND
  • Intelligente Cloud-basierte Spracherkennungsassistenten, wie etwa Siri, entwickelt von Apple, Alexa, entwickelt von Amazon.com, Google Assistant, entwickelt von Google, und Cortana, entwickelt von Microsoft, bieten eine hohe Genauigkeit bei der Spracherkennung auf Kosten von beeinträchtigtem Datenschutz der Sprachdaten, der Anfälligkeit für eine Überwachung, einer hohen Latenz und der Abhängigkeit von Konnektivität. Bei den meisten intelligenten Assistenten werden die Sprachunterhaltungen in die Cloud gesendet.
  • Figurenliste
  • Die verschiedenen Vorteile der Ausführungsformen werden für Fachleute auf dem Gebiet durch Lesen der folgenden Beschreibung und der angefügten Ansprüche und durch Bezugnahme auf die folgenden Zeichnungen ersichtlich, in denen:
    • 1 ein Diagramm eines Beispiels eines Systems mit mehreren Schichten von Spracherkennungslösungen zum Durchführen hierarchischer Stufen der Spracherkennung gemäß einer Ausführungsform ist;
    • 2 ein Diagramm ist, das eine beispielhafte hierarchische mehrstufige ASR-Struktur gemäß einer Ausführungsform veranschaulicht;
    • 3 ein Flussdiagramm eines beispielhaften Verfahrens zur Bestimmung des besten ASR-Ansatzes basierend auf einer Vertrauensbewertung gemäß einer Ausführungsform ist;
    • 4A ein Flussdiagramm für ein beispielhaftes Verfahren zur Verlängerung der Batterielebensdauer bei der Auflösung ist, welche Stufe einer ASR-Engine die Spracherkennung gemäß einer Ausführungsform durchführt;
    • 4B ein Flussdiagramm eines beispielhaften Verfahrens zur Durchführung einer ASR-Auflösung einer hierarchischer Stufe basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform ist;
    • 5A ein Flussdiagramm eines beispielhaften Verfahrens zur Bestimmung ist, welche hierarchische Stufe einer ASR-Engine basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform verwendet wird;
    • 5B ein Flussdiagramm eines anderen beispielhaften Verfahrens zur Bestimmung ist, welche hierarchische Stufe einer ASR-Engine basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform verwendet wird;
    • 6 ein Blockdiagramm ist, das beispielhafte hierarchische Stufen der ASR-Verarbeitung im Kontext einer Wearable-Vorrichtung gemäß einer Ausführungsform veranschaulicht;
    • 7 ein System zeigt, welches das hierarchische Spracherkennungssystem von 1 ersetzen kann;
    • 8 eine Veranschaulichung eines Beispiels einer Halbleiterpackungsvorrichtung gemäß einer Ausführungsform ist;
    • 9 ein Blockdiagramm eines beispielhaften Prozessors gemäß einer Ausführungsform ist;
    • 10 ein Blockdiagramm eines beispielhaften Datenverarbeitungssystems gemäß einer Ausführungsform ist.
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die Teil dieser bilden, wobei gleiche Bezugszahlen gleiche Teile durch die gesamten Ansichten bezeichnen, und in denen zur Veranschaulichung Ausführungsformen gezeigt sind, die ausgeübt werden können. Es versteht sich, dass andere Ausführungsformen benutzt und strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Schutzumfang der vorliegenden Offenbarung abzuweichen. Daher ist die folgende ausführliche Beschreibung nicht in einschränkendem Sinne aufzufassen, und der Schutzumfang der Ausführungsformen wird durch die angefügten Ansprüche und ihre Äquivalente definiert.
  • BESCHREIBUNG VON AUSFÜHRUNGSFORMEN
  • Die Technologie für die Auflösung der hierarchischen Spracherkennung umfasst ein System mit mehrstufigen Engines für die automatische Spracherkennung (Automatic Speech Recognition, ASR), die hierarchisch strukturiert sind, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen. Das System löst einen von einem Mikrofon empfangenen Sprachstrom auf der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines unter Berücksichtigung von Systembeschränkungen und -präferenzen auf. Ein Richtlinienmanager verschiebt die Auflösung des Sprachstroms auf eine hierarchische Stufe der mehrstufigen ASR-Engines, die fähig sind, den Sprachstrom basierend auf für das System definierte Richtlinien mit dem niedrigstmöglichen Leistungspegel präzise aufzulösen.
  • Verschiedene Operationen können wiederum als mehrere diskrete Aktionen oder Operationen in einer Art und Weise beschrieben werden, die am hilfreichsten für das Verständnis des beanspruchten Gegenstands ist. Jedoch sollte die Reihenfolge der Beschreibung nicht so ausgelegt werden, dass damit angedeutet wird, dass diese Operationen notwendigerweise von der Reihenfolge abhängig sind. Insbesondere können diese Operationen nicht in der dargestellten Reihenfolge durchgeführt werden. Die beschriebenen Operationen können in einer anderen Reihenfolge als der beschriebenen Ausführungsform durchgeführt werden. Es können verschiedene weitere Operationen ausgeführt werden und/oder die beschriebenen Operationen können in weiteren Ausführungsformen weggelassen werden.
  • Die Bezugnahme in dieser Beschreibung auf „eine bestimmte Ausführungsform“, „eine Ausführungsform“, „eine beispielhafte Ausführungsform“ etc. bedeutet, dass die Ausführungsform eine bestimmte Funktion, eine Struktur oder ein Merkmal einschließen kann, nicht aber jede Ausführungsform diese bestimmte Funktion, die Struktur oder das Merkmal notwendigerweise einschließen kann oder muss. Darüber hinaus beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Ferner, wenn ein bestimmtes Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird vorgebracht, dass es im Wissen von Fachleuten auf dem Gebiet liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu erwirken, egal, ob es bzw. sie explizit beschrieben wird oder nicht. Darüber hinaus sollte beachtet werden, dass Elemente, die in einer Liste in der Form von „mindestens eines von A, B und C“ enthalten sind, nur A, nur B, nur C, nur A und B, nur B und C, nur A und C oder A, B und C bedeuten können. In ähnlicher Weise können Elemente, die in der Form „mindestens eines von A, B oder C“ aufgelistet sind, nur A, nur B, nur C, nur A und B, nur B und C, nur A und C oder A, B und C bedeuten.
  • Die offenbarten Ausführungsformen können in einigen Fällen in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert sein. Die offenbarten Ausführungsformen können auch als Anweisungen implementiert werden, die auf einem oder mehreren vorübergehenden oder nicht vorübergehenden maschinenlesbaren (z. B. computerlesbaren) Speichermedien getragen oder gespeichert werden, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Speichermedium kann als eine beliebige Speichervorrichtung, Mechanismus oder andere physische Struktur zum Speichern oder Übertragen von Informationen in einer von einer Maschine lesbaren Form (z. B. ein flüchtiger oder nicht flüchtiger Speicher, eine Medienplatte oder andere Medienvorrichtung) verkörpert sein. Wie hierin verwendet können die Begriffe „Logik“ und „Modul“ sich auf einen anwendungsspezifischen integrierten Schaltkreis (Application Specific Integrated Circuit, ASIC), eine elektronische Schaltung, einen Prozessor (mehrfach genutzt, dediziert oder Gruppe) und/oder Speicher (mehrfach genutzt, dediziert oder Gruppe), ausführend ein oder mehrere Software- oder Firmwareprogramme mit Maschinenanweisungen (erzeugt über einen Assembler und/oder einen Compiler), eine kombinatorische Logikschaltung oder weitere geeignete Engines, welche die beschriebene Funktionalität bereitstellen, beziehen, Teil davon sein oder diese enthalten.
  • In den Zeichnungen können einige Struktur- oder Verfahrensmerkmale in spezifischen Anordnungen und/oder Sortierungen gezeigt werden. Es sollte jedoch erkannt werden, dass solche spezifischen Anordnungen und/oder Sortierungen möglicherweise nicht erforderlich sind. Vielmehr können solche Merkmale in einigen Ausführungsformen auf eine andere Art und/oder in einer anderen Reihenfolge als in den veranschaulichenden Figuren gezeigt angeordnet sein. Zusätzlich soll das Einbeziehen eines Struktur- oder Verfahrensmerkmals in einer bestimmten Figur nicht implizieren, dass ein solches Merkmal in allen erforderlich ist und in einigen Ausführungsformen nicht enthalten sein oder mit anderen Merkmalen kombiniert sein kann.
  • 1 ist ein Diagramm eines Systems 100 mit mehreren Stufen von Spracherkennungslösungen zum Durchführen hierarchischer Stufen der Spracherkennung gemäß einer Ausführungsform. Das System 100 umfasst unter anderem ein Mikrofon 102, einen Auslöserdetektor 106, eine Richtlinien- und Entscheidungslogik (d. h. einen Richtlinienmanager) 108, die automatischen Spracherkennungsengines 110, 112, 114 und 116 und einen Ausgang 118. Das Mikrofon 102 ist mit dem Auslöserdetektor 106 gekoppelt. Der Auslöserdetektor 106 ist mit der Richtlinien- und Entscheidungslogik 108 gekoppelt. Die Richtlinien- und Entscheidungslogik 108 ist mit den automatischen Spracherkennungsengines 110, 112, 114 und 116 und dem Ausgang 118 gekoppelt.
  • Das Mikrofon 102 empfängt einen Sprachstrom 104 und sendet den Sprachstrom 104 an den Auslöserdetektor 106. Der Auslöserdetektor 106 bestimmt, ob ein Spracherkennungsauslöser erkannt wurde. In einer Ausführungsform kann ein Auslöser ein Sprachauslöser sein, der aus einem Schlüsselwort oder einem Ausdruck besteht, welche das System auslösen, um eine Engine für die automatische Spracherkennung (ASR) des Systems zu aktivieren. Beispielsweise verfügt das von Amazon.com hergestellte Produkt Echo über einen virtuellen Sprachassistenten mit dem Namen „Alexa“. Um den virtuellen Sprachassistenten auszulösen, muss man das Wort „Alexa“ sagen und einen Befehl geben. Anders ausgedrückt: Das Aussprechen des Worts „Alexa“ ist der Sprachauslöser, der Echo aufweckt, um den angeforderten Befehl durchzuführen. In einer anderen Ausführungsform kann eine Steuertaste auf einem System verwendet werden, um das System auszulösen, um die automatische Spracherkennungsengine des Systems zu aktivieren. Beispielsweise hat Echo eine Taste, die gedrückt werden kann, um den virtuellen Sprachassistenten (Alexa) auszulösen. Wenn ein Auslöser erkannt wird, kann der Sprachstrom eine Anforderung oder einen Befehl enthalten.
  • Andere Ausführungsformen können andere Mechanismen oder Töne verwenden, um das System auszulösen. In einer Ausführungsform kann ein Auslöser eine Geste sein. Beispielsweise könnte ein Benutzer gestikulieren, indem er eine Hand von links nach rechts bewegt, um das System auszulösen, um die automatische Spracherkennungsengine zu aktivieren. In diesem Fall kann die Geste mit einer Kamera erfasst werden.
  • Sobald der Auslöser erkannt wird, wird der Sprachstrom an die Richtlinien- und Entscheidungslogik 108 gesendet. Die Richtlinien- und Entscheidungslogik 108 bestimmt die geeignete mehrstufige ASR-Engine, wie etwa zum Beispiel die ASR-Engines 110, 112, 114 oder 116, an die der Sprachstrom 104 zur Auflösung gesendet wird.
  • 2 ist ein Diagramm, das eine beispielhafte hierarchische mehrstufige ASR-Struktur 200 gemäß einer Ausführungsform veranschaulicht. Die hierarchische Struktur 200 veranschaulicht vier (4) Stufen der ASR-Engines 110, 112, 114 und 116. Obwohl die hierarchische Struktur 200 vier Stufen von ASR-Engines veranschaulicht, sind die Ausführungsformen nicht auf vier Stufen beschränkt. In anderen Ausführungsformen könnte die hierarchische Struktur nur zwei (2) Stufen oder mehr als vier (4) Stufen aufweisen. Wie in 2 gezeigt, sind die Stufen in aufsteigender Reihenfolge angeordnet, beginnend mit einer ASR-Engine 110, die einige Wörter erkennt und eine begrenzte Verarbeitungsleistung besitzt, bis zu einer ASR-Engine 116, die eine praktisch unbegrenzte Verarbeitungsleistung besitzt, um sehr große Vokabularien handzuhaben. Je höher die Stufe, desto größer ist das Vokabular, sodass mit jeder aufsteigenden Stufe mehr Rechenleistung erforderlich ist.
  • Stufe 1 veranschaulicht die unterste Stufe der hierarchischen Struktur 200. Die ASR-Engine für die Stufe 1 kann die ASR-Engine 110 mit spezialisiertem Sprachauslöser sein. Die ASR-Engine 110 mit spezialisiertem Sprachauslöser erkennt eine begrenzte Anzahl von Schlüsselwörtern, wie etwa zum Beispiel EIN, AUS, STOPP und EINSTELLEN und 30 bis 40 zusätzliche Wörter, die zum Ausführen einfacher Befehle verwendet werden. Die Arten von Befehlen, die von der ASR-Engine 110 mit spezialisiertem Sprachauslöser erkannt werden können, sind einfache Befehle, wie zum Beispiel zum Ein- und Ausschalten von Geräten (d. h. Lampen, Haushaltsgeräte, Fernseher etc.), Einstellen eines Weckers oder einer Zeitschaltuhr, Entriegeln oder Verriegeln einer Tür etc. Die ASR-Engine 110 mit spezialisiertem Sprachauslöser löst alle Befehle und Anforderungen lokal ohne Cloud-Unterstützung auf.
  • Stufe 2 ist die nächste Stufe in der hierarchischen Struktur 200. Die ASR-Engine für die Stufe 2 kann die ASR-Engine 112 mit digitalem Signalprozessor (DSP) für Audio sein, die auch als Offload-Engine bezeichnet wird. Die Audio-DSP-ASR-Engine 112 kann in Silicium eingebettet sein und Rechenleistung, Speicher und Zugriff auf das Mikrofon 102 beinhalten. Die Audio-DSP-ASR-Engine 112 erkennt ein Vokabular von einigen hundert Wörtern. Die Audio-DSP-ASR-Engine 112 verarbeitet einfache Befehle, wie sie vorstehend in Verbindung mit der ASR-Engine 110 mit spezialisiertem Sprachauslöser beschrieben wurden. Der Hauptunterschied zwischen der ASR-Engine 110 mit spezialisiertem Sprachauslöser und der Audio-DSP-ASR-Engine 112 ist das Vokabular. Die Audio-DSP-ASR-Engine 112 erkennt mehr Wörter eines Vokabulars als die ASR-Engine 110 mit spezialisiertem Sprachauslöser. Die Audio-DSP-ASR-Engine 112 löst alle Befehle und Anforderungen lokal ohne Cloud-Unterstützung auf.
  • Stufe 3 ist die nächste Stufe in der hierarchischen Struktur 200. Die ASR-Engine für die Stufe 3 kann die ASR-Engine 114 auf Basis eines lokalen Prozessors (z. B. die zentrale Verarbeitungseinheit/CPU) sein. Die prozessorbasierte ASR-Engine 114 erkennt große Vokabularien und kann daher möglicherweise Befehle auflösen, bei denen die ASR-Engines 110 und 112 der niedrigeren Stufen nicht über die Wörter im Vokabular für das richtige Dekodieren verfügen und/oder nicht die erforderlichen Informationen enthalten, um auf die Anforderung oder den Befehl zu antworten. Die prozessorbasierte ASR-Engine 114 kann Befehle, wie etwa „Um wie viel Uhr ist meine nächste Besprechung?“ auflösen, da der lokale Prozessor Zugriff auf den Kalender des Benutzers hat. Er löst alle Befehle und Anforderungen lokal ohne Cloud-Unterstützung auf.
  • Stufe 4 ist die nächste Stufe in der hierarchischen Struktur 200. Die ASR-Engine für die Stufe 4 kann die Cloud-basierte ASR-Engine 116 sein. Die Cloud-basierte ASR-Engine 116 kann die höchste Stufe in der hierarchischen Struktur 200 sein. Die Cloud-basierte ASR-Engine 116 enthält sehr große Vokabularien und weist praktisch unbegrenzte Verarbeitung und Speicher auf. Um die Cloud-basierte ASR-Engine 116 verwenden zu können, ist eine Verbindung mit dem Internet erforderlich.
  • Die Richtlinien- und Entscheidungslogik 108, die von einem Richtlinienmanager verwendet wird, um zu entscheiden, auf welcher ASR-Stufe der hierarchischen Struktur der Sprachstrom verarbeitet werden soll, basiert auf einer Vielzahl von Faktoren, die zum Bestimmen des besten ASR-Ansatzes verwendet werden. Die Faktoren können eines oder mehrere von einer Vertrauensbewertung, Datenschutzeinstellung, Benutzerkennung, Systemverbindungszustände, Tageszeit, Antwortzeit und/oder andere Faktoren enthalten, die von dem Benutzer des Systems definiert werden können.
  • Die Vertrauensbewertung ist ein Maßstab dafür, wie gut eine ASR-Engine einen Sprachstrom dekodiert. Beispielsweise wird ein Sprachstrom 104 erfasst und zur Dekodierung an eine ASR-Engine gesendet. Wenn die ASR-Engine den Sprachstrom mit geringen oder keinen Unterschieden zwischen den gesprochenen Wörtern und den dekodierten Wörtern dekodiert, ist die Vertrauensbewertung HOCH. Wenn es Unterschiede zwischen den gesprochenen Wörtern und den dekodierten Wörtern gibt, ist die Vertrauensbewertung NIEDRIG. Wenn die Vertrauensbewertung unter einem vorbestimmten Prozentsatz für die dekodierten Ergebnisse einer ASR-Engine liegt, rückt das System zu der nächsthöheren Stufe vor, um einer ASR-Engine mit einem größeren Vokabular-Subsystem das Dekodieren des Sprachstroms 104 zu ermöglichen. Wenn die Vertrauensbewertung einen vorbestimmten Prozentsatz für die dekodierten Ergebnisse von einer ASR-Engine erreicht oder überschreitet, wie zum Beispiel, dass zu 85 % oder mehr darauf vertraut wird, dass der Sprachstrom 104 präzise dekodiert wird, gilt der Sprachstrom 104 als ordnungsgemäß dekodiert, und das System rückt nicht zu der ASR-Engine der nächsten Stufe vor.
  • 3 ist ein Flussdiagramm eines beispielhaften Verfahrens 300 zur Bestimmung des besten ASR-Ansatzes basierend auf einer Vertrauensbewertung gemäß einer Ausführungsform. Das Verfahren 300 kann im Allgemeinen in einem System wie zum Beispiel dem hierarchischen ASR-System 100, wie in 1 gezeigt, implementiert sein. Insbesondere kann das Verfahren 300 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium, wie etwa einem Direktzugriffsspeicher (Random Access Memory, RAM), einem schreibgeschützten Speicher (Read-Only Memory, ROM), einem programmierbaren ROM (PROM), Firmware, Flash-Speicher etc., in konfigurierbarer Logik, wie etwa beispielsweise programmierbare Logikanordnungen (PLAs), feldprogrammierbaren Gate-Arrays (Field Programmable Gate Arrays, FPGAs), komplexe programmierbare Logikvorrichtungen (Complex Programmable Logic Devices, CPLDs), und Logikhardware mit fester Funktionalität, die Schaltungstechnologien verwendet, wie etwa beispielsweise eine anwendungsspezifische integrierte Schaltung (Application Specific Integrated Circuit, ASIC), Technologie für komplementäre Metalloxidhalbleiter (Complementary Metal Oxide Semiconductor, CMOS) oder Transistor-Transistor-Logik (TTL), oder einer beliebigen Kombination davon gespeichert sind.
  • Beispielsweise kann ein Computerprogrammcode zum Ausführen von in dem Verfahren 300 gezeigten Operationen in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache, wie etwa JAVA, SMALLTALK, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen, wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Darüber hinaus können die Logikanweisungen Assembleranweisungen, Befehlssatzarchitektur (Instruction Set Architecture, ISA)-Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Zustandseinstellungsdaten, Konfigurationsdaten für integrierte Schaltungen, Zustandsinformationen, die elektronische Schaltungen personalisieren, und/oder andere strukturelle Engines, die nativ in Hardware vorhanden sind (z. B. Hostprozessor, zentrale Verarbeitungseinheit (CPU), Mikrocontroller etc.), enthalten.
  • Der Prozess beginnt in Block 302, wo der Prozess sofort bei Block 304 fortfährt.
  • In Block 304 wird ein Sprachstrom empfangen. Der Sprachstrom kann einen Auslöser und/oder eine Anforderung oder einen Befehl enthalten. Wie zuvor angegeben, kann der Auslöser ein Sprachauslöser oder eine Steuertaste sein. Der Prozess fährt dann bei Block 306 fort.
  • In Block 306 versucht die ASR der niedrigsten Stufe, den Sprachstrom aufzulösen. Der Prozess fährt dann bei Entscheidungsblock 308 fort.
  • In Entscheidungsblock 308 wird bestimmt, ob der Sprachstrom ordnungsgemäß aufgelöst wurde. Wenn der Sprachstrom ordnungsgemäß aufgelöst wurde, fährt der Prozess bei Block 314 fort.
  • In Block 314 kann eine Antwort auf die Anforderung oder den Befehl aus dem Sprachstrom von dem Benutzer bereitgestellt werden. Der Prozess geht dann zurück zu Block 304, um einen anderen Sprachstrom zu empfangen.
  • Zurückkehrend zum Entscheidungsblock 308: Wenn bestimmt wird, dass der Sprachstrom durch die ASR der aktuellen Stufe nicht ordnungsgemäß aufgelöst werden konnte, wird der Sprachstrom an die ASR der nächsten Stufe in Block 310 gesendet. Der Prozess fährt dann bei Block 312 fort.
  • In Block 312 versucht die ASR der nächsten Stufe, den Sprachstrom aufzulösen. Der Prozess geht dann zurück zum Entscheidungsblock 308, um zu bestimmen, ob der Sprachstrom durch die ASR der nächsten Stufe ordnungsgemäß aufgelöst wurde. Wenn der Sprachstrom nicht ordnungsgemäß aufgelöst wird, wiederholt sich der Prozess in den Blöcken 310 bis 312, bis der Sprachstrom ordnungsgemäß aufgelöst wird.
  • Zurückkehrend zu der Richtlinien- und Entscheidungslogik 108 in 1, ist ein weiterer Richtlinien- und Entscheidungslogikfaktor, der sich darauf auswirken kann, welche ASR-Stufe den Sprachstrom auflöst, die Datenschutzeinstellung. Die Datenschutzeinstellung ist eine Richtlinie, die verhindert, dass bestimmte Sprachdaten in die Cloud gelangen, sodass alle Daten lokal und privat bleiben. Andere Richtlinien- und Entscheidungsfaktoren, die möglicherweise die Verwendung der Datenschutzeinstellung erfordern, beinhalten die Benutzerkennung und die Tageszeit. Die Benutzerkennung erfordert möglicherweise die Verwendung der Datenschutzeinstellung basierend auf der Kennung des Benutzers. Beispielsweise möchten Eltern die Vertraulichkeit aller von ihrem/ihren Kind/Kindern gesprochenen Sprachdaten schützen. In diesem Fall wird für jedes Kind eine Datenschutzeinstellung festgelegt, um zu verhindern, dass von den Kindern gesprochene Sprachdaten in die Cloud gehen. Alle von den Kindern gesprochenen Sprachdaten werden lokal aufgelöst. In einem anderen Beispiel möchte ein Benutzer möglicherweise die Vertraulichkeit seiner eigenen Sprachdaten während bestimmter Tageszeiten schützen. In diesem Fall wird eine Datenschutzeinstellung für den Benutzer festgelegt, um zu verhindern, dass von dem Benutzer gesprochene Sprachdaten zu bestimmten Tageszeiten in die Cloud gehen, wie zum Beispiel in der Zeit von 21 bis 23 Uhr oder alle Sprachdaten, die während der Nachtstunden gesprochen werden. Alle vom Benutzer gesprochenen Sprachdaten werden in der Zeit von 21 bis 23 Uhr oder während der Nachtstunden lokal aufgelöst.
  • Ein weiterer Richtlinien- und Entscheidungslogikfaktor hängt von den Systemverbindungszuständen ab, wie zum Beispiel der Verbindung zum Internet, der Verbindung zur Stromversorgung und dem Batterieladezustand, wenn das System mit Batteriestrom betrieben wird. Wenn das System nicht mit dem Internet verbunden ist, kann das System den Sprachstrom nicht unter Verwendung der Cloud-basierten ASR-Engine 116 auflösen. Wenn das System mit dem Internet verbunden ist, der Sprachstrom jedoch auf der lokalen Stufe aufgelöst werden kann, beispielsweise auf einer der Stufen 1, 2 oder 3 (in 2 gezeigt), dann wird der Sprachstrom auf einer optimalen lokalen Stufe aufgelöst. Das heißt, dies ist die niedrigste lokale Stufe, in der der Sprachstrom durch Erkennen des Vokabulars und Vorhandensein der Informationen, die zur Beantwortung der Anforderung oder des Befehl aus dem Sprachstrom erforderlich sind, aufgelöst werden kann. Wenn das System mit dem Internet verbunden ist und der Sprachstrom nicht auf der lokalen Stufe aufgelöst werden kann, weil das Vokabular begrenzt ist oder zusätzliche Daten erforderlich sind, um die Aktion für einen Sprachbefehl auszuführen, wird der Sprachstrom unter Verwendung der Cloud-basierten ASR-Engine 116 aufgelöst (wenn keine Datenschutzrichtlinie vorhanden ist, welche die Verwendung der Cloud-basierten ASR-Engine 116 verhindert).
  • Wenn das System mit der Stromversorgung und dem Internet verbunden ist, kann der Sprachstrom in der ASR der niedrigsten Stufe aufgelöst werden, die die Sprachdaten auflöst und die im Sprachbefehl angeforderte Aktion durchführt. Wenn die Sprachdaten nicht lokal aufgelöst werden können oder die erforderliche Aktion nicht mit lokalen Ressourcen durchgeführt werden kann, wird der Sprachstrom mit der Cloud-basierten ASR 116 aufgelöst (wenn keine Datenschutzrichtlinie vorhanden ist, welche die Verwendung der Cloud-basierten ASR-Engine 116 verhindert). Wenn das System zwar mit der Stromversorgung, aber nicht mit dem Internet verbunden ist, kann der Sprachstrom in der ASR der niedrigsten Stufe lokal aufgelöst werden, die die Sprachdaten auflöst und die im Sprachbefehl angeforderte Aktion durchführt.
  • Wenn das System vom Stromnetz getrennt wird, kann der Batteriestrom möglicherweise ein Problem sein. In einer Ausführungsform kann die Richtlinie festlegen, den Sprachstrom auf dem niedrigsten Leistungspegel aufzulösen. 4A ist ein Flussdiagramm für ein beispielhaftes Verfahren 400 zur Verlängerung der Batterielebensdauer bei der Bestimmung, welche Stufe einer ASR-Engine die Spracherkennung gemäß einer Ausführungsform durchführt. Das Verfahren 400 kann im Allgemeinen in einem System wie zum Beispiel dem hierarchischen ASR-System 100, wie in 1 gezeigt, implementiert sein. Insbesondere kann das Verfahren 400 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher etc., in konfigurierbarer Logik, wie etwa beispielsweise PLAs, FPGAs, CPLDs und Logikhardware mit fester Funktionalität, die Schaltungstechnologien verwendet, wie etwa beispielsweise eine ASIC, Technologie für CMOS oder TTL, oder einer beliebigen Kombination davon gespeichert sind.
  • Das beispielhafte Verfahren 400 geht davon aus, dass die Energie des Sendens und Empfangens aus der Cloud größer ist als die der Verarbeitung durch den lokalen Prozessor, und dass die Verarbeitung durch den lokalen Prozessor mehr Strom verbraucht als die Audio-DSP-Verarbeitung oder die Verarbeitung durch den spezialisierten Sprachauslöser. In anderen Ausführungsformen kann die Richtlinien- und Entscheidungslogik, die dem Verbindungszustand, der Stromversorgung und dem Datenschutz entspricht, unterschiedlich sein.
  • Der Prozess beginnt in Block 402, wo der Prozess sofort bei Entscheidungsblock 404 fortfährt. In Entscheidungsblock 404 wird bestimmt, ob die Batterielebensdauer größer als 50 % ist. Wenn die Batterielebensdauer größer als 50 % ist, kann die Cloud-basierte ASR-Engine 116 verwendet werden, um den Sprachstrom aufzulösen. Zu beachten ist, dass, obwohl die Cloud-basierte ASR-Engine 116 verwendet werden kann, um den Sprachstrom aufzulösen, der Sprachstrom auf der niedrigstmöglichen Stufe aufgelöst wird, wenn der Sprachstrom auf einer niedrigeren Stufe aufgelöst werden kann. Anders ausgedrückt: Nur weil die Batterielebensdauer größer als 50 % ist, bedeutet dies nicht, dass der Sprachstrom unter Verwendung der Cloud-basierten ASR-Engine 116 aufgelöst werden muss. Im Gegenteil, der Sprachstrom kann unter Verwendung der ASR-Engine der niedrigstmöglichen Stufe aufgelöst werden, welche die vordefinierten Richtlinien des Systems einhält. Wenn die Batterielebensdauer kleiner als oder gleich 50 % ist, fährt der Prozess beim Entscheidungsblock 408 fort.
  • In Entscheidungsblock 408 wird bestimmt, ob die Batterielebensdauer größer als 20 % ist. Wenn die Batterielebensdauer größer als 20 % ist, kann die auf dem lokalen Prozessor basierte ASR-Engine 114 verwendet werden, um den Sprachstrom aufzulösen. Zu beachten ist, dass, obwohl die auf dem lokalen Prozessor basierte ASR-Engine 114 verwendet werden kann, um den Sprachstrom bei einer Batterielebensdauer von 20 %, aber unter 50 %, aufzulösen, der Sprachstrom auf einer ASR-Engine der niedrigstmöglichen Stufe aufgelöst wird, wenn der Sprachstrom auf einer ASR-Engine einer niedrigeren Stufe aufgelöst werden kann. Anders ausgedrückt: Der Sprachstrom kann unter Verwendung der ASR-Engine der niedrigstmöglichen Stufe aufgelöst werden, welche die vordefinierten Richtlinien des Systems einhält. Wenn die Batterielebensdauer kleiner als oder gleich 20 % ist, kann die Audio-DSP-ASR-Engine 112 oder die ASR-Engine 110 mit spezialisiertem Sprachauslöser verwendet werden, um den Sprachstrom aufzulösen. Wieder wählt das System die ASR-Engine der niedrigstmöglichen Stufe aus, die den vordefinierten Richtlinien des Systems entspricht.
  • Zu beachten ist, dass die Prozentsätze des genutzten Batteriestroms und die auf den Prozentsätzen basierende aufgerufene Stufe der ASR-Engine in dem beispielhaften Flussdiagramm von 4A nur zur Veranschaulichung verwendet werden. Wie bereits erwähnt, kann die Richtlinien- und Entscheidungslogik für den Verbindungszustand, die Stromversorgung und den Datenschutz für verschiedene Benutzer unterschiedlich sein. In einer anderen Ausführungsform kann ein Benutzer möglicherweise das Fortfahren direkt bei der Cloud-basierten ASR-Engine wünschen, wenn der Batteriestärke 20 % oder mehr beträgt. Ein anderer Benutzer möchte möglicherweise Sprachströme ausschließlich lokal verarbeiten, selbst wenn die Batteriestärke 75 % übersteigt, da er möchte, dass die Batterie den ganzen Tag lang hält, ohne aufgeladen zu werden.
  • Zurückkehrend zu der Richtlinien- und Entscheidungslogik 108 von 1 kann ein anderer Richtlinien- und Entscheidungslogikfaktor eine Reaktionszeit enthalten. In Fällen, in denen eine Antwort schnell erforderlich ist, kann die lokale Verarbeitung des Sprachstroms zu niedrigeren Latenzzeiten und schnelleren Reaktionszeiten führen. Wenn keine schnelle Antwort (z. B. eine Antwort, die unter einem Schwellenwert liegt) erforderlich ist, kann die Verarbeitung des Sprachstroms in der Cloud eine bessere Genauigkeit bieten.
  • Es gibt andere Richtlinien- und Entscheidungslogikfaktoren 108, die beim Auflösen von Sprachströmen bei niedrigeren oder höheren ASR-Stufen berücksichtigt werden können. Einer dieser Faktoren ist die Verfügbarkeit von Daten, um die erforderliche Aktion auszuführen. Einfache Befehle, wie zum Beispiel „Licht einschalten“ oder „Licht ausschalten“, erfordern keine Daten aus der Cloud, um die Aktion des Lichteinschaltens oder Lichtausschaltens durchzuführen. Solche Befehle können lokal unter Verwendung der ASR-Engine 110 mit spezialisiertem Auslöser, der Audio-DSP-ASR-Engine 112 oder der auf dem lokalen Prozessor basierten ASR-Engine 114 durchgeführt werden und erfordern keine zusätzlichen Daten zum Durchführen der Aktion. Wenn für den Befehl Informationen erforderlich sind, wie zum Beispiel „Um wie viel Uhr ist meine Besprechung morgen?“, haben die ASR-Engine 110 mit spezialisiertem Auslöser und die Audio-DSP-ASR-Engine 112 keinen Zugriff auf den Kalender des Benutzers, aber die auf dem lokalen Prozessor basierte ASR-Engine 114 hat Zugriff auf den Kalender des Benutzers und kann daher die erforderliche Aktion durchführen. Wenn für den Befehl Informationen erforderlich sind, wie zum Beispiel „Um wie viel Uhr gehen morgen Flüge mit American Airlines nach Denver, Colorado“ oder „Wie hoch ist die Temperatur in New York City“, müssen für diese Art von Informationen Daten aus dem Internet abgerufen werden, und er kann daher nur von der Cloud-basierten ASR-Engine 116 durchgeführt werden. In diesem Fall wird die Richtlinien- und Entscheidungslogik auf die ASR-Engine der höchsten Stufe angehoben, um die Durchführung der erforderlichen Aktion zu ermöglichen. In einer anderen Ausführungsform kann das System die Cloud-basierte ASR-Engine 116 nur zum Datenabruf verwenden und die lokale Auflösung des Sprachstroms 104 unter Verwendung der ASR-Engine der niedrigsten Stufe ermöglichen, die in der Lage ist den, Sprachstrom mit HOHER Zuverlässigkeit zu dekodieren.
  • Die Ausgabe 118 kann eine Sprachantwort sein, wie zum Beispiel eine Weiterleitung von Informationen oder eine Bestätigung einer bestimmten Aktion. In Ausführungsformen muss die Ausgabe nicht immer eine Sprachantwort sein, sondern könnte eine Aktionsantwort sein. Wenn beispielsweise der Befehl „Licht in der Küche einschalten“ lautete, ist das EINSCHALTEN der Küchenbeleuchtung eine Aktion, die bestätigt, dass die Küchenbeleuchtung EINGESCHALTET wurde.
  • 4B ist ein Flussdiagramm eines beispielhaften Verfahrens 420 zur Durchführung einer ASR-Auflösung einer hierarchischer Stufe basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform. Das Verfahren 420 kann im Allgemeinen in einem System wie zum Beispiel dem hierarchischen ASR-System 100, wie in 1 gezeigt, implementiert sein. Insbesondere kann das Verfahren 420 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher etc., in konfigurierbarer Logik, wie etwa beispielsweise PLAs, FPGAs, CPLDs und Logikhardware mit fester Funktionalität, die Schaltungstechnologien verwendet, wie etwa beispielsweise eine ASIC, Technologie für CMOS oder TTL, oder einer beliebigen Kombination davon gespeichert sind.
  • Der Prozess beginnt in Block 422, wo der Prozess sofort bei Block 424 fortfährt. In Block 424 wird ein Sprachstrom empfangen. Der Sprachstrom wird von einem Mikrofon empfangen. In einer Ausführungsform kann das Mikrofon ein digitales Mikrofon sein. Der Prozess fährt dann bei Block 426 fort.
  • In Block 426 wird der Sprachstrom unter Verwendung einer automatischen Spracherkennungs-Engine (ASR-Engine) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufgelöst, die das Vokabular für das richtige Dekodieren des Sprachstroms und die erforderlichen Informationen zum Antworten auf eine Anforderung in dem Sprachstrom bereitstellt. Die ASR-Engine der niedrigstmöglichen Stufe wird basierend auf Richtlinien ausgewählt, die für die Plattform definiert wurden. Die mehrstufigen ASR-Engines sind hierarchisch strukturiert, um mit jeder ASR-Engine einer höheren Stufe mehr Rechenleistung und Worterkennung bereitzustellen. Der Prozess fährt dann bei Block 428 fort.
  • Wenn in Block 428 die Sprachauflösung unter einer vorbestimmten Vertrauensbewertung liegt, wird die Auflösung des Sprachstroms zu der ASR-Engine der nächsthöheren Stufe der mehrstufigen ASR-Engines verschoben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen jegliche Richtlinien zu verstoßen. Die definierten Richtlinien können die Vertrauensbewertung, Datenschutzeinstellung, Benutzerkennung, Systemverbindungszustände, Tageszeit, Reaktionszeit und Verfügbarkeit von Daten zum Durchführen einer angeforderten Aktion oder Verwendung beinhalten, sind jedoch nicht darauf beschränkt.
  • 5B ist ein Flussdiagramm eines beispielhaften Verfahrens 500 zur Bestimmung, welche hierarchische Stufe einer ASR-Engine basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform verwendet wird. Das Verfahren 500 kann im Allgemeinen in einem System wie zum Beispiel dem hierarchischen ASR-System 100, wie in 1 gezeigt, implementiert sein. Insbesondere kann das Verfahren 500 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher etc., in konfigurierbarer Logik, wie etwa beispielsweise PLAs, FPGAs, CPLDs und Logikhardware mit fester Funktionalität, die Schaltungstechnologien verwendet, wie etwa beispielsweise eine ASIC, Technologie für CMOS oder TTL, oder einer beliebigen Kombination davon gespeichert sind.
  • Der Prozess beginnt in Block 502, wo der Prozess bei Block 504 fortfährt. In Block 504 wird ein Sprachstrom empfangen. Der Prozess fährt dann bei Entscheidungsblock 506 fort.
  • In Entscheidungsblock 506 wird bestimmt, ob die ASR mit spezialisiertem Auslöser die Anforderung durch Auflösung des Sprachstroms und der Fähigkeit, aufgrund der Anforderung tätig zu werden, handhaben kann. Wenn die ASR-Engine 110 mit spezialisiertem Auslöser die Anforderung handhaben kann, fährt der Prozess bei Block 508 fort.
  • In Block 508 kann die ASR-Engine 110 mit spezialisiertem Auslöser auf die Anforderung antworten. Der Prozess geht dann zu Block 504 zurück, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zu Entscheidungsblock 506: Wenn die ASR-Engine 110 mit spezialisiertem Auslöser die Anforderung nicht handhaben kann, fährt der Prozess bei dem Entscheidungsblock 510 fort. In Entscheidungsblock 510 wird bestimmt, ob die Audio-DSP-ASR-Engine 112 die Anforderung handhaben kann. Wenn die Audio-DSP-ASR-Engine 112 die Anforderung durch Auflösen des Sprachstroms und der Fähigkeit, aufgrund der Anforderung tätig zu werden, handhaben kann, fährt der Prozess bei Block 512 fort.
  • In Block 512 kann die Audio-DSP-ASR-Engine 112 auf die Anforderung antworten. Der Prozess geht dann zu Block 504 zurück, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zu Entscheidungsblock 510: Wenn die Audio-DSP-ASR-Engine 112 die Anforderung nicht handhaben kann, fährt der Prozess bei dem Entscheidungsblock 514 fort. In Entscheidungsblock 514 wird bestimmt, ob die ASR-Engine 114 mit lokalem Prozessor die Anforderung handhaben kann. Wenn die ASR-Engine 114 mit lokalem Prozessor die Anforderung durch Auflösen des Sprachstroms und der Fähigkeit, aufgrund der Anforderung tätig zu werden, handhaben kann, fährt der Prozess bei Block 516 fort.
  • In Block 516 kann die ASR-Engine 114 mit lokalem Prozessor auf die Anforderung antworten. Der Prozess geht dann zu Block 504 zurück, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zu Entscheidungsblock 514: Wenn die ASR-Engine 114 mit lokalem Prozessor die Anforderung nicht handhaben kann, fährt der Prozess bei dem Entscheidungsblock 518 fort. In Entscheidungsblock 518 wird bestimmt, ob eine Richtlinie vorhanden ist, die verhindert, dass die Cloud-basierte ASR-Engine 116 die Anforderung handhabt. Zu diesen Richtlinien kann, ohne darauf beschränkt zu sein, eine Datenschutzeinstellungsrichtlinie gehören, gemäß welcher der Benutzer als eine Person angegeben ist, die keinen Zugriff auf die Cloud haben darf, eine Datenschutzeinstellungsrichtlinie, gemäß welcher der Benutzer bestimmte Tageszeiten festgelegt hat, zu denen der Zugriff auf die Cloud nicht zulässig ist, ein Systemverbindungszustand, der angibt, dass das System nicht mit dem Internet verbunden ist, ein Systemverbindungszustand, bei dem das System batteriebetrieben ist und der Batterieladezustand weniger als 50 % beträgt, und/oder eine Reaktionszeitrichtlinie, in der eine Antwort schnell erforderlich ist. Wenn keine Richtlinien vorhanden sind, die das System daran hindern, auf die Cloud zuzugreifen, fährt der Prozess bei Block 520 fort.
  • In Block 520 kann die Cloud-basierte ASR-Engine 116 auf die Anforderung antworten. Der Prozess geht dann zu Block 504 zurück, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zum Entscheidungsblock 518: Wenn eine oder mehrere Richtlinien vorhanden sind, die verhindern würden, dass das System auf die Cloud zugreift, fährt der Prozess bei Block 522 fort. In Block 522 stellt das System dem Benutzer eine Anzeige bereit, um anzugeben, dass die Anforderung aufgrund eines eingeschränkten Zugriffs auf die Cloud nicht erfüllt werden kann. Der Prozess geht dann zu Block 504 zurück, um einen Sprachstrom zu empfangen.
  • 5B ist ein Flussdiagramm eines anderen beispielhaften Verfahrens 530 zur Bestimmung, welche hierarchische Stufe einer ASR-Engine basierend auf einer Richtlinien- und Entscheidungslogik gemäß einer Ausführungsform verwendet wird. Das Verfahren 530 kann im Allgemeinen in einem System wie zum Beispiel dem hierarchischen ASR-System 100, wie in 1 gezeigt, implementiert sein. Insbesondere kann das Verfahren 530 in einem oder mehreren Modulen als ein Satz von Logikanweisungen implementiert sein, die in einem maschinen- oder computerlesbaren Speichermedium, wie etwa RAM, ROM, PROM, Firmware, Flash-Speicher etc., in konfigurierbarer Logik, wie etwa beispielsweise PLAs, FPGAs, CPLDs und Logikhardware mit fester Funktionalität, die Schaltungstechnologien verwendet, wie etwa beispielsweise eine ASIC, Technologie für CMOS oder TTL, oder einer beliebigen Kombination davon gespeichert sind.
  • Der Prozess beginnt in Block 532, wo der Prozess sofort bei Block 534 fortfährt. In Block 534 wird ein Sprachstrom empfangen. Der Prozess fährt dann bei Block 536 fort.
  • In Block 536 löst das System den Sprachstrom unter Verwendung der ASR der niedrigsten Stufe auf. In diesem Fall ist die ASR der niedrigsten Stufe die ASR-Engine 110 mit spezialisiertem Sprachauslöser. Der Prozess fährt dann bei Entscheidungsblock 538 fort.
  • In Entscheidungsblock 538 wird bestimmt, ob die Sprachauflösung größer oder gleich einer vorbestimmten Vertrauensbewertung ist. In einer Ausführungsform kann die vorbestimmte Vertrauensbewertung mindestens 85 % oder höher sein. Wenn die Sprachdaten gleich oder größer als die vorbestimmte Vertrauensbewertung sind, fährt der Prozess bei Block 556 fort.
  • In Block 556 wird eine Antwort auf die Anforderung von dem Sprachstrom unter Verwendung der ASR der aktuellen Stufe bereitgestellt. Der Prozess geht dann zurück zu Block 534, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zum Entscheidungsblock 538: Wenn bestimmt wird, dass die Auflösung der Sprachdaten kleiner als die vorbestimmte Vertrauensbewertung ist, wird der Sprachstrom auf die nächste ASR-Stufe in Block 540 verschoben. Der Prozess fährt dann bei Entscheidungsblock 542 fort.
  • In Entscheidungsblock 542 wird bestimmt, ob die ASR der nächsten Stufe eine Netzwerkverbindung erfordert. Wenn für die ASR der nächsten Stufe keine Netzwerkverbindung erforderlich ist, fährt der Prozess bei Block 544 fort.
  • In Block 544 wird der Sprachstrom unter Verwendung der ASR der nächsten Stufe aufgelöst. Der Prozess geht dann zum Entscheidungsblock 538 zurück, um zu bestimmen, ob die Sprachauflösung größer oder gleich der vorbestimmten Vertrauensbewertung ist.
  • Zurückkehrend zum Entscheidungsblock 542: Wenn die ASR der nächsten Stufe eine Netzwerkverbindung erfordert, fährt der Prozess beim Entscheidungsblock 546 fort. In Entscheidungsblock 546 wird bestimmt, ob das System mit dem Internet verbunden ist. Wenn das System nicht mit dem Internet verbunden ist, fährt der Prozess bei Block 554 fort.
  • In Block 554 wird der Sprachstrom auf die ASR der vorherigen Stufe zurückgeschoben, um den Sprachstrom aufzulösen. Der Prozess fährt dann bei Block 556 fort, wo eine Antwort auf die Anforderung aus dem Sprachstrom durch die ASR der vorherigen Stufe bereitgestellt wird. Der Prozess geht dann zu Block 534 zurück, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zum Entscheidungsblock 546: Wenn das System mit dem Internet verbunden ist, fährt der Prozess dann beim Entscheidungsblock 548 fort. In Entscheidungsblock 548 wird bestimmt, ob eine oder mehrere Richtlinien vorhanden sind, die verhindern, dass Sprachdaten in die Cloud gehen. Zu diesen Richtlinien kann, ohne darauf beschränkt zu sein, eine Datenschutzeinstellungsrichtlinie gehören, gemäß welcher der Benutzer als eine Person angegeben ist, die keinen Zugriff auf die Cloud haben darf, eine Datenschutzeinstellungsrichtlinie, gemäß welcher der Benutzer bestimmte Tageszeiten festgelegt hat, zu denen der Zugriff auf die Cloud nicht zulässig ist, ein Systemverbindungszustand, der angibt, dass das System nicht mit dem Internet verbunden ist, ein Systemverbindungszustand, bei dem das System batteriebetrieben ist und der Batterieladezustand weniger als 50 % beträgt, und/oder eine Reaktionszeitrichtlinie, in der eine Antwort schnell erforderlich ist. Wenn keine Richtlinien vorhanden sind, die verhindern, dass Sprachdaten in die Cloud gehen, fährt der Prozess bei Block 550 fort.
  • In Block 550 wird der Sprachstrom von einer Cloud-basierten ASR-Engine aufgelöst, wie zum Beispiel der Cloud-basierten ASR-Engine 116. Der Prozess fährt dann bei Block 556 fort, wo eine Antwort auf die Anforderung aus dem Sprachstrom durch die Cloud bereitgestellt wird. Der Prozess geht dann zurück zu Block 534, um einen Sprachstrom zu empfangen.
  • Zurückkehrend zum Entscheidungsblock 548: Wenn eine oder mehrere Richtlinien verhindern, dass Sprachdaten in die Cloud gehen, fährt der Prozess bei Block 552 fort. In Block 552 werden alle Gespräche als „privat“ gekennzeichnet. Der Prozess fährt dann bei Block 554 fort.
  • In Block 554 wird der Sprachstrom auf die ASR der vorherigen Stufe zurückgeschoben, um den Sprachstrom aufzulösen. Der Prozess fährt dann bei Block 556 fort, wo eine Antwort auf die Anforderung aus dem Sprachstrom durch die ASR der vorherigen Stufe bereitgestellt wird. Der Prozess geht dann zu Block 534 zurück, um einen Sprachstrom zu empfangen.
  • 6 ist ein Blockdiagramm 600, das beispielhafte hierarchische Stufen der ASR-Verarbeitung im Kontext einer Wearable-Vorrichtung gemäß einer Ausführungsform veranschaulicht. Das Diagramm 600 beinhaltet eine Wearable-Vorrichtung 602, ein eigenständiges Gerät/Zusatzgerät für Wearables 604 und eine Cloud 610. Die Wearable-Vorrichtung 602 kann zum Beispiel eine Smart Watch sein und das eigenständige Gerät/Zusatzgerät für Wearables 604 kann zum Beispiel ein Smart Phone oder ein Smart Tablet sein. Das Diagramm 600 enthält auch die Richtlinien- und Entscheidungslogik 612, die vorstehend unter Bezugnahme auf 1 beschrieben wurde, um die Auswahl der geeigneten hierarchischen ASR-Stufe zum Verarbeiten der Sprachbefehle zu verwalten.
  • Wie in Diagramm 600 gezeigt, kann die ASR-Verarbeitung auf verschiedenen Hierarchiestufen erfolgen. Die Wearable-Vorrichtung 602 kann eine ASR-Engine mit Sprachauslöser (nicht gezeigt) aufweisen, die in der Lage ist, eine begrenzte Anzahl von Schlüsselwörtern zu erkennen. In einer Ausführungsform kann die Wearable-Vorrichtung 602 auch eine Offload-Engine aufweisen, wie etwa eine Audio-DSP-ASR-Engine mit Vokabularien von hundert oder mehr Wörtern. Das eigenständige Gerät oder das Zusatzgerät für Wearables 604 kann sowohl eine Audio-DSP-ASR-Engine 606 als auch eine ASR-Engine 608 mit lokalem Prozessor aufweisen. Die Cloud 610 kann eine Cloud-basierte ASR-Engine 611 mit einem sehr großen Vokabular aufweisen.
  • Einfache Befehle an die Wearable-Vorrichtung, wie etwa solche, die von einem Benutzer 614 stammen, bei denen die Informationen, um tätig zu werden, sich lokal auf der Wearable-Vorrichtung befinden, können „Stoppuhr starten“, „Stoppuhr anhalten“, „Wie ist meine Herzfrequenz?“, „Wecker auf 6 Uhr morgens einstellen“ oder ein anderer einfacher Befehl sein, bei dem keine zusätzlichen Daten erforderlich sind, damit die Wearable-Vorrichtung aufgrund der Anforderung tätig werden kann. Einfache Sprachbefehle, die lokal aufgelöst werden können, helfen dabei, Leistung zu sparen, die Vertraulichkeit der Sprachdaten zu wahren und führen zu schnelleren Reaktionszeiten und einer geringer Latenz, da verhindert wird, dass die Sprachdaten zur Verarbeitung an die Cloud gesendet werden.
  • Wenn der von dem Benutzer 614 an die Wearable-Vorrichtung 602 gesprochene Befehl Informationen erfordert, die der Wearable-Vorrichtung 602 nicht zur Verfügung stehen, wird der Befehl an das eigenständige Gerät oder Zusatzgerät 604 zur lokalen Auflösung unter Verwendung von entweder der Audio-DSP-ASR-Engine 606 oder der ASR-Engine 608 mit lokalem Prozessor verschoben. Wenn der Befehl lokal auf dem eigenständigen Gerät oder Zusatzgerät 604 aufgelöst werden kann, wird wiederum weniger Leistung verbraucht, die Vertraulichkeit der Sprachdaten wird gewahrt, die Reaktionszeiten sind schneller und die Latenz ist geringer als beim Senden der Sprachdaten zur Verarbeitung an die Cloud.
  • Wenn der von dem Benutzer 614 an die Wearable-Vorrichtung 602 gesprochene Befehl aufgrund der unzureichenden Verarbeitungsleistung und/oder des Mangels an Informationen, die erforderlich sind, um tätig zu werden, nicht von dem eigenständigen Gerät oder Zusatzgerät 604 verarbeitet werden kann, werden die Sprachdaten zur Verarbeitung durch die Cloud-basierte ASR-Engine 611 an die Cloud 610 gestreamt.
  • 7 zeigt ein System 700, welches das vorstehend unter Bezugnahme auf 1 gezeigte hierarchische Spracherkennungssystem ersetzen kann. Das veranschaulichte System 700 enthält einen Prozessor 702 (z. B. einen Hostprozessor, eine zentrale Verarbeitungseinheit/CPU) mit einer integrierten Speichersteuerung (Integrated Memory Controller, IMC) 704, die mit einem Systemspeicher 706, z. B. einem flüchtigen Speicher, dynamischen Direktzugriffsspeicher (DRAM), gekoppelt ist. Der Prozessor 702 kann auch mit einem Eingang/Ausgang (E/A)-Modul 708 gekoppelt sein, das mit der Netzwerkschnittstellenschaltung 710, z. B. der Netzwerksteuerung, Netzwerkschnittstellenkarte (Network Interface Card, NIC), und dem Massenspeicher 712, z. B. dem nichtflüchtigen Speicher (Non-Volatile Memory, NVM), Festplattenlaufwerk (Hard Disk Drive, HDD), optischen Laufwerk, Solid-State-Laufwerk (Solid State Disk, SSD), Flash-Speicher, kommuniziert. Die Netzwerkschnittstellenschaltung 710 kann Sprachströme über ein digitales Mikrofon, wie zum Beispiel das Mikrofon 102 (in 1 gezeigt), empfangen, wobei der Systemspeicher 706 und/oder der Massenspeicher 712 Speichervorrichtungen sein können, die Anweisungen 714 speichern, die bei Ausführung durch den Prozessor 702 das System 700 veranlassen, einen oder mehrere Aspekte des Verfahrens 300 (3), des Verfahrens 400 (4) und des Verfahrens 500 (5), die bereits erläutert wurden, durchzuführen. Somit kann die Ausführung der Anweisungen 714 das System 700 veranlassen, den Sprachstrom auf einer niedrigstmöglichen Stufe von mehrstufigen Engines für die automatische Spracherkennung (ASR)aufzulösen, die hierarchisch strukturiert sind, um mehr Rechenleistung und Worterkennung mit jeder ASR-Engine einer höheren Stufe bereitzustellen. Ein Richtlinienmanager kann die Auflösung des Sprachstroms auf eine hierarchische Stufe der mehrstufigen ASR-Engines verschieben, die fähig ist, den Sprachstrom basierend auf für das System definierte Richtlinien aufzulösen. Der Prozessor 702 und das E/A-Modul 708 können in einem gemeinsam genutzten Chip 716 als System-On-Chip (SoC) integriert sein.
  • 8 zeigt eine Halbleiterpackungsvorrichtung 800 (z. B. einen Chip), die ein Substrat 802 (z. B. Silicium, Saphir, Galliumarsenid) und eine Logik 804 (z. B. eine Transistoranordnung und andere integrierte Schaltungs (IC)-Engines) enthält, die mit dem Substrat 802 gekoppelt sind. Die Logik 804, die in einer konfigurierbaren Logik und/oder Hardware mit Logik fester Funktionalität implementiert sein kann, kann im Allgemeinen einen oder mehrere Aspekte des Verfahrens 300 (3), des Verfahrens 400 (4) und des Verfahrens 500 (5), die bereits erläutert wurden, implementieren.
  • 9 veranschaulicht einen Prozessorkern 900 gemäß einer Ausführungsform. Der Prozessorkern 900 kann der Kern für einen beliebigen Prozessortyp sein, wie etwa ein Mikroprozessor, ein eingebetteter Prozessor, ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor oder eine andere Vorrichtung zum Ausführen von Code. Obwohl in 9 nur ein Prozessorkern 900 veranschaulicht ist, kann ein Verarbeitungselement alternativ mehr als einen des in 9 veranschaulichten Prozessorkerns 900 enthalten. Der Prozessorkern 900 kann ein Single-Thread-Kern sein, oder bei mindestens einer Ausführungsform kann der Prozessorkern 900 Multi-Threading umfassen, bei dem er mehr als einen Hardware-Thread-Kontext (oder „logischen Prozessor“) pro Kern enthält.
  • 9 veranschaulicht auch einen Speicher 970, der mit dem Prozessorkern 900 gekoppelt ist. Der Speicher 970 kann ein beliebiger aus einer Vielzahl von Speichern sein (einschließlich verschiedener Schichten der Speicherhierarchie), die Fachleuten auf dem Gebiet bekannt oder auf andere Weise verfügbar sind. Der Speicher 970 kann eine oder mehrere Anweisungen des Codes 905 enthalten, die von dem Prozessorkern 900 ausgeführt werden sollen, wobei der Code 905 das Verfahren 400 (4), das Verfahren 400 (4) und das Verfahren 500 (5), die bereits erläutert wurden, implementieren kann. Der Prozessorkern 900 folgt einer Programmsequenz von Anweisungen, die durch den Code 905 angegeben sind. Jede Anweisung kann eine Frontend-Logik 910 betreten und von einem oder mehreren Decodern 920 verarbeitet werden. Der Decoder 920 kann als Ausgabe eine Mikrooperation, wie etwa eine Mikrooperation mit fester Breite in einem vordefinierten Format, erzeugen oder er kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, welche die ursprüngliche Codeanweisung widerspiegeln. Der veranschaulichte Frontend-Abschnitt 910 enthält auch eine Registerumbenennungslogik 925 und eine Planungslogik 930, die im Allgemeinen Ressourcen zuweisen und den Vorgang entsprechend der Umwandlungsanweisung zur Ausführung in eine Warteschlange einreihen.
  • Der Prozessorkern 900 wird mit einer Ausführungslogik 950 gezeigt, die einen Satz von Ausführungseinheiten 955-1 bis 955-N aufweist. Einige Ausführungsformen können eine Anzahl von Ausführungseinheiten enthalten, die bestimmten Funktionen oder Funktionssätzen zugeordnet sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit enthalten, die eine bestimmte Funktion ausführen kann. Die veranschaulichte Ausführungslogik 950 führt die durch die Codeanweisungen spezifizierten Operationen aus.
  • Nach Abschluss der Ausführung der durch die Codeanweisungen spezifizierten Operationen zieht die Backend-Logik 960 die Anweisungen des Codes 905 zurück. In einer Ausführungsform erlaubt der Prozessorkern 900 eine ungeordnete Ausführung, macht jedoch zur Bedingung, dass Anweisungen geordnet zurückgezogen werden. Die Rückordnungslogik 965 kann eine Vielzahl von Formen annehmen, wie sie Fachleuten auf dem Gebiet bekannt sind (z. B. Neuordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessorkern 900 während der Ausführung des Codes 905 zumindest in Bezug auf die von dem Decoder erzeugte Ausgabe, den von der Registerumbenennungslogik 925 verwendeten Hardwareregistern und Tabellen und allen von den durch die Ausführungslogik 950 modifizierten Registern (nicht gezeigt) umgewandelt.
  • Obwohl nicht in 9 veranschaulicht, kann ein Verarbeitungselement andere Elemente auf einem Chip mit dem Prozessorkern 900 enthalten. Beispielsweise kann ein Verarbeitungselement neben dem Prozessorkern 900 eine Speichersteuerlogik enthalten. Das Verarbeitungselement kann eine E/A-Steuerlogik und/oder eine E/A-Steuerlogik enthalten, die in der Speichersteuerlogik integriert ist. Das Verarbeitungselement kann auch einen oder mehrere Caches enthalten.
  • Es wird nun auf 10 Bezug genommen, die ein Blockdiagramm eines Computersystems 1000 gemäß einer Ausführungsform zeigt. In 10 ist ein Mehrprozessorsystem 1000 gezeigt, das ein erstes Verarbeitungselement 1070 und ein zweites Verarbeitungselement 1080 enthält. Obwohl die zwei Verarbeitungselemente 1070 und 1080 gezeigt sind, versteht es sich, dass eine Ausführungsform des Systems 1000 auch nur ein solches Verarbeitungselement enthalten kann.
  • Das System 1000 ist als ein Punkt-zu-Punkt-Interconnect-System dargestellt, wobei das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 über einen Punkt-zu-Punkt-Interconnect 1050 gekoppelt sind. Es versteht sich, dass beliebige oder alle der in der in 10 veranschaulichten Interconnects als ein Mehrstationenbus anstelle eines Punkt-zu-Punkt-Interconnects implementiert sein können.
  • Wie in 10 gezeigt, kann jedes der Prozessorelemente 1070 und 1080 ein Mehrkernprozessor sein, einschließlich des ersten und zweiten Prozessorkerns (d. h. die Prozessorkerne 1074a und 1074b und die Prozessorkerne 1084a und 1084b). Diese Kerne 1074a, 1074b, 1084a, 1084b können konfiguriert sein, um einen Anweisungscode auf eine ähnliche Weise auszuführen, wie dies vorstehend in Verbindung mit 9 erläutert wurde.
  • Jedes Verarbeitungselement 1070, 1080 kann mindestens einen gemeinsam genutzten Cache 1096a, 1096b enthalten. Der gemeinsam genutzte Cache 1096a, 1096b kann Daten (z. B. Anweisungen) speichern, die von einer oder mehreren Engines des Prozessors verwendet werden, wie etwa den Kernen 1074a, 1074b bzw. 1084a, 1084b. Beispielsweise kann der gemeinsam genutzte Cache 1096a, 1096b Daten, die in einem Speicher 1032, 1034 gespeichert sind, lokal zwischenspeichern, um einen schnelleren Zugriff der Engines des Prozessors zu ermöglichen. In einer oder mehreren Ausführungsformen kann der gemeinsam genutzte Cache 1096a, 1096b einen oder mehrere Caches mittlerer Ebene, wie beispielsweise Level 2 (L2), Level 3 (L3), Level 4 (L4) oder andere Cacheebenen, einen Cache der letzten Ebene (LLC) und/oder Kombinationen davon enthalten.
  • Obwohl dies nur mit zwei Verarbeitungselementen 1070, 1080 gezeigt ist, versteht es sich, dass der Umfang der Ausführungsformen nicht darauf beschränkt ist. In anderen Ausführungsformen können ein oder mehrere zusätzliche Verarbeitungselemente in einem gegebenen Prozessor vorhanden sein. Alternativ können ein oder mehrere der Verarbeitungselemente 1070, 1080 ein anderes Element als ein Prozessor sein, beispielsweise ein Beschleuniger oder ein feldprogrammierbares Gate-Array. Beispielsweise können zusätzliche Verarbeitungselemente zusätzliche Prozessoren, die dieselben wie ein erster Prozessor 1070 sind, zusätzliche Prozessoren, die heterogen oder asymmetrisch zu einem Prozessor eines ersten Prozessors 1070 sind, Beschleuniger (wie z. B. Grafikbeschleuniger oder digitale Signalverarbeitungs (Digital Signal Processing, DSP)-Einheiten), feldprogrammierbare Gate-Arrays oder ein beliebiges anderes Verarbeitungselement enthalten. Es kann eine Vielzahl von Unterschieden zwischen den Verarbeitungselementen 1070, 1080 hinsichtlich eines Spektrums von Leistungsmetriken geben, einschließlich Architektur, Mikroarchitektur, Wärmeerzeugung, Energieverbrauchseigenschaften und dergleichen. Diese Unterschiede können sich deutlich als Asymmetrie und Heterogenität der Verarbeitungselemente 1070, 1080 manifestieren. Bei mindestens einer Ausführungsform können sich die verschiedenen Verarbeitungselemente 1070, 1080 in derselben Chippackung befinden.
  • Das erste Verarbeitungselement 1070 kann ferner eine Logik für eine Speichersteuerung (Memory Controller, MC) 1072 und die Punkt-zu-Punkt (P-P)-Schnittstellen 1076 und 1078 enthalten. In ähnlicher Weise kann das zweite Verarbeitungselement 1080 eine MC 1082 und die P-P-Schnittstellen 1086 und 1088 enthalten. Wie in 10 gezeigt, koppeln die MCs 1072 und 1082 die Prozessoren mit entsprechenden Speichern, nämlich einen Speicher 1032 und einen Speicher 1034, die Teile des Hauptspeichers sein können, die lokal mit den jeweiligen Prozessoren verbunden sind. Während die MCs 1072 und 1082 als in die Verarbeitungselemente 1070, 1080 integriert veranschaulicht sind, kann die MC-Logik bei alternativen Ausführungsformen eine diskrete Logik außerhalb der Verarbeitungselemente 1070, 1080 sein, anstatt darin integriert zu sein.
  • Das erste Verarbeitungselement 1070 und das zweite Verarbeitungselement 1080 können jeweils über die P-P-Verbindungen 1076, 1086 mit einem E/A-Subsystem 1090 gekoppelt sein. Wie in 10 gezeigt, enthält das E/A-Subsystem 1090 die P-P-Schnittstellen 1094 und 1098. Des Weiteren enthält das E/A-Subsystem 1090 eine Schnittstelle 1092 zum Koppeln des E/A-Subsystems 1090 mit einer Hochleistungs-Grafikengine 1038. In einer Ausführungsform kann der Bus 1049 verwendet werden, um die Grafikengine 1038 mit dem E/A-Subsystem 1090 zu koppeln. Alternativ kann eine Punkt-zu-Punkt-Verbindung diese Engines koppeln.
  • Das E/A-Subsystem 1090 kann wiederum über eine Schnittstelle 1096 mit einem ersten Bus 1016 gekoppelt sein. In einer Ausführungsform kann der erste Bus 1016 ein Peripheral Engine Interconnect (PCI)-Bus oder ein Bus wie etwa ein PCI Express-Bus oder ein anderer E/A-Interconnect-Bus der dritten Generation sein, obwohl der Umfang der Ausführungsformen nicht darauf beschränkt ist.
  • Wie in 10 gezeigt, können verschiedene E/A-Vorrichtungen 1014 (z. B. biometrische Scanner, Lautsprecher, Kameras, Sensoren) zusammen mit einer Bus-Bridge 1018, die den ersten Bus 1016 mit einem zweiten Bus 1020 koppeln kann, mit dem ersten Bus 1016 gekoppelt sein. In einer Ausführungsform kann der zweite Bus 1020 ein Bus mit niedriger Pinanzahl (Low Pin Count, LPC) sein. Verschiedene Vorrichtungen können mit dem zweiten Bus 1020 gekoppelt sein, einschließlich beispielsweise einer Tastatur/Maus 1012, der/den Kommunikationsvorrichtung(en) 1026 und einer Datenspeichereinheit 1019, wie etwa einem Plattenlaufwerk oder einem anderen Massenspeichergerät, das, in einer Ausführungsform, den Code 1030 enthalten kann. Der veranschaulichte Code 1030 kann das Verfahren 300 (3), das Verfahren 400 (4) und das Verfahren 500 (5) implementieren, die bereits erläutert wurden, und kann dem Code 905 (9) ähnlich sein, der bereits erläutert wurde. Ferner kann ein Audio-E/A 1024 mit dem zweiten Bus 1020 gekoppelt sein, und eine Batterie 1010 kann dem Computersystem 1000 Strom zuführen.
  • Es sei angemerkt, dass andere Ausführungsformen in Erwägung gezogen werden. Anstelle der Punkt-zu-Punkt-Architektur von 10 kann ein System einen Mehrstationenbus oder eine andere derartige Kommunikationstopologie implementieren. Auch die Elemente von 10 können alternativ unter Verwendung von mehr oder weniger integrierten Chips als in 10 gezeigt partitioniert werden.
  • Zusätzliche Anmerkungen und Beispiele
  • Das Beispiel 1 kann eine Plattform mit hierarchischer Sprachauflösung enthalten, umfassend eine Netzwerkschnittstellenschaltung zum Empfangen eines Sprachstroms von einem Mikrofon, einen Prozessor, der mit der Netzwerkschnittstellenschaltung gekoppelt ist, eine oder mehrere Speichervorrichtungen, die mit dem Prozessor gekoppelt sind, wobei die eine oder mehreren Speichervorrichtungen Anweisungen enthalten, die bei Ausführung durch den Prozessor die Plattform dazu veranlassen, den Sprachstrom unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufzulösen, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert, und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines zu verschieben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  • Das Beispiel 2 kann die Plattform von Beispiel 1 enthalten, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine höheren Stufe bereitzustellen.
  • Das Beispiel 3 kann die Plattform von Beispiel 1 enthalten, wobei die mehrstufigen ASR-Engines zwei oder mehr Stufen enthalten, wobei jede der zwei oder mehr Stufen eine ASR-Engine zum Auflösen von Sprachdaten aufweist.
  • Das Beispiel 4 kann die Plattform von Beispiel 1 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 5 kann die Plattform von Beispiel 1 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 6 kann die Plattform von Beispiel 2 enthalten, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  • Das Beispiel 7 kann die Plattform von Beispiel 1 enthalten, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, die Anweisungen bei Ausführung die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschieben sollen, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 8 kann die Plattform von Beispiel 7 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Anweisungen bei Ausführung die Auflösung des Sprachstroms akzeptieren sollen, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 9 kann die Plattform von Beispiel 1 enthalten, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  • Das Beispiel 10 kann die Plattform von Beispiel 9 enthalten, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  • Das Beispiel 11 kann die Plattform von Beispiel 9 enthalten, wobei eine Richtlinie für die Benutzerkennung das Festlegen von Regeln durch einen Benutzer, einen Eigentümer oder sowohl den Benutzer als auch den Eigentümer der Plattform ermöglicht, und wobei eine Richtlinie für die Datenschutzeinstellung und die Tageszeit auf einer Kennung des Benutzers basieren.
  • Das Beispiel 12 kann die Plattform von Beispiel 9 enthalten, wobei die Systemverbindungszustände eine Verbindung zum Internet, eine Verbindung zur Stromversorgung und einen Batteriezustand der Plattform enthalten.
  • Das Beispiel 13 kann die Plattform von Beispiel 9 enthalten, wobei die Reaktionszeit Regeln enthält, die eine Antwort erfordern, die unter einem Schwellenwert liegt.
  • Das Beispiel 14 kann die Plattform von Beispiel 9 enthalten, wobei die anderen Indikatoren die Verfügbarkeit von Daten umfassen, um eine Aktion oder eine Verwendung durchzuführen.
  • Das Beispiel 15 kann die Plattform von Beispiel 1 enthalten, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen sollen, ohne Daten aus einer Cloud abzurufen.
  • Das Beispiel 16 kann die Plattform von Beispiel 1 enthalten, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  • Das Beispiel 17 kann die Plattform von Beispiel 1 enthalten, wobei die Plattform eine Computervorrichtung mit mindestens einer auf einem digitalen Signalprozessor (DSP) für Audio basierenden ASR-Engine, einer prozessorbasierten ASR-Engine und einer Cloud-basierten ASR-Engine umfasst.
  • Das Beispiel 18 kann die Plattform von Beispiel 17 enthalten, die Computervorrichtung eine mobile Computervorrichtung umfasst.
  • Das Beispiel 19 kann die Plattform von Beispiel 1 enthalten, wobei die Plattform eine Kombination aus einer Wearable-Vorrichtung und einem Zusatzgerät umfasst, wobei die Wearable-Vorrichtung mindestens eine ASR-Engine mit Sprachauslöser enthält und das Zusatzgerät mindestens eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine, eine prozessorbasierte ASR-Engine und eine Cloud-basierte ASR-Engine enthält.
  • Das Beispiel 20 kann die Plattform von Beispiel 1 enthalten, wobei die ASR-Engine der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen.
  • Das Beispiel 21 kann die Plattform nach einem der Beispiele 1 bis 20 enthalten, wobei der Sprachstrom eine Anforderung oder einen Befehl umfasst und wobei die niedrigstmögliche Stufe von mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen und auf die Anforderung oder den Befehl zu antworten.
  • Das Beispiel 22 kann eine Vorrichtung mit hierarchischer Sprachauflösung auf einer Plattform enthalten, die ein oder mehrere Substrate und eine mit dem einen oder den mehreren Substraten gekoppelte Logik umfasst, wobei die Logik eine oder mehrere von einer konfigurierbaren Logik und/oder Hardware mit Logik fester Funktionalität enthält, wobei die mit dem einen oder den mehreren Substraten gekoppelte Logik dazu dient, einen Sprachstrom von einem Mikrofon zu empfangen, den Sprachstrom unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufzulösen, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert, und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines zu verschieben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  • Das Beispiel 23 kann die Vorrichtung von Beispiel 22 enthalten, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine höheren Stufe bereitzustellen.
  • Das Beispiel 24 kann die Vorrichtung von Beispiel 22 enthalten, wobei die mehrstufigen ASR-Engines zwei oder mehr Stufen enthalten, wobei jede der zwei oder mehr Stufen eine ASR-Engine zum Auflösen von Sprachdaten aufweist.
  • Das Beispiel 25 kann die Vorrichtung von Beispiel 22 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 26 kann die Vorrichtung von Beispiel 22 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 27 kann die Vorrichtung von Beispiel 23 enthalten, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  • Das Beispiel 28 kann die Vorrichtung von Beispiel 22 enthalten, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, die mit dem einen oder den mehreren Substraten gekoppelte Logik die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschieben soll, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 29 kann die Vorrichtung von Beispiel 28 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die mit dem einen oder den mehreren Substraten gekoppelte Logik die Auflösung des Sprachstroms akzeptieren soll, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 30 kann die Vorrichtung von Beispiel 22 enthalten, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren enthalten, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  • Das Beispiel 31 kann die Vorrichtung von Beispiel 30 enthalten, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  • Das Beispiel 32 kann die Vorrichtung von Beispiel 30 enthalten, wobei eine Richtlinie für die Benutzerkennung das Festlegen von Regeln durch einen Benutzer, einen Eigentümer oder sowohl den Benutzer als auch den Eigentümer der Plattform ermöglicht, und wobei eine Richtlinie für die Datenschutzeinstellung und die Tageszeit auf einer Kennung des Benutzers basieren.
  • Das Beispiel 33 kann die Vorrichtung von Beispiel 30 enthalten, wobei die Systemverbindungszustände eine Verbindung zum Internet, eine Verbindung zur Stromversorgung und einen Batteriezustand der Plattform enthalten.
  • Das Beispiel 34 kann die Vorrichtung von Beispiel 30 enthalten, wobei die Reaktionszeit Regeln enthält, die eine Antwort erfordern, die unter einem Schwellenwert liegt.
  • Das Beispiel 35 kann die Vorrichtung von Beispiel 30 enthalten, wobei die anderen Indikatoren die Verfügbarkeit von Daten umfassen, um eine Aktion oder eine Verwendung durchzuführen.
  • Das Beispiel 36 kann die Vorrichtung von Beispiel 22 enthalten, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen, ohne Daten aus einer Cloud abzurufen.
  • Das Beispiel 37 kann die Vorrichtung von Beispiel 22 enthalten, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  • Das Beispiel 38 kann die Vorrichtung von Beispiel 22 enthalten, wobei die Plattform eine Computervorrichtung mit mindestens einer auf einem digitalen Signalprozessor (DSP) für Audio basierenden ASR-Engine, einer prozessorbasierten ASR-Engine und einer Cloud-basierten ASR-Engine umfasst.
  • Das Beispiel 39 kann die Vorrichtung von Beispiel 38 enthalten, die Computervorrichtung eine mobile Computervorrichtung umfasst.
  • Das Beispiel 40 kann die Vorrichtung von Beispiel 22 enthalten, wobei die Plattform eine Kombination aus einer Wearable-Vorrichtung und einem Zusatzgerät umfasst, wobei die Wearable-Vorrichtung mindestens eine ASR-Engine mit Sprachauslöser enthält und das Zusatzgerät mindestens eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine, eine prozessorbasierte ASR-Engine und eine Cloud-basierte ASR-Engine enthält.
  • Das Beispiel 41 kann die Vorrichtung von Beispiel 22 enthalten, wobei die ASR-Engines der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen.
  • Das Beispiel 42 kann die Vorrichtung nach einem der Beispiele 22 bis 41 enthalten, wobei der Sprachstrom eine Anforderung oder einen Befehl umfasst und wobei die niedrigstmögliche Stufe von mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen und auf die Anforderung oder den Befehl zu antworten.
  • Das Beispiel 43 kann ein Verfahren zur hierarchischen Sprachauflösung auf einer Plattform enthalten, die das Empfangen eines Sprachstroms von einem Mikrofon, das Auflösen des Sprachstroms unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert, und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, das Verschieben der Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines umfasst, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  • Das Beispiel 44 kann das Verfahren von Beispiel 43 enthalten, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine höheren Stufe bereitzustellen.
  • Das Beispiel 45 kann das Verfahren von Beispiel 43 enthalten, wobei die mehrstufigen ASR-Engines zwei oder mehr Stufen enthalten, wobei jede der zwei oder mehr Stufen eine ASR-Engine zum Auflösen von Sprachdaten aufweist.
  • Das Beispiel 46 kann das Verfahren von Beispiel 43 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 47 kann das Verfahren von Beispiel 43 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 48 kann das Verfahren von Beispiel 44 enthalten, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  • Das Beispiel 49 kann das Verfahren von Beispiel 43 enthalten, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschoben wird, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 50 kann das Verfahren von Beispiel 49 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Auflösung des Sprachstroms akzeptiert wird, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 51 kann das Verfahren von Beispiel 43 enthalten, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren enthalten, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  • Das Beispiel 52 kann das Verfahren von Beispiel 51 enthalten, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  • Das Beispiel 53 kann das Verfahren von Beispiel 51 enthalten, wobei eine Richtlinie für die Benutzerkennung das Festlegen von Regeln durch einen Benutzer, einen Eigentümer oder sowohl den Benutzer als auch den Eigentümer der Plattform ermöglicht, und wobei eine Richtlinie für die Datenschutzeinstellung und die Tageszeit auf einer Kennung des Benutzers basieren.
  • Das Beispiel 54 kann das Verfahren von Beispiel 51 enthalten, wobei die Systemverbindungszustände eine Verbindung zum Internet, eine Verbindung zur Stromversorgung und einen Batteriezustand der Plattform enthalten.
  • Das Beispiel 55 kann das Verfahren von Beispiel 51 enthalten, wobei die Reaktionszeit Regeln enthält, die eine Antwort erfordern, die unter einem Schwellenwert liegt.
  • Das Beispiel 56 kann das Verfahren von Beispiel 51 enthalten, wobei die anderen Indikatoren die Verfügbarkeit von Daten umfassen, um eine Aktion oder eine Verwendung durchzuführen.
  • Das Beispiel 57 kann das Verfahren von Beispiel 43 enthalten, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen, ohne Daten aus einer Cloud abzurufen.
  • Das Beispiel 58 kann das Verfahren von Beispiel 43 enthalten, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  • Das Beispiel 59 kann das Verfahren von Beispiel 43 enthalten, wobei die Plattform eine Computervorrichtung mit mindestens einer auf einem digitalen Signalprozessor (DSP) für Audio basierenden ASR-Engine, einer prozessorbasierten ASR-Engine und einer Cloud-basierten ASR-Engine umfasst.
  • Das Beispiel 60 kann das Verfahren von Beispiel 59 enthalten, die Computervorrichtung eine mobile Computervorrichtung umfasst.
  • Das Beispiel 61 kann das Verfahren von Beispiel 43 enthalten, wobei die Plattform eine Kombination aus einer Wearable-Vorrichtung und einem Zusatzgerät umfasst, wobei die Wearable-Vorrichtung mindestens eine ASR-Engine mit Sprachauslöser enthält und das Zusatzgerät mindestens eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine, eine prozessorbasierte ASR-Engine und eine Cloud-basierte ASR-Engine enthält.
  • Das Beispiel 62 kann das Verfahren von Beispiel 43 enthalten, wobei die ASR-Engines der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen.
  • Das Beispiel 63 kann das Verfahren nach einem der Beispiele 43 bis 62 enthalten, wobei der Sprachstrom eine Anforderung oder einen Befehl umfasst und wobei die niedrigstmögliche Stufe von mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen und auf die Anforderung oder den Befehl zu antworten.
  • Das Beispiel 64 kann das mindestens eine computerlesbare Medium enthalten, das einen Satz von Anweisungen umfasst, die bei Ausführung einer Computervorrichtung die Computervorrichtung veranlassen, einen Sprachstrom von einem Mikrofon zu empfangen, den Sprachstrom unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufzulösen, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert, und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines zu verschieben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  • Das Beispiel 65 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen.
  • Das Beispiel 66 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die mehrstufigen ASR-Engines zwei oder mehr Stufen umfassen, wobei jede der zwei oder mehr Stufen eine ASR-Engine zum Auflösen von Sprache aufweist.
  • Das Beispiel 67 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 68 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 69 kann das mindestens eine computerlesbare Medium von Beispiel 65 enthalten, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  • Das Beispiel 70 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, Anweisungen bei Ausführung durch die Computervorrichtung die Computervorrichtung veranlassen, die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe zu verschieben, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 71 kann das mindestens eine computerlesbare Medium von Beispiel 70 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Anweisungen bei Ausführung durch die Computervorrichtung die Computervorrichtung veranlassen, die Auflösung des Sprachstroms zu akzeptieren, ohne die Auflösung des Sprachstroms an die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 72 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  • Das Beispiel 73 kann das mindestens eine computerlesbare Medium von Beispiel 72 enthalten, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  • Das Beispiel 74 kann das mindestens eine computerlesbare Medium von Beispiel 72 enthalten, wobei eine Richtlinie für die Benutzerkennung das Festlegen von Regeln durch einen Benutzer, einen Eigentümer oder sowohl den Benutzer als auch den Eigentümer der Plattform ermöglicht, und wobei eine Richtlinie für die Datenschutzeinstellung und die Tageszeit auf einer Kennung des Benutzers basieren.
  • Das Beispiel 75 kann das mindestens eine computerlesbare Medium von Beispiel 72 enthalten, wobei die Systemverbindungszustände eine Verbindung zum Internet, eine Verbindung zur Stromversorgung und einen Batteriezustand der Plattform enthalten.
  • Das Beispiel 76 kann das mindestens eine computerlesbare Medium von Beispiel 72 enthalten, wobei die Reaktionszeit Regeln enthält, die eine Antwort erfordern, die unter einem Schwellenwert liegt.
  • Das Beispiel 77 kann das mindestens eine computerlesbare Medium von Beispiel 72 enthalten, wobei die anderen Indikatoren die Verfügbarkeit von Daten umfassen, um eine Aktion oder eine Verwendung durchzuführen.
  • Das Beispiel 78 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen, ohne Daten aus einer Cloud abzurufen.
  • Das Beispiel 79 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  • Das Beispiel 80 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die Plattform eine Computervorrichtung mit mindestens einer auf einem digitalen Signalprozessor (DSP) für Audio basierenden ASR-Engine, einer prozessorbasierten ASR-Engine und einer Cloud-basierten ASR-Engine umfasst.
  • Beispiel 81 kann das mindestens eine computerlesbare Medium von Beispiel 80 enthalten, wobei die Computervorrichtung eine mobile Computervorrichtung umfasst.
  • Das Beispiel 82 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die Plattform eine Kombination aus einer Wearable-Vorrichtung und einem Zusatzgerät umfasst, wobei die Wearable-Vorrichtung mindestens eine ASR-Engine mit Sprachauslöser enthält und das Zusatzgerät mindestens eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine, eine prozessorbasierte ASR-Engine und eine Cloud-basierte ASR-Engine enthält.
  • Das Beispiel 83 kann das mindestens eine computerlesbare Medium von Beispiel 64 enthalten, wobei die ASR-Engine der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen.
  • Das Beispiel 84 kann das mindestens eine computerlesbare Medium von einem der Beispiel 64 bis 83 enthalten, wobei der Sprachstrom eine Anforderung oder einen Befehl umfasst und wobei die niedrigstmögliche Stufe von mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen und auf die Anforderung oder den Befehl zu antworten.
  • Das Beispiel 85 kann eine Vorrichtung, die eine hierarchische Sprachauflösung aufweist, auf einer Plattform enthalten, umfassend ein Mittel zum Empfangen eines Sprachstroms von einem Mikrofon, ein Mittel zum Auflösen des Sprachstroms unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert, und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, ein Mittel zum Verschieben der Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  • Das Beispiel 86 kann die Vorrichtung von Beispiel 85 enthalten, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen.
  • Das Beispiel 87 kann die Vorrichtung von Beispiel 85 enthalten, wobei die mehrstufigen ASR-Engines zwei oder mehr Stufen enthalten, wobei jede der zwei oder mehr Stufen eine ASR-Engine zum Auflösen von Sprachdaten aufweist.
  • Das Beispiel 88 kann die Vorrichtung von Beispiel 85 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 89 kann die Vorrichtung von Beispiel 85 enthalten, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 90 kann die Vorrichtung von Beispiel 86 enthalten, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  • Das Beispiel 91 kann die Vorrichtung von Beispiel 85 enthalten, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, das Mittel zur Auflösung den Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschiebt, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 92 kann das Verfahren von Beispiel 91 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich vordefinierten Stufe ist oder diese übersteigt, das Mittel zur Auflösung den Sprachstrom akzeptiert, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 93 kann die Vorrichtung von Beispiel 85 enthalten, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  • Das Beispiel 94 kann die Vorrichtung von Beispiel 93 enthalten, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  • Das Beispiel 95 kann die Vorrichtung von Beispiel 93 enthalten, wobei eine Richtlinie für die Benutzerkennung das Festlegen von Regeln durch einen Benutzer, einen Eigentümer oder sowohl den Benutzer als auch den Eigentümer der Plattform ermöglicht, und wobei eine Richtlinie für die Datenschutzeinstellung und die Tageszeit auf einer Kennung des Benutzers basieren.
  • Das Beispiel 96 kann die Vorrichtung von Beispiel 93 enthalten, wobei die Systemverbindungszustände eine Verbindung zum Internet, eine Verbindung zur Stromversorgung und einen Batteriezustand der Plattform enthalten.
  • Das Beispiel 97 kann die Vorrichtung von Beispiel 93 enthalten, wobei die Reaktionszeit Regeln enthält, die eine Antwort erfordern, die unter einem Schwellenwert liegt.
  • Das Beispiel 98 kann die Vorrichtung von Beispiel 93 enthalten, wobei die anderen Indikatoren die Verfügbarkeit von Daten umfassen, um eine Aktion oder eine Verwendung durchzuführen.
  • Das Beispiel 99 kann die Vorrichtung von Beispiel 85 enthalten, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen, ohne Daten aus einer Cloud abzurufen.
  • Das Beispiel 100 kann die Vorrichtung von Beispiel 85 enthalten, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  • Das Beispiel 101 kann die Vorrichtung von Beispiel 85 enthalten, wobei die Plattform eine Computervorrichtung mit mindestens einer auf einem digitalen Signalprozessor (DSP) für Audio basierenden ASR-Engine, einer prozessorbasierten ASR-Engine und einer Cloud-basierten ASR-Engine umfasst.
  • Das Beispiel 102 kann die Vorrichtung von Beispiel 101 enthalten, die Computervorrichtung eine mobile Computervorrichtung umfasst.
  • Das Beispiel 103 kann die Vorrichtung von Beispiel 85 enthalten, wobei die Plattform eine Kombination aus einer Wearable-Vorrichtung und einem Zusatzgerät umfasst, wobei die Wearable-Vorrichtung mindestens eine ASR-Engine mit Sprachauslöser enthält und das Zusatzgerät mindestens eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine, eine prozessorbasierte ASR-Engine und eine Cloud-basierte ASR-Engine enthält.
  • Das Beispiel 104 kann die Vorrichtung von Beispiel 85 enthalten, wobei die ASR-Engine der niedrigstmöglichen Stufe der mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen.
  • Das Beispiel 105 kann die Vorrichtung von einem der Beispiele 85 bis 104 enthalten, wobei der Sprachstrom eine Anforderung oder einen Befehl umfasst und wobei die niedrigstmögliche Stufe von mehrstufigen ASR-Engines eine ASR-Engine der niedrigsten Stufe umfasst, die über ausreichende Ressourcen verfügt, um den Sprachstrom präzise aufzulösen und auf die Anforderung oder den Befehl zu antworten.
  • Das Beispiel 106 kann mindestens ein computerlesbares Medium enthalten, das einen Satz von Anweisungen umfasst, die bei Ausführung durch ein Computersystem das Computersystem veranlassen, das Verfahren nach einem der Beispiele 43 bis 63 durchzuführen.
  • Das Beispiel 107 kann eine Vorrichtung enthalten, die ein Mittel zum Durchführen des Verfahrens nach einem der Beispiele 43 bis 63 umfasst.
  • Das Beispiel 108 kann ein System mit hierarchischer Sprachauflösung enthalten, das ein Mikrofon zum Empfangen eines Sprachstroms, eine Vielzahl von Engines zur automatischen Spracherkennung (ASR), wobei die ASR-Engines als eine mehrstufige hierarchische Struktur konfiguriert sind, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen, und einen Richtlinienmanager umfasst, um die Auflösung des Sprachstroms an eine der Vielzahl von ASR-Engines zu verschieben, die fähig sind, den Sprachstrom basierend auf für das System definierte Richtlinien aufzulösen.
  • Das Beispiel 109 kann das System von Beispiel 108 umfassen, das ferner einen Auslöserdetektor zum Erkennen eines Auslösers zum Empfangen des Sprachstroms umfasst.
  • Beispiel 110 kann das System von Beispiel 108 enthalten, wobei die Vielzahl von Engines zur automatischen Spracherkennung (ASR) als eine mehrstufige hierarchische Struktur mit zwei oder mehr Stufen konfiguriert sind, wobei jede der zwei oder mehr Stufen eine ASR-Engine zur Auflösung von Sprachdaten aufweist.
  • Das Beispiel 111 kann die Vorrichtung von Beispiel 108 enthalten, wobei die Vielzahl von Engines zur automatischen Spracherkennung (ASR) eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher enthalten.
  • Das Beispiel 112 kann das System des Beispiels 111 enthalten, wobei die Vielzahl von ASR-Engines ferner eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern enthalten.
  • Das Beispiel 113 kann das System von Beispiel 108 enthalten, wobei die eine oder die mehreren Richtlinien eine Vertrauensbewertung enthalten, um anzugeben, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, das System die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschieben soll, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  • Das Beispiel 114 kann das System von Beispiel 113 enthalten, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, das System die Auflösung des Sprachstroms akzeptieren soll, ohne den Sprachstrom auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  • Das Beispiel 115 kann das System von Beispiel 108 enthalten, wobei die eine oder die mehreren Richtlinien eine Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines niedrigerer oder höherer Stufen erfordern.
  • Die Ausführungsformen sind zur Verwendung mit allen Typen von Chips für integrierte Schaltungen (IC) anwendbar. Beispiele für diese IC-Chips umfassen Prozessoren, Steuerungen, Chipsatz-Engines, programmierbare Logikanordnungen (PLAs), Speicherchips, Netzwerkchips, Systems-on-Chip (SoCs), SSD/NAND-Steuerungs-ASICs und dergleichen, ohne darauf beschränkt zu sein. Darüber hinaus sind in einigen Zeichnungen Signalleitungslinien mit Linien dargestellt. Einige können unterschiedlich sein, um maßgeblichere Signalwege darzustellen, können mit einer Zahl gekennzeichnet zu sein, um eine Anzahl der maßgeblichen Signalwege anzugeben, und/oder sie können Pfeile an einem oder mehreren Enden aufweisen, um die primäre Informationsflussrichtung anzuzeigen. Dies sollte jedoch nicht einschränkend ausgelegt werden. Vielmehr kann ein derartiges zusätzliches Detail in Verbindung mit einer oder mehreren beispielhaften Ausführungsformen verwendet werden, um ein besseres Verständnis einer Schaltung zu ermöglichen. Jedes dargestellte Signal kann, ungeachtet dessen ob es zusätzliche Informationen aufweist, tatsächlich ein oder mehrere Signale umfassen, die in verschiedene Richtung gehen und mit jedem geeigneten Signalschematyp implementiert werden können, z. B. Differenzpaaren, Glasfaserleitungen und/oder einendige Leitungen.
  • Beispielhafte Größen/Modelle/Werte/Bereiche können gegeben worden sein, obwohl Ausführungsformen nicht darauf beschränkt sind. Da die Herstellungstechniken (z. B. Fotolithografie) im Laufe der Zeit reifen, wird erwartet, dass Vorrichtungen mit geringerer Größe hergestellt werden könnten. Zusätzlich können innerhalb der vorgestellten Figuren aus Gründen der Einfachheit der Erläuterung und Erörterung und damit um die Offenbarung nicht unverständlich zu machen, wohlbekannte Leistungs-/Masseverbindungen zu integrierten Schaltungs-(IC)-Chips und anderen Komponenten dargestellt sein, oder dies kann nicht der Fall sein. Ferner können Anordnungen in Form eines Blockdiagramms dargestellt werden, um es zu vermeiden, die Offenbarung unverständlich zu machen, und auch angesichts der Tatsache, dass spezifische Einzelheiten in Bezug auf die Implementation solcher Blockdiagrammanordnungen stark von der Plattform abhängen, innerhalb derer die vorliegende Offenbarung zu implementieren ist (d. h. diese spezifischen Einzelheiten können sehr wohl innerhalb des Verständnisses von Fachleuten auf dem Gebiet liegen). An Stellen, an denen spezifische Einzelheiten (beispielsweise Schaltungen) dargelegt sind, um beispielhafte Ausführungsformen zu beschreiben, sollte Fachleuten verständlich sein, dass die Ausführungsformen ohne oder mit einer Variation dieser spezifischen Einzelheiten verwirklicht werden können. Die Beschreibung ist demgemäß als veranschaulichend statt als einschränkend anzusehen.
  • Der Ausdruck „gekoppelt“ kann hier verwendet sein, um auf eine beliebige Art von Beziehung, direkt oder indirekt, zwischen den fraglichen Komponenten hinzuweisen, und kann für elektrische, mechanische, fluidische, optische, elektromagnetische, elektromechanische oder andere Verbindungen gelten. Zudem können die Ausdrücke „erstens“, „zweitens“ usw. hier nur zur Erleichterung der Besprechung verwendet sein und, sofern nicht anders angegeben, keine bestimmte zeitliche oder chronologische Bedeutung tragen.
  • Eine in dieser Anmeldung und in den Ansprüchen verwendete Liste von Elementen, die von dem Ausdruck „eines oder mehrere“ oder „wenigstens eines von“ begleitet sind, kann jede beliebige Kombination der angeführten Ausdrücke bedeuten. Zum Beispiel kann die Formulierung „eines oder mehrere von A, B oder C“ nur A, nur B, nur C, A und B, A und C, B und C oder A, B und C bedeuten.
  • Fachleute werden aus der obigen Beschreibung verstehen, dass die breit angelegten Techniken der Ausführungsformen in einer Vielfalt von Formen ausgeführt werden können. Obwohl die Ausführungsformen in Verbindung mit bestimmten Beispielen dafür beschrieben wurden, sollte der tatsächliche Umfang der Ausführungsformen daher nicht so begrenzt sein, da sich Fachleuten auf dem Gebiet beim Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche, andere Abwandlungen offenbaren werden.

Claims (25)

  1. Plattform mit hierarchischer Sprachauflösung, umfassend: eine Netzwerkschnittstellenschaltung zum Empfangen eines Sprachstroms von einem Mikrofon; einen Prozessor, der mit der Netzwerkschnittstellenschaltung gekoppelt ist; eine oder mehrere Speichervorrichtungen, die mit dem Prozessor gekoppelt sind, wobei die eine oder mehreren Speichervorrichtungen Anweisungen enthalten, die bei Ausführung durch den Prozessor die Plattform dazu veranlassen: den Sprachstrom unter Verwendung einer Engine zur automatischen Spracherkennung (Automatic Speech Recognition, ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufzulösen, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert; und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines zu verschieben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  2. Plattform nach Anspruch 1, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen.
  3. Plattform nach Anspruch 2, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  4. Plattform nach einem der vorhergehenden Ansprüche, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher umfassen.
  5. Plattform nach einem der vorhergehenden Ansprüche, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, die Anweisungen bei Ausführung die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschieben sollen, und wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  6. Plattform nach Anspruch 5, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Anweisungen bei Ausführung die Auflösung des Sprachstroms akzeptieren sollen, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  7. Plattform nach einem der vorhergehenden Ansprüche, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  8. Verfahren zur hierarchischen Sprachauflösung auf einer Plattform, umfassend: Empfangen eines Sprachstroms von einem Mikrofon; Auflösen des Sprachstroms unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert; und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, Verschieben der Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  9. Verfahren nach Anspruch 8, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen.
  10. Verfahren nach Anspruch 8 oder 9, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher umfassen.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe verschoben wird, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  12. Verfahren nach Anspruch 9, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  13. Verfahren nach Anspruch 12, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Auflösung des Sprachstroms akzeptiert wird, ohne die Auflösung des Sprachstroms auf die ASR-Engine der nächsthöheren Stufe zu verschieben.
  14. Verfahren nach einem der Ansprüche 8 bis 13, wobei die eine oder die mehreren Richtlinien die Vertrauensbewertung, eine Datenschutzeinstellung, die Benutzerkennung, die Systemverbindungszustände, die Tageszeit, die Reaktionszeit und andere Indikatoren umfassen, die eine Auflösung des Sprachstroms bei ASR-Engines der niedrigeren oder höheren Stufe erfordern.
  15. Verfahren nach Anspruch 14, wobei die Datenschutzeinstellung verhindert, dass spezifische Sprachdaten zu einer Cloud-basierten ASR-Engine versandt werden, wobei alle Daten lokal auf der Plattform bleiben.
  16. Verfahren nach einem der Ansprüche 8 bis 15, wobei ASR-Engines der niedrigeren Stufe die Auflösung des Sprachstroms lokal durchführen sollen, ohne Daten aus einer Cloud abzurufen.
  17. Verfahren nach einem der Ansprüche 8 bis 16, wobei eine ASR-Engine der höchsten Stufe eine Cloud-basierte ASR-Engine umfasst, wobei die Cloud-basierte ASR-Engine eine Verbindung zu einem Netzwerk erfordert, um eine Auflösung des Sprachstroms durchzuführen und Daten aus einer Cloud abzurufen.
  18. Mindestens ein computerlesbares Medium, das einen Satz von Anweisungen umfasst, die bei Ausführung durch eine Computervorrichtung die Computervorrichtung veranlassen: einen Sprachstrom von einem Mikrofon zu empfangen; den Sprachstrom unter Verwendung einer Engine zur automatischen Spracherkennung (ASR) der niedrigstmöglichen Stufe von mehrstufigen ASR-Engines aufzulösen, wobei die Auswahl der ASR-Engine der niedrigstmöglichen Stufe auf für die Plattform definierten Richtlinien basiert; und wenn die Sprachauflösung geringer als eine vorbestimmte Vertrauensbewertung ist, die Auflösung des Sprachstroms zu einer ASR-Engine der nächsthöheren Stufe von den mehrstufigen ASR-Engines zu verschieben, bis die Auflösung des Sprachstroms die vorbestimmte Vertrauensbewertung erreicht, ohne gegen eine oder mehrere Richtlinien zu verstoßen.
  19. Mindestens ein computerlesbares Medium nach Anspruch 18, wobei die mehrstufigen ASR-Engines eine hierarchische Struktur umfassen, um mehr Rechenleistung und mehr Worterkennung für jede ASR-Engine der höheren Stufe bereitzustellen.
  20. Mindestens ein computerlesbares Medium nach Anspruch 19, wobei die hierarchische Struktur der mehrstufigen ASR-Engines eine zusätzliche Verarbeitungsleistung und ein größeres Vokabular für jede ASR-Engine der höheren Stufe von den mehrstufigen ASR-Engines umfasst.
  21. Mindestens ein computerlesbares Medium nach einem der Ansprüche 18 bis 20, wobei die mehrstufigen ASR-Engines eine auf einem Sprachauslöser basierende ASR-Engine für begrenzte Schlüsselwörter und einen Vokabularsatz von 30 bis 40 Wörtern, eine auf einem digitalen Signalprozessor (DSP) für Audio basierende ASR-Engine mit einem Vokabular von einigen hundert Wörtern, eine auf einem lokalen Prozessor basierte ASR-Engine mit einem großem Vokabular und eine Cloud-basierte ASR-Engine mit einem sehr großem Vokabular mit unbegrenzter Verarbeitung und Speicher umfassen.
  22. Mindestens ein computerlesbares Medium nach einem der Ansprüche 18 bis 21, wobei die Vertrauensbewertung angibt, wie gut eine ASR-Engine den Sprachstrom aufgelöst hat, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms unter einer vordefinierten Stufe liegt, Anweisungen bei Ausführung durch die Computervorrichtung die Computervorrichtung veranlassen, die Auflösung des Sprachstrom zu der ASR-Engine der nächsthöheren Stufe zu verschieben, wobei die ASR-Engine der nächsthöheren Stufe mehr Rechenleistung und ein größeres Vokabular-Subsystem enthält.
  23. Mindestens ein computerlesbares Medium nach Anspruch 22, wobei, wenn die Genauigkeit des aufgelösten Sprachstroms gleich der vordefinierten Stufe ist oder diese übersteigt, die Anweisungen bei Ausführung durch die Computervorrichtung die Computervorrichtung veranlassen, die Auflösung des Sprachstroms zu akzeptieren, ohne die Auflösung des Sprachstroms an die ASR-Engine der nächsthöheren Stufe zu verschieben.
  24. Mindestens ein computerlesbares Medium, das einen Satz von Anweisungen umfasst, die bei Ausführung durch ein Computersystem das Computersystem veranlassen, das Verfahren nach einem der Ansprüche 8 bis 17 durchzuführen.
  25. Vorrichtung, umfassend Mittel zur Durchführung des Verfahrens nach einem der Ansprüche 8 bis 17.
DE102018130631.8A 2017-12-29 2018-12-03 Hierarchische Spracherkennungsauflösung Pending DE102018130631A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/858,763 US10614811B2 (en) 2017-12-29 2017-12-29 Hierarchical speech recognition resolution
US15/858,763 2017-12-29

Publications (1)

Publication Number Publication Date
DE102018130631A1 true DE102018130631A1 (de) 2019-07-04

Family

ID=65038931

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018130631.8A Pending DE102018130631A1 (de) 2017-12-29 2018-12-03 Hierarchische Spracherkennungsauflösung

Country Status (2)

Country Link
US (1) US10614811B2 (de)
DE (1) DE102018130631A1 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US10743101B2 (en) 2016-02-22 2020-08-11 Sonos, Inc. Content mixing
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
US10048930B1 (en) 2017-09-08 2018-08-14 Sonos, Inc. Dynamic computation of system response volume
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
US20190237069A1 (en) * 2018-01-31 2019-08-01 GM Global Technology Operations LLC Multilingual voice assistance support
US11024307B2 (en) * 2018-02-08 2021-06-01 Computime Ltd. Method and apparatus to provide comprehensive smart assistant services
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US10811015B2 (en) * 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
US10878013B1 (en) * 2018-11-26 2020-12-29 CSC Holdings, LLC Bi-directional voice enabled system for CPE devices
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9305554B2 (en) * 2013-07-17 2016-04-05 Samsung Electronics Co., Ltd. Multi-level speech recognition
US10971157B2 (en) * 2017-01-11 2021-04-06 Nuance Communications, Inc. Methods and apparatus for hybrid speech recognition processing

Also Published As

Publication number Publication date
US10614811B2 (en) 2020-04-07
US20190035404A1 (en) 2019-01-31

Similar Documents

Publication Publication Date Title
DE102018130631A1 (de) Hierarchische Spracherkennungsauflösung
DE102014117504B4 (de) Verwenden von Kontext zum Interpretieren von natürlichen Spracherkennungsbefehlen
DE102020132716A1 (de) System zum analysieren und verbessern von software auf der basis von graph attention netzen
DE112016004859T5 (de) Personalisiertes Entitäten-Repository
DE112006002237B4 (de) Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem
DE60005701T2 (de) Threadumschaltungslogik in einem multithreadprozessor
DE102019122363A1 (de) Programmierbare doppelreihige arbeitsspeichermodul-beschleunigerkarte (dimm-beschleunigerkarte)
DE102016122708A1 (de) Verlängern des Spracherkennungszeitraums
DE112017000046T5 (de) Beurteilung der Genauigkeit eines Maschinenlernmodells
DE102018131935A1 (de) Time-Capsule-basierte Sprechhilfe
DE102020129195A1 (de) Vereinheitlichtes programmiermodul für eine funktion-als-ein-dienst-berechnung
DE112019002628T5 (de) Vorrichtung, verfahren und system für on-chip-erzeugung eines referenztaktsignals
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112016004356T5 (de) Systeme, verfahren und vorrichtungen für kompression unter verwendung von hardware und software
DE102020130536A1 (de) Adaptiver Eintritt in und adaptives Verlassen von Niedrigenergiezuständen
DE102016109554A1 (de) Änderung von suchergebnissen basierend auf kontextmerkmalen
DE112018005507T5 (de) Mehrkriterien-energiemanagementschema für gepoolte beschleunigerarchitekturen
DE102013108899A1 (de) Kontenmanagement für cloudbasierte Applikationen
DE112017008158T5 (de) Dateienvorababrufeinplanung für cachespeicher zur verringerung von latenzen
DE112021003943T5 (de) Sprachantwortsysteme auf Grundlage eines personalisierten Wortschatzes und einer Benutzerprofilerstellung - Personalisierte linguistische KI-Engines
DE112015003523T5 (de) Speichern und Abrufen der Standorte von Objekten
DE102021117226A1 (de) Konfigurierbarer reduzierter speicherstart
DE102020134018A1 (de) Technologie zum ermöglichen sicherer und belastbarer wiederherstellung von firmware-daten
DE202022002976U1 (de) Skalierbares System-on-a-Chip
DE112018003743T5 (de) Systeme und verfahren zur sparsamkeitsausnutzung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G10L0015220000

Ipc: G10L0015320000

R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE

R016 Response to examination communication