DE102019122180A1 - Verfahren und system zur schlüsselausdruckserkennung auf der grundlage eines neuronalen netzes - Google Patents

Verfahren und system zur schlüsselausdruckserkennung auf der grundlage eines neuronalen netzes Download PDF

Info

Publication number
DE102019122180A1
DE102019122180A1 DE102019122180.3A DE102019122180A DE102019122180A1 DE 102019122180 A1 DE102019122180 A1 DE 102019122180A1 DE 102019122180 A DE102019122180 A DE 102019122180A DE 102019122180 A1 DE102019122180 A1 DE 102019122180A1
Authority
DE
Germany
Prior art keywords
vector
evaluation
key expression
acoustic
rejection
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.)
Granted
Application number
DE102019122180.3A
Other languages
English (en)
Other versions
DE102019122180B4 (de
Inventor
Tobias Bocklet
Jacek Ossowski
Tomasz DORAU
Maciej Muchlinski
David Pearce
Piotr Rozen
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 DE102019122180A1 publication Critical patent/DE102019122180A1/de
Application granted granted Critical
Publication of DE102019122180B4 publication Critical patent/DE102019122180B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; 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 TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/27Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
    • G10L25/30Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/84Detection of presence or absence of voice signals for discriminating voice from noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Biophysics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Machine Translation (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)

Abstract

Ein Verfahren und ein System betreffen eine autonome Schlüsselausdruckserkennung auf der Grundlage eines neuronalen Netzes und schließen die Erzeugung und Verwendung eines mehrere Elemente aufweisenden Zustandsbewertungsvektors unter Verwendung neuronaler Netzoperationen und im Wesentlichen ohne Verwendung eines digitalen Signalprozessors (DSP) zur Ausführung der Schlüsselausdruckserkennung ein.

Description

  • HINTERGRUND
  • Schlüsselausdrucks(in der Art von Wake-on-Voice)- oder Hot-Word-Erkennungssysteme können verwendet werden, um ein Wort oder einen Ausdruck oder dergleichen zu erkennen, wodurch eine Aktivität von einer Vorrichtung eingeleitet werden kann. Beispielsweise kann die Vorrichtung durch Übergehen aus einem Modus mit geringer Leistungsaufnahme oder einem Schlafmodus in einen aktiven Modus aufwachen und/oder ein bestimmtes Computerprogramm in der Art einer Anwendung eines persönlichen Assistenten (PA) aufwecken. In diesem Fall kann die Erkennung eines Aufweckschlüsselausdrucks eine automatische Spracherkennungsanwendung aktivieren, um einen von einem Benutzer eingehenden Befehl zu verstehen. Beispielsweise kann ein Benutzer sagen „Alexa, wie ist das Wetter?“, wobei das Wort „Alexa“ der Aufweckschlüsselausdruck ist.
  • Aktuelle Schlüsselausdrucks-Erkennungssysteme können kontextabhängige Laute von Schlüsselausdrücken modellieren und Gaußsche-Mischung-Modelle (GMM) verwenden, um die Akustik der Variationen zu modellieren. Solche Modelle sind jedoch häufig für die Implementation in Umgebungen mit geringen Ressourcen (beispielsweise Rechenressourcen, Speicherressourcen und Leistungsressourcen) zu komplex. Beispielsweise wird die Schlüsselausdrucksdecodierung häufig durch digitale Signalprozessoren (DSP) ausgeführt, die einen verhältnismäßig hohen Stromverbrauch haben, der sogar noch weiter ansteigt, wenn solche dichten Schlüsselausdrucks-Decodierberechnungen ausgeführt werden. Diese Decodierung beruht typischerweise auch auf Ganzwort-Bewertungswerten, die das Training eines neuen spezifischen Wort- oder Ausdrucksmodells immer dann erfordern, wenn ein neuer Schlüsselausdruck zum System hinzugefügt wird. Auch ist die Sprache/Keine-Sprache-Erkennung gewöhnlich ein auf einem DSP ausgeführtes getrenntes Modul, das sich nur schwer mit den anderen Schlüsselausdrucks-Erkennungsoperationen integrieren lässt, wodurch auch die rechnerische Komplexität und der Stromverbrauch erhöht werden.
  • Figurenliste
  • Das hier beschriebene Material dient als Beispiel und in den anliegenden Figuren in keiner Weise der Einschränkung. Aus Gründen der Einfachheit und Klarheit der Darstellung sind in den Figuren dargestellte Elemente nicht notwendigerweise maßstabsgerecht gezeichnet.
  • Beispielsweise können die Abmessungen einiger Elemente aus Gründen der Klarheit in Bezug auf andere Elemente übertrieben sein. Ferner wurden, wo dies als angemessen angesehen wurde, Bezugszeichen zwischen den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben. In den Figuren zeigen:
    • 1 ein erläuterndes Diagramm einer beispielhaften Umgebung zur Bereitstellung einer Schlüsselausdruckserkennung,
    • 2 ein schematisches Diagramm eines beispielhaften Audioverarbeitungssystems zur Ausführung zumindest einer der hier beschriebenen Implementationen,
    • 3 ein schematisches Diagramm beispielhafter Modellstrukturen eines Schlüsselausdrucksdecodierers gemäß zumindest einer der hier beschriebenen Implementationen,
    • 4 ein schematisches Diagramm einer beispielhaften aktualisierenden Datenstruktur, die an einem Schlüsselausdrucksdecodierer gemäß zumindest einer der hier beschriebenen Implementationen verwendet wird,
    • 5 ein Flussdiagramm eines Verfahrens zur Schlüsselausdruckserkennung auf der Grundlage eines neuronalen Netzes gemäß zumindest einer der hier beschriebenen Implementationen,
    • 6 ein schematisches Diagramm eines beispielhaften Schlüsselausdrucksdecodierers mit einer beispielhaften Datenstruktur gemäß zumindest einer der hier beschriebenen Implementationen,
    • 7 ein schematisches Diagramm eines beispielhaften Schlüsselausdrucksdecodierers mit einer beispielhaften Sprache/Keine-Sprache-Erkennungsdatenstruktur gemäß zumindest einer der hier beschriebenen Implementationen,
    • 8 ein schematisches Diagramm eines beispielhaften Schlüsselausdrucksdecodierers mit einer beispielhaften Datenstruktur zur Erkennung mehrerer Schlüsselausdrücke gemäß zumindest einer der hier beschriebenen Implementationen,
    • 9 ein schematisches Diagramm eines beispielhaften Schlüsselausdrucksdecodierers mit einer anderen beispielhaften Datenstruktur zur Erkennung mehrerer Schlüsselausdrücke gemäß zumindest einer der hier beschriebenen Implementationen,
    • 10 ein schematisches Diagramm eines beispielhaften neuronalen Netzbeschleunigers mit einer beispielhaften Datenflussanordnung gemäß zumindest einer der hier beschriebenen Implementationen,
    • 11 ein schematisches Diagramm eines anderen beispielhaften neuronalen Netzbeschleunigers mit einer beispielhaften Datenflussanordnung gemäß zumindest einer der hier beschriebenen Implementationen,
    • 12 ein schematisches Diagramm eines Schlüsselausdrucks-Anfangspunktdetektors mit einer beispielhaften Datenflussanordnung gemäß zumindest einer der hier beschriebenen Implementationen,
    • 13 ein schematisches Diagramm eines Audiodaten-Puffergrößen-Steuersystems gemäß zumindest einer der hier beschriebenen Implementationen,
    • 14 ein schematisches Diagramm eines dynamischen Mikrofonbehandlungs-Steuersystems gemäß zumindest einer der hier beschriebenen Implementationen,
    • 15 ein Flussdiagramm eines detaillierten Verfahrens zur Schlüsselausdruckserkennung auf der Grundlage eines neuronalen Netzes gemäß zumindest einer der hier beschriebenen Implementationen,
    • 16 ein erläuterndes Diagramm eines beispielhaften Audioverarbeitungssystems zur Ausführung einer Schlüsselausdruckserkennung,
    • 17 ein erläuterndes Diagramm eines beispielhaften Systems und
    • 18 eine beispielhafte Vorrichtung, die ganz gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist.
  • DETAILLIERTE BESCHREIBUNG
  • Eine oder mehrere Implementationen werden nun mit Bezug auf die anliegenden Figuren beschrieben. Wenngleich spezifische Konfigurationen und Anordnungen erörtert werden, ist zu verstehen, dass dies lediglich erläuternden Zwecken dient. Fachleute werden verstehen, dass andere Konfigurationen und Anordnungen verwendet werden können, ohne vom Gedanken und vom Geltungsbereich der Beschreibung abzuweichen. Fachleute auf dem relevanten Gebiet werden verstehen, dass hier beschriebene Techniken und/oder Anordnungen auch in einer Vielzahl anderer Systeme und Anwendungen als den hier beschriebenen eingesetzt werden können.
  • Wenngleich die folgende Beschreibung verschiedene Implementationen darlegt, die beispielsweise in Architekturen in der Art von System-auf-einem-Chip(SoC)-Architekturen manifestiert werden können, ist die Implementation der hier beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Rechensysteme beschränkt, und sie können durch eine beliebige Architektur und/oder ein beliebiges Rechensystem für ähnliche Zwecke implementiert werden. Beispielsweise können verschiedene Architekturen, die beispielsweise mehrere Integrierte-Schaltung(IC)-Chips (beispielsweise einschließlich digitaler Signalprozessoren, zweckgebundener Hardware oder dergleichen) und/oder -Baugruppen verwenden, und/oder verschiedene Rechenvorrichtungen und/oder Endverbraucherelektronik(CE)-Vorrichtungen in der Art von Settop-Boxen, Smartphones, Smart Speakers, Automobilsystemen, Sicherheitssystemen oder eine andere Vorrichtung oder ein anderes System, die oder das die hier beschriebenen Techniken und/oder Anordnungen implementieren kann, eingesetzt werden. Wenngleich die folgende Beschreibung ferner zahlreiche spezifische Einzelheiten in der Art von Logikimplementationen, Typen und Beziehungen zwischen Systemkomponenten, Wahlmöglichkeiten einer logischen Partitionierung/Integration usw. darlegen kann, kann der beanspruchte Gegenstand ohne diese spezifischen Einzelheiten verwirklicht werden. In anderen Fällen können einige Materialien in der Art beispielsweise von Steuerstrukturen und vollständigen Softwarebefehlssequenzen nicht detailliert dargestellt werden, um das hier offenbarte Material nicht unverständlich zu machen.
  • Das hier offenbarte Material kann in Hardware, Firmware, Software oder einer Kombination davon implementiert werden, es sei denn, dass etwas anderes beschrieben wird, wobei eine Implementation beispielsweise auf einen neuronalen Netzbeschleuniger (NNA) beschränkt sein kann. Das hier offenbarte Material kann auch als auf einem maschinenlesbaren Medium gespeicherte Befehle, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können, implementiert werden. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer durch eine Maschine (beispielsweise eine Rechenvorrichtung) lesbaren Form einschließen. Beispielsweise kann ein maschinenlesbares Medium einen Nurlesespeicher (ROM), einen Direktzugriffsspeicher (RAM), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speichervorrichtungen, elektrische, optische, akustische oder andere Formen übertragener Signale (beispielsweise Trägerwellen, Infrarotsignale, Digitalsignale usw.) und andere einschließen.
  • In der Patentschrift auftretende Bezüge auf „eine einzige Implementation“, „eine Implementation“, „eine als Beispiel dienende Implementation“ usw. geben an, dass die beschriebene Implementation ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik aufweisen kann, wobei jedoch nicht notwendigerweise jede Implementation das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Charakteristik aufweisen kann. Überdies beziehen sich solche Ausdrücke nicht notwendigerweise auf dieselbe Implementation. Ferner wird, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik in Zusammenhang mit einer Implementation beschrieben wird, angenommen, dass Fachleute in der Lage sein werden, dieses Merkmal, diese Struktur oder diese Charakteristik in Zusammenhang mit anderen Implementationen zu verwirklichen, unabhängig davon, ob dies hier explizit beschrieben wird.
  • Es werden hier Verfahren, Vorrichtungen, Geräte, Rechenplattformen und Artikel beschrieben, die sich auf die Schlüsselausdruckserkennung auf der Grundlage neuronaler Netze beziehen.
  • Wie vorstehend beschrieben, können Schlüsselausdrucks- oder Hot-Word-Erkennungssysteme verwendet werden, um ein Wort oder einen Ausdruck oder dergleichen zu erkennen, wodurch eine Aktivität durch eine Vorrichtung eingeleitet werden kann, wie das Aufwecken der Vorrichtung aus einem Modus mit geringer Leistungsaufnahme oder einem Schlafmodus in einen aktiven Modus oder das Aufwecken einer bestimmten Anwendung auf der Grundlage der Erkennung des Schlüsselausdrucks. Der Begriff Schlüsselausdruck kann hier einen beliebigen Audioindikator oder ein beliebiges akustisches Ereignis, der oder das zu erkennen ist, wie einen Ausdruck, ein Wort, ein Teil eines Worts, eine Silbe oder eine Gruppe von Tönen oder ein Audio- oder akustisches Ereignis in der Art des Weinens eines Babys, eines Schreis oder dergleichen angeben. Ferner kann der Schlüsselausdruck für die Verwendung durch das System vorgegeben werden, so dass die Erkennung eines vorgegebenen Schlüsselausdrucks bereitgestellt werden kann. Der vorgegebene Schlüsselausdruck kann vordefiniert werden (beispielsweise benutzerunabhängig und durch die Anwendung vordefiniert) oder vom Benutzer definiert werden (beispielsweise kann ein Benutzer ein Erkennungssystem trainieren, den Schlüsselausdruck zu erkennen). Der Begriff vorgegebener Schlüsselausdruck schließt hier jeden solchen vordefinierten und/oder benutzerdefinierten Schlüsselausdruck ein.
  • Wie vorstehend auch erwähnt wurde, verwenden die herkömmlichen Schlüsselausdruckserkennungssysteme einen großen Umfang komplexer Berechnungen, welche die Verwendung von DSP und/oder anderer Hardware erfordern, wodurch die Kosten erhöht werden und ein höherer Stromverbrauch hervorgerufen wird. Eine Lösung besteht in der Verwendung neuronaler Netze, die eine Matrixmultiplikation zur Verringerung von Rechenlasten und der Komplexität verwenden. Einige herkömmliche Schlüsselausdruckserkennungssysteme auf der Basis neuronaler Netze nutzen dies aus und stellen typischerweise zwei Ausgaben bereit, nämlich entweder eine Angabe eines Schlüsselausdrucks oder keines Schlüsselausdrucks. Diese herkömmlichen neuronalen Netzsysteme erfordern jedoch das erneute Training des Netzes jedes Mal dann, wenn ein neuer Schlüsselausdruck zum Netz hinzugefügt wird, weil solche Netze typischerweise ganze Wörter konstruieren und einen Bewertungswert für jedes Wort bereitstellen, was als weniger genau angesehen wird als Systeme, die auf Phonembewertungswerten statt auf Ganzwort-Bewertungswerten beruhen. Die Sprache-/Keine-Sprache-Module lassen ihre eigenen komplexen Berechnungen jedoch auch durch DSP ausführen. Andere Operationen, die typischerweise von einem DSP ausgeführt werden, selbst jene innerhalb der Schlüsselausdruckserkennung selbst wie die Merkmalsextraktion, könnten von der Verwendung eines ganz auf einem neuronalen Netz beruhenden Systems an Stelle eines DSP profitieren, um den Stromverbrauch weiter zu verringern.
  • Das vorliegende Verfahren und das vorliegende System verwenden zur Lösung dieser Probleme einen auf einem neuronalen Netz beruhenden Schlüsselausdruckserkennungsdecodierer (oder Schlüsselausdruckserkennungs- oder Wake-on-Voice(WoV)-Engine oder einfach Schlüsselausdrucksdecodierer), der in einem vom Anfang bis zum Ende auf einem neuronalen Netz beruhenden Schlüsselausdruckserkennungssystem verwendet werden kann, wodurch die Notwendigkeit eines DSP begrenzt oder beseitigt wird und stattdessen autonom und alleinstehend auf sehr wirksamen neuronalen Netzbeschleunigern verarbeitet werden kann. Hierdurch kann verglichen mit herkömmlichen Systemen ein sehr geringer Stromverbrauch erreicht werden. Der offenbarte auf einem neuronalen Netz beruhende Schlüsselausdruckserkennungsdecodierer ermöglicht eine sub-phonetische Schlüsselausdruckserkennung mit Ablehnungsmodellierung in einer neuronalen Netzstruktur, die beispielsweise durch einen neuronalen Netzbeschleuniger betrieben werden kann. Es kann ausgesagt werden, dass hierdurch die Bewertung am Schlüsselausdrucksdecodierer durch Ausführung der Bewertung als rekursives neuronales Netz wirksam „neuronisiert“ wird. Sobald Operationen für eine auf einem neuronalen Netz beruhende Schlüsselausdrucksdecodiererstruktur eingerichtet wurden, kann eine Mehrzahl verschiedener Erweiterungen angewendet werden, wodurch zusätzliche optionale Merkmale bereitgestellt werden können, die auch durch neuronale Netzbeschleuniger implementiert werden können, wie nachstehend beschrieben wird.
  • Genauer gesagt wird die Schlüsselausdrucksbewertung durch die Verwendung einer ein rekursives neuronales Netz aktualisierenden Datenstruktur ausgeführt, welche als Eingabe mehrere Elemente aufweisende akustische Bewertungsvektoren von akustischen Sub-Phonem-, Phonem- und/oder Multi-Phonem(beispielsweise Triphon)-Bewertungswerten sowie einen Ablehnungsbewertungswert empfängt. Das rekursive neuronale Netz betreibt ein Ablehnungsmodell und ein Schlüsselausdrucksmodell eines Schlüsselausdrucksdecodierers. Demgemäß können die Ausgaben (d. h. phonetische Posteriori-Werte) eines tiefen neuronalen Netzes zur akustischen Bewertung innerhalb der vorliegenden rekurrenten Netzstruktur umgeordnet und bewertet werden.
  • Es werden dann vektorisierte Operationen am Schlüsselausdrucksdecodierer ausgeführt. Eine solche Vektor- und Sub-Phonem-basierte Datenstruktur für einen Schlüsselausdruckserkennungsdecodierer ist in der am 28. Juni 2018 veröffentlichten US-Patentveröffentlichung 2018/0182388, die hier für alle Zwecke aufgenommen ist, offenbart. Die vektorisierten Operationen umfassen das Kombinieren des mehrere Elemente aufweisenden akustischen Bewertungsvektors mit einem vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor zur Erzeugung eines Vektors von Zwischenbewertungswerten. Eine solche Kombination von Vektoren umfasst beispielsweise eine Element für Element geschehende Summierung der Vektoren. Es wird dann eine Ausbreitungsoperation am Vektor der Zwischenbewertungswerte ausgeführt, um einen neuen aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor zu erzeugen. Die Ausbreitung von Zustand zu Zustand entlang dem mehrere Elemente aufweisenden Zustandsbewertungsvektor geschieht durch Ausführen eines Maximum-Poolings oder einer anderen Downsamplingoperation zwischen benachbarten Bewertungswerten entlang dem Vektor von Zwischenbewertungswerten, um einen aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor zu erzeugen. Das vorliegende Verfahren und das vorliegende System, wie hier beschrieben, passen diese Operationen so an, dass der Decodierer als ein rekursives neuronales Netz implementiert werden kann, das von einem oder mehreren neuronalen Netzbeschleunigern an Stelle eines DSP auszuführen ist. Beispielsweise kann das Rekurrenzmerkmal durch die Verwendung des letzten aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors als ein vorhergehender mehrere Elemente aufweisender Zustandsbewertungsvektor, der mit dem mehrere Elemente aufweisenden akustischen Bewertungsvektor kombiniert wird, erreicht werden, wodurch effektiv eine Rücklaufschleife (oder ein Bogen) verwirklicht wird. Die Bewertungswerte, welche den vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor bilden, können als Vorbeeinflussungswerte für die Eingabe durch einen Vorbeeinflussungsweg eines neuronalen Netzbeschleunigers zur Erzeugung der rückwärtigen Rekurrenzoperation behandelt werden. Jedes Mal dann (oder in irgendeinem Intervall), wenn ein aktueller mehrere Elemente aufweisender Zustandsbewertungsvektor erzeugt wird, können ein oder mehrere Bewertungswerte auf dem resultierenden aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor verwendet werden, um festzustellen, ob ein Schlüsselausdruck erkannt wurde oder nicht. In einer Form wird eine solche Bestimmung unter Verwendung der Bewertungswerte in der Art eines Ablehnungsbewertungswerts und eines Bewertungswerts für das Schlüsselausdrucksmodell des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors als Eingaben in eine affine Schicht mit bestimmten Gewichten der Bewertungswerte zur Ausgabe eines endgültigen Bewertungswerts vorgenommen, wie nachstehend detailliert beschrieben wird. Die auf einem neuronalen Netz beruhenden Decodiereroperationen können auch mehrere Schlüsselausdrücke entweder durch paralleles Behandeln eingegebener akustischer Bewertungsvektoren, die jeweils von einem anderen Schlüsselausdruck herrühren, oder durch Verketten dieser Vektoren zur Eingabe in den auf einem neuronalen Netz beruhenden Schlüsselausdrucksdecodierer behandeln.
  • Auch können das vorliegende Verfahren und das vorliegende System einer auf einem neuronalen Netz beruhenden Schlüsselausdruckserkennung, wie nachstehend weiter erklärt wird, erweitert werden, um eine Mehrzahl von Merkmalen hinzuzufügen, die hauptsächlich oder im Wesentlichen unter Verwendung eines neuronalen Netzes verarbeitet werden. Demgemäß kann beispielsweise eine robuste Sprache/Keine-Sprache-Erkennung in die auf einer Schicht eines neuronalen Netzes beruhenden Operationen des Schlüsselausdrucksdecodierers integriert werden, um die Notwendigkeit eines getrennten durch einen DSP betriebenen Sprache/Keine-Sprache-Erkennungsmoduls zu beseitigen. Dies kann durch die Verwendung eines Poolings von Ablehnungs-Sprache- und Keine-Sprache-Kategorien (beispielsweise Phonetik, Sprache-Geräusch, Stille und Keine-Sprache-Geräusch) der akustischen Bewertung erreicht werden, um Ablehnungsbewertungsvektoren zu bilden, die für die gleichen aktualisierenden neuronalen Netzoperationen des beschriebenen rekursiven auf einem neuronalen Netz beruhenden Schlüsselausdrucksdecodierers eingegeben werden können. Das Ergebnis der robusten integrierten Sprache/Keine-Sprache-Erkennung kann verwendet werden, um eine auf einem neuronalen Netz beruhende dynamische Puffergrößensteuerung zur Änderung von Puffergrößen abhängig davon, ob Sprache vorhanden ist, zu implementieren, und die auf einem neuronalen Netz beruhende Geräuscherkennung von der Ablehnungsbewertung kann verwendet werden, um zu steuern, welche Mikrofone an einem mehrere Mikrofone aufweisenden System aktiv sind. Zusätzlich kann eine instantane Schlüsselausdrucksendpunkterkennung ausgeführt werden, indem ein Blindzustand zu den Eingangsvektoren für den Schlüsselausdrucksdecodierer hinzugefügt wird, während der Schlüsselausdrucksanfangspunkt instantan durch die Verwendung eines auf einem rekurrenten neuronalen Netz beruhenden Boolingprozesses nach der Schlüsselausdrucksdecodierung erkannt werden kann, wie nachstehend beschrieben wird.
  • Demgemäß kann der auf einem neuronalen Netz beruhende Schlüsselausdruckserkennungsdecodierer auch in ein von Ende zu Ende arbeitendes auf einem neuronalen Netz beruhendes Schlüsselausdruckserkennungssystem integriert werden. Bei einem Beispiel können ein Zeitbereichs-Merkmalsextraktionssystem, das eine Deltamodulations-Finite-Impuls-antwort(FIR)-Filtrierung verwendet, und ein energieoperationsbasierter (oder mit anderen Worten ein auf einer auf dem Parseval-Theorem bezogenen Operation basierter) Akkumulator, der zur Erzeugung von Mel-Frequenz-Cepstrum-Koeffizienten (MFCC) und/oder Mel-Frequenzspektrumskoeffizienten (MFSC) verwendet wird, die zur akustischen Bewertung zu verwenden sind, eingesetzt werden. Ein solches System beseitigt die komplexen und umfangreichen Berechnungen der schnellen Fouriertransformation (FFT) zugunsten der Deltamodulation, wodurch Indikatoren von Änderungen im Audiosignal oder in den Audiodaten bereitgestellt werden, und verwendet diese Indikatoren zur Modifikation von Mel-Frequenzkoeffizienten und zur Summierung der sich ergebenden Werte. Dies geschieht ohne die Verwendung der Multiplikation zur wirksamen FIR-Filterung, welche durch eine Logik für spezifische Zwecke oder einen Beschleuniger an Stelle eines DSP ausgeführt werden kann. Ein solches System ist in der am 28. Juni 2018 eingereichten US-Patentanmeldung 16/022 376 offenbart und als US-Patentveröffentlichung , veröffentlicht am ______ dargelegt, welche hier für alle Zwecke aufgenommen ist.
  • Auch ist die Ausführung einer akustischen Bewertung durch tiefe neuronale Netze, die von NN-Beschleunigern betrieben werden können, bereits bekannt, und der Schlüsselausdruckserkennungsdecodierer kann nun auch durch neuronale Netze verwirklicht werden, während die Schlüsselausdrucksanfangs- und -endpunkterkennung sowie die Sprache/Keine-Sprache-Erkennung integriert werden, wie hier offenbart, so dass diese Schlüsselausdrucksanfangs-/End- und Sprache/Keine-Sprache-Erkennung auch kein von der Decodierung durch das neuronale Netz getrennter DSP-Prozess zu sein brauchen. Diese vom Anfang bis zum Ende ausgeführten auf einem neuronalen Netz beruhenden Schlüsselausdruckserkennungsprozesse können auf dem Gaussmischungsmodell- und neuronalen Netzbeschleuniger (GNA) und/oder autonomen neuronalen Netzbeschleunigern (ANNA) von Intel, um einige Beispiele zu erwähnen, implementiert werden, wie nachstehend auch beschrieben wird. Hier bezieht sich ein neuronaler Netzbeschleuniger (NNA) auf einen Prozessor für spezifische Zwecke, der spezifisch dafür eingerichtet ist, ein neuronales Netz zu verarbeiten. Ein solcher NNA hat zumindest spezifische Logikhardware für Vektoren von Eingangsdaten, die durch ein neuronales Netz geführt werden sollen, von Eingangsgewichten für Knoten am Netz und für anzuwendende Eingangsvorbeeinflussungen und/oder Konstanten sowie eine Ausbreitungsschaltung beispielsweise in der Art einer Multiplikations-Akkumulationsschaltung sowie eine Aktivierungsfunktionseinheit. Der NNA sollte die Fähigkeit haben, stets achtsam zu arbeiten, und er sollte Daten direkt von einem D-Mic verarbeiten (wenngleich mit einem hinzugefügten Puffer), um ganz oder im Wesentlichen autonom arbeiten zu können. Ein solches System sollte auch eine Möglichkeit aufweisen, die Rekursivität zu modellieren, wie nachstehend erörtert wird.
  • Diese Lösungen ermöglichen auch andere Vorteile in der Art einer Schlüsselausdrucksmodellerzeugung durch textakustisches Training und/oder Schlüsselausdrucksmodellerzeugung durch die Verwendung der Stimme eines Benutzers, wie in der am 4. Januar 2018 veröffentlichten US-Patentveröffentlichung 2018/0005633 offenbart ist, und/oder einer gleichzeitigen Sprache/Keine-Sprache-Erkennung, wie in der am 6. Juni 2018 eingereichten US-Patentanmeldung 16/001 496 offenbart ist, welche am _______ als US-Patentveröffentlichung ________ veröffentlicht ist, welche hier auch in ihrer Gesamtheit für alle Zwecke aufgenommen sind, während sie noch einen ganz (oder im Wesentlichen ganz oder hauptsächlich ganz) auf einem neuronalen Netz beruhenden Zugriff ermöglichen. Diese Strukturen und Verfahren führen zu einer erheblich leistungseffizienten Lösung und heben „stets zuhörende“ Anwendungen auf ein neues Niveau der Leistungseffizienz.
  • Mit Bezug auf 1 sei bemerkt, dass eine beispielhafte Umgebung 100 zur Bereitstellung einer Schlüsselausdruckserkennung gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist. Die Umgebung 100 kann einen Benutzer 101 aufweisen, der einer Vorrichtung 102 eine Audioeingabe 111 bereitstellt. Beispielsweise kann die Vorrichtung 102 in einem Tiefschlaf- oder Stromsparmodus oder dergleichen sein und kann der Benutzer 101 versuchen, die Vorrichtung 102 durch Schlüsselausdruckserkennung aufzuwecken. Falls der Benutzer 101 die Audioeingabe 111 bereitstellt, die als Schlüsselausdruck der Vorrichtung 102 identifiziert wird, kann die Vorrichtung 102 aus einem Schlaf- oder Stromsparmodus aufwachen, eine Aufgabe ausführen oder dergleichen. Beispielsweise kann die Vorrichtung 102 dem Benutzer 101 eine automatische Wake-on-Voice-Fähigkeit bereitstellen. Bei anderen Beispielen kann sich Wake-on-Voice oder allgemeiner die Schlüsselausdruckserkennung auf eine Situation beziehen, in der die Vorrichtung bereits wach ist und andere Aufgaben ausführt, wie das Abspielen von Musik, und die Schlüsselausdruckserkennung das Aufwecken eines spezifischen Programms oder einer spezifischen Anwendung beispielsweise in der Art eines persönlichen Assistenten (PA) auslöst. In einem solchen Fall kann die Schlüsselausdruckserkennung eine automatische Spracherkennungs(ASR)-Anwendung aufwecken, damit sie einen Befehl oder eine Anforderung versteht, um den PA anzuweisen, eine Aufgabe auszuführen. Wie dargestellt, kann bei einigen Beispielen ein automatisches Wake-on-Voice-System durch die Vorrichtung 102 implementiert werden, so dass die Vorrichtung 102 ein Smartphone sein kann. Die Vorrichtung 102 kann jedoch eine beliebige geeignete Vorrichtung sein, die eine solche hier beschriebene Audioverarbeitung behandelt, wie ein Smart Speaker, ein Computer, ein Laptop, ein Ultrabook, ein Smartphone, ein Tablet, ein Phablet, eine tragbare Vorrichtung in der Art einer Smartwatch, von Smart-Lautsprechern oder Brillen oder dergleichen. In jedem Fall kann die Vorrichtung 102 hier als Rechenvorrichtung beschrieben werden.
  • Wie dargestellt kann der Benutzer 101 bei einigen Beispielen eine Audioeingabe 111 bereitstellen, um zu versuchen, die Vorrichtung 102 oder dergleichen aufzuwecken. Es sei bemerkt, dass die Vorrichtung 102 als Audioeingabe auch Hintergrundgeräusche, Stille, Hintergrundsprache, Sprache, die nicht vorgesehen ist, um Zugriff auf die Vorrichtung 102 zu erhalten, ihr eigenes Abspielen, wenn sie beispielsweise Musik oder andere Medien abspielt, und dergleichen empfangen kann. Beispielsweise kann die Vorrichtung 102 Audio (beispielsweise die Audioeingabe 111 oder anderes Audio), das nicht mit einem vorgegebenen beispielsweise von einem Ablehnungsmodell bereitgestellten Schlüsselausdruck übereinstimmt, von Audio, das mit dem vorgegebenen beispielsweise von einem Schlüsselausdrucksmodell, wie hier erörtert, bereitgestellten Schlüsselausdruck übereinstimmt, unterscheiden oder klassifizieren müssen. Ein solcher Klassifizierungsprozess kann ein Ablehnungsmodell verwenden, welches das Nicht-Schlüsselausdrucksaudio bei einem Beispiel als abgelehnte Phonetiken, gesprochene Geräusche, nicht gesprochene Geräusche und Stille klassifizieren kann, wie nachstehend erklärt wird.
  • Mit Bezug auf 2 sei bemerkt, dass ein beispielhaftes Audioverarbeitungssystem 200 zur Schlüsselausdruckserkennung gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist. Das System 200 kann ein oder mehrere Mikrofone 201 in der Art eines Mikrofonarrays, ein Merkmalsextraktionsmodul 202, ein akustisches Bewertungsmodul 203, einen Schlüsselausdruckserkennungsdecodierer 204, Schlüsselausdrucks- und Ablehnungsmodelle 205, eine Steuereinrichtung 206, ein akustisches Modell 208 und ein Sprachaktivitäts-Erkennungsmodul 207 aufweisen oder kommunikativ damit verbunden sein. Das System 200 kann optional auch eine integrierte Sprache/Keine-Sprache-Erkennungseinheit 210, eine Schlüsselausdrucks-Anfangspunkt-Erkennungseinheit 220, eine Sprache-/Keine-Sprache-Puffergrößensteuerung 222 und eine Mikrofonsteuerung 224 aufweisen. Ein Vorteil des Audioverarbeitungssystems 200 besteht darin, dass es im Wesentlichen die Verwendung eines DSP in einer Schlüsselausdrucks-Erkennungseinheit 250 vermeidet, die Module zur Schlüsselausdruckserkennung oder Merkmalsextraktion, zur akustischen Bewertung und zur Decodierung aufweist. Demgemäß vermeidet es eine getrennte DSP-Operation von jedem dieser Module, so dass keine „rechnerische“ Unterscheidung zwischen der Sprachextraktion, der akustischen Bewertung und der Schlüsselausdrucksdecodierung existiert. Mit anderen Worten und allgemein ausgedrückt können die Ergebnisse neuronaler Netzschichten eines der Module in neuronale Netzschichten des nächsten Moduls ohne getrennte Operationen, um die Daten einem DSP für Berechnungen bereitzustellen, eingegeben werden. Das Ergebnis ist eine autonome neuronale Netzbeschleunigung, wodurch im Wesentlichen eine Schlüsselausdruckserkennung bereitgestellt werden kann, ohne sich erheblich auf andere Prozessoreinheiten zu verlassen, wodurch die Rechenlasten und der Stromverbrauch verringert werden, wodurch die Funktionen kleiner Rechenvorrichtungen und „stets eingeschalteter“ Vorrichtungen, um einige Beispiele zu nennen, verbessert werden.
  • Im Einzelnen kann der Schlüsselausdruckserkennungsdecodierer 204 einen oder mehrere Schlüsselausdrucks-Bewertungswerte 215 (oder einen oder mehrere Werte auf der Grundlage eines Schlüsselausdrucks-Bewertungswerts) der Steuereinrichtung 206 bereitstellen. Auf der Grundlage eines oder mehrerer endgültiger Schlüsselausdrucks-Bewertungswerte 215 (beispielsweise falls der Schlüsselausdrucks-Bewertungswert 215 größer als eine Schwelle oder dergleichen ist) kann die Steuereinrichtung 206 einen Systemaufweckindikator 216 bereitstellen (beispielsweise falls der Schlüsselausdrucks-Bewertungswert 215 angibt, dass ein vorgegebener Schlüsselausdruck oder ein oder mehrere vorgegebene Schlüsselausdrücke abgeglichen wurden) oder kann die Steuereinrichtung 206 einen solchen Indikator nicht bereitstellen und kann das System 200 weiter die eingegebene Sprache auf eine Übereinstimmung beurteilen. Wie dargestellt ist, kann die Steuereinrichtung 206 bei einigen Beispielen auch einen Systembefehl 218 in Zusammenhang mit dem Schlüsselausdruck bereitstellen, um das System 200 aufzufordern, eine Operation in der Art des Startens einer Anwendung, des Erzeugens oder Abrufens von Daten oder dergleichen auszuführen. Wie hier ferner erörtert wird, werden bei einigen Implementationen das Merkmalsextraktionsmodul 202, das akustische Bewertungsmodul 203 und der Schlüsselausdruckserkennungsdecodierer 204 auf zumindest einem neuronalen Netzbeschleuniger und zweckgebundener Hardware für einen spezifischen Zweck statt auf einem digitalen Signalprozessor (DSP) ausgeführt. Die Steuereinrichtung 206 und das Sprachaktivitäts-Erkennungsmodul 207 können noch immer durch einen digitalen Signalprozessor (DSP) implementiert werden, und bei anderen Optionen verwendet die Merkmalsextraktionseinheit 202 einen DSP.
  • Wie erörtert, kann das System 200 einen einzigen Schlüsselausdruck implementieren, so dass bei der Erkennung des Schlüsselausdrucks der Systemaufweckindikator 216 und/oder der Systembefehl 218 bereitgestellt werden können. Bei anderen Implementationen kann das System 200 mehrere Schlüsselausdrücke implementieren (auf der Grundlage des Implementierens mehrerer Schlüsselausdrucksmodelle, wie hier erörtert). Falls bei solchen Implementationen irgendwelche der Schlüsselausdrücke erkannt werden, können der Systemaufweckindikator 216 und/oder der Systembefehl 218 bereitgestellt werden. Ferner kann der Systembefehl 218 einem bestimmten Schlüsselausdruck von den Schlüsselausdrücken zugeordnet werden. Beispielsweise kann ein erster Aufweckbefehl (beispielsweise Schlüsselausdruck) in der Art von „Computer, spiele Musik“ die Vorrichtung aufwecken (beispielsweise durch den Systemaufweckindikator 216) und Musik abspielen (beispielsweise durch einen durch den Systembefehl 218 implementierten Musikabspielbefehl) und kann ein zweiter Aufweckbefehl (beispielsweise Schlüsselausdruck) in der Art von „Computer, habe ich Mail?“ die Vorrichtung aufwecken (beispielsweise durch den Systemaufweckindikator 216) und feststellen, ob eine Mail empfangen wurde (beispielsweise durch einen durch den Systembefehl 218 implementierten Hole-Mail-Befehl). Bei diesen Beispielen kann die Sequenz dieser die ganzen Ausdrücke bildenden Wörter als Aufweckschlüsselausdrücke trainiert werden, oder dies kann nicht der Fall sein. Bei anderen Optionen kann die Vorrichtung selbst bereits wach sein und eine Aktivität ausführen, wie das Abspielen von Musik oder eines Films oder das Ausführen einer anderen Anwendung, und veranlasst der Aufweckschlüsselausdruck die Steuereinrichtung 206 zur Aktivierung eines bestimmten Programms in der Art einer automatischen Spracherkennungs(ASR)-Anwendung, damit eine PA-Anwendung einen Befehl versteht, der beispielsweise kein Schlüsselausdruck ist. Demgemäß ist im Ausdruck „Alexa, teile mir das Wetter mit“ beispielsweise nur das Wort „Alexa“ ein Schlüsselausdruck.
  • Wie dargestellt ist, kann das Mikrofon 201 eine Audioeingabe (AI) vom Benutzer 101 (oder mehreren Benutzern oder einer Umgebung oder dergleichen) empfangen. Die Audioeingabe 111 kann vom Benutzer 101 ausgegebene Sprache oder andere Hintergrundgeräusche oder Stille oder dergleichen in der Umgebung des Mikrofons 201 aufweisen. Die Audioeingabe 111 kann als Audio, eingegebenes Audio, eingegebener Sprach-Stream oder dergleichen gekennzeichnet werden. Das Mikrofon 201 kann die Audioeingabe 111 und/oder anderes Audio (beispielsweise Schallwellen in der Luft) empfangen und die Audioeingabe 111 und/oder solches anderes Audio in ein elektrisches Signal in der Art eines Digitalsignals umwandeln, um Audiodaten (AD) 211 zu erzeugen. Beispielsweise können die Audiodaten 211 im Speicher (in 2 nicht dargestellt) gespeichert werden, zur Weiterverarbeitung übertragen werden oder dergleichen.
  • Ein Sprachaktivitäts-Erkennungsmodul 207 kann Audiodaten 211 empfangen. Beispielsweise kann das Sprachaktivitäts-Erkennungsmodul 207 selbst in einem Tiefschlafmodus des Systems 200 arbeiten (beispielsweise über einen DSP), um Audiodaten 211 kontinuierlich zu überwachen. Nach der Erkennung einer Stimme oder eines anderen Tons, wofür eine weitere Beurteilung durch das System 200 erforderlich ist, kann das Sprachaktivitäts-Erkennungsmodul 207 ein Initialisierungssignal (IS) bereitstellen, welches die anderen Module des Systems 200 aktivieren kann, um eine Schlüsselausdruckserkennung bereitzustellen. Beispielsweise kann das Sprachaktivitäts-Erkennungsmodul 207 dem Merkmalsextraktionsmodul 202 ein Initialisierungssignal 217 zur Aktivierung des Merkmalsextraktionsmoduls 202 und anderer Komponenten des Systems 200 bereitstellen. Bei einer Implementation kann ein Teil der Audiodaten 211 (beispielsweise 360 ms von Audiodaten oder dergleichen) durch einen Ringpuffer oder dergleichen gepuffert werden. Wenn eine Stimme oder ein anderer Ton, der eine weitere Beurteilung erfordert, durch das Sprachaktivitäts-Erkennungsmodul 207 erkannt wird, kann das Merkmalsextraktionsmodul 202 die Daten vom Puffer und weitere eingehende Audioinformationen über die Audiodaten 211 empfangen.
  • Ferner kann das Sprachaktivitäts-Erkennungsmodul 207 während der Schlüsselausdruckserkennung (beispielsweise während ein Schlüsselausdruck nicht erkannt wird oder noch nicht erkannt wurde) arbeiten, um festzustellen, ob das System 200 wieder in den Tiefschlafmodus oder dergleichen versetzt werden kann. Beispielsweise kann das Sprachaktivitäts-Erkennungsmodul 207 eine Fähigkeit eines ständigen Zuhörens mit geringer Leistungsaufnahme für das System 200 bereitstellen. Beispielsweise können nach der Aktivierung durch das Initialisierungssignal 217 Audiodaten 211 kontinuierlich für die Schlüsselausdruckserkennung überwacht werden, bis die Steuereinrichtung 206 feststellt, dass ein Schlüsselausdruck erkannt wurde und der Systemaufweckindikator 216 bereitgestellt ist oder bis vom Sprachaktivitäts-Erkennungsmodul 207 festgelegt wurde, dass wieder in einen Schlafmodus oder einen Zustand mit geringer Leistungsaufnahme oder dergleichen einzutreten ist.
  • Das Merkmalsextraktionsmodul 202 kann Audiodaten 211 empfangen. Beispielsweise kann das Merkmalsextraktionsmodul 202 Audiodaten 211 vom Mikrofon 201, vom erörterten Puffer, von einem anderen Speicher des Systems 200 oder dergleichen empfangen und kann das Merkmalsextraktionsmodul 202 Merkmalsvektoren 212 in Zusammenhang mit der Audioeingabe 111 erzeugen. Die Merkmalsvektoren 212 können jegliche geeignete Merkmale oder Merkmalsvektoren oder dergleichen sein, welche die Audioeingabe 111 repräsentieren, und wie vorstehend erwähnt ohne die Verwendung eines DSP stattdessen unter Verwendung von Hardware für einen spezifischen Zweck und/oder einen neuronalen Netzbeschleuniger bereitgestellt werden. Beispielsweise können die Merkmalsvektoren 212 eine Zeitreihe von Merkmalsvektoren sein (beispielsweise Merkmalsvektoren, die jeweils für einen Zeitpunkt erzeugt werden), so dass jeder der Merkmalsvektoren 212 einen Stapel von Merkmalen oder Merkmalsvektoren aufweist, die jeweils von einem Zeitpunkt in der Art einer Abtastzeit oder dergleichen herrühren. Insbesondere können Merkmalsvektoren 212 von der Merkmalsextraktionseinheit 202 zu mehreren Abtastzeiten in Form der vorstehend erwähnten (MFCC) oder dergleichen erzeugt werden. Die Abtastzeiten können ein geeignetes Intervall in der Art von alle 10 ms oder dergleichen sein, und die zu jeder Abtastzeit ausgeführte Abtastung kann eine beliebige Dauer der eingegebenen Sprache oder des eingegebenen Audios in der Art von 25 ms von Audio oder dergleichen abtasten. Die Koeffizienten der Merkmalsvektoren 212 können eine Mehrzahl von Abtastkoeffizienten aufweisen, beziehen sich gewöhnlich jedoch auf die Mel-Frequenzskala und können bei einem Beispiel 13 bis 40 Koeffizienten aufweisen. Ferner können die Koeffizienten jeweils als Merkmale, Merkmalsvektor, Abtastung oder dergleichen bezeichnet werden. Bei einem Beispiel wird die Nicht-DSP-Merkmalsextraktion wie vorstehend erwähnt auf der Grundlage einer Audioeingabe 111 unter Verwendung des Nicht-FFT- und Energieoperationsakkumulationsansatzes verwendet, wie vorstehend erwähnt. Bei einem anderen Beispiel können DSP verwendet werden, wenn eine Fouriertransformation einer Audioeingabe 111 und/oder über das Mikrofon 201 empfangenes Audio verwendet wird. In jedem Fall kann die Merkmalsextraktionseinheit 202 auch eine Zuordnung auf der Mel-Skala ausführen, Protokolle der Leistungen bei jeder Mel-Frequenz bestimmen und die Mel-Frequenz-Cepstrum-Koeffizienten auf der Grundlage einer diskreten Kosinustransformation (DCT) der Protokolle der Leistungen bestimmen.
  • Die Abtastkoeffizienten können gestapelt oder verkettet oder kombiniert werden oder dergleichen, um Merkmalsvektoren 212 zu erzeugen, nachdem sie durch die Cepstral-Mittelwert-Normierung oder dergleichen normiert wurden oder dergleichen, um beispielsweise die Koeffizienten zu erzeugen. Die Koeffizienten können kombiniert werden, um die jeweiligen Merkmalsvektoren 212 zu erzeugen, so dass jeder Merkmalsvektor bei einem möglichen Beispiel ein 143 (beispielsweise 11 x 13) dimensionaler Vektor ist. Es kann jedoch eine beliebige Mehrzahl von Instanzen von Abtastkoeffizienten kombiniert oder gestapelt werden, um Merkmalsvektoren 212 zu erzeugen. Die Merkmalsvektoren 212 können Abtastkoeffizienten mit überlappenden Zeitbereichen aufweisen, so dass ein erster Merkmalsvektor den Zeiten t0 - t10 zugeordnet werden kann, während ein nächster Merkmalsvektor beispielsweise den Zeiten t1 - t11 zugeordnete Abtastkoeffizienten aufweisen kann.
  • Auch können die Merkmalsvektoren 212 dem akustischen Bewertungsmodul 203 bereitgestellt werden. Das akustische Bewertungsmodul 203 kann Merkmalsvektoren 212 auf der Grundlage des vom Speicher empfangenen akustischen Modells 208 bewerten und eine Mehrzahl ausgegebener Bewertungswerte 214 auf der Grundlage der Merkmalsvektoren 212 bereitstellen. Die akustische Bewertung kann unter Verwendung eines als akustisches Bewertungsmodul 203 implementierten neuronalen Netzes und bei einigen Implementationen unter Verwendung des akustischen Modells 208 ausgeführt werden. Diese akustische Bewertung kann ein geeignetes neuronales Netz in der Art eines künstlichen neuronalen Netzes, eines tiefen neuronalen Netzes (DNN), eines konvolutionalen neuronalen Netzes (CNN) oder dergleichen aufweisen. Hier kann dies ein DNN mit Zeitverzögerung (T-DNN) einschließen, das eine Flaschenhalsschicht (in der Art einer punktweisen lxl-Schicht) vor einer vollständigen DNN/T-DNN-Schicht verwenden kann. Solche Netze können ein neuronales Netz mit einer Eingangsschicht, verborgenen Schichten und einer Ausgangsschicht mit einer geeigneten Mehrzahl von Knoten einschließen, wobei beispielsweise die Mehrzahl der Knoten gleich der Mehrzahl der Elemente in jedem der Merkmalsvektoren 212 ist. Beispielsweise kann die Eingangsschicht 143 Knoten entsprechend jeder der 143 Dimensionen der Merkmalsvektoren 212 aufweisen. Bei anderen Beispielen können Merkmalsvektoren weniger oder mehr Elemente oder Dimensionen aufweisen und kann die Eingangsschicht eine entsprechende Mehrzahl von Knoten aufweisen. Die Ausgangsschicht kann eine geeignete Mehrzahl von Knoten aufweisen, so dass akustische Bewertungswerte 214 Werte einschließen, die verbundenen kontextabhängigen Sub-Phonen oder Mono-Phonen und/oder Multi-Phonen in der Art von Triphonzuständen oder dergleichen, wie nachstehend erwähnt, entsprechen. Bei einigen Beispielen kann das neuronale Netz zur akustischen Bewertung Hidden-Markov-Modelle (HMM) implementieren. Wie erörtert, kann die Ausgangsschicht bei einigen Implementationen beschnitten werden, so dass nur vorgegebene Ausgangsknoten (und zugeordnete akustische Bewertungswerte 214) bereitgestellt werden, so dass eine Teilmenge verfügbarer Zustände oder Bewertungswerte durch das neuronale Netz implementiert wird.
  • Bei einer Implementation empfängt und implementiert das akustische Bewertungsmodul 203 das akustische Modell 208, wie hier erörtert. Bei einer Implementation kann das akustische Modell 208 ein tiefes neuronales Netz (DNN) sein, das auf der Grundlage eines Audiotrainingssatzes vortrainiert wurde. Bei einer Implementation kann das akustische Modell 208 ein tiefes neuronales Netz mit einer Mehrzahl von Ausgaben in der Art von 4000 Ausgaben oder dergleichen sein. Bei einer anderen Implementation ist das akustische Modell 208 ein beschnittenes tiefes neuronales Netz, wobei die Mehrzahl der Ausgaben verringert oder beschnitten ist, so dass nur eine Teilmenge der verfügbaren Ausgaben (beispielsweise durch die Einrichtung und/oder das Training bestimmt) bereitgestellt oder aktiviert wird. Diese erforderlichen Ausgaben können durch das Zustandssignal 213 bereitgestellt werden, oder diese erforderlichen Ausgaben können vor der Implementation vorgegeben oder vortrainiert werden.
  • Ausgegebene akustische Bewertungswerte 214 können als Bewertungswerte, Wahrscheinlichkeiten, Bewertungswerte sub-phonetischer Einheiten, Wahrscheinlichkeitsdichtefunktions-Bewertungswerte (PDF) oder dergleichen gekennzeichnet werden. Beispielsweise kann das akustische Bewertungsmodul 203 solche Ausgangsbewertungswerte oder - zustände für jeden der Merkmalsvektoren 212 erzeugen, um eine Zeitreihe akustischer Bewertungswerte 214 zu erzeugen. Diese akustischen Bewertungswerte 214 werden als akustische Eingangsbewertungswerte P0 bis Pn am Decodierer 204 (oder einer Decodiererdatenstruktur 400 in 4) repräsentiert. Bei einem Beispiel können die akustischen Bewertungswerte 214 eine Zeitreihe von Bewertungswerten sub-phonetischer Einheiten sein.
  • Wie erwähnt, können die Ausgaben 214 des akustischen Bewertungsmoduls 203 sub-phonetische Einheiten in der Art verbundener kontextabhängiger Triphonzustände repräsentieren. Diese verbundenen kontextabhängigen Triphonzustände können Monophone repräsentieren, die auf beiden Seiten (beispielsweise links und rechts) mit Monophonen verbunden sind, um verbundene kontextabhängige Triphone zu erzeugen. Eine Sprache kann beispielsweise eine Mehrzahl von Monophonen (beispielsweise 30 - 50 Monophone) aufweisen, und sub-phonetische Einheiten beispielsweise in der Art verbundener kontextabhängiger Triphonzustände können jedes dieser Monophone in einer Vielzahl von Kontexten aufweisen, so dass verschiedene andere Monophone vor und nach diesen Monophonen auftreten, um viele Kombinationen (beispielsweise die sub-phonetischen Einheiten) zu erzeugen. Das akustische Bewertungsmodul 203 kann auf der Grundlage der Merkmalsvektoren 212 Wahrscheinlichkeiten oder Bewertungswerte oder dergleichen in Zusammenhang mit diesen sub-phonetischen Einheiten (beispielsweise Wahrscheinlichkeiten oder Bewertungswerte in Bezug darauf, welche Einheit oder welcher Laut gesprochen wurde) sowie Wahrscheinlichkeiten oder Bewertungswerte in Zusammenhang mit Stille und/oder Hintergrundgeräuschen oder dergleichen an ihren Ausgängen bereitstellen.
  • Für jeden oder einige der akustischen Bewertungswerte 214 kann der Schlüsselausdruckserkennungsdecodierer 204 einen entsprechenden Schlüsselausdrucks-Bewertungswert 215 erzeugen. Ein Schlüsselausdrucks-Bewertungswert 215 kann zu jedem Zeitpunkt in Zusammenhang mit Bewertungswerten 214 erzeugt werden. Bei anderen Beispielen kann ein Schlüsselausdrucks-Bewertungswert 215 in weniger häufigen Zeitintervallen erzeugt werden. Wie hier weiter erörtert wird, kann der Schlüsselausdruckserkennungsdecodierer 204 bei der Erzeugung des Schlüsselausdrucks-Bewertungswerts 215 vektorisierte Operationen an als ein oder mehrere neuronale Netze implementierten Bewertungsvektoren implementieren.
  • Auch kann der Schlüsselausdruckserkennungsdecodierer 204 wie dargestellt ein Schlüsselausdrucksmodell (oder mehrere Schlüsselausdrucksmodelle) und ein Ablehnungsmodell empfangen und implementieren. Beispielsweise kann der Schlüsselausdruckserkennungsdecodierer 204 ein Schlüsselausdrucksmodell (oder mehrere Schlüsselausdrucksmodelle) und ein Ablehnungsmodell (beispielsweise Schlüsselausdrucks- und Ablehnungsmodelle 205) aus dem Speicher empfangen. Beispielsweise kann der Schlüsselausdruckserkennungsdecodierer 204 jegliche hier erörterte Ablehnungs- und Schlüsselausdrucksmodelle empfangen und implementieren. Die Modelle werden unter Verwendung der vektorisierten Operationen auf neuronalen Netzen aktualisiert. Die Einzelheiten für die Verwendung des Ablehnungs- und Schlüsselausdrucksmodells während der Implementation neuronaler Netze werden nachstehend bereitgestellt.
  • Ferner kann wie erörtert bei einigen Implementationen ein einziger Schlüsselausdruck erkannt werden und kann ein System aufgeweckt werden (beispielsweise durch den Systemaufweckindikator 216) und kann ein optionaler Befehl auf der Grundlage des erkannten Schlüsselausdrucks ausgegeben werden (beispielsweise durch den Systembefehl 218). Bei anderen Implementationen können ein zweiter Schlüsselausdruck oder zusätzliche Schlüsselausdrücke implementiert werden und können zugeordnete Schlüsselausdrucksmodelle durch den Schlüsselausdruckserkennungsdecodierer 204 beurteilt werden. Beispielsweise können solche Schlüsselausdrucksmodelle und zugeordnete Schlüsselausdrucks-Bewertungswerte beurteilt werden, um festzustellen, ob ein bestimmter von mehreren Schlüsselausdrücken erkannt wurde. Beispielsweise können, wie nachstehend weiter erörtert wird, mehrere Schlüsselausdrucksmodelle bereitgestellt werden. Demgemäß kann der Schlüsselausdruckserkennungsdecodierer 204 einen oder mehrere Schlüsselausdrucks-Bewertungswerte für jedes solche Schlüsselausdrucksmodell (und mehrere Zeitpunkte) für die Beurteilung durch die Steuereinrichtung 206 erzeugen.
  • Bei einer anderen Implementation kann der Schlüsselausdruckserkennungsdecodierer 204 dafür eingerichtet werden, eine mit dem Decodierer 204 integrierte Sprache-/Keine-Sprache-Erkennungseinheit 210 bereitzustellen. Dies geschieht durch Pooling verschiedener Sprache- und Keine-Sprache-Ablehnungskategorien, die durch die akustische Bewertungseinheit 203 bewertet wurden, und Ausführen ähnlicher, jedoch paralleler vektorisierter neuronaler Netzoperationen in Bezug auf die Schlüsselausdrucksdecodierung. Sprache- und Keine-Sprache-Bewertungswerte können dann durch die Sprache-/Keine-Sprache(S/N)-Erkennungseinheit 210 und/oder den Decodierer 204 bereitgestellt werden. Die Sprache-/Keine-Sprache-Bewertungswerte können von der Steuereinrichtung 206 verwendet werden, um den Schlüsselausdruckserkennungsprozess selbst oder andere Anwendungen in der Art von ASR für einen PA, spezifische Anwendungen usw. aufzuwecken (oder zu verwenden, statt sie zu ignorieren). Andernfalls können die Sprache-/Keine-Sprache-Bewertungswerte von einer Sprache-/Keine-Sprache-Puffergrößensteuerung 224 verwendet werden, welche die Größe der Audiodatenpuffer abhängig davon modifiziert, ob Sprache in den Audioinformationen vorhanden ist, wodurch eine durch ein neuronales Netz gesteuerte Puffergröße erzeugt wird. Als weitere Option können die Geräuschbewertungswerte (oder Keine-Sprache-Geräusch-Bewertungswerte) oder Keine-Sprache-Ablehnungsbewertungswerte verwendet werden, um zu steuern, welche Mikrofone an einem Mikrofon-Array oder einem Mehrmikrofonsystem ein- oder ausgeschaltet sind, um den Stromverbrauch zu verringern, wobei dies wieder auf der Grundlage neuronaler Netzalgorithmen statt durch Berechnungen auf einem DSP geschieht.
  • Bei einem weiteren Ansatz kann eine instantane Schlüsselausdrucksendpunkterkennung durch Hinzufügen eines Blindzustands zu den Eingangsvektoren für den Schlüsselausdrucksdecodierer ausgeführt werden. Dies kann vollständig in die aktualisierende Schlüsselausdrucks-Datenstruktur, wie hier beschrieben, integriert werden. Der Schlüsselausdrucks-Anfangspunkt kann instantan durch eine Schlüsselausdrucks-Anfangspunkt-Erkennungseinheit 220 erkannt werden, die einen Boolingprozess auf der Grundlage eines rekurrenten neuronalen Netzes verwendet. Demgemäß kann die Schlüsselausdrucks-Anfangspunkt-Erkennungseinheit 220 den aktuellen mehrere Elemente aufweisenden Schlüsselausdrucks-Bewertungsvektor als Eingabe empfangen, und sie modifiziert diese Bewertungswerte und wandelt sie in Ausbreitungsindikatoren um, die angeben, ob sich eine Bewertungswertposition (oder ein Zustand) beispielsweise auf einem HMM von Zustand zu Zustand entlang dem mehrere Elemente aufweisenden Zustandsbewertungsvektor ausgebreitet hat. Vektoren dieser Indikatoren (oder Boolvektoren) werden verwendet, um einen rekurrent gebildeten Vektor von Rahmenindexwerten zu bilden. Die Indexwerte geben an, welcher Audiorahmen von einer die analysierte Audioeingabe bildenden Rahmensequenz den Anfangspunkt des Schlüsselausdrucks aufweist. Die Einzelheiten werden nachstehend bereitgestellt.
  • Die Steuereinrichtung 206 kann den Schlüsselausdrucks-Bewertungswert 215 (beispielsweise eine Zeitreihe von Schlüsselausdrucks-Bewertungswerten) empfangen, und die Steuereinrichtung 206 kann den Schlüsselausdrucks-Bewertungswert 215 mit einer Schwelle oder dergleichen vergleichen, um festzustellen, ob der vorgegebene Schlüsselausdruck erkannt wurde. Falls der Schlüsselausdrucks-Bewertungswert 215 beispielsweise größer als die Schwelle (oder größer oder gleich dieser) ist, wurde der vorgegebene Schlüsselausdruck erkannt und kann die Steuereinrichtung 206 den Systemaufweckindikator 216 zum Aufwecken des Systems 200 bereitstellen. Falls der Schlüsselausdrucks-Bewertungswert 215 kleiner als die Schwelle (oder kleiner oder gleich dieser) ist, wurde der vorgegebene Schlüsselausdruck nicht erkannt und kann die Steuereinrichtung 206 den Systemaufweckindikator 216 nicht bereitstellen und kann die Steuereinrichtung den Schlüsselausdrucks-Bewertungswert 215 weiter überwachen.
  • Wenn mehrere Schlüsselausdrücke erkannt werden, kann die Steuereinrichtung 206 diese Schlüsselausdrucks-Bewertungswerte (beispielsweise eine Zeitreihe von Schlüsselausdrucks-Bewertungswerten) empfangen und kann die Steuereinrichtung 206 diese Schlüsselausdrucks-Bewertungswerte mit einer Schwelle oder jeweiligen Schwellen vergleichen, um festzustellen, ob jegliche der vorgegebenen Schlüsselausdrücke erkannt wurden. Falls beispielsweise einer der Schlüsselausdrucks-Bewertungswerte größer als die Schwelle oder seine jeweilige Schwelle (oder größer oder gleich dieser) ist, wurde ein bestimmter vorgegebener Schlüsselausdruck erkannt und kann die Steuereinrichtung 206 den Systemaufweckindikator 216 zum Aufwecken des Systems 200 und einen optionalen Befehlsindikator (beispielsweise den Systembefehl 218) zur Ausführung eines Befehls in Zusammenhang mit dem bestimmten vorgegebenen Schlüsselausdruck bereitstellen. Falls alle Schlüsselausdrucks-Bewertungswerte kleiner als die Schwelle oder ihre jeweiligen Schwellen sind (oder kleiner oder gleich dieser), kann die Steuereinrichtung 206 den Systemaufweckindikator 216 nicht bereitstellen und kann die Steuereinrichtung weiter auf einen vorgegebenen Schlüsselausdruck überwachen.
  • Mit Bezug auf 3 werden nun die Einzelheiten zur Implementation des Schlüsselausdruckserkennungsdecodierers bereitgestellt. Insbesondere umfassen die hier erörterten Implementationen linearisierte Bewertungsprozeduren für eine oder mehrere Schlüsselausdruckssequenzen oder ein oder mehrere Schlüsselausdrucksmodelle zur Bereitstellung einer vektorisierten Bewertungsform, die unter Verwendung eines neuronalen Netzes ausgeführt werden kann und bei einem Ansatz insbesondere durch einen neuronalen Netzbeschleuniger (NNA) ausgeführt werden kann. Beispielsweise können einige oder alle Operationen für eine erhöhte Effizienz, eine verringerte Verarbeitungszeit oder dergleichen als vektorisierte Operationen ausgeführt werden. Diese vektorisierte Bewertung kann Operationen bereitstellen, die auf ganze Vektoren von Bewertungswerten in der Art aktueller akustischer Bewertungswerte (beispielsweise Ausgaben eines neuronalen Netzes), vorhergehender Bewertungswerte der Schlüsselausdrucksmodelle und/oder des einen oder der mehreren Ablehnungsmodelle oder dergleichen angewendet werden, und um ganze Vektoren von Ausgangsbewertungswerten für die Schlüsselausdrucksmodelle und/oder das eine oder die mehreren Ablehnungsmodelle zu erzeugen, wie hier weiter erörtert wird. Diese vektorisierte Bewertung kann Vorteile in Bezug auf die Recheneffizienz und den Stromverbrauch bereitstellen, indem die Verwendung eines DSP verringert oder beseitigt wird. Ferner kann eine solche vektorisierte Bewertung durch Ein-Befehl-mehrere-Daten(SIMD)-Befehle oder dergleichen optimiert werden, um weitere Recheneffizienz sowie geringere Speicheranforderungen bereitzustellen.
  • Um diese Vorteile zu erreichen, weist ein Schlüsselausdruckserkennungsdecodierer 300 ein beispielhaftes Ablehnungsmodell 301 und ein beispielhaftes Schlüsselausdrucksmodell 302 auf oder betreibt diese, welche gemäß zumindest einigen Implementationen der vorliegenden Offenbarung angeordnet sind. Das Ablehnungsmodell 301 kann einen einzelnen Zustand 311 und mehrere Selbstschleifen 312 aufweisen. Beispielsweise kann der einzelne Zustand 311 einem Anfangszustand entsprechen und ein auf einem einzelnen Anfangszustand beruhendes Ablehnungsmodell bereitstellen. Ferner kann jede der Selbstschleifen 312 einem der akustischen Bewertungswerte 214 zugeordnet sein, welche die Ausgaben vom akustischen Bewertungsmodul 203 sind und in Decodierermodelle 301 und 302 eingegeben werden, wie nachstehend beschrieben. Die Selbstschleifen 312 stellen Selbstaktualisierungen oder eine Summierung oder dergleichen für den einzelnen Zustand 311 des Ablehnungsmodells 301 bereit. Beispielsweise kann jede der Selbstschleifen 312 einem Ausgang oder Ausgangsknoten eines tiefen neuronalen Netzes eines akustisch bewertenden DNN zugeordnet sein, welcher einer sub-phonetischen Einheit, gesprochenen oder nicht gesprochenen Geräuschen oder Stille entspricht. Durch die Verwendung solcher Techniken kann der einzelne Zustand 311 beispielsweise einen Anfangszustand bereitstellen, der ein Ablehnungsmodell implementiert. Selbstschleifen 312 können eine beliebige Mehrzahl von Selbstschleifen einschließen. Beispielsweise kann das Ablehnungsmodell 301 bei jedem Zeitpunkt von Ausgaben vom akustischen Bewertungsmodul 203 aktualisiert werden, um einen damit in Zusammenhang stehenden Ablehnungswahrscheinlichkeits-Bewertungswert bereitzustellen. Beispielsweise können die Selbstschleifen 312 zu jedem Ausgabezeitpunkt akustischer Bewertungswerte (beispielsweise akustischer Bewertungswerte 214) vom akustischen Bewertungsmodul 203 Aktualisierungen des einzelnen Zustands 311 zeigen.
  • Wie auch in 3 dargestellt ist, kann das Schlüsselausdrucksmodell 302 dem Ablehnungsmodell 301 folgen und durch einen Übergang 313 verbunden sein. Das Schlüsselausdrucksmodell 302 kann mehrere Zustände (oder Knoten) 326 aufweisen, die durch Übergänge 323 miteinander verbunden sind. Wie dargestellt ist, können die Zustände 326 einen Anfangszustand 321 und einen endgültigen Zustand 324 einschließen, so dass der Übergang 313 das Schlüsselausdrucksmodell 302 mit dem Anfangszustand 321 verbindet, während die Übergänge 323 nachfolgende Zustände 326 einschließlich des endgültigen Zustands 324 miteinander verbinden. Jeder der Zustände 326 kann eine oder mehrere Selbstschleifen in der Art der Selbstschleife 322 aufweisen oder dadurch aktualisiert werden, und jeder der Zustände 326 kann auf der Grundlage eines Übergangs oder von Übergängen 323 oder des Übergangs 313 von einem früheren Zustand im Schlüsselausdrucksmodell 302 oder vom Ablehnungsmodell 301 aktualisiert werden. In einer Form kann jede Selbstschleife 322 (oder jeder Bogen) vom akustischen Bewertungsmodul 203 der Ausgabe eines akustisch bewertenden DNN zugeordnet werden oder dieser entsprechen (beispielsweise einem der akustischen Bewertungswerte 214). Beim dargestellten Beispiel weist jeder der Zustände 326 eine einzige Selbstschleife 322 auf. Einer oder mehrere der Zustände 326 können jedoch jeweils mehrere Selbstschleifen aufweisen. Bei einigen Beispielen können einer oder mehrere der Zustände 326 Stillezustände mit Selbstschleifen sein, welche Stille repräsentieren, so dass Schlüsselausdrücke modelliert werden können, welche Stille einschließen. Bei einigen Beispielen können einer oder mehrere der Zustände 326 sowohl Nicht-Stille- als auch Stille-Selbstschleifen aufweisen. Das Schlüsselausdrucksmodell 302 kann ein beliebiges geeignetes Modell einschließen. Beispielsweise kann das Schlüsselausdrucksmodell 302 auf der Grundlage des durch das System 200 implementierten vorgegebenen Schlüsselausdrucks ausgewählt werden und kann das Schlüsselausdrucksmodell 302 durch Nachschlagen in einem Lexikon ausgewählt werden. Beispielsweise können Übergänge 323 zwischen den Zuständen 326 auf der Grundlage der Triphon-HMM-Zustandssequenz im Lexikon ausgewählt werden. In einigen Zusammenhängen kann das Schlüsselausdrucksmodell 302 als eine Schlüsselausdruckssequenz oder dergleichen gekennzeichnet werden. Beispielsweise kann eine Schlüsselausdruckssequenz sub-phonetische Einheiten, beispielsweise Triphonzustände, repräsentieren. Beispielsweise wäre die Phonemsequenz für den Ausdruck „INTEL“ in der ARPABET-Notation (wobei es sich um ein Standard-Phonemalphabet oder einen phonetischen Standardtranskriptionscode handelt) IH2 N T EH1 L, und die Triphonsequenz zur Bildung des Schlüsselworts „INTEL“ kann dann Folgende sein:
    • eps/IH2/N IH2/N/T N/T/EH1 T/EH1/L EH1/L/eps.
  • Das Ablehnungsmodell 301 und das Schlüsselausdrucksmodell 302 können mit allen ihren Knoten oder Zuständen bei null oder negativ unendlich oder dergleichen initialisiert werden. Wie erwähnt, kann das akustische Bewertungsmodul 203 beispielsweise auf der Grundlage des ersten Merkmalsvektors FV1 akustische Bewertungswerte 214 erzeugen und können ein einzelner Zustand 311 des Ablehnungsmodells 301 und ein erster Zustand (Anfangszustand 321 des Schlüsselausdrucksmodells 302) nacheinander einzeln zu einer mit einem akustischen Bewertungswert A1 beginnenden Zeit aktualisiert werden. Nachdem ein zweiter Merkmalsvektor FV2 verarbeitet wurde, kann das akustische Bewertungsmodul 203 den akustischen Bewertungswert A2 erzeugen und wird ein einzelner Zustand 311 des Ablehnungsmodells 301 und der erste Zustand 321 des Schlüsselausdrucksmodells 302 mit dem Zustand A2 aktualisiert, während der akustische Bewertungswert A1 in den zweiten Zustand 326 des Schlüsselausdrucksmodells 302 überführt wird, um den zweiten Zustand 326 zu aktualisieren, usw. Diese Verarbeitung kann fortgesetzt werden, um alle Zustände 326 am Schlüsselausdrucksmodell 302 zu füllen und bis der endgültige Zustand 324 von seinem Initialisierungszustand zu einer bedeutungsvollen Bewertung aktualisiert wurde. Zu einem solchen Zeitpunkt (und nachfolgenden Zeitpunkten, wenn Aktualisierungen fortgesetzt werden), können der Bewertungswert oder die Wahrscheinlichkeit oder dergleichen des einzelnen Zustands 311 und der Bewertungswert oder die Wahrscheinlichkeit oder dergleichen des endgültigen Zustands 324 verwendet werden, um festzustellen, ob der vorgegebene Schlüsselausdruck erkannt wurde.
  • Insbesondere können auf der Grundlage des Ablehnungsmodells 301 und des Schlüsselausdrucksmodells 302 zu jedem Zeitpunkt oder zu einigen Zeitpunkten ein Ablehnungswahrscheinlichkeits-Bewertungswert und ein Schlüsselausdruckswahrscheinlichkeits-Bewertungswert bestimmt werden. Beispielsweise kann der Ablehnungswahrscheinlichkeits-Bewertungswert ein dem einzelnen Zustand 311 des Ablehnungsmodells 301 zugeordneter Bewertungswert sein und kann der Schlüsselausdruckswahrscheinlichkeits-Bewertungswert dem endgültigen Zustand 324 von den Zuständen 326 des Schlüsselausdrucksmodells 302 zugeordnet sein. Demgemäß kann beispielsweise eine Zeitreihe von Schlüsselausdrucks-Bewertungswerten 215 durch den Schlüsselausdruckserkennungsdecodierer 204 auf der Grundlage akustischer Bewertungswerte 214, des Ablehnungsmodells 301 und des Schlüsselausdrucksmodells 302 erzeugt werden.
  • Die Schlüsselausdrucks-Bewertungswerte 215 können einen geeigneten Schlüsselausdrucks-Bewertungswert einschließen, der die am einzelnen Zustand 311 erzeugte Wahrscheinlichkeit mit der am endgültigen Zustand 324 erzeugten Wahrscheinlichkeit vergleicht. In einer Form kann hierbei eine Gleichung (nachstehend beschrieben) angewendet werden, welche die Differenz zwischen den beiden Wahrscheinlichkeiten findet und die Differenz mit einem Schwellenwert vergleicht. In einer Form wird dies dadurch erreicht, dass der NNA diese Bestimmung als affine Schicht mit einem einzigen Knoten ausführt, wobei die Schwelle eine zusätzliche Eingabe der affinen Schicht sein kann. Der Schwelle und den beiden Wahrscheinlichkeiten werden Gewichte zur Ausführung der Gleichung gegeben. Wenn alle Bewertungswerte der Zustände 326 in die affine Schicht einzugeben sind, haben die anderen mittleren Bewertungswerte außer dem Bewertungswert des endgültigen Gewichts und dem Bewertungswert des Ablehnungszustands ein Gewicht von Null, um sie aus der Berechnung des neuronalen Netzes fortzulassen.
  • Andernfalls kann bei einer anderen Implementation einer der Schlüsselausdrucks-Bewertungswerte 215 ein logarithmisches Wahrscheinlichkeitsverhältnis sein. Beispielsweise kann einer der Schlüsselausdrucks-Bewertungswerte 215 wie in Gleichung (1) dargestellt bestimmt werden: KPS = log ( p ( X | Schlüsselausdruck ) ) log ( p ( X | Ablehnung ) )
    Figure DE102019122180A1_0001
    wobei KPS der Schlüsselausdrucks-Bewertungswert sein kann, X die aktuelle Akkumulation der bewerteten Merkmalsvektoren sein kann und p die Wahrscheinlichkeit bereitstellt, dass X ein Element des Schlüsselausdrucks oder einer Ablehnung ist.
  • Die Zustände 326 des Schlüsselausdrucksmodells 302 können die gleiche Struktur aufweisen, so dass jeder der Zustände 326 einen eingehenden Übergang, einen ausgehenden Übergang (abgesehen vom endgültigen Zustand 324) und einen Selbstschleifenübergang aufweist, so dass sowohl der eingehende Übergang als auch die Selbstschleife mit den gleichen der akustischen Bewertungswerte 214 aktualisiert werden. Ferner ist das Ablehnungsmodell 301 vom Schlüsselausdrucksmodell 302 getrennt, so dass der dem Ablehnungsmodell 301 entsprechende Ablehnungsbewertungswert getrennt von den Bewertungswerten von Zuständen 326 des Schlüsselausdrucksmodells 302 bestimmt werden kann. Auch können, wie erörtert, optionale Stillephasen zum Schlüsselausdrucksmodell 302 hinzugefügt werden, indem Selbstschleifen zu jeglichen der Zustände 326 des Schlüsselausdrucksmodells 302 hinzugefügt werden. Überdies können mehrere (beispielsweise parallele oder verkettete) Schlüsselausdrucksmodelle (wie mit Bezug auf 8 oder 9 erläutert) in einem einzigen Bewertungswert-Array (beispielsweise Vektor) bereitgestellt werden. Für die verketteten Modelle (9) kann ein einziger Deskriptor für mehrere Schlüsselausdruckssequenzen verwendet werden, abgesehen davon, dass keine Übergangsverbindung zwischen den zwei oder mehr Sequenzen existiert, wie in 9 dargestellt. Ein anderer Weg zur Berücksichtigung dieser Struktur besteht in der Aussage, dass ein Gewicht von 0 vom Ende einer Sequenz an den Anfang der nächsten Sequenz im gleichen einzelnen Deskriptor weitergeleitet wird. Die Einzelheiten werden nachstehend bereitgestellt.
  • Mit Bezug auf 4 sei bemerkt, dass eine beispielhafte Decodiererdatenstruktur 400 zur Aktualisierung von Zuständen des Ablehnungsmodells 301 und eines oder mehrerer Schlüsselausdrucksmodelle 302 gemäß zumindest einigen Implementationen der vorliegenden Offenbarung bereitgestellt ist. Die Datenstruktur 400 verwendet eine lineare Implementation der Schlüsselausdrucksdecodierung unter Verwendung der regulären Decodiererstruktur in dem Sinne, dass jeder Bewertungswert in einem erzeugten mehrere Elemente aufweisenden Zustandsbewertungsvektor für eine Schlüsselausdrucksmodellsequenz (S1 - SN ) einer Ausgabe (P1 - PN ) eines DNN zur akustischen Bewertung zugeordnet ist, wie durch die vorstehend erwähnten Bögen 322 repräsentiert ist. Hier geschieht die Decodierung jedoch zur wirksamen Implementation der Decodierung als Vektormultiplikation, die leicht parallelisiert werden kann. Hier werden weitere Modifikationen vorgenommen, so dass die Berechnungen an einem NNA an Stelle eines DSP oder eines Zentralprozessors ausgeführt werden können. Die Ablehnung wird getrennt behandelt, und die Ausgaben des DNN zur akustischen Bewertung in Zusammenhang mit der Ablehnungsmodellierung werden max-gepoolt und in P0 gespeichert. Durch diesen Ansatz kann die Bewertung vollständig oder zumindest hauptsächlich vektorisiert und durch einen NNA an Stelle eines DSP behandelt werden. Die Einzelheiten werden nachstehend dargelegt.
  • Die Datenstruktur 400 weist Knoten (oder Zustände) 410 auf, die dem Zustand 311 des Ablehnungsmodells 301 und Zuständen 326 des Schlüsselausdrucksmodells 302 (und zusätzlichen Schlüsselausdrucksmodellen, falls verwendet) entsprechen. Die auf einem neuronalen Netz beruhende Vektorverarbeitung oder vektorisierte Operationen können ausgeführt werden, um die den Knoten 410 der Modelle entsprechenden Zustände bei verschiedenen Zeititerationen zu aktualisieren, um einen mehrere Elemente aufweisenden Zustandsbewertungsvektor 405 für einen aktuellen Zeitpunkt mit einem aktuellen Zustandsbewertungswert 451 für das Einzelzustands-Ablehnungsmodell 301 (als Bewertungswert S0 bezeichnet) und aktuellen Bewertungswerten 452 für das Mehrzustands-Schlüsselausdrucksmodell 302 oder zusätzliche Modelle, falls verwendet, zu erzeugen, wobei er wie hier dargestellt die Bewertungswerte S1 , S2 , S3 , ..., Si , ..., SN-1 , SN aufweist, wobei SN als letzter Bewertungswert bezeichnet wird (der dem endgültigen Zustand 324 des Schlüsselausdrucksmodells 302 entsprechen kann oder nicht).
  • Für den aktuellen Zeitpunkt kann ein mehrere Elemente aufweisender akustischer Bewertungsvektor 401 erzeugt werden. Wie dargestellt, kann der mehrere Elemente aufweisende akustische Bewertungsvektor 401 einen aktuellen akustischen Bewertungswert 411 (hier P0 ) für ein Einzelzustands-Ablehnungsmodell 301 und aktuelle akustische Bewertungswerte 412 für ein Mehrzustands-Schlüsselausdrucksmodell 302 oder zusätzliche Modelle, falls verwendet, aufweisen (d. h. Bewertungswerte P1 , P2 , P3 , ..., Pi , ..., PN-1 , PN ). Der mehrere Elemente aufweisende akustische Bewertungsvektor 401 kann unter Verwendung einer geeigneten Technik oder geeigneter Techniken erzeugt werden und in einer Form unter Verwendung neuronaler Netze erzeugt werden, wie vorstehend erwähnt. Bei einer Implementation weist der mehrere Elemente aufweisende akustische Bewertungsvektor 401 akustische Bewertungswerte 214 (A1 bis AN ) vom hier erörterten akustischen Bewertungsmodul 203 auf. Beispielsweise kann der mehrere Elemente aufweisende akustische Bewertungsvektor 401 auf der Grundlage der Audioeingabe 111 erzeugt werden, wie hier erörtert.
  • Auch kann wie dargestellt für einen vorhergehenden Zeitpunkt ein vorhergehender mehrere Elemente aufweisender Zustandsbewertungsvektor 402 aus dem Speicher empfangen werden, beispielsweise auf der Grundlage einer zuvor abgeschlossenen Iteration. Wie dargestellt, kann der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor 402 einen vorhergehenden Bewertungswert S0 421 für das Einzelzustands-Ablehnungsmodell 301 und vorhergehende Bewertungswerte 422 für das Mehrzustands-Schlüsselausdrucksmodell 302 oder zusätzliche Modelle, falls verwendet, aufweisen (d. h. Bewertungswerte S1 , S2 , S3 , ..., Si , ..., SN-1 , SN ). Der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor 402 kann in der gleichen Weise wie der aktuelle mehrere Elemente aufweisende Zustandsbewertungsvektor 405 erzeugt werden. Demgemäß wird ein aktueller Vektor 405 rekurrent als vorhergehender mehrere Elemente aufweisender Zustandsbewertungsvektor verwendet. Diese rekurrente Operation wird durch einen Pfeil 453 repräsentiert, und die NNA-Operationen zur Ausführung dieser Operation werden nachstehend beschrieben.
  • Wie dargestellt wird bei einer Iteration zu einer aktuellen Zeit eine rekurrente vektorisierte Operation 403 am mehrere Elemente aufweisenden akustischen Bewertungsvektor 401 und einem vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor 402 von einer vorhergehenden Iteration ausgeführt, um die Vektoren zu kombinieren. In einer Form wird die Rekurrenz gebildet, indem die beiden Vektoren 401 und 402 Element für Element summiert werden, um einen Zwischenbewertungsvektor 404 zu erzeugen (auch als mehrere Elemente aufweisender summierter Zwischenbewertungsvektor bezeichnet). Die vektorisierte Operation 403 kann den mehrere Elemente aufweisenden akustischen Bewertungsvektor 401 und den mehrere Elemente aufweisenden Zustandsbewertungsvektor 402 unter Verwendung einer Array-Programmierung auf der Grundlage von SIMD-Befehlen oder in einer Hardwareimplementation summieren, so dass die Element für Element gebildeten Summen durch einen NNA unter Verwendung einer affinen Schicht gebildet werden und die Bewertungswerte des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors als Vorbeeinflussungswerte in den NNA eingegeben werden, um sie mit den Werten des akustischen Bewertungsvektors zu summieren. Dies erzeugt die Summen gleichzeitig, im Wesentlichen gleichzeitig, parallel oder dergleichen. Wie dargestellt, kann der Zwischenbewertungsvektor 404 einen Ablehnungszustandswert (als P0 + S0 bezeichnet) entsprechend der Summe (oder einer anderen Operation) des Bewertungswerts für das Einzelzustands-Ablehnungsmodell und des vorhergehenden Zustandsbewertungswerts für das Einzelzustands-Ablehnungsmodell, gefolgt von nachfolgenden Schlüsselausdrucksmodellwerten (als P1 + S1, P2 + S2, P3 + S3, ..., Pi + Si, ..., PN-1 + SN-1, PN + SN bezeichnet) entsprechend Summen von Bewertungswerten für das Mehrzustands-Schlüsselausdrucksmodell und vorhergehenden Zustandsbewertungswerten für das Mehrzustands-Schlüsselausdrucksmodell aufweisen. Es sei bemerkt, dass an Stelle der Element für Element ausgeführten Summation auch eine Operation in der Art eines SIMD-Befehls an einem Array verwendet werden könnte.
  • Sobald der Zwischenbewertungsvektor 404 gebildet wurde, kann eine vektorisierte Ausbreitungsoperation 406 den Zwischenbewertungsvektor 404 verwenden, um Zwischenbewertungswerte wirksam entlang dem mehrere Elemente aufweisenden Zustandsbewertungsvektor von S1 bis SN weiterzuleiten (oder zumindest die Faktorisierung der Zwischenbewertungswerte weiterzuleiten), um den aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor 405 in einer Weise zu erzeugen, die von einem NNA ausgeführt werden kann. Bei einem Ansatz kann die vektorisierte Operation 406 einen maximalen Zwischenbewertungswert zwischen benachbarten Elementen (welche überlappende Paare des Vergleichs von Elementen bilden) des Zwischenbewertungsvektors 404 bestimmen, um den mehrere Elemente aufweisenden Zustandsbewertungsvektor 405 zu erzeugen. Beispielsweise kann die vektorisierte Operation 404 ein Maximum zwischen dem Ablehnungszustandswert (als P0 + S0 bezeichnet) und dem ersten Schlüsselausdrucksmodellwert (als P1 + S1 bezeichnet) an einem Operator 461, ein Maximum zwischen dem ersten Schlüsselausdrucksmodellwert (als P1 + S1 bezeichnet) und dem zweiten Schlüsselausdrucksmodellwert (als P2 + S2 bezeichnet) an einem Operator 462 usw. bis zum letzten Schlüsselausdrucksmodellwert (als PN + SN bezeichnet) bestimmen.
  • Mit Bezug auf 3 sei bemerkt, dass durch die Verwendung dieser Techniken für jeden Zustand 326 des Schlüsselausdrucksmodells 302 der mehrere Elemente aufweisende Zustandsbewertungsvektor 405 das Maximum des eingehenden Übergangs in den Zustand und der Selbstschleife des Zustands aufweisen kann. Beispielsweise stellt der Operator 461 in Bezug auf den Zustand 321 und den ersten der aktuellen Bewertungswerte 452, die einander entsprechen können, das Maximum des Übergangs 313 in den Zustand 321 und der Selbstschleife 322 des Zustands 321 bereit. Beispielsweise wird der Übergang 313 durch den vorhergehenden Zustandsbewertungswert des einzelnen Zustands 311 des Ablehnungsmodells 301 (d. h. S0 ) plus dem aktuellen akustischen Bewertungswert des einzelnen Zustands 311 des Ablehnungsmodells 301 (d. h. P0 ) bereitgestellt und wird die Selbstschleife 322 durch den vorhergehenden Zustandsbewertungswert des Zustands 321 (d. h. S1 ) plus dem aktuellen akustischen Bewertungswert des Zustands 321 (d. h. P1 ) bereitgestellt. Daher stellt der Operator 461 für den Zustand 321 das Maximum des Übergangs 313 (d. h. P0 + S0 ) und der Selbstschleife 322 (d. h. P1 + S1 ) für den Bewertungswert S1 des mehrere Elemente aufweisenden Zustandsbewertungsvektors 405 bereit. Analog kann jeder Zustand 326 des Schlüsselausdrucksmodells mit dem Maximum des eingehenden Übergangs in den Zustand und der Selbstschleife des Zustands versehen werden. Ferner wird der aktuelle Zustandsbewertungswert 451 für das Einzelzustands-Ablehnungsmodell 301 (d. h. der Bewertungswert S0 ) durch den größten Bewertungswert der Selbstschleifen 312 plus dem vorhergehenden Zustandsbewertungswert für den einzelnen Zustand 311 bereitgestellt (d. h. P0 + S0 ).
  • Wie erwähnt, weist der sich ergebende aktuelle mehrere Elemente aufweisende Zustandsbewertungsvektor 405 einen aktuellen Zustandsbewertungswert 451 für das Einzelzustands-Ablehnungsmodell 301 (d. h. Bewertungswert S0 ) und aktuelle Bewertungswerte 452 für das Mehrzustands-Schlüsselausdrucksmodell 302 oder zusätzliche Modelle, falls verwendet, auf (d. h. Bewertungswerte S1 , S2 , S3 , ..., Si , ..., SN-1 , SN ). Der mehrere Elemente aufweisende Zustandsbewertungsvektor 405 kann dann zur Beurteilung der Audioeingabe 111 zum aktuellen Zeitpunkt verwendet werden. Beispielsweise kann der aktuelle Zustandsbewertungswert 451 für das Einzelzustands-Ablehnungsmodell 301 mit dem letzten Zustand SN verglichen werden, welcher der endgültige Zustandsbewertungswert sein kann, welcher beispielsweise dem endgültigen Zustand 324 des Schlüsselausdrucksmodells 302 entspricht, um festzustellen, ob der dem Schlüsselausdrucksmodell 302 entsprechende Schlüsselausdruck erkannt wurde. Ein solcher Vergleich kann unter Verwendung einer geeigneten Technik oder geeigneter Techniken in der Art der Anwendung einer Affinitätsschicht zur Ausführung der Bestimmung auf einem NNA vorgenommen werden oder alternativ durch Berechnen einer Differenz, eines logarithmischen Wahrscheinlichkeitsverhältnisses, wie mit Bezug auf Gleichung (1) erörtert, oder dergleichen ausgeführt werden. Die Einzelheiten für die NNA-Bestimmung werden nachstehend bereitgestellt.
  • Die mit Bezug auf Datenstrukturen 400 und 4 erörterten Operationen können beliebig oft wiederholt werden, um Aktualisierungen des Ablehnungsmodells 301 und des Schlüsselausdrucksmodells 302 durch den mehrere Elemente aufweisenden Zustandsbewertungsvektor 405 bereitzustellen, und Beurteilungen des einzelnen Zustands 311 und des endgültigen Zustands oder von Zuständen der Schlüsselausdrucksmodelle können ähnlich wiederholt werden, um festzustellen, ob ein einem der Schlüsselausdrucksmodelle entsprechender Schlüsselausdruck erkannt wurde. Ferner können Datenstrukturen 400, wie hier weiter erörtert, eine integrierte Sprache/Keine-Sprache-Erkennung und/oder mehrere Schlüsselwortmodelle (oder Sequenzen) unterstützen.
  • 5 zeigt nun ein Flussdiagramm eines beispielhaften Prozesses 500 für eine Schlüsselausdruckserkennung auf der Grundlage eines neuronalen Netzes gemäß zumindest einigen Implementationen der vorliegenden Offenbarung. Der Prozess 500 kann eine oder mehrere in 5 dargestellte Operationen 502 - 512 aufweisen. Der Prozess 500 kann zumindest einen Teil eines beispielsweise durch das System 200 oder 1600 ausgeführten Schlüsselausdruckserkennungsprozesses auf der Grundlage eines neuronalen Netzes bilden. Ferner wird der Prozess 500 hier, sofern relevant, mit Bezug auf Systeme 200 oder 1600 aus 2 bzw. 16 beschrieben.
  • Es sei bemerkt, dass viele der Operationen des Prozesses 500 durch einen neuronalen Netzbeschleuniger an Stelle eines DSP oder eines anderen ähnlichen weniger wirksamen Prozessors, der Hardware für einen spezifischen Zweck aufweist, ausgeführt werden können, um eine oder mehrere neuronale Netzschichten auszuführen.
  • Der Prozess 500 kann das „Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage einer empfangenen Audioeingabe“ 502 aufweisen. Beispielsweise kann für einen aktuellen Zeitpunkt ein akustisches Modell in der Art eines tiefen neuronalen Netzes oder dergleichen bewertet werden, um den mehrere Elemente aufweisenden akustischen Bewertungsvektor zu erzeugen, so dass der mehrere Elemente aufweisende akustische Bewertungsvektor einen Bewertungswert für ein Einzelzustands-Ablehnungsmodell und Bewertungswerte für ein oder mehrere Mehrzustands-Schlüsselausdrucksmodelle aufweist, so dass jedes Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht. Der mehrere Elemente aufweisende akustische Bewertungsvektor kann auf der empfangenen Audioeingabe beruhen und unter Verwendung einer geeigneten Technik oder geeigneter Techniken, wie hier weiter erörtert, erzeugt werden.
  • Der Prozess 500 kann auch das „rekursive Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit Elementen des mehrere Elemente aufweisenden akustischen Zustandsbewertungsvektors des aktuellen Zeitpunkts“ 504 aufweisen. Beispielsweise kann der mehrere Elemente aufweisende Zustandsbewertungsvektor ein zu einem vorhergehenden Zeitpunkt erzeugter Bewertungsvektor sein, so dass ein aktualisierter mehrere Elemente aufweisender Zustandsbewertungsvektor erzeugt oder im Laufe der Zeit für eine kontinuierliche Beurteilung auf einen Schlüsselausdruck aktualisiert wird. Der mehrere Elemente aufweisende Zustandsbewertungsvektor weist einen vorhergehenden Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell auf. Die Elemente oder Bewertungswerte werden mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors ausgerichtet, um elementweise Operationen auszuführen, die einen nachstehend beschriebenen Zwischenbewertungsvektor bilden. Diese Verwendung des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors repräsentiert einen Rekurrenzbogen für die einzelnen Zustände auf dem aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor (wie in der nachstehenden 6 dargestellt). Wie nachstehend erklärt wird, kann diese Rekurrenz auf einem NNA unter Verwendung der Bewertungswerte des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors (in der Art des Vektors 402 aus 4) als Vorbeeinflussungswerte zur Addition zu den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors (in der Art des Vektors 401 (4)) ausgeführt werden.
  • Der Prozess 500 kann das „Erzeugen eines Zwischenbewertungsvektors unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor“ 506 aufweisen. Dies kann eine vektorisierte Operation sein, die Zeit, Rechenressourcen und Speicherressourcen sparen kann und die vorstehend erwähnte Rekurrenz durch Anwenden des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors implementiert. Demgemäß können die Zwischenzustandsbewertungswerte eines solchen Zustandsbewertungsvektors Elemente aufweisen, die eine elementweise Summe des mehrere Elemente aufweisenden akustischen Bewertungsvektors und des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors sind. Bei einem Beispiel weist der sich ergebende Zwischenbewertungsvektor einen Ablehnungszustandswert entsprechend der Summe des akustischen Bewertungswerts für das Einzelzustands-Ablehnungsmodell und des vorhergehenden Zustandsbewertungswerts für das Einzelzustands-Ablehnungsmodell, gefolgt von nachfolgenden Schlüsselausdrucksmodellwerten entsprechend Summen akustischer Bewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell und vorhergehender Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell auf.
  • Der Prozess 500 kann dann das „Erzeugen eines aktuellen mehrere Zustände aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird“ 508 aufweisen. Bei einem Beispiel kann hierbei eine zweite vektorisierte Operation ausgeführt werden, um das Maximum des Ablehnungszustandswerts und eines ersten Schlüsselausdrucksmodellwerts und nachfolgende Maxima zwischen dem ersten Schlüsselausdrucksmodellwert und einem zweiten Schlüsselausdrucksmodellwert, dem zweiten Schlüsselausdrucksmodellwert und einem dritten Schlüsselausdrucksmodellwert usw. bis zum letzten Schlüsselausdrucksmodellwert zu bestimmen, um einen mehrere Elemente aufweisenden Zustandsbewertungsvektor für den aktuellen Zeitpunkt zu erzeugen. Diese Verarbeitung kann für jeden Zustand des Schlüsselausdrucksmodells einen Wert bereitstellen, der das Maximum zwischen einer Selbstschleife des Zustands (beispielsweise des Summationswerts für den Zustand des Schlüsselausdrucksmodells) und einem Übergang in den Zustand vom vorhergehenden benachbarten Zustand des Schlüsselausdrucksmodells (beispielsweise des Summationswerts des dem Zustand des Schlüsselausdrucksmodells vorhergehenden Zustands) ist. Diese Operation kann als Weiterleitung auf der aktuellen mehrere Elemente aufweisenden Zustandsbewertungsschicht der Bewertungswerte von S1 bis SN , wie durch die Pfeile 629 dargestellt, von einem Zustand zum nächsten auf der Zustandsbewertungsschicht 624 (6) beschrieben werden.
  • Der Prozess 500 kann dann das „Feststellen, ob die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, unter Verwendung von Bewertungswerten vom aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor“ 510 aufweisen. Demgemäß kann der mehrere Elemente aufweisende Zustandsbewertungsvektor für den aktuellen Zeitpunkt dann beurteilt oder analysiert werden, um festzustellen, ob ein Schlüsselausdruck erkannt wurde. Bei einem Ansatz können hierbei die Bewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors in eine affine Schicht eines neuronalen Netzes und in einer Form eines NNA eingegeben werden. Jeder Bewertungswert kann gewichtet werden, und in einer Form werden dem Ablehnungsbewertungswert und dem letzten Bewertungswert die Gewichte -1 bzw. 1 gegeben. Diese können die einzigen beiden Eingaben in die Schicht sein. Andernfalls werden, wenn alle Bewertungswerte in die affine Schicht eingegeben sind, alle anderen Bewertungswerte mit dem Gewicht 0 versehen, so dass die mittleren Bewertungswerte (zwischen S0 und SN ) fallen gelassen werden. Es kann bei diesem Beispiel auch eine mit der Differenz zwischen S0 und SN zu vergleichende Schwelle mit einem Gewicht von -1 in die affine Schicht eingegeben werden. In einer Form wurde der Schlüsselausdruck durch den NNA erkannt, falls das Ergebnis positiv ist. Falls das Ergebnis negativ ist, wurde der Schlüsselausdruck nicht durch den NNA erkannt, oder die Vorzeichen könnten umgekehrt werden, wenn dies erwünscht ist. Andernfalls können die gleiche Kombination von S0 , SN und die Schwelle in einer Gleichung (nachstehend als Gleichung (1) bezeichnet) verwendet werden und durch einen Prozessor in der Art eines DSP, einer CPU oder eines anderen leistungsfähigen Prozessors ausgeführt werden. Alternativ kann die Beurteilung unter Verwendung einer geeigneten Technik oder geeigneter Techniken ausgeführt werden, beispielsweise durch Bestimmen eines logarithmischen Wahrscheinlichkeitsbewertungswerts auf der Grundlage des aktuellen Zustandsbewertungswerts für das Einzelzustands-Ablehnungsmodell und des endgültigen Zustandsbewertungswerts für das Mehrzustands-Schlüsselausdrucksmodell und Vergleichen des logarithmischen Wahrscheinlichkeitsbewertungswerts mit einer Schwelle. Es werden auch andere Verfahren erwogen.
  • Falls ein einziges Schlüsselausdrucksmodell bereitgestellt wird, können der aktuelle Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und ein endgültiger Zustandsbewertungswert für das Mehrzustands-Schlüsselausdrucksmodell beurteilt werden, um festzustellen, ob die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck entsprechend dem Mehrzustands-Schlüsselausdrucksmodell zugeordnet ist. Falls mehrere Schlüsselausdrucksmodelle bereitgestellt werden, können der eine oder die mehreren aktuellen Zustandsbewertungswerte für das eine oder die mehreren Einzelzustands-Ablehnungsmodelle und ein maximaler endgültiger Zustandsbewertungswert von den endgültigen Zustandsbewertungswerten für die jeweiligen Mehrzustands-Schlüsselausdrucksmodelle beurteilt werden. Ein einziges Ablehnungsmodell, das allen der mehreren Schlüsselausdrucksmodelle gemeinsam ist, kann verwendet werden, oder es können getrennte Ablehnungsmodelle für die jeweiligen Schlüsselausdrucksmodelle verwendet werden. Falls ein Schlüsselausdruck erkannt wird, kann ein Systemaufweckindikator oder ein Systembefehl bereitgestellt werden, um die Vorrichtung aufzuwecken, einen Vorrichtungsbefehl auszuführen oder dergleichen.
  • Wie vorstehend auch erwähnt wurde, können andere Alternativen und/oder Erweiterungen verwendet werden, einschließlich der Verwendung eines Blindzustands für die Schlüsselausdrucks-Endpunkterkennung und eines rekurrenten Boolingprozesses, der mit der Ausgabe des Decodierers zur Ausführung der Schlüsselausdrucks-Anfangspunkterkennung auf einem NNA beispielsweise an Stelle eines DSP verwendet werden kann. Auch kann eine integrierte auf einem neuronalen Netz beruhende Sprache/Keine-Sprache-Erkennung ausgeführt werden, während die Schlüsselausdruckserkennung ausgeführt wird. Hierbei können bei einem Beispiel Bewertungswerte von Ablehnungskategorien, wie Phonetiken, Sprache-Geräusch, Keine-Sprache-Geräusch und Stille in einen gepoolten Sprach-Bewertungswert und einen gepoolten Keine-Sprache-Bewertungswert gepoolt werden, die bei vektorisierten Operationen verwendet werden können, die jenen gleichen oder ähneln, die mit den schlüsselausdrucksbezogenen Vektoren verwendet werden, um zumindest einen endgültigen Sprache-Bewertungswert und zumindest einen endgültigen Keine-Sprache-Bewertungswert zu erzeugen. Diese beiden Bewertungswerte können beide verwendet werden, um festzustellen, ob Sprache in der Audioeingabe existiert. Die gepoolten Sprache- und Keine-Sprache-Bewertungswerte können die gleichen miteinander zu poolenden Bewertungswerte sein, um einen akustischen Ablehnungsbewertungswert für das Ablehnungsmodell am mehrere Elemente aufweisenden akustischen Bewertungsvektor für die Schlüsselausdruckserkennung zu bestimmen. Andere Einzelheiten werden nachstehend bereitgestellt.
  • Der Prozess 500 kann dann das „Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist“ 512 aufweisen. Die sich ergebenden Aktionen und Optionen wurden vorstehend bereits anhand der Situation 100 (1) und des Systems 200 (2) erörtert. Die Operationen können, wie erwähnt, wenn eine Sprache/Keine-Sprache-Erkennung verwendet wird, auch das Steuern der Puffergröße aufweisen, so dass, wenn Keine-Sprache erkannt wird, ein kleinerer Puffer verwendet wird, und, wenn Sprache erkannt wird, ein größerer Puffer verwendet wird. Ferner können Geräuschbewertungswerte von der Poolingoperation zum Steuern von Mikrofonen eines Mehrmikrofonsystems (oder -arrays) verwendet werden, so dass Mikrofone abhängig davon, wie viel Geräusche erkannt werden, ein- oder ausgeschaltet werden können. Die Einzelheiten von diesen werden nachstehend auch bereitgestellt.
  • Mit Bezug auf 6 sei bemerkt, dass ein Schlüsselausdrucksdecodierer 600 mit einem Modellaktualisierungs-Datenfluss (oder einer Modellaktualisierungs-Datenstruktur) 601 versehen ist, welcher im Wesentlichen oder ganz unter Verwendung neuronaler Netzalgorithmen und durch einen neuronalen Netzbeschleuniger ausgeführt werden kann. Eine akustische Bewertungseinheit 602 ähnlich der akustischen Bewertungseinheit 203 empfängt Merkmalsvektoren von einer Merkmalsextraktionseinheit 202, wie vorstehend erörtert, und verwendet dann ein tiefes neuronales Netz (DNN) 606 auf der Grundlage eines akustischen Modells 604, wie vorstehend beschrieben, zur Erzeugung eines oder mehrerer akustischer Bewertungswerte oder Ausgaben, welche Audiokategorien in der Art (sub-)phonetischer Schlüsselausdruckstöne, abgelehnter phonetischer Töne, Stille, gesprochener (Sprach-) Geräusche, Keine-Sprache-Geräusche und Stille repräsentieren. Die akustischen Bewertungsausgaben (beispielsweise Bewertungswerte 214), die dem Schlüsselausdrucksmodell 302 zugeordnet sind, werden geeignet von P1 - PN geordnet, um den Schlüsselausdrucksabschnitt 608 der Bewertungswerte 613 eines mehrere Elemente aufweisenden akustischen Bewertungsvektors 610 zu bilden, der dem akustischen Bewertungsvektor 401 gleicht oder ähnelt (4).
  • Auch ist das P0 -Element des mehrere Elemente aufweisenden akustischen Bewertungsvektors 610, wie vorstehend erwähnt, ähnlich dem Bewertungswert 411 am Vektor 401 ein aktueller akustischer Ablehnungsbewertungswert 611 des einzelnen Zustands 311 für das Einzelzustands-Ablehnungsmodell 301. In einer Form werden die akustischen Ablehnungsbewertungswerte ohne Bestimmung der Ablehnungskategorie für die einzelnen grundlegenden akustischen Bewertungswerte gepoolt und können alle Ablehnungsbewertungswerte für einen Zeitpunkt miteinander gepoolt werden, beispielsweise durch Max-Pooling oder ein anderes Poolingverfahren in der Art einer Mittelwertbildung, wie vorstehend anhand der Datenstruktur 400 erklärt. Demgemäß ist die Trennung in verschiedene Ablehnungskategorien für die Codierung der Schlüsselausdruckserkennung nicht immer notwendig.
  • Bei einer hier am Decodierer 600 dargestellten Alternative werden die verschiedenen Ablehnungskategorien jedoch bestimmt, und die grundlegenden akustischen Ablehnungsbewertungswerte werden der Kategorie nach unterteilt. Mit anderen Worten kann der Decodierer 600 eine Ablehnungs-Poolingeinheit 612 unterhalten, welche klassifizierte grundlegende akustische Ablehnungsbewertungswerte nach der Ablehnungskategorie gruppieren kann. Wie nachstehend erklärt wird, geschieht dies wie beschrieben zur Ausführung der Sprache/Keine-Sprache-Erkennung mit dem Decodierer 700. Diese Klassifikations- und Poolingoperationen können hier jedoch noch ausgeführt werden, selbst wenn keine Sprache/Keine-Sprache-Erkennung mit dem Decodierer 600 ausgeführt wird. Diese Unterteilung akustischer Ablehnungsbewertungswerte ermöglicht es dem System, die Option beizubehalten, eine integrierte Sprache/Keine-Sprache-Erkennung mit derselben Hardware in der Art eines Neuronalen Netzbeschleunigers, wodurch beide Optionen behandelt werden können, auszuführen. Die Sprache/Keine-Sprache-Erkennung kann bereitgestellt werden, wenn diese Erkennung als vorläufige Schlüsselausdruckserkennungsoperation erforderlich ist, oder für andere Anwendungen verwendet werden. Bei einem Beispiel kann ein solches System, das die Sprache/Keine-Sprache-Erkennungsoption bereitstellt, bei Systemen höherer Sicherheit besonders nützlich sein, die eine Sprechererkennung zusammen mit der Schlüsselausdruckserkennung bereitstellen, wobei bei der Implementierung der textabhängigen Sprechererkennung nicht die Sprache/Keine-Sprache-Erkennung ausgeführt wird, während die textunabhängige Sprechererkennung die Sprache/Keine-Sprache-Erkennung verwendet. Der vollständig integrierte Sprache/Keine-Sprache-Erkennungsprozess sowie der Grund für die Unterteilung der grundlegenden (oder neuronalen) akustischen Ablehnungsbewertungswerte in Kategorien werden nachstehend anhand der Datenstruktur 700 (7) erklärt.
  • Demgemäß stellt der Decodierer 600 hier eine Ablehnungs-Poolingeinheit 612 bereit, welche die grundlegenden akustischen Ablehnungsbewertungswerte (von der akustischen Bewertungseinheit 602 und von den Bögen des einzelnen Ablehnungszustands 311 empfangen) in verschiedene Kategorien unterteilt, die abhängig von der Kategorie gemeinsam zu poolen sind, wobei dieses auf der Kategorie beruhende Ablehnungsbewertungswert-Pooling selbst dann ausgeführt werden kann, wenn eine Sprache/Keine-Sprache-Erkennung nicht bereitgestellt wird.
  • Bei einem Ansatz stellt jeder Zeitpunkt vier akustische Ablehnungsbewertungswerte (auch als grundlegende akustische Ablehnungsbewertungswerte oder Ablehnungsneuronen bezeichnet) bereit und werden die grundlegenden akustischen Bewertungswerte in getrennte zu poolende Kategorien unterteilt, welche hier in getrennten Pooling-Zeilen dargestellt sind, wobei jeweils eine Zeile für Stille (RS ), nicht gesprochene Geräusche (RNSN ), gesprochene Geräusche (RSN) und abgelehnte phonetische Einträge (RP ) vorgesehen ist. Die Ablehnungs-Poolingeinheit 612 oder die akustische Bewertungseinheit ist in der Lage, die akustischen Ablehnungsbewertungswerte an erster Stelle durch die Verwendung bekannter Verfahren zu kategorisieren, welche beispielsweise die Formen der Signale analysieren.
  • Jede Zeile in der Ablehnungs-Poolingeinheit 612 wird durch Zuweisen mehrerer akustischer Ablehnungsbewertungswerte vom aktuellen Zeitpunkt zur korrekten Zeile nach Kategorie zur Bildung mehrerer Bewertungswerte in jeder Kategoriezeile, einschließlich RS0 ...RSL für Stille, RNSN0 ...RNSNT für nicht gesprochene Geräusche, RSN0 ...RSNT für gesprochene Geräusche und RP0 ...RPM für abgelehnte Phonetiken, gebildet. In einer Form wird ein Max-Pooling an jeder Zeile ausgeführt, um einen maximalen akustischen Ablehnungsbewertungswert (RPPL, RNSNPL, RSNPL und RSPL) 616 für jede Kategorie zu erhalten, es könnten stattdessen jedoch auch andere Poolingtechniken verwendet werden, wie eine Mittelwertbildung oder andere Operationen. Das Kategorie-Pooling grundlegender akustischer Bewertungswerte in einen gepoolten Kategoriebewertungswert 616 für jede Kategorie kann durch eine erste Poolingeinheit 614 ausgeführt werden, und anschließend können die vier gepoolten Kategoriebewertungswerte 616 alle durch eine zweite Poolingeinheit 618 gemeinsam gepoolt werden, um einen einzigen gepoolten akustischen Ablehnungsbewertungswert P0 611 zu bilden. Der mehrere Elemente aufweisende akustische Bewertungsvektor 610 mit akustischen Bewertungswerten P0 - PN überspannt dann eine lineare neuronale Netzschicht mit Elementen mit einem Gewicht w = 1 und einer Vorbeeinflussung b = 0, wodurch die phonetischen DNN-Bewertungswerte von der akustischen Bewertungseinheit 602 in die richtige Reihenfolge im akustischen Bewertungsvektor 610 gebracht werden, so dass der akustische Bewertungsvektor 610 die Schlüsselausdrucksausgaben in der richtigen Reihenfolge repräsentiert. Die Elemente des akustischen Bewertungsvektors 610 können dann verwendet werden, um seine Werte durch Operationen 622 zu einer rekurrenten Schicht 650 mit einer linearen Aktivierungsfunktion y = wx + b weiterzuleiten, wenngleich auch andere Anordnungen verwendet werden könnten, falls dies erwünscht ist.
  • Als nächstes wird die rekurrente neuronale Netzschicht 650 eingerichtet und betrieben. Die Operationen der rekurrenten neuronalen Netzschicht 650 gleichen oder ähneln den durch die Verwendung der Datenstruktur 400 ausgeführten vektorisierten Operationen (4). Insbesondere werden die vektorisierten Operationen der Datenstruktur 400 durch die rekurrente Schicht 650 repräsentiert und können durch einen NNA ausgeführt werden. Die Schicht 650 weist einen aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor 624 auf oder bildet diese, welcher Zustandsbewertungswerte S0 bis SN (627), die akustischen Bewertungswerten vom Schlüsselausdrucksmodell 302 entsprechen, und einen einzelnen Ablehnungszustands-Bewertungswert 620, der dem Ablehnungsmodell 301 entspricht, aufweist. Die Operationspfeile 622 repräsentieren die elementweisen Operationen der Datenstruktur 600, welche der Datenstruktur 400 (4) gleicht oder ähnelt. Ebenso repräsentieren die rekurrenten Pfeile 626 die Verwendung der aktuellen Zustandsbewertungswerte im aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor 624 als vorhergehende Bewertungswerte zur Bildung eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors, der mit dem mehrere Elemente aufweisenden akustischen Bewertungsvektor 610 in rekurrenter Weise zu summieren oder auf andere Weise zu kombinieren ist, um einen Zwischenbewertungsvektor (oder Summationsvektor) zu bilden, wie mit den Vektoren 401 und 402 erklärt und als Vektor 404 in der Datenstruktur 400 dargestellt ist. Schließlich repräsentieren Übergangspfeile 629 von Zustand zu Zustand am mehrere Elemente aufweisenden Zustandsbewertungsvektor 624 einen Weiterleitungsvorgang und können in einer Form durch Pooling auch wie bei den Poolingoperationen 406 der Datenstruktur 400 ausgeführt werden, wobei es sich um ein Max-Pooling benachbarter Paare von Zwischenbewertungswerten des Zwischenbewertungsvektors handeln kann.
  • Die Datenstruktur 600 weist diese neuronalen Netzstrukturen der rekurrenten Schicht 626 auf, so dass ein NNA die Schlüsselausdruckserkennung ohne die Verwendung eines DSP ausführen kann, der bei NN-Berechnungen ineffizienter ist. Ein Beispiel besteht darin, die Rekurrenz durch Bildung und Verwendung eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors zu implementieren, die Elemente (oder Bewertungswerte) am aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor können als Vorbeeinflussungswerte behandelt werden, beispielsweise mit der linearen Aktivierungsfunktion für ein neuronales Netz, die vorstehend erwähnt wurde, so dass ein NNA die Vorbeeinflussungswerte zu den getrennten Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors addieren kann. Andere Einzelheiten werden nachstehend erklärt.
  • Sobald der aktuelle mehrere Elemente aufweisende Zustandsbewertungsvektor 624 erzeugt wurde, können die Elemente auf dem Vektor bei einer endgültigen Entscheidung verwendet werden, ob ein Schlüsselausdruck in der analysierten Audioeingabe vorhanden ist. Bei einer Form können, wie erwähnt, dass Element S0 , welches das Ablehnungsmodell repräsentiert, und eines der Elemente, welche das Schlüsselausdrucksmodell repräsentieren, wie der letzte Bewertungswert SN , verwendet werden, um einen endgültigen Bewertungswert Sendgültig zu bestimmen, wie vorstehend bereits für die Datenstruktur 400 beschrieben wurde. Alternativ kann der Decodierer 600 für die Zustandsbewertungswerte, welche hier die rekurrente Schicht 650 und den aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor 624 bilden, eine Gleichung verwenden, welche die Differenz zwischen dem Ablehnungsbewertungswert und dem letzten Bewertungswert mit einer Schwelle vergleicht, um den endgültigen Bewertungswert Sendgültig 628 folgendermaßen zu erhalten: S endgültig = ( S 0 * ( 1 ) + S N * 1 ) thr
    Figure DE102019122180A1_0002
    wobei thr ein Schwellenwert ist, der durch Heuristik bestimmt werden kann, um in einer Form die Schwellenwerte für spezifische Anforderungen oder Anmeldungen festzulegen. Wenn das Ergebnis positiv ist, existiert der Schlüsselausdruck in der Audioeingabe, wenn es jedoch negativ ist, existiert kein Schlüsselausdruck in der Audioeingabe. Durch Subtrahieren von S0 von SN und Ignorieren der mittleren Bewertungswerte S1 bis SN-1 sind die mittleren Bewertungswerte Platzhalter, die für die Weiterleitung durch ein S-Array zu verwenden sind. Demgemäß ist der letzte Zustand S_N - der Ablehnungszustand S_0 dann buchstäblich der Bewertungswert, der erreicht werden würde, wenn der Schlüsselausdruck minus dem Ton vor dem Schlüsselausdruck ausgesprochen werden würde.
  • Wenngleich die Gleichung durch einen DSP oder einen anderen solchen Prozessor ausgeführt werden kann, kann der NNA diese Operation stattdessen durch Behandeln der endgültigen Bestimmung als affine neuronale Netzschicht (vollständig verbundene Schicht) mit einem einzigen Knoten (einer einzigen Elementschicht) ausführen. Diese affine Schicht arbeitet mit einer linearen Aktivierungsfunktion und verwendet die Gewichte zur Zuweisung eines gewünschten Vorzeichens zu den Variablen in Gleichung (1) in der Art einer -1 für das Ablehnungselement S0 und einer +1 für das Schlüsselausdruckselement SN . Bei einer Option wird die Schwelle thr auch als Eingabe in die affine Schicht behandelt und wird ihr auch ein Gewicht von -1 gegeben. Diese affine Schichtanordnung weist nur drei Eingaben (S0 , SN und thr) auf. Die mittleren Bewertungswerte können jedoch auch als Eingaben zur Bildung einer vollständig verbundenen Schicht verwendet werden, wobei die mittleren Bewertungswerte S1 bis SN-1 des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors 624 herausfallen, indem jedem von diesen mittleren Bewertungswerten ein Gewicht von Null gegeben wird. Sobald festgestellt wurde, ob ein Schlüsselausdruck in der Audioeingabe vorhanden ist oder nicht, wird ein Indikator der Entscheidung anderen Anwendungen bereitgestellt, wie vorstehend beschrieben. Es ist zu verstehen, dass die Vorzeichen falls gewünscht auch umgekehrt werden könnten (so dass ein negativer endgültiger Bewertungswert angibt, dass ein Schlüsselausdruck vorhanden ist).
  • Bei anderen Alternativen wird ein Blindzustand 630 bereitgestellt, um instantan eine Erkennung des Endes des Schlüsselausdrucks auszuführen. Der Blindzustand 630 kann durch Bereitstellen eines akustischen Bewertungswerts PN+1 632 bzw. eines Zustandsbewertungswerts SN+1 634 repräsentiert oder gebildet werden, wodurch jeweilige Enden der Vektoren 610 und 624 gebildet werden. Insbesondere wird P0 zu PN+1 623 kopiert und modelliert der zusätzliche Zustand SN+1 634 beliebige Sprache, Geräusche oder Stille nach dem Schlüsselausdruck. Die Ausgabe des Zustands SN+1 634 wird einer zusätzlichen affinen Endpunktschicht (Endp) 636 bereitgestellt. Die Endpunktschicht 636 kann zwei Eingaben empfangen, nämlich einen Ausgangsbewertungswert SN mit einem Gewicht von 1 und einen Ausgangsbewertungswert SN+1 mit einem Gewicht -1. Der Endpunkt der Schlüsselausdrucks wird als erkannt betrachtet, wenn die Ausgabe von Endp 636 negativ wird (oder positiv, wenn die Vorzeichen umgekehrt werden). Es sei auch bemerkt, dass ein Schwellenwert eine zusätzliche Eingabe mit einem geeigneten Gewicht von -1 oder 1 sein kann, wenn ein Vergleich mit einer Schwelle erwünscht ist.
  • Mit Bezug auf 7 sei bemerkt, dass ein Schlüsselausdrucksdecodierer 700 bereitgestellt ist, bei dem die Schlüsselausdruckserkennung (und Schlüsselausdrucks-Endpunkterkennung, falls dies gewünscht ist, wobei dies jedoch nicht dargestellt ist) jener, die bereits anhand des Decodierers 600 beschrieben wurde, gleicht oder ähnelt, so dass die Beschreibung hier nicht wiederholt zu werden braucht. Der Schlüsselausdrucksdecodierer 700 ist hier jedoch auch dafür eingerichtet, Sprache und Keine-Sprache instantan oder parallel mit der Schlüsselausdruckserkennung und durch die Verwendung eines Neuronalen Netzbeschleunigers an Stelle eines DSP zu erkennen. In diesem Fall können gepoolte Keine-Sprache-Geräusch-Bewertungswerte und Stillebewertungswerte verwendet werden, um Keine-Sprache zu verfolgen, während gepoolte Bewertungswerte für gesprochene Geräusche und abgelehnte phonetische Bewertungswerte zur Erkennung von Sprache verwendet werden. Insbesondere kann eine akustische Ablehnungs-Poolingeinheit 712 bereitgestellt werden, welche akustische Ablehnungsbewertungswerte in Kategorien umordnet und die akustischen Ablehnungsbewertungswerte der Kategorie nach poolt, wie vorstehend bereits anhand der Ablehnungs-Poolingeinheit 612 (6) beschrieben wurde. Beispielsweise poolt eine Poolingeinheit 714 getrennt jede Zeile jeder Kategorie akustischer Ablehnungsbewertungswerte in einen nach einer Kategorie gepoolten Bewertungswert für jede Kategorie (RPPL, RNSNPL, RSNPL und RSPL) 716. Wie vorstehend erwähnt wurde, wird Max-Pooling verwendet, es können stattdessen jedoch auch andere Techniken verwendet werden, wie Durchschnitts-Pooling oder andere Operationen.
  • Anders als der Decodierer 600 poolt der Decodierer 700 dann jedoch die nach der akustischen Kategorie gepoolten Bewertungswerte durch Sprache gegenüber Keine-Sprache. Demgemäß werden die nach der Kategorie gepoolten Bewertungswerte 716 für abgelehnte Phonetiken RPPL und gesprochene Geräusche RSNPL zusammen gepoolt, um einen gepoolten Sprache-Bewertungswert I0 durch eine Poolingeinheit 718 zu bilden, während die nach der Kategorie gepoolten Bewertungswerte 716 von Stille RSPL und nicht gesprochenen Geräuschen RNSNPL durch eine Poolingeinheit 720 zusammen gepoolt werden, um einen gepoolten Keine-Sprache-Bewertungswert I1 zu bilden. Bei einer Alternative werden die Sprache- und Keine-Sprache-Bewertungswerte I0 und I1 zusammen gepoolt, um den akustischen Ablehnungsbewertungswerte P0 zu bilden, der über die Sprache/Keine-Sprache-Erkennung hinaus für die Schlüsselausdruckserkennung zu verwenden ist.
  • Für die Sprache/Keine-Sprache-Erkennung werden die Ausgaben (oder der gepoolte Sprache-Bewertungswert und der gepoolte Keine-Sprache-Bewertungswert) einer auf einem neuronalen Netz beruhenden Sprache/Keine-Sprache-Erkennungs-Datenstruktur oder -einheit 710 bereitgestellt. Insbesondere werden die Ausgaben umgeordnet, um eine akustische Ablehnungsbewertungsschicht Q 730 des neuronalen Netzes mit Bewertungswerten Q0 bis QN zu bilden, die dann zu einer rekursiven neuronalen Netzschicht T (oder einer aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsschicht) 732 weitergeleitet werden. Dies geschieht durch Operationen 734 und die rekurrente Schicht T 732, die ebenso ausgeführt werden wie bei den Schlüsselausdruckserkennungsschichten 701 und 705 (oder 610 und 624). Demgemäß umfassen diese Operationen eine elementweise Summation (oder andere Kombination) der Elemente der akustischen Ablehnungsbewertungsschicht Q 730 mit den rekursiven Elementen einer vorhergehenden mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsschicht 732 und eine Weiterleitungsoperation zur Bildung einer aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsschicht 732. Dies ermöglicht es dem Decodierer 700, die rekursive Schicht S 705 auf einmal mit der rekursiven Schicht T 732 zu einer großen rekursiven Schicht zur Eingabe in ein neuronales Netz zu kombinieren, abgesehen davon, dass keine Übergänge zwischen der rekursiven Schicht S 705 und der rekursiven Schicht T 732 (beispielsweise kein Übergang zwischen den Elementen TN und S0 ) geschehen, indem die beiden getrennten rekursiven Schichten getrennt modelliert werden.
  • Die akustische Ablehnungsbewertungsschicht Q 730 wird so eingerichtet, dass der gepoolte Keine-Sprache-Bewertungswert I1 an den Enden der Schicht Q an Bewertungswertpositionen Q0 und QN positioniert wird, während der gepoolte Sprache-Bewertungswert I0 an allen Zwischenbewertungswertpositionen Q1 bis QN-1 angeordnet wird. Dies bildet zwei Übergangsstellen, nämlich eine erste Übergangsstelle 736, wo Übergänge von Keine-Sprache zu Sprache erkannt werden können, und eine zweite Übergangsstelle 738, wo Übergänge von Sprache zu Keine-Sprache erkannt werden können. An der mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsschicht 732 werden hierdurch die Übergänge von Keine-Sprache zu Sprache (von T0 zu T1 ) und von Sprache zu Keine-Sprache (von TN-1 zu TN ) mit einem ähnlichen Ansatz wie von der Endpunkterkennung bereitgestellt verfolgt. Demgemäß kann die Ablehnungseinheit 710, um eine endgültige Feststellung zu einem aktuellen Zeitpunkt vorzunehmen, die endgültige Bestimmung von Sprache oder Keine-Sprache als affine Schicht verwirklichen, wobei die beiden Bewertungswerte (T0 zu T1 ) oder (TN-1 zu TN ) zwei Eingaben in die affine Schicht sind, wobei eine ein Gewicht von 1 und die andere ein Gewicht von -1 aufweist, und dann einfach feststellen, ob einer der endgültigen Sprach- oder Keine-Sprache-Bewertungswerte 740 oder 742 positiv (oder negativ) ist. In diesem Fall kann eine Schwelle eine zusätzliche Eingabe mit dem geeigneten Gewicht von -1 oder 1 sein. Andere Wege, um dies festzustellen, könnten darin bestehen, die Differenz zwischen den Bewertungswerten T0 und T1 anhand eines endgültigen Sprache-Bewertungswerts, der mit einer Schwelle verglichen werden kann, zu bestimmen, während die Differenz zwischen TN-1 und TN von einem endgültigen Keine-Sprache-Bewertungswert mit einer Schwelle verglichen werden kann. Sobald eine Schwelle erreicht wird, wurden die Sprache oder Keine-Sprache erkannt. Andere Verfahren, um die endgültige Feststellung von Sprache und/oder Keine-Sprache vorzunehmen, könnten auch verwendet werden. Es ist auch zu verstehen, dass, wenngleich die Schichten Q und T mit fünf Zuständen dargestellt sind, viele andere Mehrzahlen von Zuständen verwendet werden könnten, so dass noch lange Sprachdauern auf einem einzigen Vektor und mit einer gewünschten bestimmten Zielsprachlänge modelliert werden können.
  • Um nun zum Problem der Erkennung mehrerer Schlüsselausdrücke zu kommen, und wie hier erörtert und in 3 dargestellt ist, kann bei einigen Implementationen ein einzelnes Schlüsselausdrucksmodell 302 implementiert werden (beispielsweise für einen einzelnen Schlüsselausdruck). Bei anderen Implementationen können mehrere Schlüsselausdrucksmodelle implementiert werden (die beispielsweise jeweils einem anderen Schlüsselausdruck oder einer Variation desselben Schlüsselausdrucks oder beiden zugeordnet sind). Beispielsweise kann jedes von mehreren Schlüsselausdrucksmodellen dem Ablehnungsmodell 301 folgen und mit dem Ablehnungsmodell 301 analog damit, wie das Schlüsselausdrucksmodell 302 durch den Übergang 313 mit dem Ablehnungsmodell 301 verbunden ist, verbunden werden. Bei einigen Implementationen kann jedes der mehreren Schlüsselausdrucksmodelle einer getrennten Instanz des Ablehnungsmodells 301 zugeordnet sein. Ferner kann, wie mit Bezug auf das Schlüsselausdrucksmodell 302 erörtert, jedes der mehreren Schlüsselausdrucksmodelle mehrere Zustände (oder Knoten) aufweisen, die durch Übergänge verbunden sind, und kann jeder der Zustände eine oder mehrere Selbstschleifen aufweisen oder dadurch aktualisiert werden, so dass die Zustände auf der Grundlage eines Übergangs von einem vorhergehenden Zustand im Schlüsselausdrucksmodell (oder des Übergangs vom Ablehnungsmodell 301) aktualisiert werden können. Wie erörtert, kann jede Selbstschleife einer Ausgabe (beispielsweise einem akustischen Bewertungswert) vom akustischen Bewertungsmodul 203 zugeordnet werden.
  • Mit Bezug auf 8 sei bemerkt, dass ein Schlüsselausdrucksdecodierer 800 mit integrierter Sprache/Keine-Sprache-Erkennung ähnlich dem Decodierer 700 dargestellt ist, welcher dazu dient, eine Erkennung mehrerer Schlüsselausdrücke wie mit dem Decodierer 300 erörtert auszuführen. Der Decodierer 800 ist dafür eingerichtet, zwei Schlüsselausdrücke zu decodieren, wobei eine auf einem neuronalen Netz beruhende Schlüsselausdruckstruktur oder - einheit 808 ähnlich jenen am Decodierer 600 oder 700 arbeitet, abgesehen davon, dass hier jeder Schlüsselausdruck einen getrennten Deskriptor (oder eine getrennte Strukturschicht) aufweist, wobei ein Deskriptor 830 in einer durchgezogenen Linie dargestellt ist und der andere Deskriptor 840 in einer gestrichelten Linie dargestellt ist, so dass sich ein unabhängiger endgültiger Bewertungswert für jeden Deskriptor ergibt. Jeder Schlüsselausdruck weist hier einen parallelen Deskriptor auf, so dass eine beliebige Mehrzahl von Schlüsselausdrücken verwendet werden kann und nicht auf zwei beschränkt ist. Für den Decodierer 800, bei dem die Schlüsselausdrücke parallele Deskriptoren aufweisen, teilen sich die jeweiligen Deskriptoren den gleichen akustischen Ablehnungsbewertungswert P0 842 und können den gleichen Ergebnissen der Sprache/Keine-Sprache-Erkennungsstruktur zugeordnet werden. Es ist jedoch zu verstehen, dass kein Zustandsbewertungsübergang vom letzten Zustandsbewertungswert eines Deskriptors (für einen Schlüsselausdruck) zum ersten Zustandsbewertungswert eines anderen Deskriptors (oder eines anderen Schlüsselausdrucks) bereitgestellt wird, um die Trennung und Unabhängigkeit der Analyse für einen individuellen Schlüsselausdruck und in einer Form alle Schlüsselausdrücke aufrechtzuerhalten. Die endgültige Schwellenentscheidung kann als affine Schicht für jeden der Deskriptoren implementiert werden, wobei entweder nur die beiden S0 - und SN -Werte die Eingaben sind oder das gesamte rekursive Netz mit den mittleren Bewertungswerten jedes Deskriptors mit 0-Gewichten eingegeben wird. Dies stellt einen unabhängigen endgültigen Bewertungswert 828 und 844 für jeden Deskriptor bereit. Diese Erkennung mehrerer Schlüsselausdrücke wird durch einen NNA analysiert, indem ein Deskriptor zur Zeit in die lokalen Eingänge des NNA eingegeben wird, indem zwischen den Deskriptoren geschaltet wird und ein Deskriptor berechnet wird und dann die anderen berechnet werden.
  • Mit Bezug auf 9 sei bemerkt, dass als andere Alternative ein Schlüsselausdrucksdecodierer 900 eine auf einem neuronalen Netz beruhende Schlüsselausdruckserkennungs-Datenstruktur oder -einheit 902 mit Schichten 918 und 922 mit Operationen 920 zur Erkennung mehrerer Schlüsselausdrücke und mit vorstehend bereits für die Decodierer 600, 700 oder 800 beschriebenen neuronalen Netzoperationen zeigt. Hier werden mehrere individuelle Schlüsselausdrücke, die jeweils eine Schlüsselausdruckssequenz 904 oder 906 aufweisen, durch Verketten der Schlüsselausdruckssequenzen 904 und 906 (oder mehr Sequenzen) zu einem einzigen Deskriptor 903 erkannt. Dementsprechend hat die rekurrente Schicht 922 die mit den Zuständen S0 bis SN dargestellte Schlüsselausdruckssequenz 904, während die Schlüsselausdruckssequenz 906 mit den Zuständen SN+1 bis Sz dargestellt ist. Jede Schlüsselausdruckssequenz teilt sich noch den gleichen akustischen Ablehnungsbewertungswert P0 910, der zum von einer Ablehnungs-Poolingeinheit 918 ähnlich den vorstehend beschriebenen Poolingeinheiten erhaltenen akustischen Bewertungswert PN+1 914 wird. Auch werden, wie für den Decodierer 800 mit mehreren parallelen Schlüsselausdruckssequenzen in einem Deskriptor erwähnt, die Schlüsselausdruckssequenzen 904 und 906 hier in der gleichen Weise getrennt gehalten, indem Zustandsbewertungsübergänge von einer Schlüsselausdruckssequenz zu einer anderen Schlüsselausdruckssequenz verhindert werden. Demgemäß existiert kein Übergang von SN zu SN+1 . Daher kann jede Schlüsselausdruckssequenz 904 oder 906 einen endgültigen Bewertungswert Sendgültig-1 912 und Sendgüitig-2 916 auf der Grundlage ihrer eigenen Anfangs- und Endzustände bestimmen (Zustandsbewertungswerte S0 und SN für die Sequenz 904 und Bewertungswerte SN+1 und SZ für die Sequenz 906), die in eine affine Schicht eingegeben werden, wobei die mittleren Bewertungswerte für jede Sequenz im Deskriptor Gewichte von 0 aufweisen, wenn alle Bewertungswerte in die affine Schicht für einen einzigen Deskriptor eingegeben werden. Die Verkettung von Schlüsselausdruckssequenzen in einem einzigen Deskriptor unterscheidet sich von der parallelen Behandlung von Deskriptoren, weil in diesem Fall wenigstens ein Deskriptor mehrere Schlüsselausdruckssequenzen aufweist, die zusammen als ein einziger großer Vektor in die Eingänge des NNA eingegeben werden können. Die Trennung des Übergangs von einer Sequenz zur anderen kann durch die NNA-Algorithmen ausgeführt werden, um getrennte endgültige Bewertungswerte bereitzustellen.
  • Mit Bezug auf 10 sei bemerkt, dass ein auf Hardware beruhender neuronaler Netzbeschleuniger (NNA) 1000 die vorstehend beschriebenen Schlüsselausdrucksdecodierer implementieren kann. Der NNA 1000 kann nur einige grundlegende Funktionen implementieren, nämlich die Addition von Vektoren, Multiplikation zwischen Vektoren, Skalarprodukt, Maximalwert und Neuronenaktivierung zur Ausführung der Schlüsselausdruckserkennung, Sprache/Keine-Sprache-Erkennung und andere hier beschriebene Aufgaben. Solche auf einem neuronalen Netz beruhenden Verarbeitungsstrukturen in der Art eines NNA können die Verarbeitungszeit und den Stromverbrauch für die Berechnung endgültiger Ergebnisse erheblich verringern.
  • Der NNA 1000 kann eine Eingabe von einem akustischen Bewertungsmerkmalsvektor (FV) eines neuronalen Netzes im Zeitschritt t 1002 empfangen und die eingegebenen Daten in einen Puffer geben. Die eingegebenen Daten für die Schlüsselausdrucksdecodierung sind hier als Vektor 1004 akustischer Bewertungswerte Ai(t) dargestellt (wobei i = 0...K ist), wodurch Ausgaben von einer akustischen Bewertungseinheit in Form eines DNN-Netzes repräsentiert werden. Weil die Bewertungswerte Ai(t) nicht notwendigerweise in der richtigen Reihenfolge des Schlüsselausdrucks für den akustischen Bewertungsvektor 1012 sind und die Ablehnungseinheit nicht weiß, welche Bewertungswerte Ablehnungsbewertungswerte sind, kann das System den NNA verwenden, um Ablehnungsbewertungswerte durch Abbilden akustischer Bewertungswerte Ai(t) auf Ablehnungsbewertungswerte Ri(t) unter Verwendung von 0- und 1-Werten oder mit anderen Worten durch Verwendung einer affinen Schicht mit Gewichten von 0 zum Fallenlassen eines Nicht-Ablehnungsbewertungswerts oder von 1 zur Aufrechterhaltung eines Ablehnungsbewertungswerts zu einer Ablehnungseinheit (oder Ablehnungs-Poolingeinheit) 1006 zu kopieren. Der akustische Ablehnungsbewertungswert P0(t), der das Ablehnungsmodell repräsentiert, wird als Maximum (oder ein anderer gepoolter Wert) des Satzes von grundlegenden Ablehnungskategorie-Bewertungswertausgaben (Stille (RS ), Keine-Sprache-Geräusch (RNSN ), gesprochenes Geräusch (RSN ) und abgelehnte phonetische Einträge für die Ablehnung (RP ), wie vorstehend beschrieben) erzeugt. Dieser Prozess kann beispielsweise auf einem NNA unter Verwendung von Schichten mit MAX-POOL-Funktionen ausgeführt werden, und der resultierende P0(t)-Bewertungswert 1010 wird in einen Vektor Pi 1012 einer akustischen Schicht (oder späteren Schicht) gegeben.
  • Werte von Knoten, welche den Schlüsselausdruck repräsentieren, werden unter Verwendung einer linearen affinen Schicht einer Schlüsselausdrucks-Spracheinheit 1008 und durch Abbilden akustischer Bewertungswerte Ai(t) auf akustische Schlüsselausdrucks-Bewertungswerte Pi(t) unter Verwendung von 0- und 1-Werten, wie vorstehend für die Ablehnungsbewertungswerte erklärt, kopiert und zum Vektor P1 - PN (als Vektor Pi 1012 bezeichnet) umgeordnet, abgesehen davon, dass hier aufrechtzuerhaltenden Schlüsselausdrucks-Sprache-Bewertungswerten ein Gewicht 1 gegeben wird und fallen zu lassenden Nicht-Schlüsselausdrucks-Bewertungswerten ein Gewicht 0 gegeben wird.
  • Eine affine Schicht 1014 verwendet dann einen Vektor Si 1020 als Vorbeeinflussungsschicht (VORBEEINFLUSSUNG 1026), die zum Vektor Pi 1012 addiert wird, wie durch eine Summationseinheit 1016 dargestellt ist. Die Anfangswerte des Si -Vektors 1020 sind null. Bei einem Ansatz kann eine Schwelle für die Schlüsselausdruckserkennung als zusätzliche Einheit 1022 addiert werden und wird über die Berechnungen konstant gehalten (wenngleich stattdessen eine veränderliche Schwelle verwendet werden könnte). Die rekurrente Operation wird als Addition der VORBEEINFLUSSUNG 1026 durch Betätigung einer AFFINEN (AFFINEN DIAGONALEN) Schicht ausgeführt, wobei eine Gewichtsmatrix eine 1-D-Matrix mit einem Element pro Zeile der Matrix sein kann. Die Weiterleitung des Bewertungswerts wird dann als MAX-POOL-2xl-Funktion 1018 verwirklicht, die an einem Vektor 1016 ausgeführt wird, wobei es sich um die Summe von Pi und Si handelt: { MAX POOL ( P N 1 ( t ) + S N 1 ( t ) , P N ( t ) + S N ( t ) ) , MAX POOL ( P N 2 ( t ) + S N 2 ( t ) , P N 1 ( t ) + S N 1 ( t ) ) , MAX POOL ( P 1 ( t ) + S 1 ( t ) , P 2 ( t ) + S 2 ( t ) ) , MAX POOL ( P 0 ( t ) + S 0 ( t ) , P 1 ( t ) + S 1 ( t ) ) , P 0 ( t ) + S 0 ( t ) }
    Figure DE102019122180A1_0003
    Es sei bemerkt, dass MAX POOL in einer Form zuerst auf das Ende des Si -Vektors 1020 (ohne Einschluss des Schwellenelements 1022) angewendet wird und paarweise entgegen der Elementnummerierung in der Si -Vektoreinheit 1020 mit überlappenden Elementpaaren berechnet wird, bis S1 -Operationen erreicht wurden. Ein endgültiger Bewertungswert kann dann nach der folgenden Formel berechnet werden: S ENDGÜLTIG = S 0 * ( 1 ) + S N * ( 1 ) + Schwellenwert* ( 1 )
    Figure DE102019122180A1_0004
    wobei eine AFFINE Schicht 1028 verwendet wird, bei der die Gewichte für die Knoten S1 - SN auf 0 gelegt sind, wie in der vorstehend erwähnten Gleichung (2). Ein positiver Wert des SENDGÜLTIG-1030-Knotens gibt an, dass ein Schlüsselausdruck erkannt wurde. Natürlich können die Vorzeichen gewechselt werden, wenn ein negatives Ergebnis erwünscht ist.
  • Der NNA 1000 kann wie bei jedem hier erwähnten NNA lokale Puffer für jeden Eingabetyp einschließlich des Dateneingabepuffers (der Bewertungswerte), eines Gewichtspuffers und eines Vorbeeinflussungspuffers aufweisen. Diese Komponenten werden unter anderen auf dem System 1600 (16) bereitgestellt.
  • Für die Unterstützung mehrerer Schlüsselausdrucke können die spätere Schicht Pi 1012 und der Vorbeeinflussungsvektor S; 1020 durch Vektorerweiterung durch die Decodierer 900 (9) oder durch getrennte Schichtdeskriptoren beispielsweise mit den Decodierern 800 (8) modifiziert werden. Die Bewertung mehrerer Schlüsselausdrücke bleibt dann die gleiche wie vorstehend mit Bezug auf die Erkennung einzelner Schlüsselausdrücke beschrieben wurde, abgesehen davon, dass nun größere Schichten und kein Bewertungsübergang zwischen benachbarten Zustandsbewertungswerten durch Pooling in einem S-Array auftreten, wenn die benachbarten Zustandsbewertungswerte von verschiedenen Schlüsselausdrucksdeskriptoren herrühren, wie vorstehend anhand der Decodierer 800 und 900 beschrieben.
  • Mit Bezug auf 11 sei bemerkt, dass ein neuronaler Netzbeschleuniger (NNA) 1100 bereitgestellt ist, um die vorstehend beschriebene Sprache/Keine-Sprache-Erkennung zu implementieren. Die Eingangsdaten in den NNA 1100, der als Sprache-/Keine-Sprache-Klassifizierer wirkt, sind ein akustischer Bewertungsvektor Ai(t) (i = 0...K) 1104, der akustische Bewertungsausgaben von einer Einheit 1102 für akustische Bewertungsmerkmalsvektoren (FV) eines neuronalen Netzes repräsentiert, wodurch eine Eingabe bei Zeitschritten t bereitgestellt wird. Die Klassifizierung der akustischen Ablehnungsbewertungswerte entspricht der vorstehend beschriebenen. Eine Spracheinheit (oder Sprachablehnungs-Poolingeinheit) 1106 kopiert abgelehnte sprachbezogene Bewertungswerte vom Vektor A 1104 und bildet die akustischen Ablehnungsbewertungswerte der Kategorie nach ab, so dass sprachbezogene akustische Bewertungswerte Ai(t) entweder auf Sprache-Geräusch-Bewertungswerte (RSN0(t) bis RSNK(t)) oder abgelehnte phonetische Einheiten (RP0(t) bis RPL(t)) abgebildet werden, während die Keine-Sprache-Einheit 1108 die nicht auf Sprache bezogenen akustischen Ablehnungsbewertungswerte Ai(t) unter Verwendung von Oen und len wie vorstehend beschrieben entweder auf Keine-Sprache-Geräusch-Bewertungswerte (RNSN0(t) bis RNSNM(t)) oder Stille (R S0(t) bis RSK(t)) abbildet. Diese grundlegenden akustischen Ablehnungsbewertungswerte werden dann gepoolt, beispielsweise durch eine Max-Pool- oder eine andere Operation gepoolt, um einen Kategoriebewertungswert für jede Kategorie und dann einen einzelnen gepoolten Sprache-Bewertungswert I0(t) und einen einzelnen gepoolten Keine-Sprache-Bewertungswert I1(t) zu bilden, wie vorstehend beschrieben.
  • Die nächsten neuronalen Netzoperationen können dann ähnlich unter Verwendung neuronaler Netzschichten mit MAX-POOL-Funktionen durch den NNA ausgeführt werden. Beispielsweise wird der Sprache-gepoolte Bewertungswert I0 dann zu Knoten Q1 - QN-1 des Vektors Qi 1110 weitergeleitet, während der Keine-Sprache-gepoolte Bewertungswert I1 zu Knoten Q0 und QN desselben Vektors Qi weitergeleitet wird. Diese Weiterleitung zur Umordnung der Bewertungswerte I0 und I1 in die Q-Schicht 1112 kann unter Verwendung einer AFFINEN Schicht 1111 ausgeführt werden, wobei die Gewichte alle 1 sind. Vektorisierte neuronale Netzoperationen verwenden die Bewertungswerte Q0 bis QN im Vektor Q 1110 dann weiter, um einen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor Ti 1120 zu bilden, der Ablehnungszustands-Bewertungswerte (T0 bis TN ) 1122 aufweist. Dies geschieht, indem zuerst eine affine Schicht 1114 zur Kombination der Vektoren Q 1112 und 1120 verwendet wird, um einen Zwischen-Ablehnungsbewertungsvektor 1116 zu bilden, so dass der NNA wie vorstehend für die Schlüsselausdruckserkennung beschrieben fortfährt. Demgemäß wird der mehrere Elemente aufweisende Zustandsbewertungsvektor Ti durch Addition der VORBEEINFLUSSUNG 1124 durch Ausführen der AFFINEN (AFFINEN DIAGONALEN) Schicht 1114 zum Vektor Qi addiert.
  • Die Bewertungswertweiterleitung wird dann als MAX-POOL-2xl-Funktion 1118 verwirklicht, die an einem Zwischenbewertungsvektor 1116 mit der Summe (oder einer anderen Kombination) von Qi und Ti ausgeführt wird: { MAX POOL ( Q M 1 ( t ) + T M 1 ( t ) , Q M ( t ) + T M ( t ) ) , MAX POOL ( Q M 2 ( t ) + T M 2 ( t ) , Q M 1 ( t ) + T M 1 ( t ) ) , MAX POOL ( Q 1 ( t ) + T 1 ( t ) , Q 2 ( t ) + T 2 ( t ) ) , MAX POOL ( Q 0 ( t ) + T 0 ( t ) , Q 1 ( t ) + T 1 ( t ) ) , Q 0 ( t ) + T 0 ( t ) }
    Figure DE102019122180A1_0005
    wodurch ein aktueller Vektor T 1120 mit Ablehnungszustands-Bewertungswerten T0 bis TN gebildet wird. Die gleiche umgekehrte Operationsreihenfolge für MAX POOL mit P- und S-Vektoren 1012 und 1020 für die Schlüsselausdruckselemente gilt auch hier.
  • Die endgültigen Ergebnisse umfassen einen endgültigen SPRACHE-Bewertungswert (oder -knoten) 1128 als Übergang von „keine Sprache“ zu „Sprache“ und einen endgültigen KEINE-SPRACHE-Bewertungswert oder -knoten 1130 als Übergang von „Sprache“ zu „keine Sprache“. Diese endgültigen Bewertungswerte werden nach den folgenden Gleichungen berechnet: SPRACHE = T 0 * ( 1 ) + T 1 * ( 1 ) ,
    Figure DE102019122180A1_0006
    KEINE SPRACHE = T N * ( 1 ) + T N 1 * ( 1 )
    Figure DE102019122180A1_0007
    Diese Gleichungen (6) und (7) können unter Verwendung einer AFFINEN Schicht 1126 implementiert werden, wobei nur diese Werte in die affine Schicht 1126 eingegeben werden und wobei sowohl T0 als auch TN jeweils ein Gewicht von -1 gegeben wird, während T1 und TN-1 jeweils ein Gewicht von 1 gegeben wird. Andernfalls kann der NNA alle T-Bewertungswerte 1122 entgegennehmen, wobei die Gewichte für die mittleren Knoten T2 - TN-2 auf 0 gesetzt sind. Ein positiver Wert eines SPRACHE-Knotens 1128 gibt an, dass Sprache erkannt wurde, während ein positiver Wert des KEINE-SPRACHE-Knotens 1130 angibt, dass keine Sprache (Stille) erkannt wurde oder umgekehrt.
  • Mit Bezug auf 12 wird nun eine NNA-Schlüsselausdrucks-Anfangspunkt-Erkennungseinheit 1200 zur Implementation der Schlüsselausdrucks-Anfangspunkterkennung vorgestellt. Dies geschieht durch rekurrente Verwendung einer Mehrzahl von Booloperationen nach dem Empfang von Schlüsselausdrucks-Bewertungswerten von einem Schlüsselausdrucksdecodierer, wie vorstehend beschrieben. Insbesondere kann eine akustische Bewertungseinheit 1202 ein DNN 1204 mit einem akustischen Modell 1206 verwenden, um einem Schlüsselausdruckserkennungsdecodierer 1208, wie hier beschrieben, akustische Bewertungswerte bereitzustellen. Demgemäß sind die Eingabe für die Anfangspunkt-Erkennungseinheit oder die vom NNA bereitgestellten Prozesse 1200 hier Schlüsselausdrucks-Bewertungsvektoren Si (i=0,...,N) (oder einfach ein Schlüsselausdrucksvektor) 1209 für ein einzelnes vom KPD(oder WoV)-Decodierer 1208 erzeugtes Schlüsselausdrucksmodell. Diese Vektoren 1209 können die Bewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors sein, wie vorstehend beschrieben wurde.
  • Anschließend findet die Schlüsselausdrucks-Anfangspunkterkennungsverarbeitung in drei Hauptstufen statt. In der ersten Stufe werden ein Boolvektor 1220 und ein inverser Boolvektor 1222 für einen eingegebenen Schlüsselausdrucks-Zustandsbewertungsvektor 1209 erzeugt. Diese Stufe hat eine neuronale Netzeinheit 1210, die bestimmte Gewichte und Vorbeeinflussungen auf den Schlüsselausdrucksvektor 1209 für Differenzen einer einzelnen neuronalen Netzschicht benachbarter Elemente Sn von Si anwendet (oder sie kombiniert) und dann eine Booling-Aktivierungsfunktion 1211 anwendet, welche die Schlüsselausdrucks-Vektorelemente in eine Reihe von len und Oen umwandelt, um einen ersten Boolvektor 1220 zu bilden. Der zweite Inversions-Boolvektor 1222 wird als Umkehrung des ersten Boolvektors 1220 erzeugt. Die Boolvektoren geben an, welche Zustandspositionen in der letzten Iteration von Zustand zu Zustand entlang dem aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor 1209 weitergeleitet wurden. In der zweiten Stufe wird ein Ausgangs-(Geschichts- oder Rahmenindex-)-Vektor V 1238 rekurrent verwendet, indem beide Boolvektoren 1220 und 1222 in einer elementweisen Vektormultiplikationsoperation 1224 und 1230 mit dem Ausgangsvektor V 1238 multipliziert werden. Das Ergebnis besteht aus Vektoren X (1228) und Y (1234). In der dritten Stufe werden die Vektoren X und Y addiert oder auf andere Weise kombiniert, um den aktuellen Ausgangsvektor V 1238 zu bilden, so dass ein Anfangspunkt-Rahmenindex zum N-ten Element 1246 des Vektors V weitergeleitet wird, wodurch der Art des Schlüsselausdrucks-Anfangspunkts in einer Sequenz eingegebenen Audios angegeben wird. Die Einzelheiten und die Art, wie diese Operationen durch den NNA implementiert werden, werden nachstehend erklärt.
  • Nun sei in weiteren Einzelheiten für die erste Stufe bemerkt, dass der Schlüsselausdrucks-Zustandsbewertungsvektor S 1209 in eine einzelne neuronale Netzschicht (NN-Schicht) 1210 mit einer nichtlinearen Aktivierungsfunktion 1211 eingegeben wird, wie durch den dargestellten Graphen repräsentiert. Die Ausgabe ist ein Elementvektor von N + 1 Elementen mit logischen Werten {0, 1}. Nach der Multiplikation des Eingangsvektors mit Gewichtswerten -1, 0 oder 1 und Addieren einer Vorbeeinflussung, wie dargestellt, wird eine Linearkombination oder lineare Sequenz 1210 von S erzeugt: { 1,   S 1 S 0 ,   S 2 S 1 ,   , S N S N 1 } .
    Figure DE102019122180A1_0008
    Die lineare Sequenz (8) ist durch Knoten 1212 repräsentiert. Mit anderen Worten kann die NN-Schicht 1210 eine vollständig verbundene Schicht sein, so dass alle Elemente des Schlüsselausdrucks-Bewertungsvektors 1209 anfänglich auf jeden Knoten im Netz angewendet werden. Demgemäß haben jene Elemente, die an einem bestimmten Knoten der Sequenz 1212 nicht verwendet werden, ein Gewicht von Null, so dass diese unerwünschten Elemente fallen gelassen werden. Nur jene Elemente des Vektors 1209, die an einem Knoten zu verwenden sind, haben ein Gewicht von 1 oder -1. Demgemäß ist beispielsweise dargestellt, dass die Gewichte W für einen Knoten 1212a für das Element S1 -1 sind, für das Element S0 1 sind und für alle anderen Elemente 0 sind. Dies wird für jeden Knoten in der Sequenz 1212 wiederholt. Der erste Knoten 1213 in der Sequenz 1212 ist ein Platzhalterknoten von 0, um den sich ergebenden Vektor mit einem anderen Vektor V für die aus den nachstehend erklärten Gründen ausgeführte Vektormultiplikation auszurichten. Die Vorbeeinflussung wird dann zur Elementdifferenz (beispielsweise S1 - S0 am Knoten 1212a) addiert, und diese sich ergebende Sequenz wird durch die vorstehende Gleichung (8) repräsentiert. Die sich ergebende Sequenz wird dann als Eingabe für die Aktivierungsfunktion 1211 bereitgestellt.
  • Demgemäß wird eine Schritt-Boolingaktivierungsfunktion 1211, die positive Eingaben fördert, angewendet: F ( x ) = b o o l ( x > 0 ) = { 1, f a l l s   x > 0,0, f a l l s   x 0 }
    Figure DE102019122180A1_0009
    wobei x eines der Elemente der vorstehend erklärten Schichtsequenz (8) ist. Als Ergebnis wird der folgende erste Boolvektor 1220 erzeugt: { 1,   b o o l ( S 0 < S 1 ) , b o o l ( S 1 < S 2 ) , , b o o l ( S N 1 < S N ) }
    Figure DE102019122180A1_0010
    Die vom Platzhalterknoten 1213 gebildete 1 bildet nun einen Platzhalter 1221 am Boolvektor 1220, um den Boolvektor 1220 mit entsprechenden Elementen eines nachstehend beschriebenen Ausgangsvektors V auszurichten und insbesondere das Platzhalterelement 1221 mit dem ersten Element des Ausgangsvektors V 1226 auszurichten.
  • Als nächstes wird ein zweiter inverser Boolvektor 1222 durch die Verwendung logischer Inversionsoperationen an den Elementen 1, ..., N der Sequenz (8) oder durch Anwenden invertierter Operationen auf die Elemente des ersten Boolvektors 1220 abgeleitet. Die logische Inversion wird auf einem NNA unter Verwendung einer einzelnen affinen Schicht mit einer Vorbeeinflussung und mit Ausgaben, die für jedes eingegebene Element X gleich (1 + (-1) *X) sind, verwirklicht (unabhängig davon, ob X vom ersten Boolvektor 1220 oder von der Sequenz (8) 1212 herrührt). Der abgeleitete zweite Inversionsvektor 1222 kann als { 1,   b o o l ( S 0 S 1 ) , b o o l ( S 1 S 2 ) , , b o o l ( S N 1 S N ) }
    Figure DE102019122180A1_0011
    repräsentiert werden.
    Das Ergebnis besteht hier darin, dass der erste Boolvektor 1220 einen Wert von 1 an einer Position hält, an der die Bewertungswertweiterleitung in einer beispielsweise durch einen NNA betriebenen Hidden-Markov-Modell(HMM)-Netzstruktur nicht stattfindet, und wobei Si-1 < Si wahr ist und andernfalls 0 ist. Der zweite invertierter Vektor 1222 hält daher eine 1 an jeder Position, an der eine Bewertungswertweiterleitung in einem HMM stattfindet, wenn beispielsweise (Si-1 Si wahr ist) und andernfalls 0 ist. Dadurch gibt der erste Boolvektor 1220 die Positionen von Elementen im Vektor 1220 an, wo eine Bewertungswertweiterleitung im HMM nicht stattfindet, und gibt der zweite (abgeleitete) invertierte Vektor 1222 die Positionen von Elementen an, an denen eine Bewertungswertweiterleitung im HMM stattfindet. Die Weiterleitung zwischen aufeinander folgenden HMM-Zuständen ist Übergängen zwischen Phonemen eines Schlüsselausdrucks zugeordnet, wenn jeweilige Audioabtastwerte eines Schlüsselausdrucks durch die DNN-Einheit 1202 verarbeitet werden. Dies hilft dabei, jeweilige im Anfangspunkt-Verfolgungsvektor 1238 gespeicherte historische Rahmenindizes in einer nächsten Verarbeitungsstufe weiterzuleiten und dadurch eine HMM-Zustandssequenz mit chronologischen Nummern von Audioeingaberahmen einer entsprechenden Schlüsselausdrucks-Phonemsequenz zu korrelieren, wie nachstehend in weiteren Einzelheiten erklärt wird.
  • In der zweiten Stufe wird eine elementweise Vektormultiplikation parallel an den beiden Boolvektoren 1220 und 1222, die in der ersten Stufe erzeugt wurden, und durch rekurrentes Multiplizieren jedes Boolvektors mit einem aktuellen ausgegebenen Geschichtsvektor V ausgeführt. Insbesondere speichert jeder aktuelle Ausgangsvektor V {Vi, i=0, ...,N) 1238 (auch als Anfangspunkt-Verfolgungsvektor bezeichnet) nur einen Rahmenindex und ist ganz mit Nullen initialisiert. Eine Rahmennummer, die ein Element des Rahmenindex und eines Vektors V 1238 bildet, ist lediglich eine chronologische Nummer eines Audioeingaberahmens, die dem Zeitpunkt entspricht, wodurch einer der analysierten Schlüsselausdrucks-Zustandsbewertungsvektoren bereitgestellt wird. Der Anfangspunkt-Verfolgungsvektor V 1238 wird in jeder Iteration auf der Grundlage des Eingangsvektors S 1209 und des vorhergehenden Zustands des V-Vektors 1238 aktualisiert. Das erwartete Ergebnis, das die Rahmenindexnummer eines Schlüsselausdrucks-Anfangspunkts (oder der Beginn eines Schlüsselausdrucks) ist, ist durch Identifizieren des Zeitpunkts verfügbar, an dem der Anfangspunkt des Schlüsselausdrucks aufgetreten ist, welcher am letzten Element des V-Vektors, nämlich VN , erfasst wird. Dies geschieht, weil die Nummer eines Audioeingangsrahmens, wodurch der Anfang eines Schlüsselausdrucks identifiziert wird, entlang dem Vektor 1238 weitergeleitet wird, wenn die Sequenz von Phonemen, die den Schlüsselausdruck bilden, durch die akustische Bewertungseinheit 1202 verarbeitet wird. Der Eingangsrahmenindex, der dem Anfang des Schlüsselausdrucks entspricht, wird in der vorstehend gerade erwähnten Weise, wobei weitere Einzelheiten nachstehend angegeben werden, bis zum letzten Element des Vektors 1238 weitergeleitet.
  • Zur Erzeugung des aktuellen Ausgangsvektors V 1238 wird der aktuelle Vektor V rekurrent als Geschichtsvektor verwendet, wie durch Pfeile 1240 und 1242 dargestellt ist. Demgemäß kann diese Operation als die Verwendung des gleichen vorhergehenden Zustands des Vektor V (oder des gerade vorhergehenden Vektors V) 1226 und 1232 für die Multiplikation mit den beiden Boolvektoren 1220 und 1222 zur Erzeugung eines aktuellen Vektors V 1238 beschrieben werden. Dies geschieht durch getrenntes Multiplizieren dessen, was nun ein vorhergehender Vektor V 1226 und 1232 ist, mit den beiden Boolvektoren 1220 und 1222, wobei die Multiplikation durch Operatoren 1224 und 1230 dargestellt ist. Zur Ausführung dieser Multiplikation, während eine NNA-Implementation verwendet wird, kann eine Diagonalmatrixmultiplikation verwendet werden, um die Vektormultiplikation 1224 und 1230 auszuführen. Die Multiplikation 1224 des ersten Boolvektors (auch als logischer Vektor bezeichnet) 1220 und des vorhergehenden Vektors V 1226 erzeugt einen Vektor X 1228 als: X = { X 0 = V 0 ;  X i = V i * b o o l ( S i 1 < S i )   f ü r   i = 1, , N }
    Figure DE102019122180A1_0012
    Es sei bemerkt, dass das erste Element 1221 des Boolvektors 1220 eine 1 aufweist und mit dem ersten Element 1227 (V0 ) des vorhergehenden Vektors V 1226 ausgerichtet ist, so dass das erste Element V0 1227 hierbei durch die Multiplikation nicht geändert wird. Das Ergebnis ist ein Vektor X 1228, der einen vorhergehenden Rahmenindex (Vi ) 1226 faktorisiert, wobei eine Bewertungswertweiterleitung an diesem Element nicht stattfindet, wobei ein V0 als X0 am Anfang des Vektors X 1228 beibehalten wird.
  • Die zweite Multiplikationsoperation 1230 am inversen Boolvektor 1222 und am vorhergehenden Vektor V 1232 (V0 bis Vn) wird um eins verschoben, so dass V1 mit der S0 -Booloperation am Bool 1222 und dem resultierenden Y1 ausgerichtet wird, wodurch ein Vektor Y 1234 erzeugt wird: Y = { Y i = V i 1 * b o o l ( S i 1 S i )   f ü r   i = 1, , N }
    Figure DE102019122180A1_0013
    welcher einen neuen Rahmenindex (Vi-1 ) aufweist, wobei die Bewertungswertweiterleitung im HMM geschieht. Für die invertierte Boolmultiplikation 1230 wird kein Platzhalterelement bereitgestellt, weshalb Y1 ...YN-Elemente V1 ...VN-Elemente des Vektors 1238 aktualisieren können, während das V0 -Element getrennt aktualisiert wird. Es sei auch bemerkt, dass dieser Vektor X dann ein Element mehr aufweist als der Vektor Y.
  • In der dritten Stufe kombiniert der NNA den X- und Y-Vektor durch elementweises Summieren der Elemente 1, ..., N der X- und Y-Vektoren 1228 und 1234 gemeinsam zu einem neuen aktuellen Rahmenindex für einen aktuellen Vektor V 1238. Die elementweise Addition wird unter Verwendung einer einzelnen affinen Schicht unter Verwendung von Gewichten von 1 verwirklicht. Das V0 -Element wird unter Verwendung einer Vorbeeinflussung um 1 inkrementiert 1244. Dies ermöglicht eine Verfolgung der chronologischen Nummer des aktuell verarbeiteten Eingangsrahmens im V0 -Element, weil V0 mit 0 initialisiert und bei jeder Iteration inkrementiert wird. Der Vektor V 1238 wird daher folgendermaßen aktualisiert: V 0 V 0 + 1
    Figure DE102019122180A1_0014
    V i X i + Y i = V i * b o o l ( S i 1 < S i ) + V i 1 * b o o l ( S i 1 S i )                                                           = { V i 1   f a l l s   S i 1 S i ,   V i   a n d e r n f a l l s } ,   f ü r   i = 1, , N
    Figure DE102019122180A1_0015
    Dadurch wird ein aktueller Rahmenindex in V0 gespeichert und werden Rahmenindizes zusammen mit der Bewertungswertweiterleitung in einem HMM durch ein V-Array weitergeleitet (Vi←Vi-1). Dies gewährleistet, dass die Schlüsselausdrucks-Anfangspunkt-Rahmenindexnummer zum Zeitpunkt der Schlüsselausdruckserkennung, wobei es sich um den Zeitpunkt handelt, zu dem der KPD-Bewertungswert die Schwelle überschreitet, zum N-ten Element weitergeleitet wurde. Nachfolgend wird erklärt, weshalb der Schlüsselausdrucks-Anfangspunkt-Eingangsrahmenindex zum letzten Element des Ausgangsvektors V weitergeleitet wird. Wenn der Eingangsrahmen, der das erste Phonem des Schlüsselausdrucks aufweist, verarbeitet wird, ist der Index eines aktuell verarbeiteten Rahmens, der die Rahmennummer des Anfangs des Schlüsselausdrucks ist, am Element V0 des aktuellen Ausgangsvektors V 1238 verfügbar. Wenn die Rahmen, welche die nächsten Phoneme des Schlüsselausdrucks aufweisen, verarbeitet werden, erhalten die jeweiligen HMM-Sequenzzustände die höchsten Bewertungswerte Si im Bewertungsvektor 1209 und wird der Eingangsrahmenindex des Anfangs des Schlüsselausdrucks nach Gleichung (15) entsprechenderweise entlang dem Ausgangsvektor 1238 für i=1...N von Vi-1 bis Vi weitergeleitet. Der Schlüsselausdrucksanfangs-Eingangsrahmenindex wird, wenn er infolge der Verarbeitung der Schlüsselausdrucksphoneme zu Vektorelementen V1 ... VN weitergeleitet wird, nicht als Ergebnis der Weiterleitungsgleichung (15) nachfolgender am Element V0 in Gleichung (14) erzeugter Eingangsrahmenindizes überschrieben. Dies liegt daran, dass die Weiterleitung (Vi←Vi-1) nach Gleichung (15) nicht geschieht, wenn der Si -Bewertungswert in der Bewertungswertsequenz 1209 der höchste ist, was so lange gilt wie ein dem i-ten HMM-Zustand entsprechendes Schlüsselausdrucksphonem verarbeitet wird. Andere Einzelheiten sind in der am 7. Mai 2018 eingereichten US-Patentanmeldung 15/972 369 mit dem Titel „Wake on Voice Key Phrase Segmentation“, veröffentlicht als       am      , die hier für alle Zwecke aufgenommen ist, offenbart. Als letzter Schritt wird die Schlüsselausdrucks-Anfangspunkt-Rahmenindexnummer von VN gelesen, um den Anfangspunkt eines Schlüsselausdrucks zu bestimmen.
  • Die Schlüsselausdrucks-Anfangs- und Endpunkte können dann zur Weiterverarbeitung von Sprache verwendet werden. Daher können die nächsten Stufen der Signalverarbeitung die Sprache des Benutzers genau extrahieren und sich dadurch besser an die Sprach- und/oder Geräuschbedingungen des Benutzers anpassen. Beispielsweise können Sprecheridentifikations-, Beam-Formungs- oder ASR(automatische Spracherkennung)-Algorithmen von Schlüsselausdrucks-Anfangs- und Endpunkten profitieren. Überdies führen einige webbasierte Sprachdienste wie Alexa Voice Service (AVS) eine zweite oder endgültige cloudbasierte Schlüsselausdrucksvalidierung aus und benötigen für diesen Zweck genaue Informationen über die Schlüsselausdrucksposition im Eingangs-Stream.
  • Mit Bezug auf 13 sei bemerkt, dass ein dynamisches Audiodaten-Puffergrößen(oder Längenbehandlungs)-Steuersystem 1300 für die Audiodaten-Puffergrößenbehandlung bereitgestellt ist, während eine autonome neuronale Netzbeschleunigung ausgeführt wird, so dass ein DSP trotz der Verwendung einer solchen Puffergrößensteuerung noch immer nicht benötigt wird. Insbesondere ist es bei Systemen, die eine Schlüsselausdruckserkennung als Teil eines Gesamt-Sprach(oder persönlichen)-Assistenten ausführen, häufig erforderlich, eingegebene Audiosprachdaten, die von einem oder mehreren Eingangsmikrofonen kommen, zu puffern. Häufig wird die Schlüsselausdruckserkennung in der Edge-Vorrichtung (lokalen Vorrichtung) in der Art eines Telefons oder eines Smart Speakers ausgeführt und befindet sich der Sprachassistent beispielsweise an einem fernen Netzserver. In diesem Fall wird der Puffer verwendet, um die eingegebenen Audiosprachdaten zu speichern, und der Inhalt des Puffers wird nach Erkennung des Schlüsselworts zum Sprachassistenten gesendet. Bei vielen Diensten müssen einer Zeit vor, während und nach der Äußerung des Schlüsselausdrucks entsprechende Sprachdaten zum Sprachassistenten gesendet werden. Der Puffer muss daher lang genug sein, um sowohl das Audio in der spezifizierten Dauer (typischerweise 400+ ms) vor dem Schlüsselausdruck und während des Schlüsselausdrucks selbst zu speichern, und im Puffer gespeichert werden, bevor der Schlüsselausdruck durch den KPD-Algorithmus erkannt wird (typischerweise zu einer Zeit, die an oder in der Nähe des Endes des Schlüsselausdrucks liegt). Ein Netzserver verwendet diese Informationen zur erneuten Verarbeitung der eingegebenen Sprache, weil die Audiodaten vor dem Schlüsselausdruck Hintergrundgeräuschinformationen bereitstellen können.
  • Ineffizienz entsteht, weil für das Halten von Daten in einem flüchtigen Speicher in der Art eines RAMs Leistung verbraucht und Leistung verschwendet werden kann, weil die KPD-Systeme häufig Audiodaten in der gleichen reservierten Puffergröße speichern, selbst wenn viel kleinere Puffer verwendet werden könnten, um kleinere Datenmengen zu halten, die bereitgestellt werden, wenn in der Audioeingabe keine Sprache erkannt wird. Insbesondere beträgt die typische Gesamtlänge eines KPD-Sprachpuffers 2 - 3 Sekunden. Ein zur Speicherung dieses Sprachpuffers verwendeter SRAM-Speicher weist beispielsweise für ein Mikrofon bei 16 Bits pro Abtastwert 2 Sekunden × 16 kHz × 2 B = 64 kB und für 4 Mikrofone bei 24 Bits pro Abtastwert 4 × 2 Sekunden × 16 kHz × 3 B = 384 kB auf. Für einen Siliciumprozess, der eine hohe Streuleistung aufweist (beispielsweise für einen Intel-1273-14-nm-Prozess), trägt diese Größe des Speichers merklich zum Gesamtleistungsverbrauch der Gesamtlösung bei (beispielsweise beträgt die Streuleistung bei -38 µW pro 32 kB 38 × 384/32 = 456 µW). Dies ist ein erheblicher Betrag, wenn es erwünscht ist, die Gesamt-SoC-Leistung bei weniger als etwa 1 mW und vorzugsweise weniger als etwa 500 mW zu halten.
  • Das System 1300 löst diese Probleme durch Ändern der Größe des Audiodatenpuffers abhängig davon, ob in der Audioeingabe Sprache erkannt wurde. Insbesondere besteht der Standard darin, eine geringere Puffergröße bereitzustellen und dann auf eine höhere Puffergröße zu erweitern, wenn der Beginn von Sprache erkannt wird. Um dies zu implementieren, verwendet das System 1300 ein Signal 1304, das einen durch einen auf einem integrierten neuronalen Netz beruhenden Sprache-/Keine-Sprache-Detektor1302 erzeugten Sprachbeginn angibt, wie einen positiven endgültigen Sprache-Bewertungswert, wie vorstehend beschrieben wurde. Das Signal 1304 kann hier verwendet werden, um die Länge eines Eingangspuffers zu steuern, der als Teil des Gesamt-Schlüsselausdruckserkennungsprozesses benötigt wird. Insbesondere setzt eine Pufferlängensteuerung 1306 die Puffergröße, falls kein Schlüsselwortereignis erkannt wird, auf einen kleinen Audiodatenpuffer 1310 oder hält diese dabei, und Daten des Spracheingangssignals 1308 werden im kleineren Audiodatenpuffer 1310 gespeichert. Im Allgemeinen tritt während der längsten Zeit an den Mikrofonen keine Sprache auf, so dass der kleinere Audiodatenpuffer 1310 während der längsten Zeit mit den hier beschriebenen Schlüsselausdrucksdecodierern verwendet werden kann und die entsprechende Streuleistung verringert wird (typischerweise eine Einsparung von 80 % der Streuleistung gegenüber der Verwendung eines festen großen Speicherpuffers). Wenn Sprache erkannt wird, legt die Pufferlängensteuerung 1306 jedoch den erweiterten Audiodatenpuffer 1312 fest, der mit einer höheren Größe als der kleinere Puffer zu verwenden ist, und werden die Daten des Spracheingangssignals 1308 im erweiterten Audiodatenpuffer 1312 gespeichert. Dann wird der Inhalt des erweiterten Audiodatenpuffers 1312 zum fernen Sprachassistenten gestreamt, bis das Ende der Sprache erkannt wird oder eine Maximalzeit erreicht wird. Wenn der Sprachdetektor angibt, dass es wieder keine Sprache gibt, führt die Steuerung 1306 die Puffergröße wieder zur Größe des kleineren Audiodatenpuffers 1310 zurück. Die Größe des kleineren Audiodatenpuffers 1310 würde typischerweise einer Zeitdauer von 400 bis 700 ms entsprechen, während der erweiterte Puffer 1312 einer Zeitdauer von 2 - 3 Sekunden entsprechen würde.
  • Wenn das Signal 1304 zum Aufwecken einer Sprachassistentenanwendung (oder einer Anwendung eines persönlichen Assistenten) verwendet wird, werden solche Anwendungen häufig in einer System-on-a-Chip(SoC)-Hardware betrieben. Demgemäß verringert diese Technik den SoC-Leistungsverbrauch, während eine Schlüsselausdruckserkennung ausgeführt wird. Eine weitere Verringerung der zeitlichen Verzögerung und des Leistungsverbrauchs wird erreicht, wenn der Anfang des Spracherkennungssignals von einem NNA erhalten wurde, der einen Schlüsselausdrucksdecodierer mit einem integrierten Sprache-/Keine-Sprache-Detektor betreibt, wie vorstehend beschrieben, und das Signal 1304 für die Steuerung der Pufferlängenbehandlung bereitstellt.
  • Mit Bezug auf 14 sei bemerkt, dass ein dynamisches Mikrofonbehandlungs-Steuersystem 1400 bereitgestellt ist, um die Mehrzahl der aktiven Mikrofone an einem Mikrofon-Array zu verringern, um den Leistungsverbrauch zu verringern, während die Schlüsselausdruckserkennung auf autonomen neuronalen Netzbeschleunigern noch aufrechterhalten wird. Für Fernfeldanwendungen beispielsweise bei häuslichen Smart Speakern weisen diese Lautsprecher gewöhnlich mehrere Eingangsmikrofone und zugeordnete Vorverarbeitungsalgorithmen auf, um die Leistungsfähigkeit der Schlüsselausdruckserkennungs- oder Spracherkennungsalgorithmen zu verbessern. Typischerweise würde es 2 bis 8 Mikrofone in einer solchen Vorrichtung geben. Jedes Mikrofon verbraucht Leistung (typischerweise -400 µW für ein Mikrofon geringer Qualität und ~900 µW für ein Mikrofon hoher Qualität). Für Anwendungen mit geringer Leistung - insbesondere bei batteriebetriebenen Anwendungen - ist es erforderlich, den Leistungsverbrauch niedrig zu halten, um die Batterielebensdauer zu verlängern. Um beispielsweise 8 Mikrofone kontinuierlich aktiv zu halten, wird viel Leistung verbraucht. Falls die Umgebung jedoch ruhig ist, kann es nicht erforderlich sein, dass alle 8 Mikrofone aktiv sind, und es kann die Leistungsfähigkeit eines einzigen Mikrofons ausreichen. Falls der Geräuschpegel bestimmt werden kann, kann ein Signal verwendet werden, das den Rauschpegel angibt, um die Mehrzahl der Mikrofone, die aktiv sind, zu steuern.
  • Demgemäß weist das vorliegende System 1400 eine Geräuschpegel-Bestimmungseinheit 1402 auf, die ein Geräuschindikatorsignal 1404 bereitstellt, welches angibt, wenn der Geräuschpegel über einer Schwelle liegt. Normalerweise würde ein solcher Geräuschpegel-Bestimmungsalgorithmus auf einem DSP implementiert werden. Für diese Implementation wird der Geräuschpegel-Bestimmungsalgorithmus jedoch als neuronales Netz implementiert und auf einem autonomen neuronalen Netzbeschleuniger ausgeführt, in der Art eines Intel ANNA. Die Geräuschpegel-Bestimmungseinheit 1402 verwendet den NNA zur Ausführung einer energiebasierten Geräuscherkennung: Wenn eine durch herkömmliche Prozesse erhaltene Langzeit-Signalenergie höher als eine bestimmte Schwelle ist, wird ein Auslösesignal 1404 zur Mikrofonsteuerungslogik 1464 gesendet. Der Vergleich mit der Schwelle kann beispielsweise auf einer NNA-Schicht ausgeführt werden. Dies kann auf höher entwickelte Geräuschpegel-Schätzoperationen erweitert werden, die auch den Abstand des Lautsprechers von den Mikrofonen und/oder das Echo im Raum durch bekannte Prozesse schätzen.
  • Sobald das Indikatorsignal 1404 empfangen wurde, kann eine Mikrofonsteuerungslogik 1464 eines oder mehrere hier als Mic 1 1408, Mic 2 1410, Mic 3 1412 bis zu Mic n 1414 dargestellte Mikrofone aktivieren oder deaktivieren. Die Mikrofone 1 bis n empfangen wie dargestellt jeweils Eingangssteuersignale 1418, 1422, 1426 und 1430 von einer Audio-E/A-Steuerung 1416, wobei darin ein Taktsignal enthalten sein kann. Auch werden jeweilige Ausgabestatussignale 1416, 1420, 1424 und 1428 von den Mikrofonen an der Audio-E/A-Steuerung 1416 empfangen. Bei einem Ansatz werden die Mikrofone durch ein SoC gesteuert und kann ein SoC das Taktsignal dem Mikrofon über die Audio-E/A-Steuerung 1416 bereitstellen, und falls dieses Taktsignal ausgeschaltet wird, wird das Mikrofon ausgeschaltet. Demgemäß kann die Mikrofonsteuerungslogik 1464 eine autonome Funktionalität durch automatische Behandlung der Eingangsmikrofonsignale bereitstellen. Insbesondere kann die Steuerlogik 1464 eine Abfanglogik 1432, 1434 und 1436 aufweisen, die verhindert, dass das Taktsignal die Mikrofone erreicht, wodurch die Mikrofone ausgeschaltet werden. Diese Abfanglogik kann für ein oder mehrere Mikrofone, weniger als alle Mikrofone (wie im vorliegenden Beispiel dargestellt, wobei Mic 1 die Abfanglogik nicht aufweist) oder alle Mikrofone festgelegt werden. Diese Mikrofonsteuerung bietet die zusätzliche Fähigkeit der Verwendung eines Geräuschpegel-Indikatorsignals von einem neuronalen Netzalgorithmus, der auf einem NNA an Stelle eines DSP für die Geräuschpegelbestimmung läuft, wobei es sich bei dem NNA beispielsweise um ANNA handelt.
  • Mit Bezug auf 15 sei bemerkt, dass ein beispielhafter Prozess 1500 zur Schlüsselausdruckserkennung unter Verwendung eines neuronalen Netzes gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist. Der Prozess 1500 kann eine oder mehrere Operationen 1502 - 1530 aufweisen, die im Allgemeinen geradzahlig nummeriert sind, wie in 15 dargestellt ist. Der Prozess 1500 oder Teile davon können durch eine Vorrichtung oder ein System oder dergleichen, wie hier erörtert, bereitgestellt werden, um eine auf einem neuronalen Netz ausgeführte Schlüsselausdruckserkennung bereitzustellen, wobei in einer Form bestimmte Operationen auf einem NNA ausgeführt werden und in einer Form kein DSP verwendet wird oder nur sehr begrenzt verwendet wird. Diese vollständig neuronalen Netzoperationen können auch integrierte oder begleitende Prozesse in der Art einer Sprache/Keine-Sprache-Erkennung und einer Schlüsselausdrucks-Anfangs- oder Endpunkterkennung sowie eine Steuerung mehrere Mikrofone und eine Audiodaten-Puffergrößensteuerung oder andere hier nicht beschriebene Anwendungen aufweisen. Der Prozess 1500 oder Teile davon können beliebig oft wiederholt werden, um eine Schlüsselausdruckserkennung durch eine Vorrichtung oder ein System bereitzustellen. Ferner wird der Prozess 1500 hier, sofern relevant, mit Bezug auf Systeme 200 oder 1600 aus 2 bzw. 16 beschrieben.
  • Zuerst sei mit Bezug auf 16 zur Darstellung eines beispielhaften Audioverarbeitungssystems 1600 zur Verwendung mit dem Prozess 1500 bemerkt, dass das System 1600 zur Ausführung der Schlüsselausdruckserkennung gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist. Das System 1600 kann einen oder mehrere neuronale Netzbeschleuniger 1604 sowie einen oder mehrere andere Prozessoren 2603 in der Art eines Zentralprozessors 1628 und optional eines digitalen Signalprozessors 1630, einen Speicher 1608 und ein Mikrofon 201 aufweisen. Das System 1600 kann auch eine oder mehrere Logikeinheiten oder ein oder mehrere Logikmodule 1610, einschließlich eines Merkmalsextraktionsmoduls 202, eines akustischen Bewertungsmoduls 203, eines Schlüsselausdruckserkennungsdecodierers 204 und einer Steuereinrichtung 206 aufweisen, wobei viele von diesen durch den NNA 1604, wie hier beschrieben, zu implementieren sind. Bei einigen Implementationen können die Logikeinheiten 1610 auch das Sprachaktivitäts-Erkennungsmodul 207 aufweisen. Der Schlüsselausdruckserkennungsdecodierer 204 kann optional eine Sprache/Keine-Sprache-Erkennungseinheit 212, eine Schlüsselausdrucks(KP)-Endpunkt-Erkennungseinheit 1632 und eine KP-Anfangspunkt-Erkennungseinheit 1634 aufweisen oder als eine getrennte Einheit aufweisen. Die Logikeinheiten 1610 können optional auch eine oder mehrere Mikrofonsteuereinheiten 1636 (die für diesen Zweck eine Steuerungs- oder Geräuschbestimmungseinheit aufweisen) und eine oder mehrere Puffergrößen-Steuereinheiten 1638, wie vorstehend beschrieben, aufweisen.
  • Der Speicher 1608 kann Schlüsselausdrucks- und Ablehnungsmodelle 205, ein akustisches Modell 208 und einen externen Puffer 1640 für ein neuronales Netz (NN-Puffer) speichern. Der Speicher 1603 kann auch Audiodaten, eingegebene Sprachdaten, Sprachaktivitäts-Erkennungsparameter oder -daten, Koeffizientendaten, Merkmalsvektoren, Bewertungswerte, Ausgangsbewertungswerte, Schlüsselausdrucks-Bewertungswerte, Logarithmische-Wahrscheinlichkeits-Bewertungswerte, Schwellenwerte, mehrere Elemente aufweisende akustische Bewertungsvektoren, mehrere Elemente aufweisende Zustandsbewertungsvektoren, Iterationsdaten, Zustandswerte oder -bewertungswerte, Gewichte, Vorbeeinflussungswerte oder - konstanten oder andere Daten oder Datenstrukturen, wie hier erörtert und/oder für neuronale Netzoperationen verwendet, ob im externen NN-Puffer gespeichert oder nicht, speichern.
  • Der NNA 1604 kann zweckgebundene Hardware für einen spezifischen Zweck zur Implementation der hier beschriebenen neuronalen Netzoperationen und einen Eingangspuffer 1612 zum Halten weiterzuleitender Audiodaten (in der Art eines Vektors von Merkmalen oder Bewertungswerten) und einen Gewichtspuffer 1614 zum Halten auf die Eingangsdaten angewendeter Gewichte, häufig in Form einer Gewichtsmatrix, aufweisen. Es sei bemerkt, dass sich diese lokalen Puffer physisch auf einer Platine oder einem Chip mit den anderen Verarbeitungskomponenten des NNA befinden können oder sich physisch außerhalb des NNA befinden könnten, wie beim externen NN-Puffer 1640. Der NNA 1604 kann auch eine Datenweglogik 1616, die eine Multiplikations-Akkumulations-Schaltung (MAC) 1618, die hochparallele Operationen (in der Art von Multiplikationen und Summierungen) ausführt, aufweist, um die Eingangsdaten weiterzuleiten, eine Summierungseinheit 1620, welche beispielsweise summierte Zwischenwerte und Vorbeeinflussungswerte summiert, einen Konstanten- /Vorbeeinflussungspuffer 1622, der der Summierungseinheit 1620 bereitzustellende Vorbeeinflussungswerte hält, eine Aktivierungsfunktionseinheit 1624, die andere Operationen einer Aktivierungsfunktionseinheit, die noch nicht an der Datenweglogik 1616 ausgeführt wurden, ausführt, und einen Ausgangspuffer 1626 aufweisen. Es sei bemerkt, dass der NNA 1604 viele andere Komponenten (Einheiten, Module, Logik, Puffer usw.) zur Ausführung der neuronalen Netzoperationen aufweisen kann, ob Hardware, Software oder eine Kombination von beiden. Solche anderen NNA-Komponenten, die im beispielhaften NNA 1604 enthalten sein können, können durch die US-Patentveröffentlichung 2018/0121796 , veröffentlicht am 3. Mai 2018, die hier für alle Zwecke aufgenommen ist, offenbart sein.
  • Andernfalls können der Zentralprozessor 1628 und der digitale Signalprozessor 1630, wenn bereitgestellt, eine beliebige Mehrzahl und einen beliebigen Typ von Verarbeitungseinheiten aufweisen, welche die hier erörterten Operationen, falls überhaupt vorgesehen, bereitstellen können. Diese Operationen können durch Software oder Hardware oder eine Kombination davon implementiert werden. Beispielsweise kann der digitale Signalprozessor 1630 eine Schaltungsanordnung, die eigens für die Manipulation aus dem Speicher 1608 oder einem dedizierten Speicher erhaltener Daten vorgesehen ist, aufweisen. Ferner kann der Zentralprozessor 1628 eine beliebige Mehrzahl und einen beliebigen Typ von Verarbeitungseinheiten oder -modulen aufweisen, welche Steuerungs- und andere Funktionen hoher Ebene für das System 1600 sowie die hier erörterten Operationen bereitstellen können.
  • Der Speicher 1603 kann ein beliebiger Speichertyp in der Art eines flüchtigen Speichers (beispielsweise statischen Direktzugriffsspeichers (SRAM), dynamischen Direktzugriffsspeichers (DRAM) usw.) oder eines nichtflüchtigen Speichers (beispielsweise Flash-Speichers usw.) usw. sein. Bei einem nicht einschränkenden Beispiel kann der Speicher 1603 durch einen Cache-Speicher implementiert sein. Bei einer Implementation können zumindest der NNA 1604 und der Speicher 1608 als ein System-on-a-Chip implementiert sein.
  • Zum Prozess 1500 zurückkehrend sei bemerkt, dass die Operationen 1502 - 1512 eine Vorbereitungsphase 1532 für eine Ausführungsphase 1534 von Operationen 1514 - 1530 bereitstellen können, welche vektorisierte Operationen einschließen können, die von einem neuronalen Netzbeschleuniger, wie hier erörtert, ausgeführt werden. Es sei bemerkt, dass andere Prozessoren als ein NNA Datenzusammenstellungsaufgaben ausführen können, um dem NNA beispielsweise in der Art des NNA 1604 Daten bereitzustellen, und Daten vom NNA 1604 erhalten können, um sie mit anderen Anwendungen oder Programmen zu verwenden. Solche anderen Prozessoren können sich auf derselben Vorrichtung wie der NNA und/oder auf demselben Chip oder Chipsatz wie der NNA, beispielsweise auf einem SoC, befinden, oder fern vom NNA liegen. Wenn hier erwähnt wird, dass eine neuronale Netzoperation auf einem NNA ausgeführt wird, bezieht sich dies auf zumindest jene Operationen, die sich auf die Weiterleitung von Daten über ein neuronales Netz, die durch einen NNA ausgeführt werden, beziehen. Andernfalls kann aus dem sprachlichen Zusammenhang abgeleitet werden, welche Operationen durch den NNA ausgeführt werden. Demgemäß führt ein NNA nicht notwendigerweise jede einzelne hier erwähnte computerimplementierte Operation aus. Mit anderen Worten können andere Prozessoren eingehende/abgehende Datenübertragungsoperationen behandeln, die dem NNA zuerst Audiodaten zuführen, und eine Benachrichtigung erhalten, sobald ein Schlüsselausdruck erkannt wurde, bei einer Form ist jedoch zwischen der Merkmalsextraktion, der akustischen Bewertung und der Schlüsselausdrucksdecodierung kein anderer DSP erforderlich.
  • Der Prozess 1500 kann das „Bestimmen eines Ablehnungsmodell-Bewertungswerts“ 1502 aufweisen, wobei ein Ablehnungsmodell-Bewertungswert für das Ablehnungsmodell in der Art des Ablehnungsmodells 301 bestimmt werden kann. Der Ablehnungsmodell-Bewertungswert kann unter Verwendung einer geeigneten Technik oder geeigneter Techniken bestimmt werden. Bei einer Implementation kann der Ablehnungsmodell-Bewertungswert das Maximum des besten Ablehnungsbewertungswerts entsprechend dem einzelnen Ablehnungsmodell sein (beispielsweise Selbstschleifen des Modells), das durch Pooling der Ablehnungsbewertungswerte erhalten wird. Beispielsweise kann die Operation 1502 mit Bezug auf 6 einen aktuellen akustischen Bewertungswert 611 für das Einzelzustands-Ablehnungsmodell 311 und des mehrere Elemente aufweisenden akustischen Bewertungsvektors 610 bereitstellen.
  • In einer optionalen Form kann diese Operation zur Bestimmung des Ablehnungsmodell-Bewertungswerts das „Verwenden gepoolter Ablehnungsbewertungswerte nach Ablehnungskategorie“ 1504 aufweisen. Demgemäß können in einer Form wenigstens vier akustische Kategorien abgelehnter Phonetiken, gesprochener Geräusche, von Stille und nicht gesprochener Geräusche bewertet werden, und diese vier Kategorien werden zuerst getrennt gepoolt und dann gemeinsam gepoolt, wie vorstehend beschrieben wurde, wobei das Pooling die Maximalwert-, Durchschnittswert- oder eine andere Operation sein kann, wodurch zwischen den abgelehnten akustischen Bewertungswerten eine Kombination oder Auswahl vorgenommen wird. In einer Form werden die Kategorien in Sprache- und Keine-Sprache-gepoolte Bewertungswerte gepoolt, die für die integrierte Sprache/Keine-Sprache-Erkennung verwendet werden können, sowie gemeinsam gepoolt, um den akustischen Ablehnungsbewertungswertzustand 611 für die Schlüsselausdruckserkennung zu bilden. Es sei bemerkt, das andere Operationen an Stelle des Kombinierens aller vier Ablehnungskategorien existieren, wie das Kombinieren oder Pooling der Phonetiken und von Stille, ohne die geräuschbezogenen Kategorien zu verwenden, oder eine andere wünschenswerte Kombination. Wie vorstehend auch beschrieben wurde, kann das Pooling auf einem NNA 1604 durch Kopieren akustischer Bewertungswerte einer bestimmten von einer akustischen Bewertungseinheit eingegebenen Kategorie und in die gewünschten Poolingvektoren ausgeführt werden und kann das Pooling dann durch die Verwendung von Oen und len an der vom NNA betriebenen affinen Schicht zur Ausführung der Abbildung, wie vorstehend beschrieben, ausgeführt werden.
  • Der Prozess 1500 kann das „Zusammenstellen akustischer Bewertungswerte für Zustände eines oder mehrerer Schlüsselausdrucksmodelle“ 1506 aufweisen, wobei Bewertungswerte von einer akustischen Bewertungseinheit für das Schlüsselausdrucksmodell oder die Schlüsselausdrucksmodelle 302 zusammengestellt werden können und als mehrere Elemente aufweisender akustischer Bewertungsvektor in die Modellaktualisierungs-Datenstruktur 601 eingegebenen werden können. Beispielsweise können Bewertungswerte für das Schlüsselausdrucksmodell 302 für einen einzigen Deskriptor 601 oder für mehrere Deskriptoren 830 und 840 (8), die parallel verarbeitet werden, oder mehrere verkettete Deskriptoren 904 und 906 (9) oder dergleichen zusammengestellt werden, wenn mehrere Schlüsselausdrücke erkannt werden. Die Bewertungswerte können unter Verwendung einer oder mehrerer geeigneter Techniken zusammengestellt werden, so dass die Bewertungswerte durch einen NNA verarbeitet werden können. Bei einer Implementation werden die Bewertungswerte 214 anhand des akustischen Bewertungsmodells zusammengestellt und im Speicher gespeichert.
  • Optional kann diese Operation das „Erzeugen eines akustischen Bewertungswerts für einen Blindzustand“ 1508 aufweisen, wobei ein akustischer Ablehnungsbewertungswert erhalten werden kann, wobei es sich in einer Form um den gleichen Ablehnungsbewertungswert P0 handelt, der für die Hauptschlüsselausdruckserkennung als Blindzustand verwendet wird. Dieser Bewertungswert wird an der letzten Position entlang dem mehrere Elemente aufweisenden akustischen Bewertungsvektor 610 angeordnet (oder tatsächlich gleich hinter dem letzten Schlüsselausdruckserkennungszustand (oder mit anderen Worten bei N + 1)). Dieser Bewertungswert wird ebenso wie die vektorisierten Schlüsselausdruckserkennungsoperationen verarbeitet, abgesehen davon, dass kein Übergang von den Haupt-Schlüsselausdruckserkennungszustands-Bewertungswerten auftritt. Eine Endpunktbestimmung wird dann beispielsweise unter Verwendung des NNA 1604 und wie vorstehend beschrieben erzeugt und gibt an, ob der aktuelle analysierte Zeitpunkt der Endpunkt des Schlüsselausdrucks ist.
  • Der Prozess 1500 kann das „Aktualisieren von Übergängen zu Schlüsselausdrucksmodellen mit einem Ablehnungsmodell-Bewertungswert“ 1510 aufweisen. Beispielsweise können die Übergänge vom Ablehnungsmodell 301 in der Art der Übergänge 313 mit dem in Operation 1502 bestimmten Ablehnungsbewertungswert aktualisiert werden. Die Übergänge können unter Verwendung einer oder mehrerer geeigneter Techniken aktualisiert werden. Diese Operation kann das Aktualisieren von Bewertungswerten für optionale Stillezustände des Schlüsselausdrucksmodells aufweisen.
  • Der Prozess 1500 kann „optionales Zusammenstellen von Bewertungswerten für den Ablehnungsbewertungsvektor für Sprache/Keine-Sprache-Erkennung“ 1512 aufweisen, wobei dies das Erhalten der gepoolten Sprache- und Keine-Sprache-Bewertungswerte und das Anordnen von ihnen in einer bestimmten Sequenz, wie vorstehend erklärt, zur Bildung des Vektors Q 730 (7) beinhaltet. In einer Form beinhaltet dies das Anordnen des gepoolten Keine-Sprache-Bewertungswerts an den beiden Enden des Vektors Q, während der Sprache-Bewertungswert an den mittleren Positionen des Vektors Q angeordnet wird, um einen Keine-Sprache-zu-Sprache-Übergang an einem Ende des Vektors und dann einen Sprache-zu-Keine-Sprache-Übergang am anderen Ende des Vektors einzurichten. Der Vektor Q ist dann für vektorisierte Operationen bereit, die jenen gleichen oder ähneln, die für den Schlüsselausdruckserkennungsteil der Datenstruktur des Decodierers ausgeführt werden, abgesehen davon, dass sie hier für die Sprache/Keine-Sprache-Erkennung vorgesehen sind.
  • Der Prozess 1500 kann das „Ausführen einer rekurrenten Operation einschließlich des Kombinierens vorhergehender Zustandsbewertungswerte und aktueller akustischer Bewertungswerte“ 1514 aufweisen. Wie hier erwähnt, kann dies das Kombinieren des mehrere Elemente aufweisenden akustischen Bewertungsvektors mit einem vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor einschließen, wobei die Vektoren einen Bewertungswert für das Ablehnungsmodell und jeden Zustand des Schlüsselausdrucksmodells oder der Schlüsselausdrucksmodelle aufweisen. In einer Form kann diese vektorisierte Operation eine elementweise Summe zwischen den beiden Vektoren bestimmen. Beispielsweise kann der mehrere Elemente aufweisende akustische Bewertungsvektor 401 auf der Grundlage der vektorisierten Operation 403 mit dem vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor 402 summiert werden, um den Zwischenbewertungsvektor 404 zu erzeugen. Die vektorisierte Summieroperation kann auf dedizierter Hardware in der Art eines neuronalen Netzbeschleunigers 1604 unter Verwendung beispielsweise einer affinen Schicht, und indem die Bewertungswerte des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors unter Verwendung des Vorbeeinflussungspuffers und der Vorbeeinflussungslogik 1622 und 1620 zu den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors addiert werden, ausgeführt werden, was dazu führt, dass die elementweise Summierung gleichzeitig oder im Wesentlichen gleichzeitig, parallel oder dergleichen ausgeführt wird. Dies ist Teil der Operation 622 und der rekurrenten Bögen 624 (6) und durch den Vektor 1016 (10) dargestellt.
  • Der Prozess 1500 kann das „Ausführen einer Weiterleitungsoperation“ 1516 aufweisen. Es wird dann eine Weiterleitungsoperation ausgeführt, die Bewertungswerte (oder zumindest die Faktorisierung von Bewertungswerten) von einem Anfangszustand zu einem Endzustand im Schlüsselausdrucksmodell 302, wie durch den Übergang 323 (3) repräsentiert, und von S0 zu SN auf den Übergängen 629, wie auf dem mehrere Elemente aufweisenden Zustandsbewertungsfaktorvektor 624 dargestellt (6), von einem Zustand zum anderen bewegt. Dies kann erreicht werden, indem für jeden Zustand des einen oder der mehreren Schlüsselausdrucksmodelle eine vektorisierte Operation verwendet wird, die das „Bestimmen des Maximums des Zustandsbewertungswerts und des Bewertungswerts des Übergangs in den Zustand für jeden Zustand des einen oder der mehreren Schlüsselausdrucksmodelle“ 1518 aufweisen kann. Hierbei kann das Maximum des Zustandsbewertungswerts für den Zustand und des Zustandsbewertungsübergangs für den Zustand bestimmt werden. Beispielsweise können Max-Operationen auf benachbarte Werte oder Elemente des Zwischenbewertungsvektors 404 angewendet werden, um das Maximum des Zustandsbewertungswerts und des Übergangsbewertungswerts zu bestimmen, wie vorstehend anhand der Decodiererdatenstruktur 400 und des Decodierers 600 erklärt. Zur Ausführung dieser Operation auf einem NNA unter Verwendung von Schaltungen und/oder Logik eines neuronalen Netzes kann die 2x1-Max-Poolingoperation 1018 ausgeführt werden, wie anhand des NNA 1000 (10) erklärt, wenngleich auch andere Verfahren verwendet werden könnten, wenn der NNA nicht verwendet wird. Es sei bemerkt, dass die Max-Pool-Operation nicht auf den Ablehnungszustand S0 451 angewendet wird und sich dieser Zustand gegenüber der früheren Kombination (oder Summation) der vorstehend erwähnten Vektoroperation, wie anhand der Decodiererdatenstruktur 400 dargestellt, ändert.
  • Der Prozess 1500 kann das „Aktualisieren von Ablehnungszuständen“ 1520 aufweisen, wobei für jeden Ablehnungszustand, einschließlich des Ablehnungszustands des Ablehnungsmodells, die Zustände auf der Grundlage des in Operation 1502 bestimmten Ablehnungszustands-Bewertungswerts aktualisiert werden können. Beispielsweise können der einzelne Ablehnungszustand 311 des Ablehnungsmodells 301 und jene Zustände des einen oder der mehreren Schlüsselausdrucksmodelle, die vom Ablehnungszustand übergehen, mit dem in Operation 1502 bestimmten Ablehnungszustands-Bewertungswert aktualisiert werden.
  • Der Prozess 1500 kann das „Bestimmen des endgültigen Bewertungswerts für das eine oder die mehreren Schlüsselausdrucksmodelle“ 1522 aufweisen. Wenn nur ein einziges Schlüsselausdrucksmodell implementiert wird, kann auf den Zustandsbewertungswert, der dem endgültigen oder letzten Zustand des Schlüsselausdrucksmodells entspricht, als endgültiger Bewertungswert des Schlüsselausdrucksmodells zugegriffen werden. Falls beispielsweise mit Bezug auf 6 der mehrere Elemente aufweisende Zustandsbewertungsvektor 624 ein einziges Schlüsselausdrucksmodell repräsentiert, kann der Bewertungswert SN der aktuellen Bewertungswerte 627 den endgültigen Bewertungswert bereitstellen. Falls mehrere Schlüsselausdrucksmodelle verwendet werden, kann auf jene der aktuellen Bewertungswerte 627 zugegriffen werden, die den endgültigen Zuständen der Schlüsselausdrucksmodelle entsprechen, und kann das Maximum der endgültigen Bewertungswerte als endgültiger Bewertungswert der Operation 1522 bestimmt werden oder können diese Bewertungswerte getrennt für jeden verschiedenen erkannten Schlüsselausdruck analysiert werden.
  • Der Prozess 1500 kann das „Beurteilen des Ablehnungsmodell-Bewertungswerts und des endgültigen Schlüsselausdrucksmodell-Bewertungswerts unter Verwendung der affinen Schicht“ 1524 aufweisen, und dies bezieht sich insbesondere auf die Bewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors. In einer Form wird eine affine Schicht verwendet, so dass diese Operation als neuronales Netz durch einen NNA 1604 ausgeführt werden kann. In einer Form sind dies die einzigen beiden Eingaben in die affine Schicht zur Bestimmung der Differenz zwischen den beiden Werten, wobei eine ein Gewicht von -1 aufweist und die andere ein Gewicht von 1 aufweist. Die Differenz wird dann getrennt mit einer Schwelle verglichen. In einer anderen Form ist die Schwelle auch eine Eingabe für die affine Schicht. Bei einer weiteren Form werden alle Bewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors in die affine Schicht eingegeben, abgesehen davon, dass den mittleren Bewertungswerten zwischen S0 und SN ein Gewicht von 0 gegeben wird, um diese Bewertungswerte fallen zu lassen, wie vorstehend erklärt wurde. Die Gewichte werden den Bewertungswerten zugewiesen, so dass, wenn die Ausgabe der affinen Schicht positiv (oder negativ) ist, der Schlüsselausdruck in der Audioeingabe erkannt wurde. Wenn der Schlüsselausdruck erkannt wurde, können die Vorrichtung selbst und/oder andere Anwendungen in der Art einer ASR-Anwendung für einen PA aktiviert oder aufgeweckt werden, wie vorstehend erörtert.
  • Wie vorstehend auch erwähnt wurde, kann eine Mehrzahl anderer integrierter Prozesse auf einem Decodierer implementiert werden und durch einen NNA an Stelle eines DSP oder eines Prozessors für allgemeine Zwecke verarbeitet werden. Beispielsweise kann der Prozess 1500 das „optionale Bestimmen eines Schlüsselausdrucksendpunkts“ 1526 aufweisen. Wie vorstehend anhand des Decodierers 600 beschrieben, kann ein Blindzustand am Ende des mehrere Elemente aufweisenden Vektors oder an einer anderen Stelle angeordnet werden, um getrennt einen Ablehnungszustands-Bewertungswert P0 zu empfangen, der für die Schlüsselausdruckserkennung verwendet wird, und dann die gleiche rekurrente Operation ohne einen Übergang von den Schlüsselausdruckszuständen an diesem Bewertungswert auszuführen. Ein Vergleich eines aktuellen Blindzustands 634 mit dem endgültigen Zustand SN der Schlüsselausdruckserkennung kann dann den Endpunkt des Schlüsselausdrucks identifizieren. Diese Bestimmung kann auch als affine Schicht implementiert werden.
  • Ein anderer integrierter Prozess, wie durch den Decodierer 700 dargestellt, ist die Sprache/Keine-Sprache-Erkennung. Demgemäß kann der Prozess 1500 das „optionale Erkennen von Sprache und Keine-Sprache“ 1528 aufweisen, wobei dies die Verwendung beispielsweise eines NNA 1100 (11) und/oder 1604 (6) aufweisen kann. Dies beinhaltet das Pooling akustischer Ablehnungsbewertungswerte nach der Kategorie zur Bildung eines gepoolten Sprache-Bewertungswerts und eines gepoolten Keine-Sprache-Bewertungswerts und das anschließende Umordnen dieser beiden gepoolten Bewertungswerte zu einem Ablehnungsvektor Q, der rekurrent zu einem Ablehnungszustands-Bewertungsvektor T, wie vorstehend mit Bezug auf den Decodierer 700 und den NNA 1100 beschrieben, weitergeleitet wird. Die Ablehnungszustands-Bewertungswerte am Vektor T werden analysiert, wobei die Bewertungswerte einen Übergang von Keine-Sprache zu Sprache und dann von Sprache zurück zu Keine-Sprache angeben, wie vorstehend beschrieben. Die beiden Bewertungswerte für diese beiden Übergänge können dann getrennt analysiert werden, um festzustellen, ob beide Übergänge wahr sind, wobei dies wieder unter Verwendung durch einen NNA betriebener affiner und anderer Schichten geschieht.
  • Als andere Operation, die modifiziert wird, um auf einem NNA an Stelle eines DSP, eines Prozessors für allgemeine Zwecke oder anderer Prozessoren, die bei NNA-Operationen unwirksam sind, ausgeführt zu werden, kann der Prozess 1500 das „optionale Ausführen einer Schlüsselausdrucks-Anfangspunkterkennung“ 1530 aufweisen, was geschehen kann, nachdem die Zustandsbewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors als Ausgaben vom Schlüsselausdrucksdecodierer bereitgestellt wurden. Bei einer Option kann dies nur dann implementiert werden, wenn ein Schlüsselausdruck erkannt wurde, und kann nicht immer jede Ausgabe vom Schlüsselausdrucksdecodierer analysiert werden. Bei anderen Operationen ist die Anfangspunkterkennung jedoch stets aktiv und wird bei jeder Iteration ausgeführt, bevor ein Schlüsselausdruck erkannt wird, um den Anfangspunkteingabe-Rahmenindex geeignet zu verfolgen. Mit anderen Worten kann der Anfangspunkt-Erkennungsalgorithmus im Hintergrund arbeiten und „stets eingeschaltet“ sein und ist sein Ergebnis (der Anfangspunkteingabe-Rahmenindex) gerade in dem Moment bereit, wenn der Schlüsselausdruck erkannt wird (die KPD-Bewertungsschwelle gekreuzt wird). Wenn der Schlüsselausdruck erkannt wurde, kann die Schlüsselausdrucks-Anfangspunkterkennung durch Umwandeln der Bewertungswerte des mehrere Elemente aufweisenden Zustandsbewertungsvektors durch einen Boolingprozess implementiert werden, der als neuronale Netzschicht mit einer Boolingaktivierungsfunktion implementiert ist, und in eine Reihe von len und Oen umgewandelt werden, wodurch angegeben wird, welche Bewertungswertpositionen vom Schlüsselausdruckserkennungs-Ausgangsvektor in einem HMM des Schlüsselausdrucksmodells weitergeleitet wurden, wobei dies als mehrere Zustände aufweisende Sequenz implementiert wird, wie zuvor in Einzelheiten beschrieben wurde (3 und 4) und wobei ein Vorwärts- und ein invertierter Boolvektor von len und Oen gebildet werden. Durch Multiplizieren der Boolvektoren mit einem rekurrent angewendeten Ausgangsvektor indexierter Rahmenorte von Rahmen der Audioeingabe kann genau festgestellt werden, welcher Rahmen den Anfangspunkt des Schlüsselausdrucks angibt, was alles vorstehend detailliert anhand des NNA 1200 (12) erklärt wurde.
  • Mit der Implementation der vorstehend beschriebenen neuronalen Netzoperationen kann ein ganz auf einem neuronalen Netz beruhender Schlüsselausdrucksprozess implementiert werden, wodurch die Verwendung eines DSP oder anderer Prozessoren für allgemeine Zwecke beseitigt oder erheblich verringert wird. Dies kann Operationen zur Merkmalsextraktion, zur akustischen Bewertung, zur Schlüsselausdrucksdecodierung, zur Sprache/Keine-Sprache-Erkennung und/oder zur Schlüsselausdrucks-Anfangspunkt- und -Endpunkterkennung einschließen.
  • Es sei bemerkt, dass, wenngleich hier eine affine Schicht als die für die Ausführung der Operationen auf einem NNA verwendete Schicht beschrieben wird, diese Schichten wegen ihrer Einfachheit und Genauigkeit gewählt werden. Demgemäß könnten andere Typen neuronaler Netzschichten verwendet werden, solange die Operationen unter Verwendung eines neuronalen Netzes ausgeführt werden können, und sie können bei einer Implementation auf einem neuronalen Netzbeschleuniger oder einer anderen Hardwareschaltung oder -logik ausgeführt werden, die für den spezifischen Zweck des Betreibens eines oder mehrerer neuronaler Netze eingerichtet ist.
  • Es sei auch bemerkt, dass andere Endanwendungen zusätzlich zum Puffergrößen-Steuersystem 1300 (13) und zur Mehrmikrofonsteuerung 1400 (14), wie vorstehend beschrieben, von der durch das neuronale Netz ausgeführten Sprache/Keine-Sprache-Erkennung profitieren können.
  • Wenngleich die Implementation der hier erörterten beispielhaften Prozesse die Ausführung aller in der dargestellten Reihenfolge gezeigter Operationen aufweisen kann, ist die vorliegende Offenbarung nicht darauf beschränkt, und bei verschiedenen Beispielen kann die Implementation der beispielhaften Prozesse nur eine Teilmenge der dargestellten Operationen, in einer anderen Reihenfolge als dargestellt ausgeführte Operationen oder zusätzliche Operationen aufweisen.
  • Zusätzlich können jegliche der hier offenbarten Operationen ansprechend auf von einem oder mehreren Computerprogrammprodukten bereitgestellte Befehle ausgeführt werden. Diese Programmprodukte können signaltragende Medien aufweisen, die Befehle bereitstellen, die, wenn sie beispielsweise von einem Prozessor ausgeführt werden, die hier beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in einer beliebigen Form eines oder mehrerer maschinenlesbarer Medien bereitgestellt werden. Demgemäß kann beispielsweise ein Prozessor, der eine oder mehrere Graphikverarbeitungseinheiten oder Prozessorkerne aufweist, einen oder mehrere der Blöcke der hier beschriebenen beispielhaften Prozesse ansprechend darauf ausführen, dass dem Prozessor durch ein oder mehrere maschinenlesbare Medien Programmcode und/oder Befehle oder Befehlssätze zugeführt werden. Im Allgemeinen kann ein maschinenlesbares Medium Software in Form von Programmcode und/oder Befehlen oder Befehlssätzen bereitstellen, die jegliche der hier beschriebenen Vorrichtungen und/oder Systeme veranlassen können, jegliche hier erörterte Systeme, Operationen, Module oder Komponenten zu implementieren. Die maschinen- oder computerlesbaren Medien können ein nichtflüchtiger Artikel oder ein nichtflüchtiges Medium in der Art eines nichtflüchtigen computerlesbaren Mediums sein und mit jeglichen der vorstehend erwähnten oder anderen Beispielen verwendet werden, abgesehen davon, dass darin kein flüchtiges Signal an sich enthalten ist. Es sind darin jene anderen Elemente als ein Signal an sich enthalten, die Daten vorübergehend in einer „flüchtigen“ Weise in der Art eines RAM und dergleichen halten können.
  • Wie in einer hier beschriebenen Implementation verwendet, bezieht sich der Begriff „Modul“ oder „Einheit“ auf eine Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik, die dafür ausgelegt ist, die hier beschriebene Funktionalität bereitzustellen. Die Software kann als ein Softwarepaket, Code und/oder ein Befehlssatz oder Befehle verwirklicht werden, und „Hardware“, wie in einer hier beschriebenen Implementation verwendet, kann beispielsweise einzeln oder in einer Kombination festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen und/oder Firmware, welche von programmierbaren Schaltungen ausgeführte Befehle speichert, einschließen. Die Module können gemeinsam oder einzeln als Schaltungen verwirklicht werden, die Teil eines größeren Systems, beispielsweise einer integrierten Schaltung (IC), eines Systems auf einem Chip (SoC) usw. sind. Beispielsweise kann ein Modul in Logikschaltungen für die Implementation durch Software, Firmware oder Hardware der hier erörterten Codiersysteme verwirklicht werden.
  • Wie in einer hier beschriebenen Implementation verwendet, bezieht sich der Begriff „Logikeinheit“ auf eine Kombination von Firmwarelogik und/oder Hardwarelogik, die dafür ausgelegt ist, die hier beschriebene Funktionalität bereitzustellen. Die Logikeinheiten können gemeinsam oder einzeln als Schaltungen verwirklicht werden, die Teil eines größeren Systems, beispielsweise einer integrierten Schaltung (IC), eines Systems auf einem Chip (SoC) usw. sind. Beispielsweise kann eine Logikeinheit in Logikschaltungen für die Implementation von Firmware oder Hardware der hier erörterten Codiersysteme verwirklicht werden. Durchschnittsfachleute auf dem Gebiet werden verstehen, dass durch Hardware und/oder Firmware ausgeführte Operationen alternativ durch Software implementiert werden können, die als ein Softwarepaket, Code und/oder Befehlssatz oder Befehle verwirklicht werden kann, und sie werden auch verstehen, dass die Logikeinheit auch einen Teil der Software verwenden kann, um ihre Funktionalität zu implementieren.
  • Wie in einer hier beschriebenen Implementation verwendet, kann sich der Begriff „Komponente“ auf ein Modul oder eine Logikeinheit, wie diese Begriffe vorstehend beschrieben wurden, beziehen. Dementsprechend kann sich der Begriff „Komponente“ auf eine Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik, die dafür ausgelegt ist, die hier beschriebene Funktionalität bereitzustellen, beziehen. Beispielsweise werden Durchschnittsfachleute auf dem Gebiet verstehen, dass durch Hardware und/oder Firmware ausgeführte Operationen alternativ durch ein Softwaremodul implementiert werden können, das als ein Softwarepaket, Code und/oder Befehlssatz verwirklicht werden kann, und sie werden auch verstehen, dass die Logikeinheit auch einen Teil der Software verwenden kann, um ihre Funktionalität zu implementieren.
  • 17 ist ein der Erläuterung dienendes Diagramm eines beispielhaften Systems 1700, das gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet ist. Bei verschiedenen Implementationen kann das System 1700 ein Mediensystem sein, wenngleich das System 1700 nicht auf diesen Zusammenhang beschränkt ist. Beispielsweise kann das System 1700 in einen Personalcomputer (PC), Laptopcomputer, Ultra-Laptopcomputer, Tablet, Touchpad, tragbaren Computer, handgehaltenen Computer, Palmtop-Computer, persönlichen digitalen Assistenten (PDA), Mobiltelefon, eine Kombination eines Mobiltelefons und eines PDA, ein Fernsehgerät, eine intelligente Vorrichtung (beispielsweise ein Smartphone, ein Smarttablet, ein Smart Speaker oder ein intelligentes Fernsehgerät), eine mobile Internetvorrichtung (MID), eine Nachrichtenaustauschvorrichtung, eine Datenkommunikationsvorrichtung, Kameras (beispielsweise Point-and-Shoot-Kameras, Superzoomkameras, digitale Einzellinsenreflex(DSLR)-Kameras) usw. aufgenommen sein.
  • Bei verschiedenen Implementationen weist das System 1700 eine mit einer Anzeige 1720 gekoppelte Plattform 1702 auf. Die Plattform 1702 kann Inhalt von einer Inhaltsvorrichtung in der Art einer oder mehrerer Inhaltsdienstvorrichtungen 1730 oder Inhaltsliefervorrichtungen 1740 oder anderer ähnlicher Inhaltsquellen empfangen. Wie dargestellt, kann das System 1700 bei einigen Beispielen ein Mikrofon 201 aufweisen, das durch die Plattform 1702 oder getrennt von der Plattform implementiert ist. Die Plattform 1702 kann über das Mikrofon 201, wie hier erörtert, eingegebene Sprache empfangen. Ebenso kann ein Lautsprecher-Untersystem 1762 bereitgestellt sein, um die Lautsprecher 1764 zur Emission einer Audioeingabe als Ton zu steuern. Eine Navigationssteuereinrichtung 1750, die ein oder mehrere Navigationsmerkmale aufweist, kann verwendet werden, um beispielsweise mit der Plattform 1702 und/oder der Anzeige 1720 zu interagieren. Jede dieser Komponenten wird nachstehend in weiteren Einzelheiten beschrieben.
  • Bei verschiedenen Implementationen kann das System 1700 wie beschrieben eine Schlüsselausdruckserkennung bereitstellen. Beispielsweise kann die Schlüsselausdruckserkennung eine Wake-on-Voice-Fähigkeit für eine Vorrichtung oder Umgebung bereitstellen, wie beschrieben. Bei anderen Implementationen kann das System 1700 die Erzeugung eines Schlüsselausdrucks-Erkennungsmodells bereitstellen (beispielsweise einschließlich eines akustischen Modells, eines Ablehnungsmodells und eines Schlüsselausdrucksmodells). Dieses Training kann beispielsweise vor der Schlüsselausdruckserkennung offline ausgeführt werden.
  • Bei verschiedenen Implementationen kann die Plattform 1702 eine Kombination eines Chipsatzes 1705, eines Prozessors 1710, eines flüchtigen Speichers 1712, einer Antenne 1713, eines Festspeichers 1714, eines Graphikuntersystems 1715, von Anwendungen 1716, eines Mikrofons 201 und/oder einer Funkeinrichtung 1718 aufweisen. Der Chipsatz 1705 kann eine Kommunikation zwischen dem Prozessor 1710, dem flüchtigen Speicher 1712, dem Festspeicher 1714, dem Graphikuntersystem 1715, Anwendungen 1716 und/oder der Funkeinrichtung 1718 bereitstellen. Beispielsweise kann der Chipsatz 1705 einen Speichervorrichtungsadapter (nicht dargestellt) aufweisen, der eine Kommunikation mit dem Festspeicher 1714 bereitstellen kann.
  • Der Prozessor 1710 kann als ein oder mehrere neuronale Netzbeschleuniger (NNA) implementiert sein, kann jedoch andernfalls, sofern nicht auf einen NNA beschränkt, oder wenn diese Struktur einen NNA implementieren kann, als Prozessor mit einem komplexen Befehlssatz (CISC) oder Prozessor eines Computers mit einem reduzierten Befehlssatz (RISC), mit dem x86-Befehlssatz kompatible Prozessoren, ein Mehrkern- oder andere Mikroprozessor oder eine Zentralverarbeitungseinheit (CPU) implementiert sein. Bei verschiedenen Implementationen kann der Prozessor 1710 aus einem oder mehreren Zweikernprozessoren, Zweikern-Mobilprozessoren usw. bestehen.
  • Der flüchtige Speicher 1712 kann als eine flüchtige Speichervorrichtung in der Art eines Direktzugriffsspeichers (RAM), eines dynamischen Direktzugriffsspeichers (DRAM) oder eines statischen RAM (SRAM) implementiert sein, ist jedoch nicht auf diese beschränkt.
  • Der Festspeicher 1714 kann als eine nichtflüchtige Speichervorrichtung in der Art eines Magnetplattenlaufwerks, eines optischen Plattenlaufwerks, eines Bandlaufwerks, einer internen Speichervorrichtung, einer angebrachten Speichervorrichtung, eines Flash-Speichers, eines batteriegestützten SDRAM (synchronen DRAM) und/oder einer über ein Netz zugänglichen Speichervorrichtung implementiert sein, ist jedoch nicht darauf beschränkt. Bei verschiedenen Implementationen kann der Festspeicher 1714 eine Technologie zum Erhöhen der Speicherleistungsfähigkeit mit verbessertem Schutz für wertvolle digitale Medien aufweisen, wenn beispielsweise mehrere Festplattenlaufwerke aufgenommen sind.
  • Das Graphikuntersystem 1715 kann eine Verarbeitung von Bildern in der Art stehender Bilder oder von Video für die Anzeige ausführen. Das Graphikuntersystem 1715 kann beispielsweise eine Graphikverarbeitungseinheit (GPU) oder eine visuelle Verarbeitungseinheit (VPU) sein. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Graphikuntersystem 1715 und die Anzeige 1720 kommunikativ zu koppeln. Beispielsweise kann die Schnittstelle eine Multimediaschnittstelle hoher Definition, ein DisplayPort, eine drahtlose HDMI-Schnittstelle sein und/oder durch drahtlose HD-kompatible Techniken gegeben sein. Das Graphikuntersystem 1715 kann in den Prozessor 1710 oder den Chipsatz 1715 integriert sein. Bei einigen Implementationen kann das Graphikuntersystem 1715 eine mit dem Chipsatz 1705 gekoppelte autonome Vorrichtung sein.
  • Die hier beschriebenen Graphik- und/oder Videoverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert werden. Beispielsweise kann Graphik- und/oder Videofunktionalität in einen Chipsatz integriert werden. Alternativ kann ein diskreter Graphik- und/oder Videoprozessor verwendet werden. Bei einer anderen Implementation können die Graphik- und/oder Videofunktionen durch einen Prozessor für allgemeine Zwecke, einschließlich eines Mehrkernprozessors, bereitgestellt werden. Bei weiteren Implementationen können die Funktionen in einer elektronischen Endverbrauchervorrichtung implementiert werden.
  • Die Funkeinrichtung 1718 kann ein oder mehrere Funkeinrichtungen einschließen, die in der Lage sind, Signale unter Verwendung verschiedener geeigneter Drahtloskommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikationen über ein oder mehrere Drahtlosnetze einschließen. Als Beispiel dienende Drahtlosnetze umfassen (sind jedoch nicht darauf beschränkt) drahtlose lokale Netze (WLAN), drahtlose persönliche Netze (WPAN), drahtlose Großstadtnetze (WMAN), Mobilfunknetze und Satellitennetze. Bei der Kommunikation über solche Netze kann die Funkeinrichtung 1718 nach einem oder mehreren anwendbaren Standards in einer beliebigen Version arbeiten.
  • Bei verschiedenen Implementationen kann die Anzeige 1720 einen beliebigen Fernsehbildschirm oder eine beliebige Fernsehanzeige umfassen. Die Anzeige 1720 kann beispielsweise einen Computeranzeigebildschirm, eine Berührungsbildschirmanzeige, einen Videobildschirm, eine fernsehartige Vorrichtung und/oder ein Fernsehgerät umfassen. Die Anzeige 1720 kann digital und/oder analog sein. Bei verschiedenen Implementationen kann die Anzeige 1720 eine holographische Anzeige sein. Auch kann die Anzeige 1720 eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten übermitteln. Beispielsweise können solche Projektionen eine visuelle Überlagerung für eine mobile Augmented-Reality(MAR)-Anwendung sein. Die Plattform 1702 kann, von einer oder mehreren Softwareanwendungen 1716 gesteuert, eine Benutzerschnittstelle 1722 auf der Anzeige 1720 anzeigen.
  • Bei verschiedenen Implementationen können eine oder mehrere Inhaltsdienstvorrichtungen 1730 durch einen nationalen, internationalen und/oder unabhängigen Dienst, der demgemäß beispielsweise über das Internet für die Plattform 1702 zugänglich ist, gehostet sein. Die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 1730 kann (können) mit der Plattform 1702 und/oder der Anzeige 1720 gekoppelt sein. Die Plattform 1702 und/oder die Inhaltsdienstvorrichtung (Inhaltsdienstvorrichtungen) 1730 können mit einem Netz 1760 gekoppelt sein, um Medieninformationen zum Netz 1760 und von diesem zu übermitteln (beispielsweise zu senden und/oder zu empfangen). Die eine oder die mehreren Inhaltsliefervorrichtungen 1740 können auch mit der Plattform 1702 und/oder der Anzeige 1720 gekoppelt sein.
  • Bei verschiedenen Implementationen können die eine oder die mehreren Inhaltsdienstvorrichtungen 1730 einen Kabelfernsehkasten, einen Personalcomputer, ein Netz, ein Telefon, internetfähige Vorrichtungen oder ein Gerät, das in der Lage ist, digitale Informationen und/oder digitalen Inhalt auszuliefern, und eine beliebige andere ähnliche Vorrichtung, die in der Lage ist, Inhalt zwischen Inhaltsanbietern und der Plattform 1702 und der Anzeige 1720 über das Netz 1760 oder direkt unidirektional oder bidirektional zu übermitteln, umfassen. Es sei bemerkt, dass der Inhalt unidirektional und/oder bidirektional zu einer der Komponenten im System 1700 und einem Inhaltsanbieter und von diesen über das Netz 1760 übermittelt werden kann. Beispiele von Inhalt können beliebige Medieninformationen einschließen, einschließlich beispielsweise Video-, Musik-, medizinischer und Spielinformationen usw.
  • Die eine oder die mehreren Inhaltsdienstvorrichtungen 1730 können Inhalt in der Art eines Kabelfernsehprogramms, einschließlich Medieninformationen, digitaler Informationen und/oder anderen Inhalt, empfangen. Beispiele von Inhaltsanbietern können beliebige Kabel- oder Satellitenfernseh- oder Radio- oder Internetinhaltsanbieter einschließen. Die bereitgestellten Beispiele sollen Implementationen gemäß der vorliegenden Offenbarung in keiner Weise einschränken.
  • Bei verschiedenen Implementationen kann die Plattform 1702 Steuersignale von der Navigationssteuereinrichtung 1750 mit einem oder mehreren Navigationsmerkmalen empfangen. Die Navigationsmerkmale der Steuereinrichtung 1750 können beispielsweise verwendet werden, um mit der Benutzerschnittstelle 1722 zu interagieren. Bei verschiedenen Implementationen kann die Navigationssteuereinrichtung 1750 eine Zeigevorrichtung sein, die eine Computerhardwarekomponente (insbesondere eine Human-Interface-Vorrichtung) sein kann, die es einem Benutzer ermöglicht, räumliche (beispielsweise kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie graphische Benutzerschnittstellen (GUI) und Fernsehgeräte und Bildschirme, ermöglichen es dem Benutzer, den Computer oder das Fernsehgerät unter Verwendung physikalischer Gesten zu steuern und ihm dadurch Daten bereizustellen.
  • Bewegungen der Navigationsmerkmale der Steuereinrichtung 1750 können auf einer Anzeige (beispielsweise der Anzeige 1720) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer Sichtindikatoren, die auf der Anzeige angezeigt werden, repliziert werden. Beispielsweise können, durch Softwareanwendungen 1716 gesteuert, die Navigationsmerkmale, die sich auf der Navigationssteuereinrichtung 1750 befinden, auf virtuelle Navigationsmerkmale abgebildet werden, die beispielsweise auf der Benutzerschnittstelle 1722 angezeigt werden. Bei verschiedenen Implementationen kann die Steuereinrichtung 1750 keine getrennte Komponente sein, sondern in die Plattform 1702 und/oder die Anzeige 1720 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder auf den Zusammenhang, die hier dargestellt oder beschrieben sind, beschränkt.
  • Bei verschiedenen Implementationen können Treiber (nicht dargestellt) eine Technologie aufweisen, um es Benutzern zu ermöglichen, die Plattform 1702 beispielsweise in der Art eines Fernsehgeräts mit der Berührung einer Taste nach dem anfänglichen Hochfahren, sofern dies ermöglicht es, sofort ein- und auszuschalten. Eine Programmlogik kann es der Plattform 1702 ermöglichen, Inhalt zu Medienadaptern oder einer oder mehreren anderen Inhaltsdienstvorrichtungen 1730 oder Inhaltsliefervorrichtungen 1740 zu streamen, wenn die Plattform „ausgeschaltet“ ist. Zusätzlich kann der Chipsatz 1705 eine Hardware- und/oder Softwareunterstützung beispielsweise für 5.1-Surround-Sound-Audio und/oder High-Definition-7.1-Surround-Sound-Audio aufweisen. Treiber können einen Graphiktreiber für integrierte Graphikplattformen einschließen. Bei verschiedenen Implementationen kann der Graphiktreiber eine Peripheriekomponentenverbindung s (PCI) -Express -Graphikkarte umfassen.
  • Bei verschiedenen Implementationen können eine oder mehrere der im System 1700 dargestellten Komponenten integriert sein. Beispielsweise können die Plattform 1702 und die eine oder die mehreren Inhaltsdienstvorrichtungen 1730 integriert sein oder können die Plattform 1702 und die eine oder die mehreren Inhaltsliefervorrichtungen 1740 integriert sein oder können beispielsweise die Plattform 1702, die eine oder die mehreren Inhaltsdienstvorrichtungen 1730 und die eine oder die mehreren Inhaltsliefervorrichtungen 1740 integriert sein. Bei verschiedenen Implementationen können die Plattform 1702 und die Anzeige 1720 eine integrierte Einheit sein. Die Anzeige 1720 und die eine oder die mehreren Inhaltsdienstvorrichtungen 1730 können integriert sein, oder die Anzeige 1720 und die eine oder die mehreren Inhaltsliefervorrichtungen 1740 können beispielsweise integriert sein. Diese Beispiele sollen die vorliegende Offenbarung nicht einschränken.
  • Bei verschiedenen Implementationen kann das System 1700 als ein drahtloses System, ein verdrahtetes System oder eine Kombination von beiden implementiert sein. Wenn es als ein drahtloses System implementiert wird, kann das System 1700 Komponenten oder Schnittstellen aufweisen, die für die Kommunikation über ein drahtloses geteiltes Medium geeignet sind, wie eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik und dergleichen. Ein Beispiel eines drahtlosen geteilten Mediums kann Abschnitte eines Drahtlosspektrums in der Art des HF-Spektrums usw. einschließen. Wenn es als ein verdrahtetes System implementiert wird, kann das System 1700 Komponenten und Schnittstellen aufweisen, die für die Kommunikation über verdrahtete Kommunikationsmedien geeignet sind, wie Ein-/Ausgabe(E/A)-Adapter, physikalische Verbinder zum Verbinden des E/A-Adapters mit einem entsprechenden verdrahteten Kommunikationsmedium, eine Netzschnittstellenkarte (NIC), eine Plattensteuereinrichtung, eine Videosteuereinrichtung, eine Audiosteuereinrichtung usw. Beispiele verdrahteter Kommunikationsmedien können einen Draht, ein Kabel, Metallleitungen, eine gedruckte Leiterplatte (PCB), eine rückseitige Ebene, ein Schaltnetz, ein Halbleitermaterial, einen Twisted-Pair-Draht, ein Koaxialkabel, eine Faseroptik usw. einschließen.
  • Die Plattform 1702 kann einen oder mehrere logische oder physikalische Kanäle zur Übermittlung von Informationen einrichten. Die Informationen können Medieninformationen und Steuerinformationen einschließen. Medieninformationen können sich auf beliebige Daten beziehen, die Inhalt darstellen, der für einen Benutzer bestimmt ist. Beispiele von Inhalt können beispielsweise Daten von einem Gespräch, einer Videokonferenz, Streaming-Video, einer elektronischen Nachricht („E-Mail“), einer Sprachnachricht, alphanumerische Symbole, Graphiken, Bilddaten, Videodaten, Textdaten usw. einschließen. Daten von einem Gespräch können beispielsweise Sprachinformationen, Ruheperioden, Hintergrundgeräusche, Annehmlichkeitsgeräusche, Töne usw. einschließen. Steuerinformationen können sich auf jegliche Daten beziehen, die Befehle, Anweisungen oder Steuerwörter darstellen, die für ein automatisches System bestimmt sind. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen in einer vorgegebenen Weise zu verarbeiten. Die Implementationen sind jedoch nicht auf die Elemente oder den Zusammenhang beschränkt, die oder der in 17 dargestellt oder beschrieben sind.
  • Mit Bezug auf 18 sei bemerkt, dass die Systeme 1600 und 1700, wie vorstehend beschrieben, in verschiedenen physischen Stilen oder Formfaktoren, einschließlich einer Vorrichtung 1800 mit einem kleinen Formfaktor, verwirklicht werden können, die gemäß zumindest einigen Implementationen der vorliegenden Offenbarung eingerichtet sind. Demgemäß können die Systeme 1600 oder 1700 bei einigen Beispielen durch die Vorrichtung 1800 implementiert sein. Bei anderen Beispielen können andere Vorrichtungen oder Systeme oder Teile davon durch die Vorrichtung 1800 implementiert werden. Bei verschiedenen Implementationen kann die Vorrichtung 1800 beispielsweise als mobile Rechenvorrichtung mit Drahtlosfähigkeiten implementiert werden. Eine mobile Rechenvorrichtung kann sich auf eine beliebige Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Leistungsquelle oder -versorgung, beispielsweise in der Art einer oder mehrerer Batterien, aufweist.
  • Beispiele einer mobilen Rechenvorrichtung können einen intelligenten Lautsprecher, einen Personalcomputer (PC), einen Laptopcomputer, einen Ultra-Laptopcomputer, ein Tablet, ein Phablet, einen Touchpad, einen tragbaren Computer, einen handgehaltenen Computer, einen Palmtopcomputer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Kombination aus einem Mobiltelefon und einem PDA, eine Smart-Vorrichtung (beispielsweise ein Smartphone, ein Smarttablet oder ein intelligentes mobiles Fernsehgerät), eine mobile Internetvorrichtung (MID), eine Nachrichtenaustauschvorrichtung, eine Datenkommunikationsvorrichtung, Kameras usw. aufweisen.
  • Beispiele einer mobilen Rechenvorrichtung können auch Computer aufweisen, die dafür eingerichtet sind, von einer Person getragen zu werden, wie Handgelenkcomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelklemmencomputer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere tragbare Computer. Bei verschiedenen Implementationen kann eine mobile Rechenvorrichtung beispielsweise als ein Smartphone implementiert werden, das in der Lage ist, Computeranwendungen sowie Sprachkommunikationen und/oder Datenkommunikationen auszuführen. Wenngleich einige Implementationen als Beispiel mit einer als Smartphone implementierten mobilen Rechenvorrichtung beschrieben werden können, ist zu verstehen, dass andere Ausführungsformen auch unter Verwendung anderer drahtloser mobiler Rechenvorrichtungen implementiert werden können. Die Implementationen sind in dieser Hinsicht jedoch nicht beschränkt.
  • Wie in 18 dargestellt ist, kann die Vorrichtung 1800 ein Gehäuse mit einer Vorderseite 1801 und einer Rückseite 1802 aufweisen. Die Vorrichtung 1800 weist eine Anzeige 1804, eine Ein-/Ausgabe(E/A)-Vorrichtung 1806 und eine integrierte Antenne 1808 auf. Die Vorrichtung 1800 kann auch Navigationsmerkmale 1812 aufweisen. Die E/A-Vorrichtung 1806 kann eine beliebige geeignete E/A-Vorrichtung zur Eingabe von Informationen in eine mobile Rechenvorrichtung einschließen. Beispiele für die E/A-Vorrichtung 1806 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Eingabeknöpfe, Schalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und -software usw. einschließen. Informationen können auch durch das Mikrofon 201 in die Vorrichtung 1800 eingegeben oder durch eine Spracherkennungsvorrichtung digitalisiert werden. Wie dargestellt ist, kann die Vorrichtung 1800 eine Kamera 1805 (beispielsweise eine Linse, eine Blende und einen Abbildungssensor) und einen in die Rückseite 1802 (oder an anderer Stelle) der Vorrichtung 1800 integrierten Blitz 1810 aufweisen.
  • Verschiedene Implementationen können unter Verwendung von Hardwareelementen einschließlich der vorstehend spezifizierten implementiert werden, die als neuronale Netzbeschleuniger (NNA) implementiert werden. Andernfalls können die Implementationen, wenn nicht spezifiziert, als Hardwareelemente, Softwareelemente oder eine Kombination von beiden implementiert werden. Beispiele anderer Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (beispielsweise Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), Logikgatter, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsätze usw. einschließen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine Kombination davon einschließen. Die Bestimmung, ob eine Implementation unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann von einer Mehrzahl von Faktoren in der Art der gewünschten Rechengeschwindigkeit, Stromverbrauchsniveaus, Wärmetoleranzen, des Verarbeitungszyklusbudgets, Dateneingaberaten, Datenausgaberaten, Speicherressourcen, Datenbusgeschwindigkeiten und anderer Entwurfs- oder Leistungsfähigkeitsrandbedingungen abhängen.
  • Ein oder mehrere Aspekte wenigstens einer Implementation können durch repräsentative Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, wodurch verschiedene Logik innerhalb des Prozessors repräsentiert wird, wodurch, wenn sie von einer Maschine gelesen werden, die Maschine veranlasst wird, Logik zur Ausführung der hier beschriebenen Techniken zu bilden. Diese als „IP-Kerne“ bekannten Repräsentationen können auf einem physischen maschinenlesbaren Medium gespeichert werden und verschiedenen Kunden oder Herstellungseinrichtungen zugeführt werden, um sie in die Herstellungsmaschinen zu laden, welche tatsächlich die Logik oder den Prozessor bilden.
  • Wenngleich bestimmte hier dargelegte Merkmale mit Bezug auf verschiedene Implementationen beschrieben wurden, sollte diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Daher wird davon ausgegangen, dass verschiedene Modifikationen der hier beschriebenen Implementationen sowie andere Implementationen, die Fachleuten auf dem Gebiet, auf das sich die vorliegende Offenbarung bezieht, einfallen werden, innerhalb des Gedankens und des Schutzumfangs der vorliegenden Offenbarung liegen.
  • Die folgenden Beispiele betreffen weitere Implementationen.
  • Eine Schlüsselausdrucks-Erkennungsvorrichtung umfasst einen Speicher, der eine empfangene Audioeingabe speichert, und wenigstens einen neuronalen Netzbeschleuniger, der kommunikativ mit dem Speicher verbunden ist, um die Audioeingabe zu empfangen und Folgendes auszuführen: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage der empfangenen Audioeingabe, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehende Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, und Feststellen, ob die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, unter Verwendung von Bewertungswerten vom aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor, und eine Steuereinrichtung zum Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  • Die Vorrichtung kann auch dass eine Schlüsselausdrucks-Erkennungseinheit aufweisen, die autonom durch den Netzbeschleuniger betrieben wird, ohne dass ein digitaler Signalprozessor verwendet wird, um die Merkmalsextraktion, akustische Bewertung und Schlüsselausdrucksdecodierung durch den neuronalen Netzbeschleuniger und ohne die Verwendung eines digitalen Signalprozessors auszuführen, wobei der neuronale Netzbeschleuniger einen endgültigen Bewertungswert unter Verwendung eines ersten Zustandsbewertungswerts auf der Grundlage des Einzelzustands-Ablehnungsmodells und eines zweiten Zustandsbewertungswerts, der einer der Zustandsbewertungswerte auf der Grundlage des Schlüsselausdrucksmodells ist, erzeugt und wobei sowohl der erste als auch der zweite Zustandsbewertungswert vom aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor stammen, wobei bei der Erzeugung eines endgültigen Bewertungswerts eine affine neuronale Netzschicht betrieben wird, wobei der erste und der zweite Zustandsbewertungswert Eingaben in die affine Schicht sind, wobei Bewertungswerte auf dem aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor zusätzlich zum ersten und zweiten Zustandsbewertungswert in die affine Schicht eingegeben werden und mit einem Gewicht von Null versehen werden, wobei der endgültige Bewertungswert unter Verwendung eines Schwellenwerts als Eingabe der affinen Schicht berechnet wird und wobei der Schwellenwert ein Gewicht von -1 hat, der erste Zustandsbewertungswert ein Gewicht von -1 hat und der zweite Zustandsbewertungswert ein Gewicht von 1 hat, wobei der neuronale Netzbeschleuniger so arbeitet, als ob er eine rekurrente neuronale Netzschicht ausführen würde, wobei ein gerade erzeugter aktueller mehrere Elemente aufweisender Zustandsbewertungsvektor als vorhergehender mehrere Elemente aufweisender Zustandsbewertungsvektor bereitgestellt wird, um ihn mit einem nächsten mehrere Elemente aufweisenden akustischen Bewertungsvektor zu verwenden, um den Vektor von Zwischenzustands-Bewertungswerten zu erzeugen, wobei der neuronale Netzbeschleuniger Elemente des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors als Vorbeeinflussungswerte behandelt, die auf Elemente des mehrere Elemente aufweisenden akustischen Bewertungsvektors anzuwenden sind, wobei die Weiterleitungsoperation eine Bestimmung eines Maximums von Werten individueller benachbarter Paare von Zuständen entlang dem Zwischenbewertungsvektor zur Bildung des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors ist, wobei der neuronale Netzbeschleuniger einen Blindzustand verarbeitet, der zu dem mehrere Elemente aufweisenden akustischen Bewertungsvektor zu addieren ist, um das Ende eines Schlüsselausdrucks in der Audioeingabe zu berechnen, wobei der neuronale Netzbeschleuniger den wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell durch getrenntes Poolen mehrerer grundlegender akustischer Bewertungswerte von mehreren Ablehnungskategorien von Stille, Phonetiken, Sprache-Geräusch und Keine-Sprache-Geräusch erzeugt, um einen Einzelkategorie-Bewertungswert jeder Kategorie zu bilden, bevor die Einzelkategorie-Bewertungswerte miteinander gepoolt werden, um einen einzelnen akustischen Ablehnungsbewertungswert zu bilden.
  • Bei einer anderen Implementation umfasst ein computerimplementiertes System zur Ausführung einer Schlüsselausdruckserkennung wenigstens ein Mikrofon zur Erfassung einer Audioeingabe, einen Speicher zum Speichern der Audioeingabe, wenigstens einen Prozessor, der kommunikativ mit dem wenigstens einen Mikrofon und dem wenigstens einen Speicher gekoppelt ist, und wenigstens einen neuronalen Netzbeschleuniger zum Empfangen der Audioeingabe, und führt Folgendes aus: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage der empfangenen Audioeingabe, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehenden Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, und Feststellen, ob aktuelle Zustandsbewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors angeben, dass die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, und Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  • Bei einem anderen Beispiel sieht das System Gegebenheiten vor, wobei der neuronale Netzbeschleuniger sowohl einen endgültigen Sprache-Bewertungswert als auch einen endgültigen Keine-Sprache-Bewertungswert erzeugt, wobei zumindest einige der gleichen grundlegenden akustischen Ablehnungsbewertungswerte, die zur Erzeugung des wenigstens einen akustischen Bewertungswerts für das wenigstens eine Ablehnungsmodell verwendet werden, gepoolt werden, und die endgültigen Sprache- und Keine-Sprache-Bewertungswerte verwendet werden, um festzustellen, ob in der Audioeingabe Sprache oder Keine-Sprache vorhanden ist, wobei der neuronale Netzbeschleuniger dafür eingerichtet ist, einen mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte unter Verwendung der grundlegenden akustischen Bewertungswerte zu bilden und Operationen an dem mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte auszuführen, um einen endgültigen Sprache-Bewertungswert und einen endgültigen Keine-Sprache-Bewertungswert zu bilden, wobei wenigstens ein auf Sprache bezogener Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen grundlegender auf Sprache bezogener Ablehnungsbewertungswerte beruht und wenigstens ein nicht auf Sprache bezogener Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen grundlegender nicht auf Sprache bezogener Ablehnungsbewertungswerte beruht, wobei die grundlegenden Ablehnungsbewertungswerte von Phonetiken und Ablehnungskategorien auf Sprache bezogener Geräusche miteinander gepoolt werden, um die auf Sprache bezogenen Bewertungswerte zu bilden, und Kategorien von Stille und Keine-Sprache-Geräusch miteinander gepoolt werden, um die nicht auf Sprache bezogenen Bewertungswerte zu bilden, wobei die gepoolten akustischen Ablehnungsbewertungswerte, die als Elemente im mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte zu verwenden sind, miteinander gepoolt werden, um den wenigstens einen akustischen Bewertungswert des wenigstens einen Ablehnungsmodells auf dem mehrere Elemente aufweisenden akustischen Bewertungsvektor zu bilden, um einen Schlüsselausdruck zu erkennen, wobei der erste und der letzte Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen der beiden gleichen von den grundlegenden auf Sprache bezogenen oder nicht auf Sprache bezogenen Ablehnungsbewertungswerten beruhen und die akustischen Ablehnungsbewertungswerte zwischen den ersten und den letzten Bewertungswerten gepoolte akustische Ablehnungsbewertungswerte auf der Grundlage der anderen von den grundlegenden auf Sprache bezogenen oder nicht auf Sprache bezogenen Ablehnungsbewertungswerten sind, wobei der erste und der zweite Bewertungswert des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors verwendet werden, um einen der endgültigen Sprache- oder Keine-Sprache-Bewertungswerte zu bilden, und der letzte und der zweitletzte Bewertungswert von dem aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor verwendet werden, um den anderen der endgültigen Sprache- oder Keine-Sprache-Bewertungswerte zu bilden, wobei Bewertungswerte von dem aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor in eine auf einer affinen neuronalen Netzschicht beruhende Operation eingegeben werden, um die endgültigen Sprache- und Keine-Sprache-Bewertungswerte zu bilden, und wobei das Gewicht von -1 einem von den Keine-Sprache- und den Sprache-Bewertungswerten des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors und ein Gewicht von 1 dem anderen von den Sprache- oder Keine-Sprache-Bewertungswerten des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors gegeben wird, wobei die Operationen die gleichen Operationen sind, die auf dem mehrere Elemente aufweisenden akustischen Bewertungsvektor ausgeführt werden, um einen aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor zu bilden, der zur Bildung der endgültigen Sprache- und Keine-Sprache-Bewertungswerte zu verwenden ist, wobei der neuronale Netzbeschleuniger wenigstens eines der Folgenden ausführt: Verketten einer Mehrzahl mehrere Elemente aufweisender akustischer Bewertungsvektoren, die jeweils zu einem anderen Schlüsselausdruck gehören, und getrenntes Analysieren paralleler mehrere Elemente aufweisender akustischer Bewertungsvektoren, die jeweils zur einem anderen Schlüsselausdruck gehören.
  • Bei einem Ansatz umfasst wenigstens ein nichtflüchtiges maschinenlesbares Medium mehrere Befehle, die ansprechend darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, eine Schlüsselausdruckserkennung auszuführen, durch: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage einer empfangenen Audioeingabe durch einen neuronalen Netzbeschleuniger, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehenden Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors durch einen neuronalen Netzbeschleuniger unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts durch einen neuronalen Netzbeschleuniger, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, Feststellen, ob aktuelle Zustandsbewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors angeben, dass die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, durch einen neuronalen Netzbeschleuniger und Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  • Bei einem anderen Ansatz veranlassen die Befehle die Rechenvorrichtung, zu arbeiten, wobei die Befehle die Rechenvorrichtung veranlassen, wenigstens eine Boolingoperation zu verwenden, um eine Schlüsselausdrucks-Anfangspunkterkennung am neuronalen Netzbeschleuniger auszuführen, wobei die Bildung des ersten Boolvektors Folgendes umfasst: Vergleichen benachbarter Elemente eines von einer Schlüsselausdrucks-Erkennungsoperation ausgegebenen Schlüsselausdrucks-Bewertungsvektors, Anwenden von -1-, 0- und 1-Gewichten an Knoten eines neuronalen Netzes auf die Ergebnisse der Vergleiche und Anwenden einer nichtlinearen Aktivierungsfunktion auf die gewichteten Kombinationen, um eine Sequenz von 0en und len zu erhalten, wobei die Befehle die Rechenvorrichtung veranlassen, Folgendes auszuführen: Bilden eines ersten Boolvektors zumindest teilweise auf der Grundlage eines von einer Schlüsselausdrucks-Erkennungsoperation ausgegebenen Schlüsselausdrucks-Bewertungsvektors und Bilden eines zweiten inversen Boolvektors, der zum ersten Boolvektor invers ist, getrenntes Aktualisieren eines vorhergehenden Ausgangsvektors von Rahmenindexnummern mit dem ersten und dem inversen Boolvektor, um einen ersten bzw. zweiten aktualisierten Vektor zu bilden, und Kombinieren des ersten und des zweiten aktualisierten Vektors zur Bildung eines aktuellen Ausgangsvektors von Rahmenindexnummern, wobei die Rahmenindexnummer an einer spezifischen Elementstelle auf dem aktuellen Ausgangsvektor den Anfangspunkt eines Schlüsselausdrucks angibt, wobei die aktualisierten Vektoren durch Ausführen einer elementweisen Multiplikation zwischen Elementen eines der Boolvektoren und Elementen des vorhergehenden Ausgangsvektors gebildet werden, wobei die Befehle die Rechenvorrichtung veranlassen, die Puffergröße zum Halten der Audioeingabe abhängig davon zu modifizieren, ob Sprache oder Keine-Sprache in der Audioeingabe erkannt wurde, wie vom neuronalen Netzbeschleuniger angegeben, wobei die Befehle die Rechenvorrichtung veranlassen, die Mehrzahl der aktiven Mikrofone von mehreren aktiven Mikrofonen zumindest teilweise abhängig von Geräuschablehnungs-Bewertungswerten, die vom neuronalen Netzbeschleuniger empfangen werden, zu modifizieren.
  • Bei einem weiteren Beispiel kann wenigstens ein maschinenlesbares Medium mehrere Befehle aufweisen, die ansprechend darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, das Verfahren nach einem der vorstehenden Beispiele auszuführen.
  • Bei einem anderen Beispiel kann eine Vorrichtung Mittel zur Ausführung der Verfahren nach einem der vorstehenden Beispiele aufweisen.
  • Die vorstehenden Beispiele können spezifische Kombinationen von Merkmalen aufweisen. Die vorstehenden Beispiele sind jedoch nicht in dieser Hinsicht beschränkt, und es können dabei bei verschiedenen Implementationen lediglich eine Untermenge dieser Merkmale, eine andere Reihenfolge dieser Merkmale, eine andere Kombination dieser Merkmale und/oder zusätzliche Merkmale zu den explizit aufgelisteten Merkmalen verwirklicht werden. Beispielsweise können alle hier mit Bezug auf beispielhafte Verfahren beschriebenen Merkmale in Bezug auf beispielhafte Vorrichtungen, beispielhafte Systeme und/oder beispielhafte Artikel angewendet werden und umgekehrt.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16022376 [0016]
    • US 2018/0005633 [0018]
    • US 16001496 [0018]
    • US 15972369 [0103]
    • US 2018/0121796 [0115]

Claims (25)

  1. Schlüsselausdrucks-Erkennungsvorrichtung, welche Folgendes umfasst: einen Speicher, der eine empfangene Audioeingabe speichert, und wenigstens einen neuronalen Netzbeschleuniger, der kommunikativ mit dem Speicher verbunden ist, um die Audioeingabe zu empfangen und Folgendes auszuführen: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage der empfangenen Audioeingabe, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehenden Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, und Feststellen, ob die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, unter Verwendung von Bewertungswerten vom aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor, und eine Steuereinrichtung zum Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  2. Vorrichtung nach Anspruch 1, welche eine Schlüsselausdrucks-Erkennungseinheit umfasst, die autonom durch den Netzbeschleuniger betrieben wird, ohne dass ein digitaler Signalprozessor verwendet wird, um die Merkmalsextraktion, akustische Bewertung und Schlüsselausdrucksdecodierung durch den neuronalen Netzbeschleuniger und ohne die Verwendung eines digitalen Signalprozessors auszuführen.
  3. Vorrichtung nach Anspruch 1, wobei der neuronale Netzbeschleuniger einen endgültigen Bewertungswert unter Verwendung eines ersten Zustandsbewertungswerts auf der Grundlage des Einzelzustands-Ablehnungsmodells und eines zweiten Zustandsbewertungswerts, der einer der Zustandsbewertungswerte auf der Grundlage des Schlüsselausdrucksmodells ist, erzeugt und wobei sowohl der erste als auch der zweite Zustandsbewertungswert vom aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor stammen, wobei bei der Erzeugung eines endgültigen Bewertungswerts eine affine neuronale Netzschicht betrieben wird, wobei der erste und der zweite Zustandsbewertungswert Eingaben in die affine Schicht sind, wobei Bewertungswerte auf dem aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektor zusätzlich zum ersten und zweiten Zustandsbewertungswert in die affine Schicht eingegeben werden und mit einem Gewicht von Null versehen werden, wobei der endgültige Bewertungswert unter Verwendung eines Schwellenwerts als Eingabe der affinen Schicht berechnet wird, wobei der Schwellenwert ein Gewicht von -1 hat, der erste Zustandsbewertungswert ein Gewicht von -1 hat und der zweite Zustandsbewertungswert ein Gewicht von 1 hat.
  4. Vorrichtung nach Anspruch 1, wobei der neuronale Netzbeschleuniger so arbeitet, als ob er eine rekurrente neuronale Netzschicht ausführen würde, wobei ein gerade erzeugter aktueller mehrere Elemente aufweisender Zustandsbewertungsvektor als vorhergehender mehrere Elemente aufweisender Zustandsbewertungsvektor bereitgestellt wird, um ihn mit einem nächsten mehrere Elemente aufweisenden akustischen Bewertungsvektor zu verwenden, um den Vektor von Zwischenzustands-Bewertungswerten zu erzeugen.
  5. Vorrichtung nach Anspruch 1, wobei der neuronale Netzbeschleuniger Elemente des vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors als Vorbeeinflussungswerte behandelt, die auf Elemente des mehrere Elemente aufweisenden akustischen Bewertungsvektors anzuwenden sind.
  6. Vorrichtung nach Anspruch 1, wobei die Weiterleitungsoperation eine Bestimmung eines Maximums von Werten individueller benachbarter Paare von Zuständen entlang dem Zwischenbewertungsvektor zur Bildung des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors ist.
  7. Vorrichtung nach Anspruch 1, wobei der neuronale Netzbeschleuniger den wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell durch getrenntes Poolen mehrerer grundlegender akustischer Bewertungswerte von mehreren Ablehnungskategorien von Stille, Phonetiken, Sprache-Geräusch und Keine-Sprache-Geräusch erzeugt, um einen Einzelkategorie-Bewertungswert jeder Kategorie zu bilden, bevor die Einzelkategorie-Bewertungswerte miteinander gepoolt werden, um einen einzelnen akustischen Ablehnungsbewertungswert zu bilden.
  8. Computerimplementiertes System zur Ausführung einer Schlüsselausdruckserkennung, welches Folgendes umfasst: wenigstens ein Mikrofon zur Erfassung einer Audioeingabe, einen Speicher zum Speichern der Audioeingabe, wenigstens einen Prozessor, der kommunikativ mit dem wenigstens einen Mikrofon und wenigstens einem Speicher gekoppelt ist und wenigstens einen neuronalen Netzbeschleuniger zum Empfangen der Audioeingabe umfasst, um Folgendes auszuführen: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage der empfangenen Audioeingabe, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehenden Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, und Feststellen, ob aktuelle Zustandsbewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors angeben, dass die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, und Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  9. System nach Anspruch 8, wobei der neuronale Netzbeschleuniger sowohl einen endgültigen Sprache-Bewertungswert als auch einen endgültigen Keine-Sprache-Bewertungswert erzeugt, wobei zumindest einige der gleichen grundlegenden akustischen Ablehnungsbewertungswerte, die zur Erzeugung des wenigstens einen akustischen Bewertungswerts für das wenigstens eine Ablehnungsmodell verwendet werden, gepoolt werden, und die endgültigen Sprache- und Keine-Sprache-Bewertungswerte verwendet werden, um festzustellen, ob in der Audioeingabe Sprache oder Keine-Sprache vorhanden ist.
  10. System nach Anspruch 8, wobei der neuronale Netzbeschleuniger dafür eingerichtet ist, einen mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte unter Verwendung der grundlegenden akustischen Bewertungswerte zu bilden und Operationen an dem mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte auszuführen, um einen endgültigen Sprache-Bewertungswert und einen endgültigen Keine-Sprache-Bewertungswert zu bilden.
  11. System nach Anspruch 10, wobei wenigstens ein auf Sprache bezogener Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen grundlegender auf Sprache bezogener Ablehnungsbewertungswerte beruht und wenigstens ein nicht auf Sprache bezogener Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen grundlegender nicht auf Sprache bezogener Ablehnungsbewertungswerte beruht.
  12. System nach Anspruch 11, wobei die grundlegenden Ablehnungsbewertungswerte von Phonetiken und Ablehnungskategorien auf Sprache bezogener Geräusche miteinander gepoolt werden, um die auf Sprache bezogenen Bewertungswerte zu bilden, und Kategorien von Stille und Keine-Sprache-Geräusch miteinander gepoolt werden, um die nicht auf Sprache bezogenen Bewertungswerte zu bilden.
  13. System nach Anspruch 10, wobei die gepoolten akustischen Ablehnungsbewertungswerte, die als Elemente im mehrere Elemente aufweisenden Vektor gepoolter akustischer Ablehnungsbewertungswerte zu verwenden sind, miteinander gepoolt werden, um den wenigstens einen akustischen Bewertungswert des wenigstens einen Ablehnungsmodells auf dem mehrere Elemente aufweisenden akustischen Bewertungsvektor zu bilden, um einen Schlüsselausdruck zu erkennen.
  14. System nach Anspruch 13, wobei der erste und der letzte Bewertungswert des mehrere Elemente aufweisenden Vektors gepoolter akustischer Ablehnungsbewertungswerte auf dem Poolen der beiden gleichen von den grundlegenden auf Sprache bezogenen oder nicht auf Sprache bezogenen Ablehnungsbewertungswerten beruhen und die akustischen Ablehnungsbewertungswerte zwischen den ersten und den letzten Bewertungswerten gepoolte akustische Ablehnungsbewertungswerte auf der Grundlage der anderen von den grundlegenden auf Sprache bezogenen oder nicht auf Sprache bezogenen Ablehnungsbewertungswerten sind.
  15. System nach Anspruch 14, wobei der erste und der zweite Bewertungswert des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors verwendet werden, um einen der endgültigen Sprache- oder Keine-Sprache-Bewertungswerte zu bilden, und der letzte und der zweitletzte Bewertungswert von dem aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor verwendet werden, um den anderen der endgültigen Sprache- oder Keine-Sprache-Bewertungswerte zu bilden.
  16. System nach Anspruch 14, wobei Bewertungswerte von dem aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor in eine auf einer affinen neuronalen Netzschicht beruhende Operation eingegeben werden, um die endgültigen Sprache- und Keine-Sprache-Bewertungswerte zu bilden, und wobei das Gewicht von -1 einem von den Keine-Sprache- und den Sprache-Bewertungswerten des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors und ein Gewicht von 1 dem anderen von den Sprache- oder Keine-Sprache-Bewertungswerten des aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektors gegeben wird.
  17. System nach Anspruch 9, wobei die Operationen die gleichen Operationen sind, die auf dem mehrere Elemente aufweisenden akustischen Bewertungsvektor ausgeführt werden, um einen aktuellen mehrere Elemente aufweisenden Ablehnungszustands-Bewertungsvektor zu bilden, der zur Bildung der endgültigen Sprache- und Keine-Sprache-Bewertungswerte zu verwenden ist.
  18. System nach Anspruch 9, wobei der neuronale Netzbeschleuniger wenigstens eines der Folgenden ausführt: Verketten einer Mehrzahl mehrere Elemente aufweisender akustischer Bewertungsvektoren, die jeweils zu einem anderen Schlüsselausdruck gehören, und getrenntes Analysieren paralleler mehrere Elemente aufweisender akustischer Bewertungsvektoren, die jeweils zur einem anderen Schlüsselausdruck gehören.
  19. Wenigstens ein nichtflüchtiges maschinenlesbares Medium, das mehrere Befehle umfasst, die ansprechend darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, eine Schlüsselausdruckserkennung auszuführen, durch: Erzeugen eines mehrere Elemente aufweisenden akustischen Bewertungsvektors für einen aktuellen Zeitpunkt auf der Grundlage einer empfangenen Audioeingabe durch einen neuronalen Netzbeschleuniger, wobei der mehrere Elemente aufweisende akustische Bewertungsvektor wenigstens einen akustischen Bewertungswert für wenigstens ein Ablehnungsmodell und akustische Bewertungswerte für wenigstens ein Mehrzustands-Schlüsselausdrucksmodell umfasst und wobei das Mehrzustands-Schlüsselausdrucksmodell einem vorgegebenen Schlüsselausdruck entspricht, rekursives Ausrichten von Elementen eines vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungsvektors für einen vorhergehenden Zeitpunkt mit den Elementen des mehrere Elemente aufweisenden akustischen Bewertungsvektors, wobei der vorhergehende mehrere Elemente aufweisende Zustandsbewertungsvektor wenigstens einen vorhergehende Zustandsbewertungswert für das Einzelzustands-Ablehnungsmodell und vorhergehende Zustandsbewertungswerte für das Mehrzustands-Schlüsselausdrucksmodell umfasst, Erzeugen eines Zwischenbewertungsvektors durch einen neuronalen Netzbeschleuniger unter Verwendung von Bewertungswerten sowohl vom mehrere Elemente aufweisenden akustischen Bewertungsvektor als auch vom vorhergehenden mehrere Elemente aufweisenden Zustandsbewertungs vektor, Erzeugen eines aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors eines aktuellen Zeitpunkts durch einen neuronalen Netzbeschleuniger, wobei eine Weiterleitungsoperation mit dem Zwischenbewertungsvektor ausgeführt wird, Feststellen, ob aktuelle Zustandsbewertungswerte des aktuellen mehrere Elemente aufweisenden Zustandsbewertungsvektors angeben, dass die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist, durch einen neuronalen Netzbeschleuniger und Bereitstellen wenigstens eines Befehls zur Ausführung einer Aktion, wenn die empfangene Audioeingabe dem vorgegebenen Schlüsselausdruck zugeordnet ist.
  20. Maschinenlesbares Medium nach Anspruch 19, wobei die Befehle die Rechenvorrichtung veranlassen, unter Verwendung wenigstens einer Boolingoperation zu arbeiten, um eine Schlüsselausdrucks-Anfangspunkterkennung am neuronalen Netzbeschleuniger auszuführen.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei die Bildung des ersten Boolvektors Folgendes umfasst: Vergleichen benachbarter Elemente eines von einer Schlüsselausdrucks-Erkennungsoperation ausgegebenen Schlüsselausdrucks-Bewertungsvektors, Anwenden von -1-, 0- und 1-Gewichten an Knoten eines neuronalen Netzes auf die Ergebnisse der Vergleiche und Anwenden einer nichtlinearen Aktivierungsfunktion auf die gewichteten Kombinationen, um eine Sequenz von 0en und len zu erhalten.
  22. Maschinenlesbares Medium nach Anspruch 20, wobei die Befehle die Rechenvorrichtung veranlassen, Folgendes auszuführen: Bilden eines ersten Boolvektors zumindest teilweise auf der Grundlage eines von einer Schlüsselausdrucks-Erkennungsoperation ausgegebenen Schlüsselausdrucks-Bewertungsvektors und Bilden eines zweiten inversen Boolvektors, der zum ersten Boolvektor invers ist, getrenntes Aktualisieren eines vorhergehenden Ausgangsvektors von Rahmenindexnummern mit dem ersten und dem inversen Boolvektor, um einen ersten bzw. zweiten aktualisierten Vektor zu bilden, und Kombinieren des ersten und des zweiten aktualisierten Vektors zur Bildung eines aktuellen Ausgangsvektors von Rahmenindexnummern, wobei die Rahmenindexnummer an einer spezifischen Elementstelle auf dem aktuellen Ausgangsvektor den Anfangspunkt eines Schlüsselausdrucks angibt.
  23. Maschinenlesbares Medium nach Anspruch 22, wobei die aktualisierten Vektoren durch Ausführen einer elementweisen Multiplikation zwischen Elementen eines der Boolvektoren und Elementen des vorhergehenden Ausgangsvektors gebildet werden.
  24. Wenigstens ein maschinenlesbares Medium, welches mehrere Befehle umfasst, die ansprechend darauf, dass sie auf einer Rechenvorrichtung ausgeführt werden, die Rechenvorrichtung veranlassen, ein Verfahren zur Schlüsselausdruckserkennung nach einem der Ansprüche 1-18 auszuführen.
  25. Vorrichtung, welche Mittel zur Ausführung eines Verfahrens zur Schlüsselausdruckserkennung nach einem der Ansprüche 1-23 umfasst.
DE102019122180.3A 2018-09-18 2019-08-19 Verfahren und system zur schlüsselausdruckserkennung auf der grundlage eines neuronalen netzes Active DE102019122180B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/134,826 2018-09-18
US16/134,826 US10650807B2 (en) 2018-09-18 2018-09-18 Method and system of neural network keyphrase detection

Publications (2)

Publication Number Publication Date
DE102019122180A1 true DE102019122180A1 (de) 2020-03-19
DE102019122180B4 DE102019122180B4 (de) 2023-05-25

Family

ID=65231832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019122180.3A Active DE102019122180B4 (de) 2018-09-18 2019-08-19 Verfahren und system zur schlüsselausdruckserkennung auf der grundlage eines neuronalen netzes

Country Status (2)

Country Link
US (1) US10650807B2 (de)
DE (1) DE102019122180B4 (de)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US9792907B2 (en) 2015-11-24 2017-10-17 Intel IP Corporation Low resource key phrase detection for wake on voice
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US9811314B2 (en) 2016-02-22 2017-11-07 Sonos, Inc. Metadata exchange involving a networked playback system and a networked microphone system
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
US9820039B2 (en) 2016-02-22 2017-11-14 Sonos, Inc. Default playback devices
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US9978390B2 (en) 2016-06-09 2018-05-22 Sonos, Inc. Dynamic player selection for audio signal processing
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
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
US10902738B2 (en) * 2017-08-03 2021-01-26 Microsoft Technology Licensing, Llc Neural models for key phrase detection and question generation
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
US10531157B1 (en) * 2017-09-21 2020-01-07 Amazon Technologies, Inc. Presentation and management of audio and visual content across devices
US10446165B2 (en) 2017-09-27 2019-10-15 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10621981B2 (en) 2017-09-28 2020-04-14 Sonos, Inc. Tone interference cancellation
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
TWI651714B (zh) * 2017-12-22 2019-02-21 隆宸星股份有限公司 語音選項選擇系統與方法以及使用其之智慧型機器人
WO2019152722A1 (en) 2018-01-31 2019-08-08 Sonos, Inc. Device designation of playback and network microphone device arrangements
CN110189750B (zh) * 2018-02-23 2022-11-15 株式会社东芝 词语检测系统、词语检测方法以及记录介质
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
US10714122B2 (en) 2018-06-06 2020-07-14 Intel Corporation Speech classification of audio for wake on voice
US10832671B2 (en) * 2018-06-25 2020-11-10 Intel Corporation Method and system of audio false keyphrase rejection using speaker recognition
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US10720151B2 (en) * 2018-07-27 2020-07-21 Deepgram, Inc. End-to-end neural networks for speech recognition and classification
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US10461710B1 (en) 2018-08-28 2019-10-29 Sonos, Inc. Media playback system with maximum volume setting
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US20220036896A1 (en) * 2018-09-14 2022-02-03 Aondevices, Inc. Hybrid voice command technique utilizing both on-device and cloud resources
US10650807B2 (en) 2018-09-18 2020-05-12 Intel Corporation Method and system of neural network keyphrase detection
JP2020047062A (ja) * 2018-09-20 2020-03-26 Dynabook株式会社 電子機器および制御方法
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US11308939B1 (en) * 2018-09-25 2022-04-19 Amazon Technologies, Inc. Wakeword detection using multi-word model
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
EP3654249A1 (de) 2018-11-15 2020-05-20 Snips Erweiterte konvolutionen und takt zur effizienten schlüsselwortauffindung
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
US10602268B1 (en) 2018-12-20 2020-03-24 Sonos, Inc. Optimization of network microphone devices using noise classification
TWI713016B (zh) * 2019-01-03 2020-12-11 瑞昱半導體股份有限公司 語音偵測處理系統與語音偵測方法
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US10803875B2 (en) * 2019-02-08 2020-10-13 Nec Corporation Speaker recognition system and method of using the same
US11127394B2 (en) * 2019-03-29 2021-09-21 Intel Corporation Method and system of high accuracy keyphrase detection for low resource devices
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US11205420B1 (en) * 2019-06-10 2021-12-21 Amazon Technologies, Inc. Speech processing using a recurrent neural network
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
KR102305672B1 (ko) * 2019-07-17 2021-09-28 한양대학교 산학협력단 강인한 음성인식을 위한 음향 및 언어모델링 정보를 이용한 음성 끝점 검출 방법 및 장치
US11138975B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection
US11138969B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
KR20210030160A (ko) * 2019-09-09 2021-03-17 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11948561B2 (en) * 2019-10-28 2024-04-02 Apple Inc. Automatic speech recognition imposter rejection on a headphone with an accelerometer
US20200090657A1 (en) * 2019-11-22 2020-03-19 Intel Corporation Adaptively recognizing speech using key phrases
TWI727521B (zh) * 2019-11-27 2021-05-11 瑞昱半導體股份有限公司 動態語音辨識方法及其裝置
CN111756935A (zh) * 2019-12-12 2020-10-09 北京沃东天骏信息技术有限公司 智能系统的信息处理方法和智能系统
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
US11308962B2 (en) * 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11875783B2 (en) * 2020-06-03 2024-01-16 Intel Corporation Method and system of audio input bit-size conversion for audio processing
US11120805B1 (en) * 2020-06-19 2021-09-14 Micron Technology, Inc. Intelligent microphone having deep learning accelerator and random access memory
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
KR20220037819A (ko) * 2020-09-18 2022-03-25 엘지전자 주식회사 복수의 기동어를 인식하는 인공 지능 장치 및 그 방법
US11984123B2 (en) 2020-11-12 2024-05-14 Sonos, Inc. Network device interaction by range
US11694685B2 (en) * 2020-12-10 2023-07-04 Google Llc Hotphrase triggering based on a sequence of detections
WO2022187585A1 (en) * 2021-03-05 2022-09-09 Aeyedx, Inc. System and method to obtain intraocular pressure measurements and other ocular parameters
US11915698B1 (en) * 2021-09-29 2024-02-27 Amazon Technologies, Inc. Sound source localization
CN115497031B (zh) * 2022-11-14 2023-06-13 广东祥利科技有限公司 基于图像处理的pvc护套料的性能检测方法及系统
CN117558270B (zh) * 2024-01-11 2024-04-02 腾讯科技(深圳)有限公司 语音识别方法、装置、关键词检测模型的训练方法和装置

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384893A (en) 1992-09-23 1995-01-24 Emerson & Stern Associates, Inc. Method and apparatus for speech synthesis based on prosodic analysis
US6205424B1 (en) 1996-07-31 2001-03-20 Compaq Computer Corporation Two-staged cohort selection for speaker verification system
US6138095A (en) 1998-09-03 2000-10-24 Lucent Technologies Inc. Speech recognition
US9076448B2 (en) 1999-11-12 2015-07-07 Nuance Communications, Inc. Distributed real time speech recognition system
US6480827B1 (en) 2000-03-07 2002-11-12 Motorola, Inc. Method and apparatus for voice communication
JP2002073072A (ja) 2000-08-31 2002-03-12 Sony Corp モデル適応装置およびモデル適応方法、記録媒体、並びにパターン認識装置
ATE297588T1 (de) 2000-11-14 2005-06-15 Ibm Anpassung des phonetischen kontextes zur verbesserung der spracherkennung
CN1320520C (zh) 2002-05-10 2007-06-06 旭化成株式会社 语音识别设备和语音识别方法
FR2846458B1 (fr) 2002-10-25 2005-02-25 France Telecom Procede de traitement automatique d'un signal de parole.
US7720683B1 (en) 2003-06-13 2010-05-18 Sensory, Inc. Method and apparatus of specifying and performing speech recognition operations
JP4328698B2 (ja) 2004-09-15 2009-09-09 キヤノン株式会社 素片セット作成方法および装置
NO326770B1 (no) 2006-05-26 2009-02-16 Tandberg Telecom As Fremgangsmate og system for videokonferanse med dynamisk layout basert pa orddeteksjon
CN101154379B (zh) 2006-09-27 2011-11-23 夏普株式会社 定位语音中的关键词的方法和设备以及语音识别系统
GB2451419A (en) 2007-05-11 2009-02-04 Audiosoft Ltd Processing audio data
DE102007033472A1 (de) 2007-07-18 2009-01-29 Siemens Ag Verfahren zur Spracherkennung
US8818802B2 (en) 2008-10-10 2014-08-26 Spansion Llc Real-time data pattern analysis system and method of operation thereof
EP2216775B1 (de) 2009-02-05 2012-11-21 Nuance Communications, Inc. Sprechererkennung
US8321218B2 (en) 2009-06-19 2012-11-27 L.N.T.S. Linguistech Solutions Ltd Searching in audio speech
CN102473412B (zh) 2009-07-21 2014-06-11 日本电信电话株式会社 语音信号区间估计装置与方法
JPWO2012063424A1 (ja) 2010-11-08 2014-05-12 日本電気株式会社 特徴量系列生成装置、特徴量系列生成方法および特徴量系列生成プログラム
KR20120072145A (ko) 2010-12-23 2012-07-03 한국전자통신연구원 음성 인식 방법 및 장치
KR101640295B1 (ko) 2011-01-25 2016-07-15 마이크론 테크놀로지, 인크. 정규 표현을 컴파일하기 위한 방법 및 장치
US9202465B2 (en) 2011-03-25 2015-12-01 General Motors Llc Speech recognition dependent on text message content
US8873813B2 (en) 2012-09-17 2014-10-28 Z Advanced Computing, Inc. Application of Z-webs and Z-factors to analytics, search engine, learning, recognition, natural language, and other utilities
US9117449B2 (en) 2012-04-26 2015-08-25 Nuance Communications, Inc. Embedded system for construction of small footprint speech recognition with user-definable constraints
US9672815B2 (en) 2012-07-20 2017-06-06 Interactive Intelligence Group, Inc. Method and system for real-time keyword spotting for speech analytics
US9401140B1 (en) 2012-08-22 2016-07-26 Amazon Technologies, Inc. Unsupervised acoustic model training
NZ730641A (en) 2012-08-24 2018-08-31 Interactive Intelligence Inc Method and system for selectively biased linear discriminant analysis in automatic speech recognition systems
US9336771B2 (en) 2012-11-01 2016-05-10 Google Inc. Speech recognition using non-parametric models
TWI475558B (zh) 2012-11-08 2015-03-01 Ind Tech Res Inst 詞語驗證的方法及裝置
US9601111B2 (en) 2012-11-13 2017-03-21 GM Global Technology Operations LLC Methods and systems for adapting speech systems
US9070367B1 (en) 2012-11-26 2015-06-30 Amazon Technologies, Inc. Local speech recognition of frequent utterances
US9633652B2 (en) 2012-11-30 2017-04-25 Stmicroelectronics Asia Pacific Pte Ltd. Methods, systems, and circuits for speaker dependent voice recognition with a single lexicon
KR20140079092A (ko) 2012-12-18 2014-06-26 한국전자통신연구원 음향그룹의 전이확률을 활용한 문맥독립 성별인식 방법 및 장치
US9361885B2 (en) 2013-03-12 2016-06-07 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
PL403724A1 (pl) 2013-05-01 2014-11-10 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie System rozpoznawania mowy i sposób wykorzystania dynamicznych modeli i sieci Bayesa
US20140337031A1 (en) 2013-05-07 2014-11-13 Qualcomm Incorporated Method and apparatus for detecting a target keyword
US20140337030A1 (en) 2013-05-07 2014-11-13 Qualcomm Incorporated Adaptive audio frame processing for keyword detection
US9396724B2 (en) 2013-05-29 2016-07-19 Tencent Technology (Shenzhen) Company Limited Method and apparatus for building a language model
US9305554B2 (en) 2013-07-17 2016-04-05 Samsung Electronics Co., Ltd. Multi-level speech recognition
US9466288B2 (en) 2013-08-28 2016-10-11 Texas Instruments Incorporated Comparing differential ZC count to database to detect expected sound
US9443508B2 (en) 2013-09-11 2016-09-13 Texas Instruments Incorporated User programmable voice command recognition based on sparse features
US9240182B2 (en) 2013-09-17 2016-01-19 Qualcomm Incorporated Method and apparatus for adjusting detection threshold for activating voice assistant function
US9202462B2 (en) 2013-09-30 2015-12-01 Google Inc. Key phrase detection
US9646613B2 (en) 2013-11-29 2017-05-09 Daon Holdings Limited Methods and systems for splitting a digital signal
US9373321B2 (en) 2013-12-02 2016-06-21 Cypress Semiconductor Corporation Generation of wake-up words
US9196243B2 (en) 2014-03-31 2015-11-24 International Business Machines Corporation Method and system for efficient spoken term detection using confusion networks
US9953632B2 (en) 2014-04-17 2018-04-24 Qualcomm Incorporated Keyword model generation for detecting user-defined keyword
US9484022B2 (en) 2014-05-23 2016-11-01 Google Inc. Training multiple neural networks with different accuracy
US9858922B2 (en) 2014-06-23 2018-01-02 Google Inc. Caching speech recognition scores
US9368105B1 (en) 2014-06-26 2016-06-14 Amazon Technologies, Inc. Preventing false wake word detections with a voice-controlled device
US20160026912A1 (en) 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
US9549273B2 (en) 2014-08-28 2017-01-17 Qualcomm Incorporated Selective enabling of a component by a microphone circuit
US9959863B2 (en) 2014-09-08 2018-05-01 Qualcomm Incorporated Keyword detection using speaker-independent keyword models for user-designated keywords
US9898459B2 (en) 2014-09-16 2018-02-20 Voicebox Technologies Corporation Integration of domain information into state transitions of a finite state transducer for natural language processing
US9595264B2 (en) 2014-10-06 2017-03-14 Avaya Inc. Audio search using codec frames
US9824684B2 (en) 2014-11-13 2017-11-21 Microsoft Technology Licensing, Llc Prediction-based sequence recognition
JP6003972B2 (ja) 2014-12-22 2016-10-05 カシオ計算機株式会社 音声検索装置、音声検索方法及びプログラム
US10719115B2 (en) 2014-12-30 2020-07-21 Avago Technologies International Sales Pte. Limited Isolated word training and detection using generated phoneme concatenation models of audio inputs
US20160379638A1 (en) 2015-06-26 2016-12-29 Amazon Technologies, Inc. Input speech quality matching
US10121471B2 (en) 2015-06-29 2018-11-06 Amazon Technologies, Inc. Language model speech endpointing
KR102371188B1 (ko) 2015-06-30 2022-03-04 삼성전자주식회사 음성 인식 장치 및 방법과 전자 장치
US10074363B2 (en) 2015-11-11 2018-09-11 Apptek, Inc. Method and apparatus for keyword speech recognition
US9792907B2 (en) 2015-11-24 2017-10-17 Intel IP Corporation Low resource key phrase detection for wake on voice
US9484030B1 (en) 2015-12-02 2016-11-01 Amazon Technologies, Inc. Audio triggered commands
US9972313B2 (en) 2016-03-01 2018-05-15 Intel Corporation Intermediate scoring and rejection loopback for improved key phrase detection
US10373612B2 (en) 2016-03-21 2019-08-06 Amazon Technologies, Inc. Anchored speech detection and speech recognition
JP6724511B2 (ja) 2016-04-12 2020-07-15 富士通株式会社 音声認識装置、音声認識方法および音声認識プログラム
US10043521B2 (en) 2016-07-01 2018-08-07 Intel IP Corporation User defined key phrase detection by user dependent sequence modeling
US10949736B2 (en) 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
US10083689B2 (en) 2016-12-23 2018-09-25 Intel Corporation Linear scoring for low power wake on voice
US20180232627A1 (en) 2017-02-16 2018-08-16 Intel IP Corporation Variable word length neural network accelerator circuit
US20190043479A1 (en) 2018-05-07 2019-02-07 Intel Corporation Wake on voice key phrase segmentation
US10714122B2 (en) 2018-06-06 2020-07-14 Intel Corporation Speech classification of audio for wake on voice
US10665222B2 (en) 2018-06-28 2020-05-26 Intel Corporation Method and system of temporal-domain feature extraction for automatic speech recognition
US10650807B2 (en) 2018-09-18 2020-05-12 Intel Corporation Method and system of neural network keyphrase detection

Also Published As

Publication number Publication date
DE102019122180B4 (de) 2023-05-25
US10650807B2 (en) 2020-05-12
US20190043488A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
DE102019122180B4 (de) Verfahren und system zur schlüsselausdruckserkennung auf der grundlage eines neuronalen netzes
DE112017003563B4 (de) Verfahren und system einer automatischen spracherkennung unter verwendung von a-posteriori-vertrauenspunktzahlen
DE102019112380B4 (de) Verfahren und System zur robusten Sprechererkennungsaktivierung
EP4053835A1 (de) Spracherkennungsverfahren und -gerät sowie vorrichtung sowie speichermedium
Zeng et al. Effective combination of DenseNet and BiLSTM for keyword spotting
CN110546656B (zh) 前馈生成式神经网络
Pinto et al. Analysis of MLP-based hierarchical phoneme posterior probability estimator
CN111312245B (zh) 一种语音应答方法、装置和存储介质
DE102020202489A1 (de) Verfahren und system zur sehr genauen schlüsselausdruckserkennung für vorrichtung mit geringen ressourcen
Huang et al. Sndcnn: Self-normalizing deep cnns with scaled exponential linear units for speech recognition
CN110648659B (zh) 基于多任务模型的语音识别与关键词检测装置和方法
DE102019104304B4 (de) Dynamische Anpassung von Sprachverständnissystemen an akustische Umgebungen
WO2022048239A1 (zh) 音频的处理方法和装置
DE102020127622A1 (de) Adaptives erkennen von sprache unter verwendung von schlüsselphrasen
WO2020135324A1 (en) Audio signal processing
Ghandoura et al. Building and benchmarking an Arabic Speech Commands dataset for small-footprint keyword spotting
CN115132196A (zh) 语音指令识别的方法、装置、电子设备及存储介质
WO2022083165A1 (en) Transformer-based automatic speech recognition system incorporating time-reduction layer
DE102020131264A1 (de) Verfahren und System der Audioeingangsbitgrössenkonvertierung zur Audioverarbeitung
Liu et al. Learning salient features for speech emotion recognition using CNN
CN111210815B (zh) 一种用于语音命令词识别的深度神经网络构建方法和识别方法及装置
DE102020130041A1 (de) Verbergen von phrasen in über luft laufendem audio
DE102022128593A1 (de) Verfahren und system zur automatischen kontextgebundenen domänenspezifischen spracherkennung
CN110717022A (zh) 一种机器人对话生成方法、装置、可读存储介质及机器人
Lee et al. A useful feature-engineering approach for a LVCSR system based on CD-DNN-HMM algorithm

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: HGF EUROPE LLP, DE

Representative=s name: HGF EUROPE LP, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final