-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen US-Anmeldung mit der Nr.
62/763,593 , eingereicht am 22. Juni 2018, die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
-
HINTERGRUND
-
Sprachverarbeitungssysteme einschließlich Spracherkennungssystemen, sprachgestützter Einrichtungen, Hörgeräten und dergleichen, werden häufig benötigt, um empfangene Audiosignale zu bearbeiten, die durch das Vorhandensein von Hintergrundrauschen degradiert sind. Techniken zur Entfernung dieses Rauschens, manchmal als Entrauschung oder als Aufwertung bezeichnet, werden zur Verbesserung der Audiosignalqualität verwendet, sodass die zugrundeliegende Sprache sowohl durch einen menschlichen Zuhörer als auch durch anschließende Verarbeitungssysteme erkannt und verstanden werden kann.
-
Aus DONAHUE, Jeff [et al.]: „A deep convolutional activation feature for generic visual recognition“. In: International conference on machine learning,
2014, 647-655 , ist es bekannt, bei visuellen Daten Aktivierungsmerkmale eines für eine Aufgabe bestimmten und überwacht trainierten neuronalen Netzes zu verwenden, um ein untrainiertes und für eine andere Aufgabe bestimmtes neuronales Netz anzupassen.
-
Aus JOHNSON, Justin; ALAHI, Alexandre; FEI-FEI, Li: „Perceptual losses for real-time style transfer and super-resolution‟. In: European conference on Computer vision, 2016, 694-711, ist es bekannt, bei Bilddaten tiefe Wahrnehmungsverluste zu verwenden, um semantisches Wissen eines vorab trainierten neuronalen Verlust-Netzes auf ein neuronales Transformations-Netz zu transferieren.
-
DE 11 2016 006 218 T5 offenbart ein Verfahren, dass ein neuronales Netz für eine Sprachentrauschung verwendet.
-
Figurenliste
-
Merkmale und Vorteile von Ausführungsformen des beanspruchten Gegenstands werden mit Fortschreiten der folgenden ausführlichen Beschreibung und unter Bezugnahme auf die Zeichnungen, in denen gleiche Ziffern gleiche Teile darstellen, ersichtlich.
- 1 ist ein Flussdiagramm oberster Ebene, das ein Training und einen Betrieb eines Sprachentrauschung-Neuronalnetzwerks mit tiefen Merkmalsverlusten gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
- 2 ist ein ausführlicheres Blockdiagramm, das ein System zum Trainieren des Sprachentrauschung-Neuronalnetzwerks gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
- 3 ist ein Blockdiagramm eines trainierten Audioklassifizierer-Neuronalnetzwerks, das gemäß gewissen Ausführungsformen der vorliegenden Offenbarung konfiguriert ist.
- 4 ist ein Blockdiagramm eines trainierten Sprachentrauschung-Neuronalnetzwerks, das gemäß gewissen Ausführungsformen der vorliegenden Offenbarung konfiguriert ist.
- 5 ist ein Flussdiagramm, das eine Methodik zum Trainieren des Sprachentrauschung-Neuronalnetzwerks mit tiefen Merkmalsverlusten gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht.
- 6 ist ein Blockdiagramm, das eine sprachgestützte Einrichtungsplattform schematisch veranschaulicht, die dazu ausgelegt ist, eine Sprachentrauschung durchzuführen, gemäß gewissen Ausführungsformen der vorliegenden Offenbarung.
-
Obwohl die folgende ausführliche Beschreibung unter Bezugnahme auf veranschaulichende Ausführungsformen fortfährt, werden viele Alternativen, Modifikationen und Variationen davon hinsichtlich dieser Offenbarung ersichtlich.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Techniken zur Sprachentrauschung sind bereitgestellt, die ein Prozess zur Reduzierung oder Eliminierung von additivem Hintergrundrauschen aus einem Sprache enthaltenden Signal ist. Entrauschung ist eine wichtige Operation in vielen Audioverarbeitungssystemen, da sie die Audiosignale derart verbessert, dass die zugrundeliegende Sprache entweder durch einen menschlichen Zuhörer oder durch anschließende automatisierte Spracherkennungssysteme erkannt und verstanden werden kann.
-
Die offenbarten Techniken setzen ein Entrauschung-Neuronalnetzwerk ein, das mit tiefen Merkmalsverlusten (manchmal auch als tiefe Wahrnehmungsverluste bezeichnet) trainiert wird, die aus einem anderen Neuronalnetzwerk extrahiert werden, wobei das andere Neuronalnetzwerk als ein Audioklassifizierer konfiguriert ist. Das Audioklassifizierer-Neuronalnetzwerk ist vortrainiert, um verschiedene Arten von Audiotönen zu identifizieren, wie unten ausführlicher erläutert wird. Die tiefen Merkmalsverluste basieren auf einem Vergleich der internen Aktivierungsmuster oder -merkmale, die in das Audioklassifizierer-Neuronalnetzwerk als Reaktion auf zwei Signale induziert werden: (1) eine rauschfreie Probe von Trainingsdaten und (2) rauschbehaftete Trainingsdaten, die durch das gegenwärtig trainierte Entrauschung-Neuronalnetzwerk verarbeitet worden sind. Dieser Vergleich beinhaltet mehrere Audiomerkmale bei einer Anzahl unterschiedlicher Zeitskalen (wie durch das Audioklassifizierernetzwerk codiert) in den beiden Signalwellenformen und vermeidet die Notwendigkeit für ein manuelles Abstimmen der Verlustfunktion basierend auf Fachwissen, wie unten ausführlicher erläutert wird.
-
Die offenbarten Techniken können zum Beispiel in einem Rechensystem oder einem Softwareprodukt, das durch derartige Systeme ausführbar oder anderweitig steuerbar ist, implementiert werden, obwohl andere Ausführungsformen ersichtlich werden. Das System oder Produkt ist dazu ausgelegt, eine Sprachentrauschung unter Verwendung eines Entrauschung-Neuronalnetzwerks durchzuführen, das mit tiefen Merkmalsverlusten, die aus einem Audioklassifizierer-Neuronalnetzwerk erhalten werden, trainiert wird. Gemäß einer Ausführungsform beinhaltet eine Methodik zum Implementieren dieser Techniken Trainieren eines Sprachentrauschung-Neuronalnetzwerks durch Bereitstellen einer rauschbehafteten Probe eines Trainingssprachsignals an das zu trainierende Sprachentrauschung-Neuronalnetzwerk, um ein verarbeitetes Trainingssprachsignal zu erzeugen. Das Verfahren beinhaltet ferner Anwenden eines vortrainierten Audioklassifizierer-Neuronalnetzwerks an dem verarbeiteten Trainingssprachsignal, um einen ersten Satz von Aktivierungsmerkmalen zu erzeugen, und Anwenden des vortrainierten Audioklassifizierer-Neuronalnetzwerks an einer klaren Probe des Trainingssprachsignals, um einen zweiten Satz von Aktivierungsmerkmalen zu erzeugen. Das Verfahren beinhaltet ferner Berechnen eines Verlustwerts basierend auf dem ersten und zweiten Satz von Aktivierungsmerkmalen und Durchführen einer Rückpropagations-Trainingsaktualisierung des Entrauschung-Neuronalnetzwerks basierend auf dem Verlustwert. Das Verfahren beinhaltet ferner Iterieren dieses Prozesses bei zusätzlichen rauschbehafteten und klaren Proben von Trainingssprachsignalen, sodass das Entrauschungsnetzwerk zusätzlich trainiert wird, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk zu erzeugen. Das trainierte Sprachentrauschung-Neuronalnetzwerk kann dann zum Verarbeiten von rauschbehafteten operativen Sprachsignalen eingesetzt werden, um entrauschte Sprachsignale zu erzeugen.
-
Wie zu verstehen ist, können die hierin beschriebenen Techniken ein verbessertes Verfahren zur Sprachentrauschung mit erhöhter Effizienz im Vergleich zu bestehenden Techniken bereitstellen, die eine komplexe statistische Signalverarbeitung, rechenintensive Spektrogrammtransformationen oder die Verwendung von Fachwissen zum manuellen Abstimmen der Verlustfunktionen erfordern. Die offenbarten Techniken können auf einem breiten Bereich von Plattformen implementiert werden, einschließlich Smartphones, Smart-Lautsprechern, Laptops, Tablets, Videokonferenzsystemen, Hörgeräten, Gaming-Systemen, Smart-Home-Steuersystemen und Robotersystemen. Diese Techniken können ferner in Hardware oder Software oder einer Kombination davon implementiert werden.
-
1 ist ein Flussdiagramm 100 oberster Ebene, das ein Training 102 und einen Betrieb 104 eines Sprachentrauschung-Neuronalnetzwerks mit tiefen Merkmalsverlusten gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie in der Trainingsphase 102 dargestellt, wird bei Operation 110 ein Audioklassifizierer-Neuronalnetzwerk zuerst mit einem bezeichneten Klassifikationstrainingsaudio 140 trainiert, um das trainierte Audioklassifizierer-Neuronalnetzwerk 170 zu erzeugen. Bei manchen Ausführungsformen ist das Audioklassifizierer-Neuronalnetzwerk 170 ein Faltungs-Neuronalnetzwerk, das mehrere Faltungsschichten umfasst, wie unten ausführlicher beschrieben wird. Das Audioklassifizierer-Neuronalnetzwerk 170 ist dazu ausgelegt, Audiosignale zu erkennen und sie basierend auf dem Training mit Klassifikationslabeln zu identifizieren.
-
Das bezeichnete Klassifikationstrainingsaudio 140 kann heimische (häusliche) Klänge beinhalten, wie etwa zum Beispiel Hintergrundgeräusche von Geräten, perkussive Klänge (z. B. Brüche, Knalle, Schläge Schritte), Videospiel-/Fernsehklänge und Sprache von erwachsenen Männern, erwachsenen Frauen und Kindern usw. Das bezeichnete Klassifikationstrainingsaudio 140 kann auch Klänge beinhalten, die mit unterschiedlichen Umgebungen assoziiert sind, wie etwa zum Beispiel Restaurants, Busbahnhöfen, städtischen Orten, Wäldern, Stränden usw. Das Training des Audioklassifizierer-Neuronalnetzwerks 110 kann unter Verwendung bekannter Techniken hinsichtlich der vorliegenden Offenbarung durchgeführt werden. Bei manchen Ausführungsformen kann das Training für eine Einzel(d. h. eindeutige)-Label-Klassifikation, Multilabel-Klassifikation, ein gemeinsames Training an zwei Aufgaben - Einzellabel- und Multilabel-Klassifikation - oder an einer beliebigen Anzahl von gemeinsamen Aufgaben von einer oder beiden Kategorien stattfinden.
-
Als Nächstes wird bei Operation 102 ein Sprachentrauschung-Neuronalnetzwerk basierend auf einer Kombination von rauschbehafteter Trainingssprache 150 und assoziierter klarer Trainingssprache 155 trainiert. Diese Operation erzeugt ein trainiertes Sprachentrauschung-Neuronalnetzwerk 180. Bei manchen Ausführungsformen ist das Sprachentrauschung-Neuronalnetzwerk 180 ein Faltungs-Neuronalnetzwerk, das mehrere dilatierte Faltungsschichten umfasst, wie unten ausführlicher beschrieben wird.
-
Das Training setzt tiefe Merkmalsverluste ein, die aus dem Audioklassifizierer-Neuronalnetzwerk 170 extrahiert werden, wie unten in Verbindung mit 2 ausführlicher erläutert wird. Anstatt eine traditionelle Verlustfunktion zwischen der Groundtruth (d. h. klaren Sprache) und der Ausgabe des Entrauschungsnetzwerks anzuwenden, wird bei einer hohen Ebene die durch die offenbarten Techniken eingesetzte tiefe Merkmalsverlustfunktion zwischen den Merkmalen, die aus den flachsten (obersten) Schichten des vortrainierten Klassifikation-Neuronalnetzwerks 170 als Reaktion auf die Groundtruth extrahiert werden, und den Merkmalen, die aus den flachsten Schichten des vortrainierten Klassifikation-Neuronalnetzwerks 170 als Reaktion auf die Ausgabe des gegenwärtig trainierten Entrauschungsnetzwerks extrahiert werden, berechnet. Die ermöglicht, bedeutungsvollere Merkmale in einem rauschbehafteten Signal bei mehreren Zeitskalen ohne die Notwendigkeit von Fachwissen zum Abstimmen der Merkmale anzuzielen. Dies verschiebt auch die Komplexität des Systems von der operativen Phase zu der Trainingsphase, bei der ein relativ komplexes vortrainiertes Klassifikation-Neuronalnetzwerk zum Trainieren eines relativ einfachen Entrauschung-Neuronalnetzwerks verwendet wird. Obwohl Klassifikations- und Entrauschungsaufgaben verschieden sind, gibt es eine Verbindung zwischen ihnen, da die Klassifikation in Kontexten durchgeführt wird, die eine Kombination von Sprache und Hintergrundrauschen beinhalten.
-
In der operativen Phase 104 kann, nachdem das Training beendet worden ist, eine Sprachentrauschung-Neuronalnetzwerk-Operation 130 beginnen. Das trainierte Sprachentrauschung-Neuronalnetzwerk 180 wird zum Verarbeiten von rauschbehafteter operativer Sprache 160 eingesetzt, um entrauschte Sprache 190 zu erzeugen.
-
2 ist ein ausführlicheres Blockdiagramm, das ein System 120 zum Trainieren des Sprachentrauschung-Neuronalnetzwerks 180 gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Das System ist als ein Sprachentrauschung-Neuronalnetzwerk (in Training) 210 enthaltend dargestellt, das sich nach Beendigung des Trainings in das trainierte Sprachentrauschung-Neuronalnetzwerk 180 entwickelt. Das System ist ferner als ein vortrainiertes Audioklassifizierer-Neuronalnetzwerk 170, eine Verlustberechnungsschaltung 240 und eine Rückpropagations-Trainingsaktualisierungsschaltung 260 enthaltend dargestellt.
-
Rauschbehaftete Proben von Trainingssprachsignalen 150 werden an dem Sprachentrauschung-Neuronalnetzwerk (in Training) 210 angewendet, aus denen verarbeitete Trainingssprachsignale 220 erzeugt werden. Anfänglich werden die verarbeiteten Trainingssprachsignale 220 bezüglich der Entrauschung eine relativ schlechte Qualität aufweisen, aber während das Training fortschreitet (mit der Präsentation von mehr und mehr Trainingssprachsignalen für das System), kann erwartet werden, dass sich die Qualität verbessert. Die verarbeiteten Trainingssprachsignale 220 werden an dem trainierten Audioklassifizierer-Neuronalnetzwerk 170 angewendet, das als Reaktion darauf einen ersten Satz von Aktivierungsmerkmalen 230a erzeugt. Zusätzlich dazu werden klare Proben für die Trainingssprachsignale 155 an dem trainierten Audioklassifizierer-Neuronalnetzwerk 170 angewendet, das als Reaktion darauf einen zweiten Satz von Aktivierungsmerkmalen 230b erzeugt. Die klaren Proben 155 und die rauschbehafteten Proben 150 beinhalten dieselben Sprachsignale, aber die rauschbehafteten Proben beinhalten außerdem additives Hintergrundrauschen bei einem ausgewählten Rauschabstandspegel.
-
Bei manchen Ausführungsformen werden die Aktivierungsmerkmale 230a und 230b aus Aktivierungsmerkmalen ausgewählt, die durch eine Teilmenge der flachsten (obersten) Schichten des trainierten Audioklassifizierer-Neuronalnetzwerks 170 erzeugt werden und Merkmalen entsprechen, die die Signale bei einem Bereich kleinerer Zeitskalen repräsentieren. Bei manchen Ausführungsformen werden die sechs flachsten Schichten zur Extrahierung von Aktivierungsmerkmalen ausgewählt.
-
Die Verlustberechnungsschaltung 240 ist dazu ausgelegt, einen Verlustwert basierend auf dem ersten und zweiten Satz von Aktivierungsmerkmalen zu berechnen. Bei manchen Ausführungsformen ist die Verlustwertberechnung eine gewichtete geringste absolute Distanz (L1-Norm) zwischen dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen. Bei manchen Ausführungsformen kann die Verlustwertberechnung eine L2-Norm oder eine beliebige andere gewünschte Metrik sein. Bei manchen Ausführungsformen wird die Gewichtung derart gewählt, dass die Beiträge an den Merkmalen von jeder Schicht im Klassifikationsnetzwerk ungefähr gleich sind. Dies kann erreicht werden, indem anfänglich ein ungewichtetes Training durchgeführt wird, mit dem empirischen relativen Beitrag jeder Schicht nach einer gegebenen Anzahl von Trainingsiterationen normiert wird, und dann das Training mit diesen festen empirischen Gewichtungen fortgesetzt wird.
-
Bei manchen Ausführungsformen kann die Verlustberechnung durch die folgende Gleichung ausgedrückt werden:
wobei Φ
m die Aktivierungsmerkmale der m-ten Merkmalsschicht des Klassifizierer-Neuronalnetzwerks für die erste bis zur M-ten flachsten Netzwerkschicht, die im Verlust eingeschlossen sind, repräsentiert, wobei Schichten bei unterschiedlichen Tiefen Merkmalen mit variierenden Zeitauflösungen entsprechen, s das klare Signal ist, g(x; θ) die Ausgabe des gegenwärtig trainierten Entrauschungsnetzwerks ist und θ die Parameter des Entrauschungsnetzwerks sind. Die Verlustgewichtungsfaktoren λ
m werden so ausgewählt, dass sie den Beitrag jeder Schicht an der Verlustberechnung ausgleichen. Bei manchen Ausführungsformen werden die Gewichtungen auf die Inverse der relativen Werte von ||ϕ
m(s)- Φ
m(g(x;θ))∥
1 nach 10 Trainingsiterationen (während denen die Gewichtungen anfänglich auf einen Wert von 1 gesetzt sind) gesetzt.
-
Die Rückpropagations-Trainingsaktualisierungsschaltung 260 ist dazu ausgelegt, eine Rückpropagations-Trainingsaktualisierung am Sprachentrauschung-Neuronalnetzwerk 210 basierend auf dem berechneten Verlustwert durchzuführen, um das Sprachentrauschung-Neuronalnetzwerk zu trainieren. Der Trainingsprozess wird an zusätzlichen rauschbehafteten und klaren Proben von Trainingssprachsignalen iteriert, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk 180 zu erzeugen.
-
3 ein Blockdiagramm eines trainierten Audioklassifizierer-Neuronalnetzwerks 170, das gemäß gewissen Ausführungsformen der vorliegenden Offenbarung konfiguriert ist. Das trainierte Audioklassifizierer-Neuronalnetzwerk 170 ist als eine Anzahl von Schichten (16 bei dieser Ausführungsform) enthaltend dargestellt. Die Schichten 1 bis 13 beinhalten eine Faltungsoperationsschaltung 310, eine Normierungs-und-Nichtlinearisierungsoperation-Schaltung 312 und eine Dezimierungsoperationsschaltung 314. Die Faltungsoperationsschaltung 310 ist dazu ausgelegt, Merkmale des Signals mit zunehmenden Zeitskalen durch die Anwendung eines Faltungs-Kernels zu berechnen, dessen Werte während des Trainingsprozesses für das Klassifizierernetzwerk erlernt werden. Bei manchen Ausführungsformen setzt die Faltungsoperation 3×1 Faltungs-Kernel ein. Bei manchen Ausführungsformen wird die Normierungsoperation als eine Batch-Normierung implementiert und die Nichtlinearitätsoperation wird als eine LReLU (Leaky Rectified Linear Unit) implementiert. Die Dezimierungsoperation führt eine Dezimierung (um einen Faktor von zwei) zwischen jeder der Schichten 1 bis 14 durch. Die Dezimierung wird eingesetzt, um eine exponentielle zunehmende Zeitskala im Vergleich zu der linear zunehmenden Zeitskala, die anderweitig aus den Faltungsoperationen resultieren würde, zu erzielen.
-
Die Schicht 14 beinhaltet die Faltungsoperationsschaltung 310 und die Normierungs- und-Nichtlinearisierungsoperation-Schaltung 312, lässt aber die Dezimierung aus. Die Schicht 15 ist als eine Durchschnitts-Pooling-Schicht-Schaltung 320 dargestellt und die Schicht 16 ist als eine Logistischer-Klassifizierer-Schicht-Schaltung 330 dargestellt. Andere Konfigurationen sind hinsichtlich der vorliegenden Offenbarung möglich.
-
Die Durchschnitts-Pooling-Schicht-Schaltung 320 ist dazu ausgelegt, jede Kanalausgabe der letzten Faltungsschicht über einen Zeitraum zu mitteln, um einen Ausgabemerkmalsvektor zu liefern. Der Ausgabemerkmalsvektor kann einem (oder mehreren) logistischen Klassifizierern 330 mit Kreuzentropieverlust eingespeist werden, um eine (oder mehrere) Klassifikationsaufgaben durchzuführen. Dieser Kreuzentropieverlustwert kann zum Durchführen einer Rückpropagations-Trainingsaktualisierung zum Zweck des Audioklassifizierer-Neuronalnetzwerk-Trainings 110 vor seinem Einsatz als ein trainiertes Audioklassifizierer-Neuronalnetzwerk 170 im Kontext des Sprachentrauschung-Neuronalnetzwerks 120 verwendet werden. Die Logistischer-Klassifizierer-Schicht-Schaltung 330 ist dazu ausgelegt, Klassifikationslabel 340 durch Anwenden einer linearen Transformation gefolgt von einer Nichtlinearität (zum Beispiel unter Verwendung einer Sigmoid-Funktion zur Multilabel-Klassifikation oder einer Softmax-Funktion zur Einzellabel-Klassifikation) an dem Ausgabemerkmalsvektor zu erzeugen. Im Fall eines gemeinsamen Trainings an mehreren Aufgaben werden die Schichten über der Logistischer-Klassifizierer-Schicht durch die Aufgaben hinweg gemeinsam genutzt, während die Klassifiziererschicht 340 für jede Aufgabe eindeutig ist, da jede Aufgabe unterschiedlicher Art sein kann und einen anderen Satz von aufgabenspezifischen Labels aufweisen kann.
-
4 ein Blockdiagramm eines trainierten Sprachentrauschung-Neuronalnetzwerks 180, das gemäß gewissen Ausführungsformen der vorliegenden Offenbarung konfiguriert ist. Das trainierte Sprachentrauschung-Neuronalnetzwerk 180 ist als mehrere (N+1) dilatierte Faltungsschichten enthaltend dargestellt, die jeweils eine Dilatierte-Faltungsoperation-Schaltung 410 und eine Adaptive-Normierung-und-LReLU-Operation-Schaltung 412 beinhalten. Das Netzwerk 180 ist aus als eine Faltungssyntheseschicht 420 enthaltend dargestellt.
-
Die Dilatierte-Faltungsoperation-Schaltung 410 ist dazu ausgelegt, Kontextinformationen aus dem Audiosignal über längere Zeitspannen mit weniger Faltungsschichten und ohne den Verlust von Auflösung oder Abdeckung oder die Notwendigkeit, die Abtastfrequenz über Schichten zu ändern, zu aggregieren. Bei manchen Ausführungsformen wird der Dilatationsfaktor exponentiell mit jeder Schicht erhöht, sodass sich die Zeitspanne, über die Kontextinformationen gesammelt werden, exponentiell mit der Anzahl dilatierter Faltungsschichten erhöht, zum Beispiel von 20 für die erste dilatierte Faltungsschicht auf 2N-1 für die N-te dilatierte Faltungsschicht, obwohl keine Dilatation für die finale (N+1) dilatierte Faltungsschicht verwendet wird. Bei manchen Ausführungsformen wird die Faltung unter Verwendung eines 3×1-dilatierten Faltungs-Kernels durchgeführt.
-
Die adaptive Normierungs- und punktweise nichtlineare LReLU-Operationen 412 werden an der Ausgabe jeder Faltungsoperation 410 durchgeführt. Die adaptive Normierung verbessert die Leistungsfähigkeit und die Trainingsgeschwindigkeit und vermeidet die Notwendigkeit für Bias-Terme in den zwischenliegenden Faltungsschichten. Bei manchen Ausführungsformen kombiniert die Normierung adaptiv eine Batch-Normierung und eine Identitätsabbildung der Normierungsoperatoreingabe x als die gewichtete Summe akx + βkBN(x), wobei ak und βk Skalargewichtungen für die k-te Schicht sind und BN ein Batch-Normierungsoperator ist. Die Gewichtungen sind Netzwerkparameter, die durch Rückpropagation erlernt werden. Bei manchen Ausführungsformen kann die nichtlineare LReLU durch die Funktion max(0,2x, x) implementiert werden, wobei x die Eingabe der nichtlinearen LReLU ist.
-
Die Faltungssyntheseschicht 420 ist dazu ausgelegt, die Proben des Ausgabesignals unter Verwendung einer linearen Transformation zu synthetisieren, die einen 1×1-Faltungs-Kernel mit Bias, aber ohne Normierungs- oder Nichtlinearitätsfunktionen umfasst. Das entrauschte Ausgabesprachsignal 190 wird probenweise synthetisiert, während das Neuronalnetzwerk auf eine gleitende Weise entlang des Eingabesignals angewendet wird, mit Auffüllung von hinzugefügten Nullproben am Anfang und am Ende des Eingabesignals, wie erforderlich, um ein Ausgabesignal derselben Länge wie das ursprüngliche Eingabesignal zu erzeugen.
-
Da es keine Sprungverbindungen über die Faltungsschichten des Entrauschung-Neuronalnetzwerks gibt, müssen nur zwei Schichten zu einer jeglichen gegebenen Zeit während der Berechnung gespeichert werden (d. h. die vorherige und gegenwärtige Schicht). Dies liefert einen zusätzlichen Rechenvorteil.
-
Bei manchen Ausführungsformen umfasst das Entrauschung-Neuronalnetzwerk 16 Faltungsschichten. Die erste (oberste) Schicht, die das degradierte (rauschbehaftete) Eingabesignal 160 empfängt, und die finale Schicht, die das verbesserte Ausgabesignal 190 erzeugt, besitzen eine Dimensionalität von L×1, wobei L die Anzahl von Proben des Eingabesignals ist und die Abtastfrequenz 16 kHz beträgt. Im Allgemeinen werden das Klassifizierernetzwerk und das Entrauschungsnetzwerk trainiert, um mit derselben Abtastfrequenz zu arbeiten, die von der speziellen Anwendung abhängen kann. Jede zwischenliegende Schicht besitzt eine Dimensionalität von LxW, wobei W die Anzahl von Merkmalsabbildungen in jeder Schicht ist und auf 64 gesetzt ist. Alle Schichten werden mit Nullen aufgefüllt, sodass ihre effektive Länge konstant bei L liegt. Das rezeptive Feld des Netzwerks ist auf 214+1 Proben gesetzt, was etwa eine Sekunde von Audio bei der Abtastrate von 16 kHz repräsentiert, und somit ist das System dazu ausgelegt, Kontext bei den Zeitskalen von gesprochenen Wörtern aufzunehmen, obwohl es Signale mit beliebiger Länge verarbeiten kann, indem es das Netzwerk so lange wie erforderlich auf eine gleitende Weise anwendet, um die gesamte Signallänge aufzunehmen.
-
Methodik
-
5 ist ein Flussdiagramm, das ein beispielhaftes Verfahren 500 zum Trainieren eines Sprachentrauschung-Neuronalnetzwerks mit tiefen Merkmalsverlusten gemäß gewissen Ausführungsformen der vorliegenden Offenbarung veranschaulicht. Wie gesehen werden kann, beinhaltet das beispielhafte Verfahren eine Anzahl von Phasen und Teilprozessen, wobei deren Abfolge von einer Ausführungsform zu einer anderen variieren kann. Wenn sie zusammengefasst betrachtet werden, bilden diese Phasen und Teilprozesse jedoch einen Prozess zum Trainieren eines Sprachentrauschung-Neuronalnetzwerks mit tiefen Merkmalsverlusten gemäß gewissen der hierin offenbarten Ausführungsformen. Diese Ausführungsformen können zum Beispiel unter Verwendung der in den 1-4 veranschaulichten Systemarchitektur implementiert werden, wie oben beschrieben. Andere Systemarchitekturen können jedoch bei anderen Ausführungsformen verwendet werden, wie hinsichtlich dieser Offenbarung ersichtlich wird. Zu diesem Zweck ist nicht beabsichtigt, dass die Korrelation der verschiedenen in 5 dargestellten Funktionen zu den spezifischen Komponenten, die in den anderen Figuren veranschaulicht sind, irgendwelche Struktur- und/oder Verwendungsbeschränkungen andeutet. Stattdessen können andere Ausführungsformen zum Beispiel variierende Integrationsgrade beinhalten, bei denen mehrere Funktionalitäten effektiv durch ein System durchgeführt werden. Bei einer alternativen Ausführungsform kann zum Beispiel ein einzelnes Modul, das entkoppelte Untermodule aufweist, zum Durchführen aller Funktionen des Verfahrens 500 verwendet werden. Somit können andere Ausführungsformen in Abhängigkeit von der Granularität der Implementierung weniger oder mehr Module und/oder Untermodule aufweisen. Bei noch anderen Ausführungsformen kann die abgebildete Methodik als ein Computerprogrammprodukt einschließlich eines oder mehrerer nichtflüchtiger maschinenlesbarer Medien implementiert werden, die bei Ausführung durch einen oder mehrere Prozessoren bewirken, dass die Methodik ausgeführt wird. Zahlreiche Variationen und alternative Konfigurationen werden hinsichtlich dieser Offenbarung ersichtlich.
-
Wie in 5 veranschaulicht, beginnt bei einer Ausführungsform das Verfahren 500 zum Trainieren des Sprachentrauschung-Neuronalnetzwerks bei Operation 510 mit Verarbeiten einer rauschbehafteten Probe eines Trainingssprachsignals durch das gegenwärtig trainierte Sprachentrauschung-Neuronalnetzwerk, um ein verarbeitetes Trainingssprachsignal zu erzeugen.
-
Als Nächstes wird bei Operation 520 das verarbeitete Trainingssprachsignal an einem trainierten Audioklassifizierer-Neuronalnetzwerk angewendet, um einen ersten Satz von Aktivierungsmerkmalen zu erzeugen. Bei Operation 530 wird eine klare Probe (z. B. ohne additives Rauschen) des Trainingssprachsignals an dem trainierten Audioklassifizierer-Neuronalnetzwerk angewendet, um einen zweiten Satz von Aktivierungsmerkmalen zu erzeugen. Bei manchen Ausführungsformen werden die Aktivierungsmerkmale des ersten und zweiten Satzes von Aktivierungsmerkmalen aus Aktivierungsmerkmalen ausgewählt, die durch eine Teilmenge der flachsten Schicht des trainierten Audioklassifizierer-Neuronalnetzwerks erzeugt werden.
-
Bei Operation 540 wird ein Verlustwert basierend auf dem ersten und zweiten Satz von Aktivierungsmerkmalen berechnet. Bei manchen Ausführungsformen ist die Verlustwertberechnung eine gewichtete geringste absolute Distanz (L1-Norm) zwischen dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen. Bei manchen Ausführungsformen kann die Verlustwertberechnung eine L2-Norm oder eine beliebige andere gewünschte Metrik sein.
-
Bei Operation 550 wird eine Rückpropagations-Trainingsaktualisierung am Sprachentrauschung-Neuronalnetzwerk basierend auf dem berechneten Verlustwert durchgeführt, um das Sprachentrauschung-Neuronalnetzwerk zu trainieren. Der Trainingsprozess wird an zusätzlichen rauschbehafteten und klaren Proben von Trainingssprachsignalen iteriert, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk zu erzeugen, wobei zum Beispiel jede Iteration die Leistungsfähigkeit des Netzwerks verbessert.
-
Bei manchen Ausführungsformen können natürlich zusätzliche Operationen durchgeführt werden, wie zuvor in Verbindung mit dem System beschrieben. Das trainierte Sprachentrauschung-Neuronalnetzwerk kann zum Beispiel an rauschbehafteten operativen Sprachsignalen angewendet werden, um entrauschte Sprachsignale zu erzeugen.
-
Beispielhaftes System
-
6 veranschaulicht eine beispielhafte Plattform 600, die gemäß gewissen Ausführungsformen der vorliegenden Offenbarung konfiguriert ist, eine Sprachentrauschung durchzuführen. Bei manchen Ausführungsformen kann die Plattform 600 auf einer sprachgestützten Einrichtung (zum Beispiel einem Smartphone, einem Smart-Lautsprecher, einem Smart-Tablet, einem Personal Assistant, einem Smart-Home-Verwaltungssystem), einem Personal-Computer, einer Arbeitsstation, einem Laptop-Computer, einem Ultra-Laptop-Computer, einem Tablet, einem Touchpad, einem portablen Computer, einem handgehaltenen Computer, einem Palmtop-Computer, einer Messaging-Einrichtung, einer Datenkommunikationseinrichtung, einer Wearable-Einrichtung und so weiter gehostet werden oder anderweitig in diesen integriert sein. Eine beliebige Kombination unterschiedlicher Einrichtungen kann bei gewissen Ausführungsformen verwendet werden.
-
Bei manchen Ausführungsformen kann die Plattform 600 eine beliebige Kombination eines Prozessors 620, eines Speichers 630, eines trainierten Sprachentrauschung-Neuronalnetzwerks 180, einer Netzwerkschnittstelle 640, eines Eingabe/Ausgabe(E/A)-Systems 650, einer Benutzeroberfläche 660, eines oder mehrerer Mikrofone 610 und eines Speicherungssystems 670 umfassen. Wie ferner gesehen werden kann, ist auch ein Bus und/oder Interconnect 692 bereitgestellt, um eine Kommunikation zwischen den verschiedenen oben aufgelisteten Komponenten und/oder anderen nicht dargestellten Komponenten zu ermöglichen. Die Plattform 600 kann über die Netzwerkschnittstelle 640 mit einem Netzwerk 694 gekoppelt sein, um Kommunikationen mit anderen Recheneinrichtungen, Plattformen, zu steuernden Einrichtungen oder anderen Betriebsmitteln zu ermöglichen. Andere Komponenten und Funktionalität, die nicht im Blockdiagramm von 6 widergespiegelt sind, werden hinsichtlich dieser Offenbarung ersichtlich werden und es wird zu verstehen sein, dass andere Ausführungsformen nicht auf irgendeine spezielle Hardwarekonfiguration beschränkt sind.
-
Der Prozessor 620 kann ein beliebiger geeigneter Prozessor sein und kann einen oder mehrere Coprozessoren oder eine oder mehrere Steuerungen beinhalten, wie etwa einen Audioprozessor, eine Grafikverarbeitungseinheit oder einen Hardwarebeschleuniger, um die Steuerung und Verarbeitungsoperationen, die mit der Plattform 600 assoziiert sind, zu unterstützen. Bei manchen Ausführungsformen kann der Prozessor 620 als eine beliebige Anzahl von Prozessorkernen implementiert werden. Der Prozessor (oder die Prozessorkerne) kann (können) eine beliebige Art von Prozessor sein, wie etwa zum Beispiel ein Mikroprozessor, ein eingebetteter Prozessor, ein Digitalsignalprozessor (DSP), ein Grafikprozessor (GPU), ein Netzwerkprozessor, ein feldprogrammierbares Gate-Array oder eine andere Einrichtung, die zum Ausführen von Code konfiguriert ist. Die Prozessoren können in dem Sinne Multithread-Kerne sein, dass sie mehr als einen Hardware-Thread-Kontext (oder „Logikprozessor“) pro Kern beinhalten können. Der Prozessor 620 kann als ein CISC(Complex Instruction Set Computer - Computer mit komplexem Befehlssatz)- oder ein RISC(Reduced Instruction Set Computer - Computer mit reduziertem Befehlssatz)-Prozessor implementiert werden. Bei manchen Ausführungsformen kann der Prozessor 620 als ein x86-Befehlssatz-kompatibler Prozessor konfiguriert sein.
-
Der Speicher 630 kann unter Verwendung einer beliebigen geeigneten Art von digitaler Speicherung implementiert werden, zum Beispiel Flash-Speicher und/oder Direktzugriffsspeicher (RAM: Random Access Memory). Bei manchen Ausführungsformen kann der Speicher 630 verschiedene Schichten von Speicherhierarchie und/oder Speicher-Caches beinhalten, wie Fachleuten bekannt sind. Der Speicher 630 kann als eine flüchtige Speichereinrichtung implementiert werden, wie etwa unter anderem eine RAM-, dynamische RAM(DRAM)- oder statische RAM(SRAM)-Einrichtung. Das Speicherungssystem 670 kann als eine nichtflüchtige Speicherungseinrichtung implementiert werden, etwa unter anderem eine Festplatte (HDD: Hard Disk Drive) und/oder ein Halbleiterlaufwerk (SSD: Solid State Drive) und/oder ein Universal-Serial-Bus(USB)-Laufwerk und/oder ein optisches Plattenlaufwerk und/oder ein Bandlaufwerk und/oder eine interne Speicherungseinrichtung und/oder eine angeschlossene Speicherungseinrichtung und/oder ein Flash-Speicher und/oder ein batteriegestützter synchroner DRAM (SDRAM) und/oder netzwerkzugängliche Speicherungseinrichtung. Bei manchen Ausführungsformen kann die Speicherung 670 Technologie umfassen, um den erweiterten Speicherungsleistungsschutz für wertvolle digitale Medien zu erhöhen, wenn mehrere Festplatten enthalten sind.
-
Der Prozessor 620 kann dazu ausgelegt sein, ein Betriebssystem (OS: Operating System) auszuführen, das ein beliebiges geeignetes Betriebssystem umfassen kann, wie etwa Google Android (Google Inc., Mountain View, Kalifornien), Microsoft Windows (Microsoft Corp., Redmond, Washington), Apple OS X (Apple Inc., Cupertino, Kalifornien), Linux oder ein Echtzeit-Betriebssystem (RTOS: Real-Time Operating System). Wie angesichts dieser Offenbarung ersichtlich wird, können die hierin bereitgestellten Techniken ungeachtet des speziellen Betriebssystems implementiert werden, das in Verbindung mit der Plattform 600 bereitgestellt ist, und können daher auch unter Verwendung einer beliebigen bestehenden oder später entwickelten Plattform implementiert werden.
-
Die Netzwerkschnittstellenschaltung 640 kann ein beliebiger zweckmäßiger Netzwerkchip oder -chipsatz sein, der eine verdrahtete und/oder drahtlose Verbindung zwischen anderen Komponenten der Einrichtungsplattform 600 und/oder dem Netzwerk 694 ermöglicht, wodurch der Plattform 600 ermöglicht wird, mit anderen lokalen und/oder entfernten Rechensystemen, Servern, Cloud-basierten Servern und/oder anderen Betriebsmitteln zu kommunizieren. Eine verdrahtete Kommunikation kann bestehenden (oder noch zu entwickelnden) Standards entsprechen, wie etwa zum Beispiel Ethernet. Eine drahtlose Kommunikation kann bestehenden (oder noch zu entwickelnden) Standards entsprechen, wie etwa zum Beispiel Mobilfunkkommunikationen einschließlich LTE (Long Term Evolution), Wireless Fidelity (WiFi), Bluetooth und/oder Nahfeldkommunikation (NFC: Near Field Communikation). Beispielhafte drahtlose Netze beinhalten unter anderem drahtlose Lokalnetze, drahtlose persönliche Netze, drahtlose städtische Netze, Mobilfunknetze und Satellitennetze.
-
Das E/A-System 650 kann dazu ausgelegt sein, zwischen verschiedenen E/A-Einrichtungen und anderen Komponenten der Einrichtungsplattform 600 eine Schnittstelle zu bilden. E/A-Einrichtungen können unter anderem die Benutzeroberfläche 660 und das eine oder die mehreren Mikrofone 610 beinhalten. Die Benutzeroberfläche 660 kann Einrichtungen (nicht dargestellt) beinhalten, wie etwa ein Anzeigeelement, ein Touchpad, eine Tastatur und eine Maus usw. Das E/A-System 650 kann ein Grafikuntersystem beinhalten, das dazu ausgelegt ist, eine Verarbeitung von Bildern zur Wiedergabe auf dem Anzeigeelement durchzuführen. Das Grafikuntersystem kann beispielsweise eine Grafikverarbeitungseinheit oder eine visuelle Verarbeitungseinheit (VPU: Visual Processing Unit) sein. Eine Analog- oder Digitalschnittstelle kann verwendet werden, um das Grafikuntersystem und das Anzeigeelement kommunikativ zu koppeln. Zum Beispiel kann die Schnittstelle eine beliebige aus High-Definition-Multimedia-Interface (HDMI), DisplayPort, drahtloser HDMI und/oder einer beliebigen anderen geeigneten Schnittstelle sein, die drahtlose High-Definition-konforme Techniken verwendet. Bei manchen Ausführungsformen könnte das Grafikuntersystem in dem Prozessor 620 oder einem beliebigen Chipsatz der Plattform 600 integriert sein.
-
Es versteht sich, dass die verschiedenen Komponenten der Plattform 600 bei manchen Ausführungsformen in einer System-auf-einem-Chip(SoC)-Architektur (SoC: System-on-a-Chip) kombiniert oder integriert werden können. Bei manchen Ausführungsformen können die Komponenten Hardwarekomponenten, Firmwarekomponenten, Softwarekomponenten oder eine beliebige geeignete Kombination von Hardware, Firmware oder Software sein.
-
Das Sprachentrauschung-Neuronalnetzwerk 180 wird trainiert und ist dazu ausgelegt, ein Sprachsignal zu verarbeiten, das durch additives Rauschen beschädigt worden ist, und ein Ausgabesignal zu erzeugen, das hauptsächlich den Sprachinhalt beinhaltet, wie zuvor beschrieben. Das Sprachentrauschung-Neuronalnetzwerk 180 wird mit tiefen Merkmalsverlusten trainiert, die durch ein Audioklassifizierer-Neuronalnetzwerk erzeugt werden. Das Sprachentrauschung-Neuronalnetzwerk 180 kann beliebige oder alle der in den 1-4 veranschaulichten Schaltungen/Komponenten beinhalten, wie oben beschrieben. Diese Komponenten können in Verbindung mit einer Vielfalt geeigneter Software und/oder Hardware implementiert oder anderweitig verwendet werden, die mit der Plattform 600 gekoppelt sind oder anderweitig einen Teil von dieser bilden. Diese Komponenten können zusätzlich oder alternativ in Verbindung mit Benutzer-E/A-Einrichtungen implementiert oder anderweitig verwendet werden, die in der Lage sind, einem Benutzer Informationen bereitzustellen und Informationen und Befehle von diesem zu empfangen.
-
Bei manchen Ausführungsformen können diese Schaltungen lokal zu der Plattform 600 installiert sein, wie im Ausführungsbeispiel der 6 dargestellt. Alternativ dazu kann die Plattform 600 in einer Client-Server-Anordnung implementiert werden, bei der zumindest ein Teil der mit diesen Schaltungen assoziierten Funktionalität der Plattform 600 unter Verwendung eines Applets, wie etwa eines JavaScript-Applets, oder eines anderen herunterladbaren Moduls oder Satzes von Untermodulen bereitgestellt wird. Derartige entfernt zugängliche Module oder Untermodule können in Echtzeit als Reaktion auf eine Anforderung von einem Client-Rechensystem für einen Zugriff auf einen gegebenen Server, der Ressourcen aufweist, die für den Benutzer des Client-Rechensystems von Interesse sind, bereitgestellt werden. Bei derartigen Ausführungsformen kann sich der Server lokal zum Netzwerk 694 befinden oder durch ein oder mehrere andere Netzwerke und/oder Kommunikationskanäle entfernt mit dem Netzwerk 694 gekoppelt sein. In manchen Fällen kann ein Zugriff auf Ressourcen auf einem gegebenen Netzwerk oder Rechensystem Anmeldedaten erfordern, wie etwa Benutzernamen, Passwörter und/oder eine Erfüllung eines beliebigen anderen geeigneten Sicherheitsmechanismus.
-
Bei verschiedenen Ausführungsformen kann die Plattform 600 als ein drahtloses System, ein verdrahtetes System oder eine Kombination von beiden implementiert werden. Wenn es als ein drahtloses System implementiert wird, kann die Plattform 600 Komponenten und Schnittstellen beinhalten, die sich zur Kommunikation über ein drahtloses gemeinsam genutztes Medium eignen, wie etwa eine oder mehrere Antennen, einen oder mehrere Sender, einen oder mehrere Empfänger, einen oder mehrere Sendeempfänger, einen oder mehrere Verstärker, ein oder mehrere Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlose gemeinsam genutzte Medien kann Teile eines Drahtlosspektrums beinhalten, wie etwa das Hochfrequenzspektrum, und so weiter. Wenn es als ein verdrahtetes System implementiert wird, kann die Plattform 600 Komponenten und Schnittstellen beinhalten, die sich zur Kommunikation über verdrahtete Kommunikationsmedien eignen, wie etwa Eingabe/Ausgabe-Adapter, physische Verbinder, um den Eingabe/Ausgabe-Adapter mit einem entsprechenden verdrahteten Kommunikationsmedium zu verbinden, eine Netzwerkschnittstellenkarte (NIC: Network Interface Card), eine Plattensteuerung, eine Videosteuerung, eine Audiosteuerung und so weiter. Beispiele für verdrahtete Kommunikationsmedien können einen Draht, Kabelmetallleitungen, eine Leiterplatte (PCB: Printed Circuit Board), eine Backplane, ein Switch-Fabric, Halbleitermaterial, einen Twistes-Pair-Draht, ein Koaxialkabel, Faseroptik und so weiter einschließen.
-
Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination beider implementiert werden. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (zum Beispiel Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, ASICs, programmierbare Logikeinrichtungen, Digitalsignalprozessoren, FPGAs, Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter einschließen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen, Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon einschließen. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann gemäß einer beliebigen Anzahl von Faktoren variieren, wie etwa der gewünschten Rechenrate, dem Leistungspegel, den Wärmetoleranzen, dem Verarbeitungszyklusbudget, den Eingangsdatenraten, den Ausgangsdatenraten, den Speicherressourcen, den Datenbusgeschwindigkeiten und anderen Design- oder Leistungsvorgaben.
-
Manche Ausführungsformen können unter Verwendung des Ausdrucks „gekoppelt“ und „verbunden“ mit ihren jeweiligen Ableitungen beschrieben sein. Diese Begriffe sind nicht als füreinander synonym zu betrachten. Manche Ausführungsformen können zum Beispiel unter Verwendung der Begriffe „verbunden“ und/oder „gekoppelt“ beschrieben sein, um anzugeben, dass sich zwei oder mehr Elemente in direktem physischem oder elektrischem Kontakt miteinander befinden. Der Begriff „gekoppelt“ kann jedoch auch bedeuten, dass sich zwei oder mehrere Elemente nicht in direktem Kontakt miteinander befinden, jedoch weiterhin kooperieren oder miteinander interagieren.
-
Die verschiedenen hierin offenbarten Ausführungsformen können in verschiedenen Formen von Hardware, Software, Firmware und/oder Spezialzweckprozessoren implementiert werden. Bei einer Ausführungsform weist zum Beispiel mindestens ein nichtflüchtiges computerlesbares Speicherungsmedium darauf codierte Anweisungen auf, die bei Ausführung durch einen oder mehrere Prozessoren bewirken, dass eine oder mehrere der hierin offenbarten Sprachentrauschungstechniken implementiert wird. Die Anweisungen können unter Verwendung einer geeigneten Programmiersprache, wie etwa C, C++, objektorientiertem C, Java, JavaScript, Visual Basic .NET, BASIC (Beginner's All-Purpose Symbolic Instruction Code), oder alternativ dazu unter Verwendung von benutzerspezifischen oder proprietären Befehlssätzen codiert sein. Die Anweisungen können in Form einer oder mehrerer Computersoftwareanwendungen und/oder eines oder mehrerer Applets bereitgestellt sein, die greifbar auf einer Speichereinrichtung umgesetzt sind und die durch einen Computer mit einer beliebigen geeigneten Architektur ausgeführt werden können. Bei einer Ausführungsform kann das System auf einer gegebenen Website gehostet und zum Beispiel unter Verwendung von JavaScript oder einer anderen geeigneten browserbasierten Technologie implementiert werden. Bei gewissen Ausführungsformen kann das System beispielsweise Verarbeitungsressourcen wirksam einsetzen, die durch ein Ferncomputersystem bereitgestellt werden, auf das über das Netzwerk 694 zugegriffen werden kann. Bei anderen Ausführungsformen können die hierin offenbarten Funktionalitäten in anderen sprachgestützten Einrichtungen und sprachbasierten Softwareanwendungen integriert sein, wie etwa zum Beispiel Kraftfahrzeugsteuerung/Navigation, Smart-Home-Verwaltung, Entertainment, Personal Assistant und Roboteranwendungen. Die hierin offenbarten Computersoftwareanwendungen können eine beliebige Anzahl unterschiedlicher Module, Untermodule oder anderer Komponenten mit unterscheidbarer Funktionalität beinhalten und können noch anderen Komponenten Informationen bereitstellen oder Informationen von diesen empfangen. Diese Module können zum Beispiel zum Kommunizieren mit Eingabe- und/oder Ausgabeeinrichtungen verwendet werden, wie etwa einem Anzeigebildschirm, einer berührungsempfindlichen Oberfläche, einem Drucker und/oder einer beliebigen anderen geeigneten Einrichtung. Andere Komponenten und Funktionalität, die nicht in der Veranschaulichungen widergespiegelt sind, werden hinsichtlich dieser Offenbarung ersichtlich werden und es wird zu verstehen sein, dass andere Ausführungsformen nicht auf irgendeine spezielle Hardware- oder Softwarekonfiguration beschränkt sind. Somit kann die Plattform 600 bei anderen Ausführungsformen zusätzliche, weniger oder alternative Teilkomponenten im Vergleich zu jenen umfassen, die im Ausführungsbeispiel von 6 enthalten sind.
-
Das vorgenannte nichtflüchtige computerlesbare Medium kann ein beliebiges geeignetes Medium zum Speichern von digitalen Informationen sein, wie etwa eine Festplatte, ein Server, ein Flash-Speicher und/oder ein Direktzugriffspeicher (RAM) oder eine Kombination von Speichern. Bei alternativen Ausführungsformen können die hierin offenbarten Komponenten und/oder Module mit Hardware implementiert werden, einschließlich Logik auf Gate-Ebene als ein feldprogrammierbares Gate-Array (FPGA), oder alternativ dazu eines zweckbestimmten Halbleiters, wie etwa einer anwendungsspezifischen integrierten Schaltung (ASIC: Application-Specific Integrated Circuit). Noch andere Ausführungsformen können mit einem Mikrocontroller implementiert werden, der eine Anzahl von Eingangs-/Ausgangsports zum Empfangen und Ausgeben von Daten und eine Anzahl von eingebetteten Routinen zum Ausführen der verschiedenen hierin offenbarten Funktionalitäten aufweist. Es wird ersichtlich, dass eine beliebige geeignete Kombination aus Hardware, Software und Firmware verwendet werden kann und dass andere Ausführungsformen nicht auf irgendeine spezielle Systemarchitektur beschränkt sind.
-
Manche Ausführungsformen können zum Beispiel unter Verwendung eines maschinenlesbaren Mediums oder Artikels implementiert werden, das/der eine Anweisung oder einen Satz von Anweisungen speichern kann, die/der, falls sie/er durch eine Maschine ausgeführt wird, veranlassen kann, dass die Maschine ein Verfahren, einen Prozess und/oder Operationen gemäß den Ausführungsformen durchführt. Eine derartige Maschine kann zum Beispiel eine beliebige geeignete Verarbeitungsplattform, Rechenplattform, Recheneinrichtung, Verarbeitungseinrichtung, ein beliebiges geeignetes Rechensystem, Verarbeitungssystem, einen beliebigen geeigneten Computer, Prozessor oder dergleichen beinhalten und kann unter Verwendung einer beliebigen geeigneten Kombination von Hardware und/oder Software implementiert werden. Das maschinenlesbare Medium oder der maschinenlesbare Artikel kann zum Beispiel eine beliebige geeignete Art von Speichereinheit, Speichereinrichtung, Speicherartikel, Speichermedium, Speicherungseinrichtung, Speicherungsartikel, Speicherungsmedium und/oder Speicherungseinheit beinhalten, wie etwa Speicher, entfernbare oder nicht entfernbare Medien, löschbare oder nicht löschbare Medien, beschreibbare oder wiederbeschreibbare Medien, digitale oder analoge Medien, eine Festplatte, eine Floppy-Disk, eine CD-ROM (Compact Disk Read Only Memory), eine CD-R (Compact Disk Recordable), einen CD-RW(Compact Disk Rewritable)-Speicher, eine optische Platte, magnetische Medien, magnetooptische Medien, entfernbare Speicherkarten oder Platten, verschiedene Arten von DVD (Digital Versatile Disk), ein Band, eine Kassette oder dergleichen. Die Anweisungen können eine beliebige geeignete Art von Code beinhalten, wie etwa Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, verschlüsselten Code und dergleichen, die unter Verwendung einer beliebigen geeigneten High-Level-, Low-Level-, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert werden.
-
Sofern es nicht spezifisch anders erwähnt wird, kann gewürdigt werden, dass sich Begriffe wie „Verarbeiten“, „Rechnen“, „Berechnen“, „Bestimmen“ oder dergleichen auf die Handlung und/oder den Prozess eines Computers oder eines Rechensystems oder einer ähnlichen elektronischen Recheneinrichtung beziehen, das bzw. die Daten, die als physische Größen (zum Beispiel Elektronik) repräsentiert werden, innerhalb der Register und/oder Speichereinheiten des Rechensystems in andere Daten, die gleichermaßen als physische Größen innerhalb der Register, Speichereinheiten repräsentiert werden, oder eine andere derartige Informationsspeicherungsübertragung oder -anzeigen des Rechensystems manipulieren und/oder transformieren. Die Ausführungsformen sind in dieser Hinsicht nicht beschränkt.
-
Die Begriffe „Schaltung“ oder „Schaltkreis“, wie bei einer beliebigen Ausführungsform hierin verwendet, sind funktional und können zum Beispiel einzeln oder in einer beliebigen Kombination einen festverdrahteten Schaltkreis, einen programmierbaren Schaltkreis, wie etwa Computerprozessoren, die einen oder mehrere individuelle Anweisungsverarbeitungskerne umfassen, einen Zustandsmaschinenschaltkreis und/oder Firmware umfassen, die Anweisungen, die durch den programmierbaren Schaltkreis ausgeführt werden, speichern. Der Schaltkreis kann einen Prozessor und/oder eine Steuerung beinhalten, der bzw. die dazu ausgelegt ist, eine oder mehrere Anweisungen zum Durchführen einer oder mehrerer hierin beschriebener Operationen auszuführen. Die Anweisungen können zum Beispiel als eine Anwendung, Software, Firmware usw. umgesetzt sein, die dazu ausgelegt ist, zu bewirken, dass der Schaltkreis eine beliebige der vorgenannten Operationen durchführt. Software kann als ein Softwarepaket, Code, Anweisungen, Befehlssätze und/oder Daten, das/der/die auf einer computerlesbaren Speicherungseinrichtung aufgezeichnet ist/sind, umgesetzt sein. Software kann so umgesetzt sein oder implementiert werden, dass sie eine beliebige Anzahl von Prozessen enthält, und Prozesse können im Gegenzug so umgesetzt sein oder implementiert werden, dass sie eine beliebige Anzahl von Threads usw. auf eine hierarchische Weise enthalten. Firmware kann als Code, Anweisungen, Befehlssätze und/oder Daten, die in (z. B. nichtflüchtigen) Speichereinrichtungen festcodiert sind, umgesetzt sein. Der Schaltkreis kann zusammengefasst oder individuell als ein Schaltkreis umgesetzt sein, der Teil eines größeren Systems bildet, zum Beispiel als eine integrierte Schaltung (IC: Integrated Circuit), eine anwendungsspezifische integrierte Schaltung (ASIC), ein System-auf-Chip (SoC), Desktop-Computer, Laptop-Computer, Tablet-Computer, Server, Smartphones usw. Andere Ausführungsformen können als Software implementiert werden., die durch eine programmierbare Steuereinrichtung ausgeführt wird. In derartigen Fällen wird beabsichtigt, dass die Begriffe „Schaltung“ oder „Schaltkreis“ eine Kombination von Software und Hardware enthalten, wie etwa eine programmierbare Steuereinrichtung oder einen Prozessor, der zur Ausführung der Software fähig ist. Wie hierin beschrieben, können verschiedene Ausführungsformen unter Verwendung von Hardwareelementen, Softwareelementen oder einer beliebigen Kombination davon implementiert werden. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktivitäten und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikeinrichtungen (PLD: Programmable Logic Devices), Digitalsignalprozessoren (DSP), ein feldprogrammierbares Gate-Array (FPGA), Logikgatter, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsätze und so weiter beinhalten.
-
In der obigen Beschreibung wurden zahlreiche spezifische Einzelheiten dargelegt, um ein umfassendes Verständnis der Ausführungsformen bereitzustellen. Einem Durchschnittsfachmann wird jedoch ersichtlich, dass die Ausführungsformen ohne diese spezifischen Einzelheiten umgesetzt werden können. In anderen Fällen wurden wohlbekannte Operationen, Komponenten und Schaltungen nicht ausführlich beschrieben, um die Ausführungsformen nicht zu verundeutlichen. Es versteht sich, dass die spezifischen hierin offenbarten Struktur- und Funktionseinzelheiten repräsentativ sein können und dass sie nicht notwendigerweise den Schutzumfang der Ausführungsformen beschränken. Wenngleich der Gegenstand in einer Sprache beschrieben wurde, die für strukturelle Merkmale und/oder methodische Handlungen spezifisch ist, versteht es sich, dass der in den angehängten Ansprüchen definierte Gegenstand zusätzlich nicht auf die spezifischen hierin beschriebenen Merkmale oder Handlungen beschränkt sein soll. Stattdessen werden die hierin beschriebenen spezifischen Merkmale und Handlungen als beispielhafte Formen des Implementierens der Ansprüche offenbart.
-
Weitere Ausführungsbeispiele
-
Die folgenden Beispiele betreffen weitere Ausführungsformen, aus denen zahlreiche Permutationen und Konfigurationen ersichtlich werden.
-
Beispiel 1 ist ein prozessorimplementiertes Verfahren zur Sprachentrauschung, wobei das Verfahren Folgendes umfasst: Anwenden, durch ein prozessorbasiertes System, eines Sprachentrauschung-Neuronalnetzwerks an einer rauschbehafteten Probe eines Trainingssprachsignals, um ein verarbeitetes Trainingssprachsignal zu erzeugen; Anwenden, durch das prozessorbasierte System, eines trainierten Audioklassifizierer-Neuronalnetzwerks an dem verarbeiteten Trainingssprachsignal, um einen ersten Satz von Aktivierungsmerkmalen zu erzeugen; Anwenden, durch das prozessorbasierte System, des trainierten Audioklassifizierer-Neuronalnetzwerks an einer klaren Probe des Trainingssprachsignals, um einen zweiten Satz von Aktivierungsmerkmalen zu erzeugen; Berechnen, durch das prozessorbasierte System, eines Verlustwerts basierend auf dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen; und Durchführen, durch das prozessorbasierte System, einer Rückpropagations-Trainingsaktualisierung des Sprachentrauschung-Neuronalnetzwerks basierend auf dem Verlustwert, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk zu erzeugen.
-
Beispiel 2 beinhaltet den Gegenstand des Beispiels 1, ferner umfassend Anwenden des trainierten Sprachentrauschung-Neuronalnetzwerks an einem rauschbehafteten operativen Sprachsignal, um ein entrauschtes Sprachsignal zu erzeugen.
-
Beispiel 3 beinhaltet den Gegenstand der Beispiele 1 oder 2, wobei die Verlustwertberechnung eine gewichtete geringste absolute Distanz (L1-Norm) zwischen dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen ist.
-
Beispiel 4 beinhaltet den Gegenstand eines der Beispiele 1-3, wobei das trainierte Audioklassifizierer-Neuronalnetzwerk mehrere Faltungsschichten umfasst, wobei jede der Faltungsschichten Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen erzeugen soll.
-
Beispiel 5 beinhaltet den Gegenstand eines der Beispiele 1-4, wobei die Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen aus Aktivierungsmerkmalen ausgewählt werden, die durch eine Teilmenge der flachsten Schicht des trainierten Audioklassifizierer-Neuronalnetzwerks erzeugt werden.
-
Beispiel 6 beinhaltet den Gegenstand eines der Beispiele 1-5, wobei das Sprachentrauschung-Neuronalnetzwerk mehrere dilatierte Faltungsschichten und eine Faltungssyntheseschicht umfasst.
-
Beispiel 7 beinhaltet den Gegenstand eines der Beispiele 1-6, ferner umfassend Anwenden einer adaptiven Normierung und einer LReLU(Leaky Rectified Linear Unit)-Aktivierungsfunktion an Ausgaben von Operationen in den dilatierten Faltungsschichten.
-
Beispiel 8 ist ein System zur Sprachentrauschung, wobei das System Folgendes umfasst: ein Sprachentrauschung-Neuronalnetzwerk zum Erzeugen eines verarbeiteten Trainingssprachsignals basierend auf einer bereitgestellten rauschbehafteten Probe eines Trainingssprachsignals; ein trainiertes Audioklassifizierer-Neuronalnetzwerk zum Erzeugen eines ersten Satzes von Aktivierungsmerkmalen basierend auf dem verarbeiteten Trainingssprachsignal und zum Erzeugen eines zweiten Satzes von Aktivierungsmerkmalen basierend auf einer klaren Probe des Trainingssprachsignals; eine Verlustberechnungsschaltung zum Berechnen eines Verlustwerts basierend auf dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen; und eine Rückpropagations-Trainingsaktualisierungsschaltung zum Durchführen einer Rückpropagations-Trainingsaktualisierung des Sprachentrauschung-Neuronalnetzwerks basierend auf dem Verlustwert, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk zu erzeugen.
-
Beispiel 9 beinhaltet den Gegenstand des Beispiels 8, wobei das Sprachentrauschung-Neuronalnetzwerk ein entrauschtes Sprachsignal basierend auf einem bereitgestellten rauschbehafteten Sprachsignal erzeugen soll.
-
Beispiel 10 beinhaltet den Gegenstand der Beispiele 8 oder 9, wobei die Verlustwertberechnung eine gewichtete geringste absolute Distanz (L1-Norm) zwischen dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen ist.
-
Beispiel 11 beinhaltet den Gegenstand eines der Beispiele 8-10, wobei das trainierte Audioklassifizierer-Neuronalnetzwerk mehrere Faltungsschichten umfasst, wobei jede der Faltungsschichten Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen erzeugen soll.
-
Beispiel 12 beinhaltet den Gegenstand eines der Beispiele 8-11, wobei die Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen aus Aktivierungsmerkmalen ausgewählt werden, die durch eine Teilmenge der flachsten Schicht des trainierten Audioklassifizierer-Neuronalnetzwerks erzeugt werden.
-
Beispiel 13 beinhaltet den Gegenstand eines der Beispiele 8-12, wobei das Sprachentrauschung-Neuronalnetzwerk mehrere dilatierte Faltungsschichten und eine Faltungssyntheseschicht umfasst.
-
Beispiel 14 beinhaltet den Gegenstand eines der Beispiele 8-13, wobei die dilatierten Faltungsschichten ferner eine Adaptive-Normierung-und-LReLU(Leaky Rectified Linear Unit)-Aktivierungsfunktion-Schaltung umfassen, um Ausgaben von dilatierten Faltungsoperationen zu verarbeiten.
-
Beispiel 15 ist mindestens ein nichtflüchtiges computerlesbares Speicherungsmedium mit darauf codierten Anweisungen, die bei Ausführung durch einen oder mehrere Prozessoren bewirken, dass ein Prozess zur Sprachentrauschung ausgeführt wird, wobei der Prozess Folgendes umfasst: Anwenden eines Sprachentrauschung-Neuronalnetzwerks an einer rauschbehafteten Probe eines Trainingssprachsignals, um ein verarbeitetes Trainingssprachsignal zu erzeugen; Anwenden eines trainierten Audioklassifizierer-Neuronalnetzwerks an dem verarbeiteten Trainingssprachsignal, um einen ersten Satz von Aktivierungsmerkmalen zu erzeugen; Anwenden des trainierten Audioklassifizierer-Neuronalnetzwerks an einer klaren Probe des Trainingssprachsignals, um einen zweiten Satz von Aktivierungsmerkmalen zu erzeugen; Berechnen eines Verlustwerts basierend auf dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen; und Durchführen einer Rückpropagations-Trainingsaktualisierung des Sprachentrauschung-Neuronalnetzwerks basierend auf dem Verlustwert, um ein trainiertes Sprachentrauschung-Neuronalnetzwerk zu erzeugen.
-
Beispiel 16 beinhaltet den Gegenstand des Beispiels 15, ferner umfassend die Operation des Anwendens des trainierten Sprachentrauschung-Neuronalnetzwerks an einem rauschbehafteten operativen Sprachsignal, um ein entrauschtes Sprachsignal zu erzeugen.
-
Beispiel 17 beinhaltet den Gegenstand der Beispiele 15 oder 16, wobei die Verlustwertberechnung eine gewichtete geringste absolute Distanz (L1-Norm) zwischen dem ersten Satz von Aktivierungsmerkmalen und dem zweiten Satz von Aktivierungsmerkmalen ist.
-
Beispiel 18 beinhaltet den Gegenstand eines der Beispiele 15-17, wobei das trainierte Audioklassifizierer-Neuronalnetzwerk mehrere Faltungsschichten umfasst, wobei jede der Faltungsschichten Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen erzeugen soll.
-
Beispiel 19 beinhaltet den Gegenstand eines der Beispiele 15-18, wobei die Aktivierungsmerkmale des ersten Satzes von Aktivierungsmerkmalen und des zweiten Satzes von Aktivierungsmerkmalen aus Aktivierungsmerkmalen ausgewählt werden, die durch eine Teilmenge der flachsten Schicht des trainierten Audioklassifizierer-Neuronalnetzwerks erzeugt werden.
-
Beispiel 20 beinhaltet den Gegenstand eines der Beispiele 15-19, wobei das Sprachentrauschung-Neuronalnetzwerk mehrere dilatierte Faltungsschichten und eine Faltungssyntheseschicht umfasst, ferner umfassend die Operation des Anwendens einer adaptiven Normierung und einer LReLU(Leaky Rectified Linear Unit)-Aktivierungsfunktion an Ausgaben von Operationen in den dilatierten Faltungsschichten.
-
Die Begriffe und Ausdrücke, die hier eingesetzt wurden, werden als Begriffe der Beschreibung und nicht der Beschränkung verwendet und es besteht bei der Verwendung solcher Begriffe und Ausdrücke keinerlei Absicht, irgendwelche Äquivalente der gezeigten und beschriebenen Merkmale (oder Teile von diesen) auszuschließen, und es versteht sich, dass verschiedene Modifikationen innerhalb des Schutzumfangs der Ansprüche möglich sind. Folglich sollen die Ansprüche alle derartige Äquivalente abdecken. Diverse Merkmale, Aspekte und Ausführungsformen wurden hierin beschrieben. Wie ein Fachmann versteht, sind die Merkmale, Aspekte und Ausführungsformen für Kombinationen miteinander sowie für Variationen und Modifikationen empfänglich. Die vorliegende Offenbarung sollte daher als solche Kombinationen, Variationen und Modifikationen einschließend betrachtet werden. Es wird bezweckt, dass der Schutzbereich der vorliegenden Offenbarung nicht durch diese ausführliche Beschreibung, sondern vielmehr durch die hier anliegenden Ansprüche beschränkt ist. Zukünftige eingereichte Anmeldungen, die Priorität gegenüber dieser Anmeldung beanspruchen, können den offenbarten Gegenstand auf eine unterschiedliche Art und Weise beanspruchen und können allgemein einen beliebigen Satz eines oder mehrerer Elemente, wie vorliegend verschiedenartig offenbart oder anderweitig aufgezeigt, aufweisen.