-
TECHNISCHES GEBIET
-
Der Gegenstand dieses Dokuments bezieht sich im Allgemeinen auf neuronale Netze und andere Modelle, die bei Aufgaben der Sprecherverifikation verwendet werden.
-
HINTERGRUND
-
Sprecherverifikation bezieht sich im Allgemeinen auf das Verifizieren der Identität einer Person basierend auf den Eigenschaften der Stimme der Person. Einige Computergeräte erlauben einem Benutzer, sich im Gerät „anzumelden“, indem dem Gerät ein oder mehrere vom Benutzer gesprochene Sprachproben bereitgestellt werden, aus denen ein Sprechermodell bestimmt wird, das die Stimme des Benutzers repräsentiert. Nachfolgende Sprachproben, die von dem Gerät empfangen werden, können dann hinsichtlich des Sprechermodells verarbeitet und bewertet werden, um eine Benutzeridentität zu verifizieren.
-
KURZDARSTELLUNG DER OFFENBARUNG
-
Dieses Dokument beschreibt im Allgemeinen Systeme, Verfahren, Geräte und andere Techniken für das Training und die Nutzung neuronaler Netze oder anderer Arten von Modellen für die Sprecherverifikation. In einigen Implementierungen kann das neuronale Netz eine Komponente eines Sprecherverifikationsmodells sein, auf das von einem Computergerät, das die Sprecherverifikation ausführt, zugegriffen werden kann. Im Allgemeinen kann das neuronale Netz in Iterationen trainiert werden, die jeweils eine Sprecheranmeldung und -verifikation einer Äußerung simulieren. In jeder Trainingsiteration kann beispielsweise eine Sprecherrepräsentation, die von dem neuronalen Netz für eine gegebene Äußerung erzeugt wird, hinsichtlich eines Sprechermodells bewertet werden. Basierend auf einem Vergleich der Sprecherrepräsentation für eine simulierte Verifikationsäußerung mit einer Kombination (z. B. Durchschnitt) von Sprecherrepräsentationen für eine oder mehrere simulierte Anmeldungsäußerungen, können die Parameter des neuronalen Netzes aktualisiert werden, um die Fähigkeit des Sprecherverifikationsmodells zu optimieren, eine gegebene Äußerung als von derselben Person gesprochen oder von einer anderen Person als einer identifizierten Person gesprochen zu klassifizieren. Es versteht sich, dass dies Vorteile hinsichtlich einer zunehmenden Verlässlichkeit des Systems hat. Das neuronale Netz kann ferner konfiguriert sein, Daten zu verarbeiten, die eine vollständige Äußerung in einem einzelnen Durchlauf durch das neuronale Netz charakterisieren, statt Frames der Äußerung einzeln oder sequentiell zu verarbeiten. Diese und andere Implementierungen werden weiter unten ausführlicher beschrieben und in Figuren veranschaulicht.
-
Einige Implementierungen des hier beschriebenen Gegenstands beinhalten ein computerimplementiertes Verfahren. Das Verfahren kann beinhalten, in einem Computersystem mehrere unterschiedliche Untermengen von Trainingsdaten für das Training eines neuronalen Netzes auszuwählen. Jede Untermenge von Trainingsdaten kann eine Vielzahl von ersten Komponenten beinhalten, die entsprechende Äußerungen eines ersten Sprechers charakterisieren und eine zweite Komponente, die eine Äußerung des ersten Sprechers oder eines zweiten Sprechers charakterisieren. Für jede der ausgewählten Untermengen von Trainingsdaten kann das Verfahren Folgendes beinhalten: jede der ersten Komponenten in das neuronale Netz einzugeben, um eine entsprechende erste Sprecherrepräsentation zu erzeugen, die jeder der ersten Komponenten entspricht; die zweite Komponente in das neuronale Netz einzugeben, um eine zweite Sprecherrepräsentation zu erzeugen, die der zweiten Komponente entspricht; ein simuliertes Sprechermodell für den ersten Sprecher zu bestimmen, basierend auf einem Durchschnitt der entsprechenden ersten Sprecherrepräsentationen für die Vielzahl der ersten Komponenten; die zweite Sprecherrepräsentation mit dem simulierten Sprechermodell zu vergleichen, um die Äußerung zu klassifizieren, die durch die zweite Komponente als eine Äußerung des ersten Sprechers oder als eine Äußerung eines anderen Sprechers als dem ersten Sprecher charakterisiert ist; und das neuronale Netz anzupassen, basierend darauf, ob die Äußerung, die von der zweiten Komponente charakterisiert wird, korrekt als eine Äußerung des ersten Sprechers oder als eine Äußerung eines anderen Sprechers als dem ersten Sprecher klassifiziert wurde.
-
Diese und weitere Implementierungen können ein oder mehrere der folgenden Leistungsmerkmale beinhalten.
-
Als Reaktion darauf die zweite Komponente in das neuronale Netz einzugeben, kann die zweite Sprecherrepräsentation mit dem neuronalen Netz erzeugt werden, indem, in einem einzelnen Durchlauf durch das neuronale Netz, Daten für die Gesamtheit der Äußerung, die durch die zweite Komponente charakterisiert ist, verarbeitet werden.
-
Eine erste Untermenge von Trainingsdaten aus den mehreren verschiedenen Untermengen von Trainingsdaten auszuwählen, kann Folgendes beinhalten: eine erste Gruppe von Äußerungen auszuwählen, die dem ersten Sprecher entspricht, aus einer Vielzahl von Gruppen von Äußerungen, die zu verschiedenen Sprechern gehören, so dass jede Gruppe von Äußerungen aus Daten besteht, die nur Äußerungen des entsprechenden Sprechers für die entsprechende Gruppe von Äußerungen charakterisiert; eine zweite Gruppe von Äußerungen auszuwählen, die dem ersten Sprecher oder dem zweiten Sprecher der Vielzahl von Gruppen von Äußerungen entspricht; die Vielzahl von ersten Komponenten aus den Daten zu bestimmen, die Äußerungen in der ersten Gruppe von Äußerungen charakterisieren; und die zweite Komponente aus den Daten zu bestimmen, die Äußerungen in der zweiten Gruppe von Äußerungen charakterisieren.
-
Mindestens entweder die erste Gruppe von Äußerungen oder die zweite Gruppe von Äußerungen können beliebig aus der Vielzahl der Gruppen von Äußerungen ausgewählt werden.
-
Die ersten Sprecher können voneinander verschieden sein, in mindestens einigen der mehreren verschiedenen Untermengen von Trainingsdaten. Die zweiten Sprecher können voneinander verschieden sein, in mindestens einigen der mehreren verschiedenen Untermengen von Trainingsdaten.
-
Eine Gesamtzahl von ersten Komponenten in einer ersten Untermenge von Trainingsdaten in den mehreren verschiedenen Untermengen von Trainingsdaten kann anders sein als eine Gesamtzahl von ersten Komponenten in einer zweiten Untermenge von Trainingsdaten in den mehreren verschiedenen Untermengen von Trainingsdaten.
-
Die zweite Sprecherrepräsentation mit dem simulierten Sprechermodell zu vergleichen, um die Äußerung zu klassifizieren, die durch die zweite Komponente als eine Äußerung des ersten Sprechers oder als eine Äußerung eines anderen Sprechers als dem ersten Sprecher charakterisiert ist, kann beinhalten, einen Abstand zwischen Werten aus der zweiten Sprecherrepräsentation und Werten aus dem simulierten Sprechermodell zu bestimmen, und eine logistische Regressionsfunktion auf den Abstand anzuwenden.
-
Das neuronale Netz kann eine Vielzahl von verborgenen Schichten beinhalten. Das neuronale Netz hat möglicherweise keine Softmax-Ausgangsschicht.
-
Das neuronale Netz kann ein tiefes neuronales Netz beinhalten, mit einer lokal verbundenen verborgenen Schicht, gefolgt von einer Vielzahl von voll verbundenen verborgenen Schichten.
-
Die Äußerungen, die durch die Vielzahl von ersten Komponenten charakterisiert sind, und die Äußerungen, die durch die zweite Komponente charakterisiert sind, können alle eine feste Länge haben.
-
Das neuronale Netz kann ein Long-Short-Term-Memory rekurrentes neuronales Netz sein, das konfiguriert ist, um auf Daten trainiert zu werden, die Äußerungen mit variablen Längen charakterisieren.
-
Die Äußerungen, die durch die entsprechende Vielzahl von ersten Komponenten über die mehreren verschiedenen Untermengen von Trainingsdaten charakterisiert sind, und die Äußerungen, die durch die entsprechenden zweiten Komponenten über die mehreren verschiedenen Untermengen von Trainingsdaten charakterisiert sind, können alle Äußerungen ein und desselben Wortes oder Satzes sein.
-
Mindestens einige der Äußerungen, die durch die entsprechende Vielzahl von ersten Komponenten über die mehreren verschiedenen Untermengen von Trainingsdaten charakterisiert sind, und mindestens einige der Äußerungen, die durch die entsprechenden zweiten Komponenten über die mehreren verschiedenen Untermengen von Trainingsdaten charakterisiert sind, können Äußerungen mit verschiedenen Wörtern oder verschiedenen Sätzen sein.
-
Das trainierte neuronale Netz kann einem oder mehreren Computergeräten, die separat von dem Computersystem für die Nutzung bei der Sprecherverifikation auf dem einen oder den mehreren Computergeräten vorhanden sind, bereitgestellt werden.
-
Jede der ersten Sprecherrepräsentationen kann durch das neuronale Netz erzeugt werden, basierend auf der entsprechenden ersten Komponente, die in das neuronale Netz eingegeben wurde, das der ersten Sprecherrepräsentation entspricht. Die zweite Sprecherrepräsentation kann durch das neuronale Netz erzeugt werden, basierend auf der zweiten Komponente, die in das neuronale Netz eingegeben wurde, das der zweiten Sprecherrepräsentation entspricht.
-
Einige Implementierungen des hier beschriebenen Gegenstands können ein Computergerät beinhalten. Das Computergerät kann ein oder mehrere Computerprozessoren und ein oder mehrere computerlesbare Medien beinhalten, auf denen Anweisungen gespeichert sind, die bei Ausführung durch einen oder mehrere Prozessoren die Ausführung von Operationen veranlassen. Die Operationen können beinhalten, im Computergerät Daten zu empfangen, die eine Äußerung eines Benutzers des Computergeräts charakterisieren; im Computergerät eine Sprecherrepräsentation für die Äußerung zu erzeugen, unter Verwendung eines neuronalen Netzes auf dem Computergerät, wobei das neuronale Netz trainiert wurde, basierend auf einer Vielzahl von Trainingsmustern, die jeweils: (i) Daten beinhalten, die eine erste Äußerung charakterisieren und Daten, die eine oder mehrere zweite Äußerungen charakterisieren und (ii) als übereinstimmendes Muster oder ein nicht-übereinstimmendes Muster gekennzeichnet sind, abhängig davon, ob ein Sprecher der ersten Äußerung derselbe Sprecher ist wie ein Sprecher der einen oder mehreren zweiten Äußerungen; in dem Computergerät auf ein Sprechermodell für einen autorisierten Benutzer des Computergeräts zugreifen; und in dem Computergerät die Sprecherrepräsentation für die Äußerung hinsichtlich des Sprechermodells bewerten, um zu bestimmen, ob die Äußerung wahrscheinlich von dem autorisierten Benutzer des Computergeräts gesprochen wurde.
-
Jedes der Vielzahl von Trainingsmustern kann, durch Auswählen der ersten Äußerung und der einen oder mehreren zweiten Äußerungen von Gruppen von Äußerungen, die zu verschiedenen Sprechern gehören, erzeugt werden, so dass jede Gruppe von Äußerungen nur aus Äußerungen der entsprechenden Sprecher für die jeweilige Gruppe von Äußerungen besteht.
-
Die Operationen können ferner beinhalten, einen Satz von Äußerungen des autorisierten Benutzers des Computergeräts zu erhalten; jede Äußerung aus dem Satz von Äußerungen in das neuronale Netz einzugeben, um eine entsprechende Sprecherrepräsentation für die Äußerung zu erzeugen; und das Sprechermodell für den autorisierten Benutzer des Computergeräts zu erzeugen, basierend auf einem Durchschnitt der entsprechenden Sprecherrepräsentationen für die Äußerungen in dem Satz von Äußerungen des autorisierten Benutzers.
-
Keines der Vielzahl von Trainingsmustern, mit denen das neuronale Netz trainiert wurde, kann Daten beinhalten, die die Äußerung des Benutzers des Computergeräts charakterisieren.
-
Erzeugen der Sprecherrepräsentation für die Äußerung auf dem Computergerät kann das Verarbeiten von Daten beinhalten, die eine Gesamtheit der Äußerung mit dem neuronalen Netz in einem einzigen Durchlauf durch das neuronale Netz charakterisieren.
-
Das neuronale Netz kann ein rekurrentes neuronales Netz sein. Die Äußerung des Benutzers kann eine erste zeitliche Länge haben. Die Sprecherrepräsentation für die Äußerung kann beinhalten, Daten zu verarbeiten, die die Äußerung über eine Gesamtheit der ersten zeitlichen Länge der Äußerung charakterisieren. Die Operationen können ferner beinhalten, eine weitere Äußerung des Benutzers des Computergeräts zu empfangen, wobei die weitere Äußerung eine zweite zeitliche Länge hat, die sich von der ersten zeitlichen Länge unterscheidet; und eine zweite Sprecherrepräsentation für die weitere Äußerung des Benutzers zu erzeugen, durch das Verarbeiten von Daten, die die weitere Äußerung über eine Gesamtheit der zweiten zeitlichen Länge der weiteren Äußerung charakterisieren.
-
Die Operationen können ferner beinhalten, eine Funktion auf dem Computergerät auszuführen, als Reaktion auf das Bestimmen, dass die Äußerung des Benutzers wahrscheinlich von dem autorisierten Benutzer des Computergeräts gesprochen wurde. Die Funktion kann beinhalten, einen Zustand des Computergeräts von einem gesperrten Zustand zu einem entsperrten Zustand zu ändern, wobei das Computergerät konfiguriert ist, den Zugriff auf eine oder mehrere Fähigkeiten des Computergeräts im gesperrten Zustand zu blockieren, wobei das Computergerät konfiguriert ist, den Zugriff auf die eine oder die mehreren Fähigkeiten des Computergeräts im entsperrten Zustand zu erlauben.
-
Die Sprecherrepräsentation kann eine Ausgabe des neuronalen Netzes beinhalten, die Unterscheidungsmerkmale der Benutzerstimme anzeigt, die basierend auf der Äußerung bestimmt werden.
-
Einige Implementierungen des hier beschriebenen Gegenstands können ein computerimplementiertes Verfahren beinhalten. Das Verfahren kann beinhalten, in einem Computergerät Daten zu empfangen, die eine Äußerung eines Benutzers des Computergeräts charakterisieren. Eine Sprecherrepräsentation kann im Computergerät für die Äußerung unter Verwendung eines neuronalen Netzes auf dem Computergerät erzeugt werden. Das neuronale Netz kann trainiert werden, basierend auf einer Vielzahl von Trainingsmustern, die jeweils: (i) Daten beinhalten, die eine erste Äußerung charakterisieren, und Daten, die eine oder mehrere zweite Äußerungen charakterisieren, und (ii) als übereinstimmendes Muster oder ein nicht-übereinstimmendes Muster gekennzeichnet sind, abhängig davon, ob ein Sprecher der ersten Äußerung derselbe Sprecher ist wie ein Sprecher der einen oder mehreren zweiten Äußerungen. Es kann im Computergerät auf ein Sprechermodell für einen autorisierten Benutzer des Computergeräts zugegriffen werden. Die Sprecherrepräsentation für die Äußerung kann im Computergerät, hinsichtlich des Sprechermodells bewertet werden, um zu bestimmen, ob die Äußerung wahrscheinlich von dem autorisierten Benutzer des Computergeräts gesprochen wurde.
-
Einige Implementierungen des hier beschriebenen Gegenstands können ein computerimplementiertes Verfahren beinhalten. Das computerimplementierte Verfahren kann beinhalten, ein Sprechermodell für einen bestimmten Sprecher zu bestimmen, basierend auf den Ausgaben eines neuronalen Netzes für einen ersten Satz von Äußerungen, wobei der erste Satz mehrere verschiedene Äußerungen des bestimmten Sprechers beinhaltet; eine Sprecherrepräsentation zu bestimmen, basierend auf einer Ausgabe des neuronalen Netzes für eine bestimmte Äußerung, die nicht zum ersten Satz von Äußerungen gehört; die Sprecherrepräsentation mit dem Sprechermodell für den bestimmten Sprecher zu vergleichen, um die bestimmte Äußerung als eine Äußerung des bestimmten Sprechers oder als eine Äußerung eines anderen Sprechers als dem bestimmten Sprecher zu klassifizieren; und das neuronale Netz einzustellen, basierend darauf, ob die Klassifizierung der Äußerung als eine Äußerung des bestimmten Sprechers oder als eine Äußerung eines anderen Sprechers als dem bestimmten Sprecher korrekt war.
-
Diese und weitere Implementierungen können ein oder mehrere der folgenden Leistungsmerkmale beinhalten. Mehrere verschiedene Sätze von Äußerungen können als Trainingsdaten für das Training des neuronalen Netzes ausgewählt werden. Jeder Satz von Äußerungen kann (i) mehrere verschiedene erste Äußerungen eines ersten Sprechers für den entsprechenden Satz von Äußerungen und (ii) eine zweite Äußerung von entweder dem ersten Sprecher für den entsprechenden Satz von Äußerungen oder einem zweiten Sprecher für den entsprechenden Satz von Äußerungen, die nicht von dem ersten Sprecher stammen, beinhalten. Die mehreren verschiedenen Sätze von Äußerungen können verwendet werden, um iterativ das neuronale Netz zu trainieren. Jeder Satz von Äußerungen aus den mehreren verschiedenen Sätzen von Äußerungen kann in einer unterschiedlichen Trainingsiteration für das Training des neuronalen Netzes verwendet werden. Der erste Satz von Äußerungen kann aus den mehreren verschiedenen Sätzen von Äußerungen ausgewählt werden, wobei der bestimmte Sprecher der erste Sprecher für den ersten Satz von Äußerungen ist.
-
Weitere Implementierungen des hier beschriebenen Gegenstands können entsprechende Systeme, Vorrichtungen und Computerprogramme beinhalten, die konfiguriert sind, um die Aktionen der Verfahren, die auf Computerspeichergeräten codiert sind, durchzuführen. Ein System von einem oder mehreren Computern kann aufgrund von Software, Firmware, Hardware oder einer Kombination von ihnen, die auf dem System installiert sind, so konfiguriert sein, dass es im Betrieb das System veranlasst, die Aktionen auszuführen. Ein oder mehrere Computerprogramme können aufgrund des Vorhandenseins von Anweisungen, so konfiguriert sein, dass diese, wenn sie von einer oder mehreren Datenverarbeitungsvorrichtungen ausgeführt werden, die Vorrichtungen dazu veranlassen, die Aktionen auszuführen.
-
Einige Implementierungen des hier beschriebenen Gegenstands können keinen, einen oder mehrere der folgenden Vorteile realisieren. Ein neuronales Netz kann trainiert werden, um Sprecherrepräsentationen für die Nutzung in einem Sprecherverifikationsmodell zu erzeugen, das in der Lage ist, eine Sprecheridentität, basierend auf den Eigenschaften der Benutzerstimme, genauer zu verifizieren. Zielleistungsstufen können mit einem kompakten neuronalen Netz erreicht werden, das auf einem mobilen Computergerät mit begrenzten Computerressourcen gespeichert und verwendet werden kann. Zusätzlich kann das neuronale Netz in einer Weise trainiert werden, die die Verifikations- und Identifikationsphase eines Sprecherverifikationsprozesses simuliert. Als solches kann das neuronale Netz eine bessere Leistung, aufgrund der Symmetrie zwischen der Trainingsphase und der Verifikations- und Identifikationsphase des Sprecherverifikationsprozesses, erreichen. Ein Vorteil des Trainings eines neuronalen Netzes, gemäß den hier beschriebenen Ansätzen, im Gegensatz zu anderen Ansätzen, die ein Training eines neuronalen Netzes beinhalten, um Eingaben aus einer Anzahl von vorausgewählten Sprechern als zu einem bestimmten Sprecher gehörend zu klassifizieren, ist, dass eine größere Anzahl und Vielfalt von Sprechern genutzt werden kann, um das Netzwerk zu trainieren. Zusätzlich kann es eine Mindestanzahl von Trainingsäußerungen geben, die für jeden Trainingssprecher erforderlich sind, um ein verlässliches Training sicherzustellen. Darüber hinaus kann das neuronale Netz konfiguriert sein, um Daten zu verarbeiten, die vollständige Äußerungen in einem einzelnen Durchlauf durch das neuronale Netz charakterisieren, ohne eine Notwendigkeit Frames der Äußerung durch das neuronale Netz in individuellen Durchläufen zu verarbeiten. Die Aspekte, auf die oben Bezug genommen wird, können dazu beitragen zu bewerten, ob eine Äußerung wahrscheinlich von einem autorisierten Benutzer eines Computergeräts gesprochen wurde. Die Aspekte können solche Bewertungen besonders zuverlässig machen. Dies kann zu einem effektiveren Spracherkennungssystem führen, zumindest durch das Reduzieren von Fehlern bei der Bewertung, ob eine Äußerung von einer bestimmten Person, wie dem autorisierten Benutzer eines Computergeräts, gesprochen wurde. Die hohe Zuverlässigkeit kann die Sicherheit eines breiteren Systems erhöhen, das mit den Aspekten, auf die oben Bezug genommen wurde, verbunden ist. Wo beispielsweise die Aspekte verwendet werden, um einen autorisierten Benutzer zu erkennen und als Reaktion einen Zustand eines Computergeräts von einem gesperrten Zustand in einen entsperrten Zustand zu ändern, macht die Reduzierung der Fehler, auf die oben Bezug genommen wird, das Entsperren des Computergeräts sicherer. Tatsächlich kann die hohe Zuverlässigkeit des Systems ein Computergerät weniger anfällig für einen betrügerischen Entsperrungsversuch durch einen nicht-autorisierten Benutzer machen. Die Reduzierung der Fehler kann auch die Notwendigkeit einer Fehlerkorrektur verringern, die wiederum die Notwendigkeit reduziert, Computerressourcen für die Fehlerkorrektur einsetzen zu müssen. Dies kann besonders bei mobilen Computergeräten vorteilhaft sein, bei denen die Computerressourcen begrenzter sein können.
-
Figurenliste
-
- 1 veranschaulicht ein schematisches Diagramm eines beispielhaften Client-Geräts und Computersystems, das Operationen ausführt, um (i) ein neuronales Netz zu trainieren, (ii) einen Benutzer in einem Computergerät zu identifizieren und (iii) eine Äußerung eines Benutzers des Computergeräts, basierend auf Unterscheidungsmerkmalen der Benutzerstimme, zu verifizieren.
- 2 veranschaulicht ein Blockdiagramm eines beispielhaften Systems für das Training eines neuronalen Netzes, um die Sprecherrepräsentationen für die Nutzung von Aufgaben der Sprecherverifikation zu bestimmen.
- 3 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses für das Training eines neuronalen Netzes, um die Sprecherrepräsentationen, die Unterscheidungsmerkmale der Stimmen anzeigen, zu bestimmen.
- 4A ist ein konzeptionelles Diagramm, das eine beispielhafte Auswahl einer Untermenge von Trainingsäußerungen aus Gruppen von Äußerungen für verschiedene Sprecher innerhalb eines Äußerungs-Pools veranschaulicht.
- 4B ist ein konzeptionelles Diagramm, das eine beispielhafte Auswahl eines Stapels von Trainingsdaten aus Äußerungs-Pools zum Trainieren eines neuronalen Netzes veranschaulicht.
- 5A veranschaulicht ein Blockdiagramm eines beispielhaften tiefen neuronalen Netzes, konfiguriert, um Daten zu verarbeiten, die mindestens einen Teil einer Äußerung charakterisieren, und eine Sprecherrepräsentation zu erzeugen, basierend auf den Daten, die mindestens den Teil der Äußerung charakterisieren.
- 5B veranschaulicht ein Blockdiagramm eines beispielhaften rekurrenten neuronalen Netzes mit einer Long-Short-Term-Memory-Schicht, die konfiguriert ist, um sie in einem Sprecherverifikationsmodell zu verwenden.
- 6 veranschaulicht ein Flussdiagramm eines beispielhaften Prozesses für die Nutzung eines neuronalen Netzes auf einem Computergerät, um die Identität eines Benutzers, basierend auf Eigenschaften der Benutzerstimme, die von einer Äußerung des Benutzers bestimmt wird, zu verifizieren.
- 7 veranschaulicht ein Beispiel eines Computergeräts und eines mobilen Computergeräts, die verwendet werden klönnen, um die computerimplementierten Verfahren und andere hier beschriebene Techniken auszuführen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 ist ein schematisches Diagramm eines beispielhaften Systems 100 für das Training eines neuronalen Netzes für ein Sprecherverifikationsmodell und für die Ausführung eines Prozesses der Sprecherverifikation unter Verwendung des Modells. Im Allgemeinen ist die Sprecherverifikation die Aufgabe, die Identitätsbehauptung eines Sprechers, basierend auf Eigenschaften der Stimme des Sprechers, wie sie aus einer oder mehreren Äußerungen des Sprechers bestimmt wurden, zu akzeptieren oder abzulehnen. Wie in 1 veranschaulicht, kann die Sprecherverifikation im Allgemeinen drei Phasen einschließen, nämlich (i) Training eines neuronalen Netzes für das Sprecherverifikationsmodell, (ii) Anmeldung eines neuen Sprechers und (iii) Verifikation des identifizierten Sprechers.
-
Das System 100 schließt ein Client-Gerät 110, ein Computersystem 120 und ein Netzwerk 130 ein. In einigen Implementierungen kann das Computersystem 120 dem Client-Gerät 110 ein Sprecherverifikationsmodell 144 basierend auf einem trainierten neuronalen Netz 140 bereitstellen. In einigen Implementierungen kann das Sprecherverifikationsmodell 144 auf dem Client-Gerät 110 vorinstalliert sein, beispielsweise als Komponente eines Betriebssystems oder einer Anwendung. In weiteren Implementierungen kann das Sprecherverifikationsmodell 144 über das Netzwerk 130 empfangen werden. Das Client-Gerät 110 kann das Sprecherverifikationsmodell 144 nutzen, um den Benutzer 102 für den Sprecherverifikationsprozess anzumelden. Wenn die Benutzeridentität 102 zu einem späteren Zeitpunkt verifiziert werden muss, kann das Client-Gerät 110 eine Sprachäußerung des Benutzers 102 empfangen, um die Benutzeridentität 102 unter Verwendung des Sprecherverifikationsmodells 144 zu verifizieren. Da das Sprecherverifikationsmodell 144 lokal im Client-Gerät 110 gespeichert werden kann, kann das Client-Gerät 110 in der Lage sein, eine Sprecherverifikationsentscheidung ohne Kommunikation über das Netzwerk 130 zu treffen.
-
Obwohl in 1 nicht dargestellt, kann in einigen Implementierungen das Computersystem 120 das Sprecherverifikationsmodell 144 basierend auf dem trainierten neuronalen Netz 140 speichern, anstatt oder zusätzlich zu dem neuronalen Netz 140, das auf dem Client-Gerät 110 gespeichert ist. In diesen Implementierungen kann das Client-Gerät 110 mit dem Computersystem 120 über das Netzwerk 130 kommunizieren, um über Fernzugriff auf das Sprecherverifikationsmodell 144 zur Anmeldung des Benutzers 102 zuzugreifen und es zu nutzen. Wenn die Benutzeridentität 102 zu einem späteren Zeitpunkt verifiziert werden muss, kann das Client-Gerät 110 eine Sprachäußerung des Benutzers 102 empfangen und kann mit dem Computersystem 120 über das Netzwerk 130 kommunizieren, um die Benutzeridentität 102 unter Verwendung des Sprecherverifikationsmodells 144 zu verifizieren. Das Computersystem 120 und das Computergerät 110 können sich unterscheiden und physisch voneinander getrennt sein.
-
In dem System 100 kann das Client-Gerät 110 beispielsweise ein Desktop-Computer, Laptop-Computer, ein Tablet-Computer, eine Uhr, ein tragbarer Computer, ein Mobiltelefon, ein Smartphone, ein Musik-Wiedergabegerät, ein E-Book-Reader, ein Navigationssystem oder jedes andere geeignete Computergerät sein, mit dem ein Benutzer interagieren kann. In einigen Implementierungen kann das Client-Gerät 110 ein mobiles Computergerät sein. Das Computersystem 120 kann einen oder mehrere Computer beinhalten und kann Funktionen auf einzelnen der Computer ausführen oder die Funktionen können aus Leistungsgründen auf mehrere Computer verteilt sein. Das Netzwerk 130 kann drahtgebunden oder drahtlos oder eine Kombination aus beidem sein und kann das Internet beinhalten.
-
In einigen Implementierungen kann ein Client-Gerät 110, wie ein Telefon eines Benutzers, ein Sprecherverifikationsmodell 144 lokal auf dem Client-Gerät 110 speichern, was es dem Client-Gerät 110 erlaubt, eine Benutzeridentität zu verifizieren, ohne sich auf ein Modell auf einem Remote-Server (z. B. das Computersystem 120) entweder für den Anmeldungs- oder den Verifikationsprozess verlassen zu müssen und dadurch Kommunikationsbandbreite und Zeit einzusparen. Darüber hinaus erfordert in einigen Implementierungen, wenn ein oder mehrere neue Benutzer angemeldet werden, das hier beschriebene Sprecherverifikationsmodell 144 kein neues Training des Sprecherverifikationsmodells 144 unter Verwendung der neuen Benutzer, was ebenfalls rechnerbezogen effizient sein kann. In anderen Implementierungen können Äußerungen eines gegebenen Benutzers, die für die Anmeldung, Verifikation oder beides bereitgestellt werden, dem Computersystem 120 bereitgestellt werden und zu den Trainingsdaten hinzugefügt werden, so dass das neuronale Netz (und damit das Sprecherverifikationsmodell) regelmäßig, basierend auf der Nutzung neu erfasster Trainingsdaten, aktualisiert werden kann.
-
Es ist wünschenswert, dass die Größe des Sprecherverifikationsmodells 144, einschließlich des trainierten neuronalen Netzes 140, kompakt ist, da die Speicherung und der Speicherplatz auf dem Client-Gerät 110 begrenzt sein kann. Wie unten beschrieben, basiert das Sprecherverifikationsmodell 144 auf einem trainierten neuronalen Netz 140. Das Sprecherverifikationsmodell 144 kann beinhalten, dass das neuronale Netz 140, basierend auf Daten, die eine Äußerung charakterisieren, eine Sprecherrepräsentation erzeugt, die Unterscheidungsmerkmale der Stimme eines Sprechers der Äußerung anzeigt. Das Sprecherverifikationsmodell 144 kann ferner weitere Komponenten beinhalten, um die Sprecherrepräsentation zu verarbeiten und zu bestimmen, ob die Stimme des Sprechers der Äußerung ausreichende Ähnlichkeit zu der Stimme eines angemeldeten Benutzers aufweist, so dass eine Identitätsbehauptung des Sprechers der Äußerung verifiziert werden kann.
-
In einigen Implementierungen kann das neuronale Netz unter Verwendung eines großen Satzes von Trainingsdaten trainiert werden. Verschiedene Techniken können während der Vorverarbeitung der Trainingsdaten, während des Trainings selbst oder während einer Phase nach dem Training angewendet werden, um eine bestimmte Größe des neuronalen Netzes durchzusetzen und/oder zu reduzieren, um eine kompakte Modellgröße zu erreichen. Das Sprecherverifikationsmodell 144 kann beispielsweise durch Auswahl nur bestimmter Schichten des neuronalen Netzes 140 aufgebaut sein, was zu einem kompakten Sprecherverifikationsmodell führen kann, das für die Speicherung auf dem Client-Gerät 110 geeignet ist. Anmeldung kann ohne Softmax oder andere Klassifizierungsschichten ausgeführt werden, um die Sprecherrepräsentationen für das Sprechermodell erzeugt werden.
-
1 veranschaulicht auch einen beispielhaften Datenstrom, der in den Phasen (A) bis (F) dargestellt ist. Die Phasen (A) bis (F) können in der dargestellten Sequenz oder in einer geeigneten Sequenz auftreten, die sich von der dargestellten Sequenz unterscheidet. In einigen Implementierungen können eine oder mehrere Phasen (A) bis (F) offline auftreten, wobei das Computersystem 120 Berechnungen ausführen kann, wenn das Client-Gerät 110 nicht mit dem Netzwerk 130 verbunden ist. Phasen (A) und (B) treten im Allgemeinen während der Trainingsphase auf, auf die oben Bezug genommen wurde. Phase (D) tritt im Allgemeinen während der Anmeldungsphase auf. Phasen (E)-(G) treten im Allgemeinen während der Verifikationsphase auf.
-
In Phase (A) wählt das Computersystem 120 Muster von Trainingsäußerungen aus, die dem neuronalen Netz 140 für überwachtes Training des neuronalen Netzes 140 bereitgestellt werden. In einigen Implementierungen können die Äußerungen in den Trainingsmustern 122 jeweils aus einem oder mehreren vorbestimmten Wörtern, die von vielen verschiedenen Trainingssprechern gesprochen werden, bestehen, wobei die Äußerungen vorher aufgezeichnet und dem Computersystem 120 zur Nutzung zugänglich gemacht werden. Jeder Trainingssprecher kann eine vorbestimmte Äußerung in ein Computergerät sprechen und das Computergerät kann ein Audiosignal aufzeichnen, das die Äußerung beinhaltet. Jeder Trainingssprecher kann beispielsweise aufgefordert werden, den Trainingssatz „Hallo Telefon“ zu sprechen. In einigen Implementierungen kann jeder Trainingssprecher aufgefordert werden, denselben Trainingssatz mehrere Male zu sprechen. Das aufgezeichnete Audiosignal jedes Trainingssprechers kann an das Computersystem 120 übertragen werden, und das Computersystem 120 kann die aufgezeichneten Audiosignale von vielen verschiedenen Computergeräten und vielen verschiedenen Trainingssprechern sammeln. In einigen Implementierungen kann das neuronale Netz 140 für textabhängige Sprecherverifikation optimiert werden, in der eine Benutzeridentität verifiziert werden kann, basierend auf Eigenschaften der Benutzerstimme, die aus einer Äußerung der vordefinierten Trainingsphrase bestimmt wird. In einigen Implementierungen kann das neuronale Netz 140 auf Äußerungen trainiert werden, die alle oder im Wesentlichen alle die vordefinierte Trainingsphrase beinhalten. In weiteren Implementierungen kann das neuronale Netz 140 trainiert werden, um textunabhängige Sprecherverifikation zu erlauben, in der eine Benutzeridentität verifiziert werden kann, basierend auf Eigenschaften der Benutzerstimme, die aus einer Äußerung einer großen Vielfalt von Wörtern oder Sätzen bestimmt wird, die nicht vordefiniert sein müssen. Ein Benutzer könnte beispielsweise unabhängig entscheiden, welche Wörter oder Sätze, die er oder sie sprechen möchte, um seine oder ihre Identität zu verifizieren, und das Sprecherverifikationsmodell basierend auf dem trainierten neuronalen Netz 140 könnte dann den Benutzer, dem die gesprochenen Wörter oder Sätze zugeschrieben werden, authentifizieren. Um eine textunabhängige Sprecherverifikation zu erlauben, kann das neuronale Netz 140 auf Äußerungen einer großen Vielfalt von Wörtern oder Sätzen, die von vielen verschiedenen Trainingssprechern gesprochen werden, trainiert werden.
-
In Phase (B) kann das neuronale Netz 140 in einer Weise trainiert werden, dass die Anmeldung und die Verifikation der Benutzer an einem Client-Gerät parallel läuft. Dementsprechend kann das Computersystem 120 in jedem Trainingsmuster 122 einen Satz simulierter Anmeldungsäußerungen 122b und eine simulierte Verifikationsäußerung 122a auswählen. Die simulierten Anmeldungsäußerungen 122b können alle Äußerungen desselben Trainingssprechers sein, so dass ein simuliertes Sprechermodell für jedes Trainingsmuster 122 bestimmt werden kann. Die simulierte Verifikationsäußerung 122a kann eine Äußerung desselben Sprechers sein, wie dem Sprecher der simulierten Anmeldungsäußerungen 122b, oder kann eine Äußerung eines anderen Sprechers sein. Die Trainingsmuster 122 können dann dem neuronalen Netz 140 bereitgestellt werden, und eine Klassifizierung kann basierend auf Ausgaben des neuronalen Netzes 140 gemacht werden, ob die simulierte Verifikationsäußerung 122a von demselben Sprecher wie dem Sprecher der simulierten Anmeldungsäußerungen 122b gesprochen wurde oder von einem anderen Sprecher als dem Sprecher der simulierten Anmeldungsäußerungen 122b. Das neuronale Netz 140 kann dann basierend darauf, ob die Sprecherbestimmung korrekt war, aktualisiert werden. In einigen Implementierungen kann jedes Trainingsmuster 122 als zu einer von zwei Klassen gehörig gekennzeichnet sein: eine Klasse übereinstimmender Sprecher 141a (für Muster, bei denen die Sprecher der simulierten Verifikations- und Anmeldungsäußerungen gleich sind) und eine Klasse nicht-übereinstimmender Sprecher 141b (für Muster, bei denen die Sprecher der simulierten Verifikations- und Anmeldungsäußerungen unterschiedlich sind). Diese Kennzeichnungen zeigen die Grundwahrheit, ob derselbe Sprecher die Äußerungen 122a und die Äußerungen 122b gesprochen hat. Die Korrektheit der Klassifizierung eines Trainingsmusters 122 kann basierend auf der Kennzeichnung des Musters bestimmt werden. In einigen Implementierungen könnten die Einstellungen an dem neuronalen Netz nicht streng auf der Korrektheit einer Klassifizierung eines Eingabemusters basieren, sondern könnten im Allgemeinen auf einer oder mehreren Metriken basieren, die aus einem Vergleich der Sprecherrepräsentationen bestimmt werden, die von dem neuronalen Netz für die simulierte Verifikationsäußerung 122a und die simulierten Anmeldungsäußerungen 122b erzeugt werden. In einigen Implementierungen können die Trainingsmuster 122 aus einem Repertoire von Trainingsdaten ausgewählt sein, die in Äußerungs-Pools 121 organisiert sein können. Jeder der Äußerungs-Pools 121 kann Trainingsäußerungen beinhalten, die von dem Trainingssprecher der Äußerungen gruppiert werden.
-
Das neuronale Netz 140 kann eine Eingabeschicht beinhalten, um Informationen zu den Äußerungen in den Trainingsmustern 122 und zu verschiedenen verborgenen Schichten für die Verarbeitung der Muster 122 einzugeben. Die Gewichtungen oder sonstige Parameter von einer oder mehreren verborgenen Schichten können eingestellt werden, so dass das trainierte neuronale Netz 140 eine Ausgabe erzeugt, die das Sprecherverifikationsmodell 144 veranlasst, die gewünschte Klassifizierung der Trainingsmuster 122 zu erzeugen, die entweder übereinstimmende oder nicht-übereinstimmende Sprecher unter den simulierten Verifikations- und Anmeldungsäußerungen der Muster 122 aufweist. In einigen Implementierungen können die Parameter des neuronalen Netzes 140 automatisch durch das Computersystem 120 eingestellt werden. In einigen Implementierungen können die Parameter des neuronalen Netzes 140 manuell durch einen Bediener des Computersystems 120 eingestellt werden. Die Trainingsphase eines neuronalen Netzes ist beispielsweise unten in den Beschreibungen von 2, 3, 4A-B und 5AB ausführlicher beschrieben.
-
In Phase (C) wird, sobald das neuronale Netz 140 trainiert ist, ein Sprecherverifikationsmodell 144 basierend auf dem trainierten neuronalen Netz 140 von dem Computersystem 120 an das Client-Gerät 110, beispielsweise über das Netzwerk 130, übertragen. In einigen Implementierungen kann das trainierte neuronale Netz 140 oder ein Teil davon eine Komponente des Sprecherverifikationsmodells 144 sein. Das Sprecherverifikationsmodell 144 kann konfiguriert sein, um eine Benutzeridentität 102 basierend auf den Eigenschaften der Benutzerstimme, die aus einer oder mehreren Äußerungen des Benutzers 102 bestimmt wurde, zu verifizieren. Das Modell 144 kann konfiguriert sein, um Daten bereitzustellen, die eine Äußerung des Benutzers 102 als Eingabe in das trainierte neuronale Netz 140 charakterisieren, um eine Sprecherrepräsentation für den Benutzer 102 zu erzeugen, die Unterscheidungsmerkmale der Benutzerstimme anzeigt. Die Sprecherrepräsentation kann dann mit einem Modell der Benutzerstimme verglichen werden, das zuvor bestimmt wurde. Wenn die Sprecherrepräsentation dem Sprechermodell des Benutzers ausreichend ähnlich ist, kann das Sprecherverifikationsmodell 144 einen Hinweis ausgeben, dass die Benutzeridentität 102 gültig ist. Wenn dagegen die Sprecherrepräsentation dem Sprechermodell des Benutzers nicht ausreichend ähnlich ist, kann das Sprecherverifikationsmodell 144 einen Hinweis ausgeben, dass die Benutzeridentität 102 ungültig (nicht verifiziert) ist.
-
In Phase (D) stellt ein Benutzer 102, der seine oder ihre Stimme im Client-Gerät 110 anmelden möchte, dem Client-Gerät 110 in der Anmeldungsphase eine oder mehrere Anmeldungsäußerungen 152 bereit. Im Allgemeinen ist der Benutzer 102 nicht einer der Trainingssprecher, deren Stimmen für das Training des neuronalen Netzes 140 verwendet wurden. In einigen Implementierungen kann das Client-Gerät 110 den Benutzer 102 auffordern, einen Anmeldungssatz zu sprechen, der dem Satz entspricht, der von der Gruppe von Trainingssprechern in den Äußerungen der Trainingsmuster 122 gesprochen wurde. In einigen Implementierungen kann das Client-Gerät 110 den Benutzer auffordern mehrere Male den Anmeldungssatz zu sprechen und kann die Audiosignale für die gesprochenen Anmeldungsäußerungen als Anmeldungsäußerungen 152 aufzeichnen.
-
Das Client-Gerät 110 nutzt die Anmeldungsäußerungen 152, um den Benutzer 102 in einem Sprecherverifikationssystem des Client-Geräts 110 anzumelden. Im Allgemeinen wird die Anmeldung des Benutzers 102 ohne erneutes Training des neuronalen Netzes 140 ausgeführt. Entsprechende Instanzen desselben Sprecherverifikationsmodells 144 können in vielen verschiedenen Client-Geräten und für die Anmeldung vieler verschiedener Sprecher verwendet werden, ohne dass Änderungen an den Gewichtungswerten oder anderen Parametern im neuronalen Netz 140 erforderlich sind. Da das Sprecherverifikationsmodell 144 verwendet werden kann, um Benutzer anzumelden, ohne das neuronale Netz 140 erneut trainieren zu müssen, kann die Anmeldung an dem Client-Gerät 110 mit begrenzten Verarbeitungsanforderungen ausgeführt werden.
-
In einigen Implementierungen werden Informationen zu den Anmeldungsäußerungen 152 in das Sprecherverifikationsmodell 144 eingegeben und das Sprecherverifikationsmodell 144 kann einen Referenzvektor oder eine andere Wertemenge ausgeben, die dem Benutzer 102 entspricht. Der Referenzvektor oder eine andere Wertemenge können ein Sprechermodell darstellen, das Unterscheidungsmerkmale der Benutzerstimme charakterisiert. Das Sprechermodell kann im Client-Gerät 110 oder in einem Computersystem gespeichert werden, das von dem Client-Gerät 110 entfernt ist, so dass die erzeugten Sprecherrepräsentationen, basierend auf den später von dem Client-Gerät 110 empfangenen Äußerungen, mit dem Sprechermodell verglichen werden können, um zu verifizieren, ob der entsprechende Sprecher der später empfangenen Äußerungen der Benutzer 102 oder ein anderer Sprecher ist.
-
In Phase (E) versucht der Benutzer 102 Zugriff auf das Client-Gerät 110 unter Einsatz der Spracherkennung zu erhalten. Der Benutzer 102 stellt dem Client-Gerät 110 in der Verifikationsphase eine Verifikationsäußerung 154 bereit. In einigen Implementierungen ist die Verifikationsäußerung 154 eine Äußerung desselben Satzes, der als Anmeldungsäußerung 152 gesprochen wurde. Die Verifikationsäußerung 154 wird als Eingabe in das Sprecherverifikationsmodell 144 verwendet.
-
In Phase (F) bestimmt das Client-Gerät 110, ob die Benutzerstimme mit der Stimme des angemeldeten Benutzers übereinstimmt. In einigen Implementierungen kann das neuronale Netz 140 Daten verarbeiten, die die Verifikationsäußerung 154 charakterisieren, und kann eine Sprecherrepräsentation für den Benutzer 102 basierend auf der Verifikationsäußerung 154 ausgeben. In einigen Implementierungen kann das Client-Gerät 110 die Sprecherrepräsentation für den Benutzer 102 mit dem Sprechermodell für den angemeldeten Benutzer vergleichen, um zu bestimmen, ob die Verifikationsäußerung 154 von dem angemeldeten Benutzer gesprochen wurde. Die Verifikationsphase eines neuronalen Netzes ist beispielsweise unten in der Beschreibung von 6 ausführlicher beschrieben.
-
In Phase (G) stellt das Client-Gerät 110 einen Hinweis bereit, der dem Benutzer 102 ein Verifikationsergebnis 156 liefert. In einigen Implementierungen kann, wenn das Client-Gerät 110 die Identität des Benutzers 102 akzeptiert hat, das Client-Gerät 110 dem Benutzer 102 einen visuellen oder auditiven Hinweis schicken, dass die Verifikation erfolgreich ist. In einigen Implementierungen kann, wenn das Client-Gerät 110 die Identität des Benutzers 102 akzeptiert hat, das Client-Gerät 110 den Benutzer 102 zu einer nächsten Eingabe auffordern. Das Client-Gerät 110 kann beispielsweise eine Nachricht „Gerät aktiviert ausgeben. Bitte geben Sie Ihre Suchanfrage“ auf dem Display ein. In einigen weiteren Implementierungen kann, wenn das Client-Gerät 110 die Identität des Benutzers 102 akzeptiert hat, das Client-Gerät 110 eine nachfolgende Aktion ausführen, ohne auf weitere Eingaben des Benutzers 102 warten zu müssen. Der Benutzer 102 kann beispielsweise während der Verifikationsphase „Hallo Telefon, suche das nächste Cafe“ in das Client-Gerät 110 sprechen. Das Client-Gerät 110 kann die Identität des Benutzers 102 unter Verwendung des Verifikationssatzes „Hallo Telefon“ verifizieren. Wenn die Identität des Benutzers 102 akzeptiert wird, kann das Client-Gerät 110 die Suche nach dem nächsten Cafe ausführen, ohne den Benutzer 102 um weitere Eingaben zu bitten. Im Allgemeinen kann in einigen Implementierungen, wenn das Client-Gerät 110 die Identität des Benutzers 102 akzeptiert hat, das Client-Gerät 110 reagieren, indem es von einem gesperrten Zustand, in dem eine oder mehrere Fähigkeiten des Client-Geräts 110 deaktiviert oder blockiert sind, in einen entsperrten Zustand, in dem die Fähigkeiten aktiviert oder auf andere Weise dem Benutzer 102 verfügbar gemacht werden, übergeht. In ähnlicher Weise kann das Client-Gerät 110 „aufwachen“ oder von einem Zustand mit niedrigem Stromverbrauch in einen voll funktionsfähigen Zustand, als Reaktion auf eine erfolgreiche Verifikation, übergehen.
-
In einigen Implementierungen kann, wenn das Client-Gerät 110 die Identität des Benutzers 102 abgelehnt hat, das Client-Gerät 110 dem Benutzer 102 einen visuellen oder auditiven Hinweis schicken, dass die Verifikation abgelehnt wurde. In einigen Implementierungen kann, wenn das Client-Gerät 110 die Identität des Benutzers 102 abgelehnt hat, das Client-Gerät 110 den Benutzer 102 auffordern, einen weiteren Versuch einer Äußerung vorzunehmen. In einigen Implementierungen kann, wenn die Anzahl der Versuche einen Grenzwert überschreitet, das Client-Gerät 110 den Benutzer 102 für weitere Versuche, seine oder ihre Identität zu verifizieren, blockieren.
-
In 2 ist ein Blockdiagramm eines beispielhaften Systems 200 für das Training eines neuronalen Netzes 206 dargestellt. Nach Beendigung der in 2 dargestellten Trainingsphase kann das trainierte neuronale Netz 206 in der Lage sein, Daten zu verarbeiten, die eine Äußerung eines Sprechers charakterisieren, und eine Sprecherrepräsentation für den Sprecher erzeugen, die Unterscheidungsmerkmale der Stimme des Sprechers anzeigt. Die Sprecherrepräsentation kann dann von einem Sprecherverifikationsmodell verwendet werden, entweder um ein Sprechermodell für den Sprecher während der Anmeldungsphase zu erzeugen oder um eine Identität des Sprechers während der Verifikationsphase zu verifizieren.
-
Im Allgemeinen veranschaulicht 2, dass das neuronale Netz 206 in einer Weise trainiert werden kann, dass die Anmeldungs- und Verifikationsphasen parallel verlaufen, die später in den Client-Geräten, die eine Aufgabe einer Sprecherverifikation ausführen, auftreten. Anders als bei einigen Ansätzen, die das neuronale Netz 206 trainieren, um Trainingsäußerungen aus einer endlichen Anzahl von Sprechern in entsprechende Klassen für jeden der Sprecher einzuteilen, wird das neuronale Netz 206 in 2 nicht trainiert, um den jeweiligen Sprecher einer gegebenen Äußerung zu bestimmen. Stattdessen wird das neuronale Netz 206 trainiert, um Sprecherrepräsentationen zu erzeugen, die charakteristisch und nutzbar sind, um zu bestimmen, ob der Sprecher einer gegebenen Äußerung derselbe Sprecher ist wie der Sprecher eines anderen Satzes von Äußerungen, ohne notwendigerweise den Äußerungen zu einer spezifischen Sprecheridentität zu entsprechen. Auf diese Weise ist die während des Trainings optimierte Verlustfunktion dieselbe Funktion, die von dem Sprecherverifikationsmodell während der Verifikationsphase verwendet wird. In anderen Worten, es wird während der Verifikation eine Sprecherrepräsentation, basierend auf einer Verifikationsäußerung, mit einem Sprechermodell für einen angemeldeten Benutzer verglichen. Wenn die Sprecherrepräsentation dem Sprechermodell ausreichend ähnelt, wird die Identität des Sprechers der Verifikationsäußerung verifiziert. Der in 2 veranschaulichte Ansatz verwendet während des Trainings ähnliche Techniken. Und zwar wird ein simuliertes Sprechermodell 214, basierend auf Sprecherrepräsentationen für eine oder mehrere Anmeldungsäußerungen, erzeugt und es wird ebenfalls eine Sprecherrepräsentation 208 für eine simulierte Verifikationsäußerung 202 erzeugt. Die Gewichtungswerte und andere Parameter des neuronalen Netzes 206 werden während des Trainings angepasst, um den Fehler bei der Klassifizierung der simulierten Verifikationsäußerung 202 zu minimieren, die vom selben oder einem unterschiedlichen Sprecher wie die simulierten Anmeldungsäußerungen 204a-n gesprochen werden.
-
2 veranschaulicht einen Vorwärtsdurchlauf einer einzelnen Trainingsiteration, basierend auf einem Muster von Trainingsdaten, die Daten beinhalten, die eine simulierte Verifikationsäußerung 202 charakterisieren und Daten, die eine oder mehrere simulierte Anmeldungsäußerungen 204a-n charakterisieren. Konkret wird das neuronale Netz 206 über viele Iterationen und viele verschiedene Muster von Trainingsdaten trainiert. Mit jeder Iteration kann das neuronale Netz 206 angepasst werden, basierend auf Ergebnissen der Verarbeitung der entsprechenden Muster der Trainingsdaten für die jeweilige Iteration. 4A und 4B, die weiter unten beschrieben werden, veranschaulichen beispielhafte Techniken, über die die simulierte Verifikationsäußerung 202 und die simulierten Anmeldungsäußerungen 204a-n ausgewählt werden können. Die simulierten Anmeldungsäußerungen 204a-n für ein bestimmtes Muster sind im Allgemeinen alle Äußerungen, die von demselben Trainingssprecher gesprochen werden. Obwohl der Sprecher der simulierten Anmeldungsäußerungen 204a-n in verschiedenen Mustern von Trainingsdaten für unterschiedliche Trainingsiterationen unterschiedlich sein kann, werden innerhalb eines gegebenen Trainingsmusters für eine gegebene Trainingsiteration alle Anmeldungsäußerungen 204a-n im Allgemeinen von demselben Trainingssprecher gesprochen. Die simulierte Verifikationsäußerung 202 kann von demselben Trainingssprecher wie dem Sprecher der simulierten Anmeldungsäußerungen 204a-n gesprochen worden sein, oder kann von einem anderen Trainingssprecher als dem Sprecher der simulierten Anmeldungsäußerungen 204a-n gesprochen worden sein. Für Muster von Trainingsdaten, bei denen der Sprecher derselbe Sprecher bei der simulierten Verifikationsäußerung 202 und den simulierten Anmeldungsäußerungen 204a-n ist, kann das Muster als „übereinstimmendes“ Muster gekennzeichnet sein. Für Muster von Trainingsdaten, bei denen der Sprecher ein anderer Sprecher bei der simulierten Verifikationsäußerung 202 und den simulierten Anmeldungsäußerungen 204a-n ist, kann das Muster als „nicht-übereinstimmendes“ Muster gekennzeichnet werden. Die Kennzeichnungen können wahre Klassifizierungen der Trainingsmuster repräsentieren und in einer Vorverarbeitungsphase vor dem Training bestimmt werden. In einigen Implementierungen kann die geschätzte Klassifizierung eines Trainingsmusters, basierend auf einer Ausgabe des neuronalen Netzes 206, mit der wahren Klassifizierung verglichen werden, die durch die Kennzeichnung für das Trainingsmuster angezeigt wird, um zu bestimmen, ob das neuronale Netz 206 angepasst werden muss.
-
In einigen Implementierungen sind die Daten in dem Trainingsmuster möglicherweise nicht die Rohaudiosignale für die simulierten Verifikations- und Anmeldungsäußerungen 202, 204a-n. Stattdessen könnten die Äußerungen 202, 204a-n verarbeitet und in ein geeignetes Format für die Verarbeitung durch das neuronale Netz 206 umgewandelt worden sein. Die Daten in dem Trainingsmuster können beispielsweise entsprechende Merkmale der simulierten Verifikations- und Anmeldungsäußerungen 202, 204a-n charakterisieren und nicht die Rohaudiosignale selbst. In einigen Implementierungen können die Daten, die jede der simulierten Äußerungen 202, 204a-n in dem Trainingsmuster repräsentieren, eine oder mehrere Log-Filterbänke für die jeweilige Äußerung beinhalten. In einigen Implementierungen kann jede Äußerung frühzeitig in eine Vielzahl von Frames für die Äußerung segmentiert werden und separate Log-Filterbänke können für jeden Frame der Äußerung erzeugt werden. Jeder Frame der Äußerung kann beispielsweise von, sagen wir, vierzig Log-Filterbänken repräsentiert sein.
-
In einigen Implementierungen können die Daten, die die simulierte Verifikationsäußerung 202 charakterisieren, und die Daten, die jede der simulierten Anmeldungsäußerungen 204a-n charakterisieren, auf einmal (d. h. in einem einzelnen Durchlauf) von dem neuronalen Netz 206 verarbeitet werden. Demnach können, auch wenn die Trainingsdaten für eine gegebene Äußerung in mehrere Frames segmentiert sind, die jeweils von einem entsprechenden Satz von Log-Filterbänken repräsentiert werden, die Daten, die alle Frames für eine Gesamtheit von Äußerungen charakterisieren, in das neuronale Netz 206 (z. B. als 80x40 Merkmalsvektor für 80 Frames mit jeweils 40 Log-Filterbänken) für die Verarbeitung in einem einzelnen Durchgang durch das neuronale Netz eingegeben werden. Dies steht im Kontrast zu einer einzelnen Eingabe von Daten für jeden Frame der Äußerung in das neuronale Netz 206 für die separate Verarbeitung der Frames. In weiteren Implementierungen können Daten, die individuelle Frames der Äußerungen 202, 204a-n charakterisieren, dem neuronalen Netz 206 als Eingabe bereitgestellt werden, statt das neuronale Netz 206 zu trainieren, um Daten, die eine Gesamtheit jeder Äußerung 202, 204a-n charakterisieren, in einem einzelnen Durchgang durch das neuronale Netz 206 zu verarbeiten.
-
In einigen Implementierungen können die simulierten Verifikations- und Anmeldungsäußerungen 202, 204a-n gemäß einer oder mehrerer zusätzlicher Techniken vorverarbeitet werden. Die Struktur des neuronalen Netzes 206 kann beispielsweise erfordern, dass die Trainingsäußerungen alle eine feste Länge haben (z. B. 0,8 Sekunden Audio). Mindestens einige der Äußerungen 202, 204a-n können dann als Ergebnis aus längeren Äußerungen auf eine einheitliche Länge zurechtgeschnitten sein und/oder aufgefüllt sein, um aus kürzeren Äußerungen längere Clips zu machen. In weiteren Implementierungen kann das neuronale Netz 206 jedoch in der Lage sein, Äußerungen mit variablen Längen zu verarbeiten, in diesem Fall müssen die Äußerungen 202, 204a-n in den Trainingsdaten nicht auf eine feste Länge abgeschnitten oder aufgefüllt werden. Die Audioaufnahme für die Äußerungen 202, 204a-n kann auch entzerrt worden sein und Geräusche können zu den Trainingsäußerungen 202, 204a-n hinzugefügt oder davon entfernt worden sein, um sicherzustellen, dass das neuronale Netz trainiert wird, um bei Vorhandensein von Geräuschen stabil zu laufen.
-
Der Teil des Systems 200 in dem Kästchen mit den gestrichelten Linien 215 simuliert die Anmeldungsphase eines Sprecherverifikationsprozesses, in dem Daten, die eine Vielzahl von simulierten Anmeldungsäußerungen 204a-n charakterisieren, verwendet werden, um ein simuliertes Sprechermodell 214 für den bestimmten Trainingssprecher der simulierten Anmeldungsäußerungen 204a-n zu erzeugen. Die entsprechenden Daten, die jede der simulierten Anmeldungsäußerungen 204a-n charakterisieren, werden separat in das neuronale Netz 206 an einer Eingabeschicht des neuronalen Netzes 206 eingegeben. Das neuronale Netz 206 verarbeitet die Daten über eine oder mehrere verborgene Schichten und erzeugt eine entsprechende Sprecherrepräsentation 210a-n für jede der simulierten Anmeldungsäußerungen 204a-n. Wie in 2 dargestellt, wird beispielsweise die Sprecherrepräsentation 1 (210a) durch das neuronale Netz 206 erzeugt, basierend auf einer simulierten Anmeldungsäußerung 1 (204a). Gleichermaßen wird die Sprecherrepräsentation 2 (210b) durch das neuronale Netz 206 erzeugt, basierend auf einer simulierten Anmeldungsäußerung 2 (204b). Eine Sprecherrepräsentation kann dann durch das neuronale Netz 206 für jede der simulierten Anmeldungsäußerungen 204a-n erzeugt werden. In einigen Implementierungen können die Sprecherrepräsentationen 210a-n durch serielle Verarbeitung jeder der simulierten Anmeldungsäußerungen 204a-n durch das neuronale Netz 206 erzeugt werden. In einigen Implementierungen können die Sprecherrepräsentationen 210a-n durch parallele Verarbeitung der Daten, die die Äußerungen 204a-n charakterisieren, gleichzeitig erzeugt werden, mit entsprechenden Instanzen des neuronalen Netzes 206 für jede der simulierten Anmeldungsäußerungen 204a-n. Die Sprecherrepräsentationen 210a-n beinhalten im Allgemeinen jeweils eine Wertemenge, die verschiedene Eigenschaften der Stimme des Trainingssprechers für die simulierte Anmeldung repräsentieren, wie sie durch das neuronale Netz 206, basierend auf einer entsprechenden der simulierten Anmeldungsäußerungen 204a-n, bestimmt werden. In einigen Implementierungen können die Sprecherrepräsentationen 210a-n die Gewichtungswerte oder andere Parameter einer letzten verborgenen Schicht des neuronalen Netzes 206 anzeigen. In einigen Implementierungen können die Sprecherrepräsentationen 210a-n eine finale Ausgabe des neuronalen Netzes 206 sein, wenn das neuronale Netz 206 ohne Softmax-Ausgabeschicht konfiguriert ist.
-
Um das simulierte Sprechermodell 214 zu erzeugen, können die Sprecherrepräsentationen 210a-n gemittelt werden, wie in Kästchen 212 in 2 dargestellt. Dementsprechend kann das simulierte Sprechermodell 214 eine Wertemenge definieren, die die Unterscheidungsmerkmale der Stimme des Trainingssprechers der simulierten Anmeldungsäußerungen 204a-n repräsentieren. Durch Mittelung der mehreren Sprecherrepräsentationen 210a-n, um das simulierte Sprechermodell 214 zu bestimmen, können Schwankungen in der Stimme des Sprechers bei den verschiedenen simulierten Anmeldungsäußerungen 204a-n geglättet werden. Das simulierte Sprechermodell 214 kann dann eine zuverlässigere Repräsentation der Sprecherstimme sein, als jede der individuellen Sprecherrepräsentationen 210a-n, die individuell Eigenheiten einer gegebenen simulierten Anmeldungsäußerung 204a-n widerspiegeln können.
-
In einigen Implementierungen kann die Gesamtzahl der simulierten Anmeldungsäußerungen 204a-n in jedem Muster von Trainingsdaten für jede Trainingsiteration variieren. Ein erstes Trainingsmuster kann beispielsweise für eine erste Trainingsiteration 9 simulierte Anmeldungsäußerungen 204a-n beinhalten. Ein zweites Trainingsmuster für eine zweite Trainingsiteration könnte jedoch nur 4 simulierte Anmeldungsäußerungen 204a-n beinhalten. In weiteren Implementierungen kann die Gesamtzahl der simulierten Anmeldungsäußerungen 204a-n in jedem Muster von Trainingsdaten für jede Trainingsiteration festgelegt sein. Das neuronale Netz 206 kann beispielsweise über eine Reihe von Iterationen trainiert werden, bei denen ein Satz von Trainingsdaten für jede Iteration insgesamt 5 simulierte Anmeldungsäußerungen 204a-n beinhaltet. In einigen Implementierungen können ein, einige oder alle der Trainingsiterationen mit Trainingsmustern ausgeführt werden, die nur eine einzelne simulierte Anmeldungsäußerung 204a-n beinhalten.
-
In derselben Weise wie die Sprecherrepräsentationen 210a-n aus den Daten erzeugt wurden, die die simulierten Anmeldungsäußerungen 204a-n charakterisieren, kann eine Sprecherrepräsentation 208 aus Daten erzeugt werden, die die simulierte Verifikationsäußerung 202 charakterisieren. Die Daten, die die simulierte Verifikationsäußerung 202 charakterisieren (z. B. Log-Filterbank-Werte, die Merkmale der Verifikationsäußerung 202 charakterisieren) können einer Eingabeschicht des neuronalen Netzes 206 bereitgestellt werden. Das neuronale Netz 206 verarbeitet dann die Eingabe durch eine oder mehrere verborgene Schichten des Netzwerks. Die Ausgabe des neuronalen Netzes 206 ist eine Sprecherrepräsentation 208, die eine Wertemenge definiert, die Unterscheidungsmerkmale einer Stimme eines Sprechers anzeigt, der die simulierte Verifikationsäußerung 202 gesprochen hat.
-
Um der Verifikationsphase während des Trainings des neuronalen Netzes 206 weiter zu entsprechen, kann die Sprecherrepräsentation 208, basierend auf der simulierten Verifikationsäußerung 202, mit dem simulierten Sprechermodell 214 in derselben Weise verglichen werden, wie es beispielsweise auf einem Client-Gerät durch das Sprecherverifikationsmodell während der Verifikationsphase ablaufen würde. In einigen Implementierungen kann der Vergleich ausgeführt werden, indem der Kosinus-Abstand (wie in Block 216 dargestellt) von (1) einem ersten Vektor, der die Sammlung von Werten für die simulierte Sprecherrepräsentation 208 definiert, und (2) einem zweiten Vektor, der die Sammlung von Werten für das simulierte Sprechermodell 214 definiert, herangezogen wird. Eine logistische Regression 218 kann dann auf den Abstand angewendet werden, um zu schätzen, ob der Trainingssprecher, der die simulierte Verifikationsäußerung 202 gesprochen hat, derselbe oder ein anderer als der Trainingssprecher ist, der die simulierten Anmeldungsäußerungen 204a-n gesprochen hat. Dies ist in 2 durch einen ersten Block 220a für eine Klasse übereinstimmender Sprecher und einen zweiten Block 220b für eine Klasse nicht-übereinstimmender Sprecher dargestellt. In einigen Implementierungen können andere Klassifizierungstechniken als eine logistische Regression 218 angewendet werden, um eine Bestimmung vorzunehmen, ob der Trainingssprecher, der die simulierte Verifikationsäußerung 202 gesprochen hat, derselbe oder ein anderer als der Trainingssprecher ist, der die simulierten Anmeldungsäußerungen 204a-n gesprochen hat. In einigen Alternativen kann beispielsweise eine Hinge-Schicht oder eine Softmax-Schicht für die Klassifizierung verwendet werden. In einem Zwei-Klassen-Modell, wie in 2 dargestellt, können die Softmax- und logistischen Regressions-Techniken dieselbe oder eine ähnliche Optimierungsfunktion verwenden.
-
Die Gewichtungswerte oder andere Parameter des neuronalen Netzes 206 können dann angepasst werden, wie durch Block 222 dargestellt, basierend auf einem Ergebnis des Vergleichs der Sprecherrepräsentation 208 für die simulierte Verifikationsäußerung 202 mit dem simulierten Sprechermodell 214. Wenn beispielsweise das Trainingsmuster so gekennzeichnet wurde, dass es in der Tat nicht-übereinstimmende Sprecher enthält, die fälschlicherweise im Trainingsmuster als übereinstimmende Sprecher klassifiziert wurden, kann das neuronale Netz 206 automatisch angepasst werden, um den Fehler zu korrigieren. Allgemeiner ausgedrückt kann das neuronale Netz 206 optimiert werden, um die Ähnlichkeitspunkte für Muster übereinstimmender Sprecher zu maximieren oder um die Ausgabe einer Punktzahl durch die logistische Regression zu optimieren, und das neuronale Netz 206 kann auch optimiert werden, um die Ähnlichkeitspunkte für Muster nicht-übereinstimmender Sprecher zu minimieren oder um die Ausgabe einer Punktzahl durch die logistische Regression zu optimieren. In einigen Implementierungen können Anpassungen an dem neuronalen Netz 206 erfolgen, als Reaktion auf die Ergebnisse jedes Trainingsmusters für jede Trainingsiteration oder das neuronale Netz 206 kann, basierend auf den Ergebnissen nur einiger der Trainingsiterationen, angepasst werden. In einigen Implementierungen kann das neuronale Netz 206 angepasst werden, um den Abstand (d. h. Unterschiede maximieren) zwischen der Sprecherrepräsentation 208 und dem simulierten Sprechermodell 214 für nicht-übereinstimmende Sprecher zu maximieren, während der Abstand (d. h. Unterschiede minimieren) zwischen der Sprecherrepräsentation 208 und dem simulierten Sprechermodell 214 für übereinstimmende Sprecher minimiert wird. Es ist zu beachten, dass in einigen Implementierungen eine schwere Entscheidung zur Klassifizierung eines Trainingsmusters, ob es entweder zu der Klasse der übereinstimmenden Sprecher 220a oder zu der Klasse der nicht-übereinstimmenden Sprecher 220b gehört, während der Trainingsphase nicht getroffen werden könnte. Stattdessen kann das neuronale Netz 206 so angepasst werden, dass es die Ausgabe der Punktzahlen durch die logistische Regressionsschicht 218 optimiert oder eine oder mehrere Metriken optimiert.
-
Es wird nun mit Bezugnahme auf 3 ein Flussdiagramm eines beispielhaften Prozesses 300 für das Training eines neuronalen Netzes dargestellt, das in einem Sprecherverifikationsmodell verwendet werden kann. In einigen Implementierungen kann der Prozess 300 durch die hier beschriebenen Computersysteme ausgeführt werden, so wie das Computersystem 120 aus 1 und das Computersystem 200 aus 2.
-
Der Prozess 300 beginnt in Phase 302, in der ein erster Satz von Trainingsdaten ausgewählt wird (d. h. ein erstes Trainingsmuster). Der erste Satz von Trainingsdaten kann Daten beinhalten, die eine simulierte Verifikationsäußerung charakterisieren, und Daten, die eine oder mehrere simulierte Anmeldungsäußerungen charakterisieren. Die Äußerungen im Trainingssatz sind „simuliert“, insofern, dass sie in dem Trainingsprozess in einer Weise verwendet werden, der die Anmeldungs- und Verifikationsphase der Sprecherverifikation während der Trainingsphase parallel laufen lässt oder „simuliert“. Die Äußerungen selbst sind jedoch im Allgemeinen reale Schnipsel aufgezeichneter von Trainingssprechern gesprochener Sprache. Die Trainingssprecher sind im Allgemeinen nicht dieselben Sprecher, die Äußerungen während der aktuellen Anmeldungs- und Verifikationsphasen des Sprecherverifikationsprozesses bereitstellen. 4A und 4B, die weiter unten beschrieben werden, veranschaulichen beispielhafte Techniken für die Auswahl der simulierten Verifikations- und Anmeldungsäußerungen.
-
Der ausgewählte Satz von Trainingsdaten (d. h. das ausgewählte Muster) kann hinsichtlich dessen gekennzeichnet sein, ob er Sprache übereinstimmender Sprecher oder ein Muster für nicht-übereinstimmende Sprecher repräsentiert. Wenn der Sprecher der simulierten Verifikationsäußerung derselbe Sprecher ist wie der der simulierten Anmeldungsäußerungen, dann wird der Satz von Trainingsdaten als Muster übereinstimmender Sprecher gekennzeichnet. Wenn der Sprecher der simulierten Verifikationsäußerung ein anderer Sprecher ist als der der simulierten Anmeldungsäußerungen, dann wird der Satz von Trainingsdaten als Muster nicht-übereinstimmender Sprecher gekennzeichnet. In einigen Implementierungen können die Kennzeichnungen später im Trainingsprozess 300 verwendet werden, um zu bestimmen, ob eine geschätzte Klassifizierung des Satzes von Trainingsdaten entweder ein übereinstimmendes oder ein nicht-übereinstimmendes Muster ist, korrekt ist oder nicht.
-
In einigen Implementierungen kann es sein, dass der ausgewählte Satz von Trainingsdaten nicht das Rohaudiosignal für die simulierten Verifikations- und Anmeldungsäußerungen enthält, sondern stattdessen Daten, die Merkmale der Äußerungen charakterisieren. Jede in dem Satz von Trainingsdaten repräsentierte Äußerung kann beispielsweise charakterisiert sein durch einen Satz von Log-Filterbänken, die für Frames der Äußerung mit fester Länge bestimmt sind. Die Log-Filterbänke für jeden Frame der Äußerung können dann in einem einzelnen Satz von Eingabewerten, die als Eingabe in das neuronale Netz bereitgestellt werden und eine Gesamtheit der Äußerung charakterisieren, aneinandergehängt werden.
-
In den Phasen 304 und 306 des Prozesses 300 werden die Sprecherrepräsentationen für jede der Äußerungen bestimmt, die in dem ersten Satz von Trainingsdaten charakterisiert sind. Die Sprecherrepräsentationen können jeweils eine Sammlung von Werten sein, die Unterscheidungsmerkmale einer Stimme des Trainingssprechers anzeigen, der die entsprechende Äußerung für die entsprechende Sprecherrepräsentation gesprochen hat. Eine erste Sprecherrepräsentation kann beispielsweise, basierend auf der simulierten Verifikationsäußerung, erzeugt werden und entsprechende zweite Sprecherrepräsentationen können, basierend auf jeder der simulierten Anmeldungsäußerungen, erzeugt werden. Um die Sprecherrepräsentationen zu erzeugen, werden einer Eingabeschicht des trainierten neuronalen Netzes Daten bereitgestellt, die eine Äußerung charakterisieren. Das neuronale Netz verarbeitet dann die Eingabedaten durch eine oder mehrere verborgene Schichten des Netzwerks. Die Sprecherrepräsentation ist dann eine Ausgabe des neuronalen Netzes. In einigen Implementierungen wird die Ausgabe an einer Ausgabeschicht vorgenommen, die keine Softmax-Schicht ist. Die finale Schicht, die die Ausgabe bereitstellt, kann eine voll verbundene, lineare Schicht sein. In einigen Implementierungen kann die Sprecherrepräsentation die Werte beinhalten, die auf einer letzten verborgenen Schicht des neuronalen Netzes erzeugt werden oder Aktivierungen derselben, statt die Ausgabe einer Softmax-Ausgabeschicht. Das neuronale Netz kann in einigen Implementierungen ohne Softmax-Ausgangsschicht konfiguriert sein.
-
In Phase 308 werden die Sprecherrepräsentationen, die den simulierten Anmeldungsäußerungen entsprechen, kombiniert, um ein simuliertes Sprechermodell zu erstellen. Das simulierte Sprechermodell kann ein Durchschnitt der Sprecherrepräsentationen für die simulierten Anmeldungsäußerungen sein. Durch Mittelung der Sprecherrepräsentationen kann ein verlässliches Modell bestimmt werden, das die Stimme des Trainingssprechers charakterisiert. Es können beispielsweise Schwankungen in der Art und Weise, wie der Sprecher jede der simulierten Anmeldungsäußerungen gesprochen hat, geglättet werden, so dass das Sprechermodell als stabile Basis verwendet werden kann, mit der die Sprecherrepräsentation für die simulierte Verifikationsäußerung verglichen wird. In einigen Implementierungen kann der Prozess 300 nur eine Untermenge der Sprecherrepräsentationen für die simulierten Anmeldungsäußerungen auswählen, um sie bei der Erzeugung des simulierten Sprechermodells zu kombinieren. Für jede der simulierten Anmeldungsäußerungen kann beispielsweise ein Qualitätsmaß bestimmt werden oder es können die entsprechenden simulierten Anmeldungsäußerungen bestimmt werden. Der Prozess 300 kann dann nur solche Sprecherrepräsentationen auswählen, die eine Mindestqualitätszahl erreichen, oder solche Sprecherrepräsentationen, deren entsprechenden Äußerungen eine Mindestqualitätszahl erreichen, um sie in den Satz von Repräsentationen aufnehmen zu können, der verwendet wird, um das simulierte Sprechermodell zu erzeugen.
-
In Phase 310 wird die Sprecherrepräsentation für die simulierte Verifikationsäußerung mit dem simulierten Sprechermodell verglichen. In einigen Implementierungen wird ein binärer Klassifikator verwendet, um die Datenmuster danach zu klassifizieren, ob sie übereinstimmende Sprecher repräsentieren oder nicht. In einigen Implementierungen kann der Vergleich beinhalten, ein Ähnlichkeitsmaß zwischen der Sprecherrepräsentation für die simulierte Verifikationsäußerung und dem simulierten Sprechermodell zu bestimmen. Das Ähnlichkeitsmaß kann beispielsweise ein Kosinus-Abstand zwischen einem Wertevektor für die Sprecherrepräsentation und einem Wertevektor für das simulierte Sprechermodell sein. Das Ähnlichkeitsmaß kann dann verwendet werden, um eine Klassifizierung des ersten Satzes von Trainingsdaten zu schätzen, ob es sich um ein Muster übereinstimmender Sprecher oder ein Muster nicht-übereinstimmender Sprecher handelt. Wenn beispielsweise das Ähnlichkeitsmaß ausreichend hoch ist (z. B. eine Mindestähnlichkeitszahl erreicht), dann kann eine logistische Regression verwendet werden, um den Satz von Trainingsdaten auf eine Klasse übereinstimmender Sprecher abzubilden. Wenn andererseits das Ähnlichkeitsmaß zu niedrig ist (z. B. eine Mindestähnlichkeitszahl nicht erreicht), dann kann die logistische Regression verwendet werden, um den Satz von Trainingsdaten auf eine Klasse nicht-übereinstimmender Sprecher abzubilden.
-
Dann in Phase 312 können ein oder mehrere Parameter des neuronalen Netzes angepasst werden, basierend auf einem Ergebnis des Vergleichs in Phase 310 zwischen der Sprecherrepräsentation für die simulierte Verifikationsäußerung und dem simulierten Sprechermodell. Es können beispielsweise die Gewichtungen der verschiedenen Knoten in den verborgenen Schichten oder andere Parameter des neuronalen Netzes angepasst werden, um den Abstand zwischen der Sprecherrepräsentation und dem simulierten Sprechermodell zu erhöhen (die Ähnlichkeitspunkte reduzieren), wenn die Trainingsdaten als Muster nicht-übereinstimmender Sprecher gekennzeichnet wurde. Zusätzlich können die Gewichtungen oder anderen Parameter des neuronalen Netzes angepasst werden, um den Abstand zwischen der Sprecherrepräsentation und dem simulierten Sprechermodell zu verringern (die Ähnlichkeitspunkte erhöhen), wenn die Trainingsdaten als Muster übereinstimmender Sprecher gekennzeichnet wurde. Im Allgemeinen kann, da jede Iteration des Trainingsprozesses 300 eine entsprechende Anmeldungsphase und entsprechende Verifikationsphase simulieren soll, das neuronale Netz angepasst werden, um dieselbe Verlustfunktion zu optimieren, wie die, die während der Anmeldungsphase und Verifikationsphase bei der Sprecherverifikation angewendet wird. Ein Vorteil dieses Ansatzes ist, dass das neuronale Netz trainiert wird, um die Sprecherrepräsentationen, die in einem Sprecherverifikationsmodell für eine genauere Verifikation der Sprecheridentität verwendet werden können, besser zu erzeugen. In einigen Implementierungen werden beispielsweise während der eigentlichen Verifikation einer Äußerung keine zusätzlichen Nachverarbeitungsschritte unternommen, die nicht berücksichtigt wurden, als das neuronale Netz trainiert wurde. Diese Techniken können demnach als „End-to-End“-Ansatz für das Training des neuronalen Netzes betrachtet werden.
-
Abschließend wird in Phase 314 ein nächster Satz von Trainingsdaten für eine weitere Iteration des Trainings des neuronalen Netzes ausgewählt. Der Satz von Trainingsdaten, der in dieser Phase ausgewählt wird, kann wiederum Daten beinhalten, die eine simulierte Verifikationsäußerung charakterisieren, und Daten, die eine oder mehrere simulierte Anmeldungsäußerungen charakterisieren. Der Prozess 300 kann dann die Phasen 304-312 wiederholen und weitere zusätzliche Sätze von Trainingsdaten für zusätzliche Trainingsiterationen auswählen bis eine Grenze erreicht ist. In einigen Implementierungen kann sich die Grenze aus dem Verfallen aller verfügbaren Trainingsdaten ergeben. In einigen Implementierungen kann der Prozess 300 fortgesetzt werden bis eine Ziel-Leistungsebene erreicht ist. Nach einer Anzahl von Trainingsiterationen kann beispielsweise das neuronale Netz auf einen Held-Out-Datensatz überprüft werden, der während des Trainingsprozesses 300 nicht verwendet wurde. Training kann fortgeführt werden bis der Held-Out-Satz anzeigt, dass das neuronale Netz zumindest die Ziel-Leistungsebene erreicht hat.
-
Nun mit Bezugnahme auf die 4A und 4B werden schematische Diagramme dargestellt, die beispielhafte Techniken zum Auswählen von Sätzen von Trainingsdaten veranschaulichen, die in einem Training eines neuronalen Netzes für ein Sprecherverifikationsmodell verwendet werden sollen. In einigen Implementierungen können die mit Bezug auf 4A und 4B beschriebenen Techniken eine Vielfalt in den Trainingsäußerungen sicherstellen, die über viele Trainingsiterationen ausgewählt werden, was zu einer besseren Leistung des neuronalen Netzes für eine gegebenen Anzahl von Trainingsäußerungen führen kann.
-
In einigen Implementierungen können alle oder ein Teil der verfügbaren Trainingsäußerungen in eine Vielzahl von Gruppen 410a-n geclustert werden. Die Gruppen 410a-n können ferner in einem Äußerungs-Pool 408 angeordnet sein, der eine Sammlung von Gruppen von Trainingsäußerungen beinhaltet. Die Trainingsäußerungen können in einigen Implementierungen nach Sprecher gruppiert sein. Gruppe 410a beinhaltet beispielsweise eine Vielzahl von Äußerungen, die alle von einem ersten Sprecher gesprochen wurden, während Gruppe 410n eine Vielzahl von Äußerungen beinhaltet, die alle von einem anderen Sprecher gesprochen wurden. Dementsprechend kann jede der Gruppen 410a-n zu unterschiedlichen Sprechern gehören. Die Gruppen 410a-n können alle dieselbe Anzahl an Trainingsäußerungen beinhalten oder die Anzahl der Trainingsäußerungen kann unter verschiedenen der Gruppen 410a-n variieren.
-
Für jede Trainingsiteration kann auf den Äußerungs-Pool 408 zugegriffen werden und besondere Äußerungen können für das Muster von Trainingsdaten ausgewählt werden, die als Eingabe in die entsprechende Trainingsiteration verwendet werden. 4A zeigt beispielsweise einen Satz von Trainingsdaten, die beliebig aus dem Äußerungs-Pool 408 für eine Trainingsiteration als Eingabemuster 402 ausgewählt wurden. Eine erste Gruppe von Äußerungen, die einem ersten Sprecher entsprechen, können aus den Gruppen 410a-n in dem Äußerungs-Pool 408 für die Verwendung bei der Erzeugung des simulierten Sprechermodells ausgewählt werden. Die Gruppe kann beliebig oder in einer anderen Weise ausgewählt werden. Aus der ausgewählten Gruppe, z. B. Gruppe 410a in 4A, wird eine Untermenge der Äußerungen des ersten Sprechers als simulierte Anmeldungsäußerungen 406 in dem Eingabemuster 402 ausgewählt. Diese Untermenge beinhaltet im Allgemeinen mehrere Äußerungen und kann dieselbe oder eine andere Anzahl von Äußerungen von einer Trainingsiteration zur nächsten beinhalten. Äußerungen aus der ausgewählten Gruppe, z. B. Gruppe 410a, können beliebig ausgewählt werden, so dass verschiedene Kombinationen der Äußerungen verwendet werden, um verschiedene simulierte Sprechermodelle für den ersten Sprecher in unterschiedlichen Trainingsiterationen zu erzeugen.
-
Eine Äußerung 404 wird ebenfalls als simulierte Verifikationsäußerung ausgewählt. Die Äußerung 404 kann eine Äußerung des ersten Sprechers oder eines anderen Sprechers sein, abhängig davon, ob die Trainingsiteration ein Beispiel für eine Übereinstimmung oder eine Nicht-Übereinstimmung mit den Anmeldungsäußerungen 406 ist. Es werden sowohl übereinstimmende als auch nicht-übereinstimmende Beispiele im Training verwendet. Daraus resultierend ist für einige Trainingsiterationen die Äußerung 404 eine Äußerung des ersten Sprechers, z. B. eine Äußerung aus Gruppe 410a. Für andere Trainingsiterationen ist die Äußerung 404 eine Äußerung eines zweiten Sprechers, der vom ersten Sprecher verschieden ist, wie in 4A gezeigt, so dass das Eingabemuster 402 keine Übereinstimmung zwischen der simulierten Verifikationsäußerung 404 und den simulierten Anmeldungsäußerungen 406 repräsentiert.
-
In dem Beispiel in 4A wird eine bestimmte Äußerung aus einer zweiten Gruppe 410n von Äußerungen, wie die simulierte Verifikationsäußerung 404, ausgewählt (z. B. beliebig ausgewählt). In einigen Implementierungen kann die zweite Gruppe von Äußerungen (aus der die Äußerung 404 ausgewählt ist) beliebig aus den Gruppen 410a-n in dem Äußerungs-Pool 408 oder gemäß einem Muster einer variierenden Auswahl aus den Gruppen 410a-n ausgewählt werden. In weiteren Implementierungen kann eine beliebige Auswahl vorgenommen werden, ob eine weitere Äußerung von demselben Sprecher wie dem Sprecher der simulierten Anmeldungsäußerungen als die simulierte Verifikationsäußerung angewendet werden soll. Demnach ist die beliebige Auswahl vielleicht unausgewogen, so dass eine fünfzig prozentige Chance besteht, dass die simulierte Verifikationsäußerung 404 eine Äußerung desselben Sprechers wie dem Sprecher der simulierten Anmeldungsäußerungen 406 ist. Wenn ein Ergebnis der beliebigen Auswahl ist, dass das Eingabemuster 402 ein Muster übereinstimmender Sprecher sein soll, dann kann die simulierte Verifikationsäußerung 404 aus derselben Gruppe von Äußerungen 410 ausgewählt werden, wie die Gruppe von Äußerungen aus der die simulierten Anmeldungsäußerungen 406 ausgewählt werden. Aber wenn ein Ergebnis der beliebigen Auswahl ist, dass das Eingabemuster 402 ein Muster nicht-übereinstimmender Sprecher sein soll, dann kann die simulierte Verifikationsäußerung 404 aus einer unterschiedlichen Gruppe von Äußerungen 410 ausgewählt werden, die einem anderen Sprecher entsprechen, als die Gruppe von Äußerungen, aus der die simulierten Anmeldungsäußerungen 406 ausgewählt sind.
-
Im Allgemeinen können die in 4A dargestellten Auswahltechniken ermöglichen, dass Äußerungen von verschiedenen Kombinationen von Sprechern in verschiedenen Trainingsiterationen angewendet werden. In einer ersten Trainingsiteration können beispielsweise die simulierten Anmeldungsäußerungen von einem ersten Sprecher gesprochen worden sein und die simulierte Verifikationsäußerung kann auch von dem ersten Sprecher gesprochen worden sein. In einer zweiten Trainingsiteration können die simulierten Anmeldungsäußerungen von einem zweiten Sprecher gesprochen worden sein und die simulierte Verifikationsäußerung kann von einem dritten Sprecher gesprochen worden sein. In einer dritten Trainingsiteration können die simulierten Anmeldungsäußerungen von einem ersten Sprecher gesprochen worden sein, und die simulierte Verifikationsäußerung kann von dem zweiten Sprecher gesprochen worden sein. In einigen Implementierungen kann ein Auswahlalgorithmus angewendet werden, der Gruppen von Äußerungen 410a-n nicht beliebig auswählt, sondern stattdessen bestimmend Gruppen von Äußerungen 410a-n in einer Weise auswählt, die verschiedene Permutationen erstellt, oder eine Zahl von Permutationen in den Eingabemustern 402 zwischen Sprechern der simulierten Verifikations- und Anmeldungsäußerungen maximiert. Als einfaches Beispiel, wenn drei Gruppen von Äußerungen A, B und C aus drei verschiedenen Trainingssprechern in dem Äußerungs-Pool 408 verfügbar wären, dann könnten neun verschiedene Eingabemuster 402 für neun Trainingsiterationen erzeugt werden: (A, A), (A, B), (A, C), (B, A), (B, B), (B, C), (C, A), (C, B) und (C, C). Trainingsiterationen können auch mit denselben Gruppenpaarungen ablaufen, aber mit unterschiedlichen Äußerungen innerhalb der Gruppen, die ausgewählt werden.
-
Ein Vorteil des hier beschriebenen Trainingsansatzes, im Gegensatz zu anderen Ansätzen, die ein Training eines neuronalen Netzes beinhalten, um Eingaben, die zu einem bestimmten Sprecher unter einer Anzahl von vorausgewählten Sprechern gehören, zu klassifizieren, ist, dass eine größere Anzahl und Vielfalt von Sprechern genutzt werden kann, um das Netzwerk zu trainieren. Zusätzlich gibt es keine Mindestanzahl von Trainingsäußerungen, die für jeden Trainingssprecher erforderlich ist, um ein verlässliches Training sicherzustellen (über die eine oder mehreren Äußerungen, die tatsächlich für jeden Trainingssprecher verwendet werden, hinaus), da das Netzwerk nicht auf spezifische Sprecher trainiert ist, sondern stattdessen trainiert ist, basierend darauf, ob ein gegebenes Eingabemuster 402 übereinstimmende Sprecher oder nicht-übereinstimmendes Sprecher unter den simulierten Verifikations- und Anmeldungsäußerungen hat.
-
4B veranschaulicht ein schematisches Diagramm 400b einer Verschachtelungstechnik für die Auswahl von Äußerungen für Eingabemuster während des Trainings des neuronalen Netzes. Wie in der Figur gezeigt, können die Muster in einem Stapel von Trainingsmustern alle aus unterschiedlichen Pools stammen, um eine bessere Verschachtelung und Vielfalt der Äußerungen unter den Mustern in dem Stapel zu erreichen. Die Verschachtelungstechnik kann zu einem stabileren und zuverlässigeren Training des neuronalen Netzes führen.
-
In Bezugnahme auf 5A und 5B werden Blockdiagramme beispielhafter neuronaler Netze 502, 512 dargestellt, die in einem Sprecherverifikationsmodell angewendet werden können. In einigen Implementierungen können beide neuronalen Netze 502, 512 verwendet werden, um die in Bezug auf 1-4B und 6 beschriebenen Techniken zu implementieren, einschließlich der Trainingstechniken, die in Bezug auf 2-4B beschrieben sind.
-
Die Architektur des tiefen neuronalen Netzes 502 in 5A beinhaltet eine lokal verbundene Schicht 504, gefolgt von einer oder mehreren voll verbundenen verborgenen Schichten 506a-n. Die lokal verbundene Schicht 504 und die voll verbundenen Schichten 506a-n können gleichgerichtete lineare Einheiten (ReLUs) aufweisen. Die letzte Schicht des Netzwerks 502 ist eine voll verbundene lineare Schicht 508, die eine Sprecherrepräsentation 510a, basierend auf der Eingabeäußerung (oder einem Frame einer Äußerung) 503a, ausgibt. Die letzte Schicht 502 vor die Repräsentation 510a ist eine lineare Schicht, um die nicht-negativen Aktivierungen in den Full Space abzubilden und in einigen Implementierungen Projektionen zu bestimmen. Full Space bezieht sich auf die Auffassung, dass ReLu-Aktivierungen Funktionen, wie y = max(x, 0) sein können. Deshalb können die Aktivierungen (y), die die Sprecherrepräsentation bilden, immer ein positiver Vektor sein. Wenn eine solche Aktivierungsfunktion durch eine lineare Aktivierungsfunktion y = x geändert wird, kann die Sprecherrepräsentation als ein Vektor mit potenziell positiven und negativen Werten dargestellt werden. Letzteres kann eine geeignetere Darstellung des Sprechers sein, wenn darauf beispielsweise eine Kosinus-Abstand Vergleichsfunktion folgt.
-
Die Konfiguration des neuronalen Netzes 502 ist im Allgemeinen in der Lage, Trainingsäußerungen mit festen Längen oder eine festgelegte Anzahl von Frames von Äußerungen zu verarbeiten. Wenn das neuronale Netz 502 trainiert ist und später während der Laufzeit in der Anmeldungs- und Verifikationsphase verwendet wird, können Äußerungen je nach Notwendigkeit abgeschnitten oder aufgefüllt werden, um sicherzustellen, dass die Äußerung die erforderliche festgelegte Länge hat, um durch das neuronale Netz 502 verarbeitet werden zu können. Infolgedessen kann das neuronale Netz 502 eine Sprecherrepräsentation in einem einzelnen Durchgang berechnen, z. B. einer einzelnen Vorwärtspropagation durch das tiefe neuronale Netz 502. Dadurch kann die Sprecherrepräsentation mit geringerer Latenz erzeugt werden als bei Techniken, die sequentielle Verarbeitung verschiedener Teile einer Äußerung beinhalten.
-
Das in 5B veranschaulichte neuronale Netz 512 ist dann ein rekurrentes neuronales Netz. Anders als die Architektur des neuronalen Netzes 502 ist das neuronale Netz 512 in der Lage, Eingabeäußerungen variabler Länge zu verarbeiten. Äußerung 503b kann beispielsweise eine Trainingsäußerung, eine Anmeldungsäußerung oder eine Verifikationsäußerung sein, abhängig von dem Zusammenhang, in dem das neuronale Netz 512 verwendet wird. Die Äußerung 503b kann in eine Vielzahl von Frames unterteilt sein, die eine feste Länge haben können. Die Anzahl der Frames, die in das neuronale Netz 512 eingegeben werden, können eine Funktion der Gesamtlänge der Äußerung 503b sein. In anderen Worten, längere Äußerungen können mehr Frames haben und kürzere Äußerungen können weniger Frames haben. Die Frames der Äußerung 503b werden in eine Long-Short-Term-Memory (LSTM)-Schicht 516 eingegeben. Eine oder mehrere zusätzliche verborgene Schichten können der LSTM-Schicht 516 folgen. Die letzte Schicht des Netzwerks 512 ist wieder eine voll verbundene, lineare Schicht 518. Die voll verbundene, lineare Schicht 518 kann eine Sprecherrepräsentation 510b durch Abbilden der nicht-negativen Aktivierungen in den Full Space ausgeben und in einigen Fällen Projektionen bestimmen. Da das neuronale Netz 512 in der Lage ist, Äußerungen mit variabler Länge zu bearbeiten, kann es für textunabhängige Sprecherverifikation, bei der die Wörter oder Sätze einer Äußerung nicht vordefiniert sind und zwischen verschiedenen Äußerungen variieren können, sehr gut geeignet sein.
-
Obwohl das neuronale Netz 502 und 512, die in 5A und 5B veranschaulicht werden, mit speziellen Konfigurationen gezeigt werden, sind die neuronalen Netze, die mit den hier beschriebenen Techniken anwendbar sind, nicht auf diese Beispiele beschränkt. Die verborgene Topologie der neuronalen Netze kann beispielsweise eine unterschiedliche Anzahl und unterschiedliche Anordnungen von Schichten haben, die voll verbundene Schichten, lokal verbundene Schichten oder alle rekurrenten Schichten, wie Long Short-Term-Memory-Schichten beinhalten kann oder nicht. Das neuronale Netz kann in einigen Implementierungen ein neuronales Faltungsnetz sein.
-
6 ist ein Flussdiagramm eines beispielhaften Prozesses 600, um eine Äußerung unter Verwendung eines Sprecherverifikationsmodells und eines neuronalen Netzes zu verifizieren, das gemäß den hier beschriebenen Techniken trainiert wurde. Der Prozess 600 entspricht im Allgemeinen der Verifikationsphase (Phasen E-G), die in 1 veranschaulicht sind. Das neuronale Netz, auf das in 6 Bezug genommen wird, kann gemäß den hier in Bezug auf 2-4B beschriebenen Techniken trainiert werden und kann in einigen Implementierungen eine Struktur haben wie die in 5A oder 5B.
-
In Phase 602 kann eine Äußerung von einem Benutzer eines Computergeräts empfangen werden. Ein Benutzer kann beispielsweise den Wunsch haben, sein Smartphone zu entsperren oder eine andere Funktion mit einem Computergerät auszuführen. Das Smartphone könnte jedoch verlangen, dass der Benutzer sich authentifiziert bevor das Telefon entsperrt wird oder bevor die gewünschte Funktion ausgeführt wird. Die Authentifizierung kann in einigen Implementierungen, basierend auf Eigenschaften der Benutzerstimme, unter Verwendung eines Sprecherverifikationsmodells auf dem Telefon, ausgeführt werden. Das Telefon kann den Benutzer auffordern, eine Verifikationsäußerung zu sprechen, die von dem Telefon in Phase 602 empfangen und aufgezeichnet werden kann.
-
In Phase 604 greift das Telefon auf ein neuronales Netz zu, um eine Sprecherrepräsentation, basierend auf der empfangenen Äußerung, zu erzeugen. Das neuronale Netz kann lokal auf dem Telefon gespeichert werden, oder es kann beispielsweise auf ein Remote-Computersystem über eine Anwendungsprogramm-Schnittstelle (API) zugegriffen werden. Das neuronale Netz kann gemäß den hier beschriebenen Techniken trainiert werden und kann, basierend auf Datenmustern, die jeweils eine simulierte Verifikationsäußerung und eine Vielzahl von simulierten Anmeldungsäußerungen beinhalten, trainiert worden sein. Das neuronale Netz kann konfiguriert sein, um in einem einzelnen Durchlauf durch das neuronale Netz Daten zu verarbeiten, die eine Gesamtheit einer Äußerung charakterisieren. In Phase 606 werden die Daten, die die empfangene Äußerung charakterisieren, als Eingabe in das neuronale Netz bereitgestellt. Das neuronale Netz verarbeitet die Eingabe und erzeugt eine Sprecherrepräsentation, die Unterscheidungsmerkmale der Benutzerstimme anzeigt.
-
In Phase 608 wird auf ein Sprechermodell auf dem Telefon zugegriffen. Das Sprechermodell kann Unterscheidungsmerkmale der Stimme eines angemeldeten Benutzers anzeigen. In einigen Implementierungen kann das Sprechermodell auf einem Durchschnitt mehrerer Sprecherrepräsentationen basieren, der durch das neuronale Netz aus den Daten erzeugt wird, die entsprechende Äußerungen des angemeldeten Benutzers charakterisieren. In Phase 610 wird die Sprecherrepräsentation, die in Phase 606, basierend auf der Verifikationsäußerung, erzeugt wurde, mit dem Sprechermodell verglichen oder wird auf andere Weise hinsichtlich des Sprechermodells bewertet. In einigen Implementierungen wird der Vergleich oder die sonstige Bewertung über ein Sprecherverifikationsmodell auf dem Telefon des Benutzers ausgeführt. Das Sprecherverifikationsmodell kann einen Abstand oder ein anderes Ähnlichkeitsmaß zwischen dem Sprechermodell und der Sprecherrepräsentation für die Verifikationsäußerung bestimmen. Basierend auf dem Abstand oder dem sonstigen Ähnlichkeitsmaß kann das Sprecherverifikationsmodell den Benutzer authentifizieren, wenn die Benutzerstimme der angemeldeten Benutzerstimme ausreichend ähnlich ist. Andernfalls kann das Sprecherverifikationsmodell einen Hinweis anzeigen, dass der Benutzer nicht authentifiziert ist, wenn eine Ähnlichkeit der Benutzerstimme nicht mindestens eine Mindestähnlichkeitszahl in Bezug auf die angemeldete Benutzerstimme erreicht.
-
In einigen Implementierungen kann, wenn das Sprecherverifikationsmodell mit ausreichender Sicherheit bestimmt, dass die Verifikationsäußerung von dem identifizierten Sprecher gesprochen wurde, das Sprechermodell für den angemeldeten Benutzer, basierend auf der Verifikationsäußerung, dann aktualisiert werden. Beachten Sie beispielsweise, wie das Gerät auf die folgenden drei Verifikationsäußerungen reagieren kann. Die Ähnlichkeitszahl für die erste der drei Verifikationsäußerungen liegt unter einem ersten Grenzwert, so dass das Sprecherverifikationsmodell die Identität des Benutzers, der die erste Verifikationsäußerung gesprochen hat, zurückweist (z. B. das Gerät kann es deshalb ablehnen, das Gerät als Reaktion auf die erste Verifikationsäußerung zu entsperren). Die Ähnlickeitszahl für die zweite der drei Verifikationsäußerungen erfüllt den ersten Grenzwert, so dass die Identität des Benutzers, der die zweite Verifikationsäußerung gesprochen hat, akzeptiert wird. Die Ähnlichkeitszahl für die zweite Verifikationsäußerung ist jedoch nicht ausreichend hoch, um das Sprechermodell des angemeldeten Benutzers, basierend auf der zweiten Verifikationsäußerung, zu aktualisieren. Abschließend erfüllt die Ähnlichkeitszahl für die dritte der Verifikationsäußerungen den ersten Grenzwert, so dass die Identität des Benutzers, der die dritte Verifikationsäußerung gesprochen hat, akzeptiert wird (z. B. ein erster Satz von Aktionen, wie beispielsweise das Entsperren eines Geräts, kann ausgeführt werden) und sie erfüllt auch den höheren zweiten Grenzwert, so dass das Sprechermodell für den angemeldeten Benutzer, basierend auf der dritten Verifikationsäußerung, aktualisiert werden kann. Das Sprechermodell kann aktualisiert werden durch Kombination (z. B. Mittelung) der Sprecherrepräsentation, die von dem neuronalen Netz für die dritte Verifikationsäußerung erzeugt wird, mit anderen Sprecherrepräsentationen aus Anmeldungsäußerungen des Benutzers, die verwendet wurden, um das Sprechermodell in der ersten Instanz zu erstellen.
-
In Phase 612 kann dann das Telefon eine Aktion ausführen, basierend darauf, ob der Benutzer authentifiziert wurde oder nicht. Das Telefon kann beispielsweise aufwachen oder sich entsperren, als Reaktion auf eine Bestimmung, dass der Benutzer, der die Äußerung bereitgestellt hat, der angemeldete Benutzer ist. Aber wenn von dem Benutzer, der die Äußerung bereitgestellt hat, festgestellt wird, dass er nicht der angemeldete Benutzer ist, oder nicht einer Vielzahl von angemeldeten Benutzern ist, dann kann das Telefon gesperrt bleiben oder kann auf andere Weise die Leistung einer oder mehrerer Funktionen blockieren, die der Benutzer für die Ausführung ausgewählt hat. In einer weiteren Anwendung können die hier beschriebenen Sprecherverifikationstechniken auf ein Benutzergerät angewendet werden (z. B. Smartphone, Notebook-Computer, tragbares Gerät), um eine Spracheingabe abzulehnen, die von dem Gerät von einem nicht-autorisierten Benutzer erfasst wurde (z. B. Benutzern, deren Stimmen im Gerät nicht angemeldet sind). Wenn beispielsweise das Gerät in entsperrtem Zustand ist, kann das Gerät auf Sprachbefehle hören, die von einem autorisierten Benutzer des Geräts gesprochen werden, die eine Aktion anzeigen, die der Benutzer von dem Gerät ausgeführt haben möchte (z. B. „Gehe zum Fußballspiel“ oder „Spiele meine Musiksammlung“). In einigen Implementierungen kann das Gerät nur die angeforderte Aktion, die von dem Sprachbefehl angegeben wurde, ausführen, wenn bestimmt werden kann, dass der Sprachbefehl von dem autorisierten Benutzer gesprochen wurde. Auf diese Weise kann beispielsweise die Nebenspracheingabe von anderen nicht-autorisierten Benutzern abgelehnt werden.
-
7 zeigt ein beispielhaftes Computergerät 700 und ein mobiles Computergerät, die verwendet werden können, um die hier beschriebenen Techniken zu implementieren. Das Computergerät 700 soll verschiedene Formen von digitalen Computern, wie z. B. Laptops, Desktops, Workstations, persönliche digitale Assistenten, Server, Blade-Server, Mainframes und andere geeignete Computer, darstellen. Das mobile Computergerät soll verschiedene Formen mobiler Geräte darstellen, z. B. persönliche digitale Assistenten, Mobiltelefone, Smartphones und sonstige ähnliche Computergeräte. Die hier gezeigten Komponenten, deren Verbindungen, Beziehungen und Funktionen sollen nur exemplarisch sein und die Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen in keiner Weise einschränken.
-
Das Computergerät 700 beinhaltet einen Prozessor 702, einen Speicher 704, ein Speichergerät 706, eine High-Speed-Schnittstelle 708, die mit dem Speicher 704 und mehreren High-Speed-Erweiterungsports 710 verbunden ist und eine Low-Speed-Schnittstelle 712, die mit einem Low-Speed-Erweiterungsanschluss 714 und dem Speichergerät 706 verbunden ist. Der Prozessor 702, der Speicher 704, das Speichergerät 706, die High-Speed-Schnittstelle 708, die High-Speed-Erweiterungsports 710 und die Low-Speed-Schnittstelle 712 sind durch verschiedene Busse miteinander verbunden und können auf einer gemeinsamen Hauptplatine oder auf andere geeignete Weise montiert sein. Der Prozessor 702 kann Befehle zur Ausführung innerhalb des Computergeräts 700 verarbeiten, einschließlich der Befehle, die in dem Speicher 704 oder auf dem Speichergerät 706 gespeichert sind, um grafische Informationen für ein GUI auf einem externen Eingabe-/Ausgabegerät, wie dem Display 716, das mit der High-Speed-Schnittstelle 708 gekoppelt ist, anzuzeigen. Bei anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse je nach Bedarf zusammen mit mehreren Speichern und Speicherarten verwendet werden. Es können außerdem auch mehrere Computergeräte verbunden sein, wobei jedes Gerät Teile der notwendigen Operationen bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
-
Der Speicher 704 speichert Informationen innerhalb des Computergeräts 700. Bei einigen Implementierungen handelt es sich bei dem Speicher 704 um (eine) flüchtige Speichereinheit(en). Bei einigen Implementierungen handelt es sich bei dem Speicher 704 um (eine) nichtflüchtige Speichereinheit(en). Der Speicher 704 kann zudem eine andere Form von computerlesbarem Speichermedium sein, wie beispielsweise ein magnetischer oder optischer Datenträger.
-
Das Speichergerät 706 ist in der Lage, Massenspeicher für das Computergerät 700 bereitzustellen. Bei einigen Implementierungen kann das Speichergerät 706 ein computerlesbares Medium sein oder beinhalten, wie ein Diskettenlaufwerk, ein Festplattenlaufwerk, ein optisches Laufwerk, eine Magnetbandeinheit, ein Flash-Speicher oder ein anderes ähnliches Solid-State-Speichergerät oder eine Reihe von Geräten, einschließlich Geräten in einem Speichernetzwerk oder anderen Konfigurationen. Das Computerprogrammprodukt kann zudem Befehle enthalten, bei deren Ausführung ein oder mehrere Verfahren wie diejenigen, die vorstehend beschrieben sind, ausgeführt werden. Das Computerprogrammprodukt kann auch physisch in einem Computer oder einem maschinenlesbaren Medium ausgeführt werden, wie z. B. dem Speicher 704, dem Speichergerät 706 oder dem Speicher auf dem Prozessor 702.
-
Die High-Speed-Schnittstelle 708 verwaltet bandbreitenintensive Operationen für das Computergerät 700, während die Low-Speed-Schnittstelle 712 niedrigere bandbreitenintensive Operationen verwaltet. Diese Zuordnung von Funktionen ist jedoch nur exemplarisch. In einigen Implementierungen ist die High-Speed-Schnittstelle 708 mit dem Speicher 704, dem Display 716 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit High-Speed-Erweiterungsanschlüssen 710 verbunden, die verschiedene Erweiterungskarten aufnehmen können (nicht dargestellt). In der Implementierung ist die Low-Speed-Schnittstelle 712 mit dem Speichergerät 706 und dem Low-Speed-Erweiterungsanschluss 714 verbunden. Der Low-Speed-Erweiterungsanschluss 714, der verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, drahtloses Ethernet) beinhalten kann, kann mit einem oder mehreren Eingabe-/Ausgabegeräten wie einer Tastatur, einem Zeigegerät, einem Scanner oder einem Netzwerkgerät, wie einem Switch oder Router, z. B. durch einen Netzwerkadapter gekoppelt sein.
-
Das Computergerät 700 kann, wie in der Figur dargestellt, in einer Anzahl unterschiedlicher Formen implementiert sein. Es kann zum Beispiel als Standardserver 720 oder mehrfach in einer Gruppe solcher Server implementiert sein. Zusätzlich kann es in einem Personal Computer, wie Laptop-Computer 722, implementiert sein. Es kann auch als Teil eines Rackserversystems 724 implementiert sein. Alternativ können Komponenten von dem Computergerät 700 mit anderen Komponenten in einem Mobilgerät (nicht gezeigt) wie einem mobilen Computergerät 750 kombiniert werden. Jedes dieser Geräte kann eines oder mehrere der Computergeräte 700 und der mobilen Computergeräte 750 beinhalten und ein vollständiges System kann aus mehreren Computergeräten gebildet sein, die miteinander kommunizieren.
-
Das mobile Computergerät 750 beinhaltet neben anderen Komponenten einen Prozessor 752, einen Speicher 764, ein Eingabe-/Ausgabegerät wie ein Display 754, eine Kommunikationsschnittstelle 766 und einen Transceiver 768. Das mobile Computergerät 750 kann auch mit einem Speichergerät wie einem Microdrive oder einem anderen Gerät bereitgestellt werden, um zusätzlichen Speicher bereitzustellen. Jeder der Prozessoren 752, der Speicher 764, das Display 754, die Kommunikationsschnittstelle 766 und der Transceiver 768 sind mithilfe verschiedener Busse miteinander verbunden und mehrere der Komponenten können auf einer gemeinsamen Hauptplatine oder auf andere Weise, wie geeignet, angeordnet sein.
-
Der Prozessor 752 kann Anweisungen innerhalb des mobilen Computergeräts 750 ausführen, einschließlich im Speicher 764 gespeicherte Anweisungen. Der Prozessor 752 kann als ein Chipsatz aus Chips implementiert werden, die separate und mehrere analoge und digitale Prozessoren beinhalten. Der Prozessor 752 kann zum Beispiel die Koordination der anderen Komponenten des mobilen Computergeräts 750 bereitstellen, wie z. B. die Kontrolle der Benutzerschnittstellen, der vom mobilen Computergerät 750 betriebenen Applikationen sowie die drahtlose Kommunikation über das mobile Computergerät 750.
-
Der Prozessor 752 kann mit einem Benutzer über eine Steuerschnittstelle 758 und eine Display-Schnittstelle 756 kommunizieren, die mit einem Display 754 verbunden sind. Das Display 754 kann zum Beispiel ein TFT-LCD-Display (Thin-Film-Transistor Liquid Crystal Display) oder eine OLED-Display (organische Leuchtdiode) oder eine andere geeignete Anzeigetechnologie sein. Die Display-Schnittstelle 756 kann geeignete Schaltungen zum Steuern des Display 754 beinhalten, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 758 kann Befehle von einem Benutzer empfangen und sie zur Eingabe in den Prozessor 752 konvertieren. Außerdem kann eine externe Schnittstelle 762 die Kommunikation mit dem Prozessor 752 bereitstellen, um die Nahbereichskommunikation des mobilen Geräts 750 mit anderen Geräten zu ermöglichen. Die externe Schnittstelle 762 kann beispielsweise in einigen Implementierungen eine drahtgebundene Kommunikation oder in anderen Implementierungen eine drahtlose Kommunikation bereitstellen und es können auch mehrere Schnittstellen verwendet werden.
-
Der Speicher 764 speichert Informationen innerhalb des mobilen Computergeräts 750. Der Speicher 764 kann als eines oder mehrere von computerlesbaren Medien, als flüchtige(r) Speicher oder nicht flüchtige(r) Speicher implementiert sein. Ein Erweiterungsspeicher 774 kann ebenfalls bereitgestellt und mit dem mobilen Computergerät 750 über eine Erweiterungsschnittstelle 772 verbunden werden, die zum Beispiel eine SIMM (Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Ein solcher Erweiterungsspeicher 774 kann zusätzlichen Speicherplatz für das mobile Computergerät 750 bereitstellen oder auch Anwendungen oder andere Informationen für das mobile Computergerät 750 speichern. Insbesondere kann der Erweiterungsspeicher 774 Befehle zum Ausführen oder Ergänzen der vorstehend beschriebenen Prozesse beinhalten und er kann außerdem sichere Informationen beinhalten. Somit kann der Erweiterungsspeicher 774 zum Beispiel als Sicherheitsmodul für das mobile Computergerät 750 bereitgestellt werden, und er kann mit Anweisungen programmiert sein, die die sichere Verwendung des mobilen Computergeräts 750 erlauben. Zusätzlich dazu können über die SIMM-Karten sichere Anwendungen zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Karte auf eine Weise, die nicht gehackt werden kann, bereitgestellt werden.
-
Der Speicher kann beispielsweise Flash-Speicher und/oder NVRAM-Speicher (nicht flüchtiger Random Access Memory) wie nachfolgend beschrieben umfassen. Das Computerprogrammprodukt beinhaltet Befehle, bei deren Ausführung ein oder mehrere Verfahren wie die vorstehend beschriebenen durchgeführt werden. Das Computerprogrammprodukt kann ein computer- oder maschinenlesbares Medium sein, z. B. der Speicher 764, der Erweiterungsspeicher 774 oder Speicher auf dem Prozessor 752. In einigen Implementierungen kann das Computerprogrammprodukt als weitergeleitetes Signal empfangen werden, z. B. über den Transceiver 768 oder die externe Schnittstelle 762.
-
Die mobile Computervorrichtung 750 kann durch die Kommunikationsschnittstelle 766 drahtlos kommunizieren, die, wo erforderlich, Digitalsignalverarbeitungsschaltungen beinhalten kann. Die Kommunikationsschnittstelle 766 kann Kommunikationen unter verschiedenen Modi oder Protokollen, unter anderem beispielsweise GSM- (Global System for Mobile Communication) -Sprachverbindungen, SMS (Short Message Service), EMS (erweiterter Nachrichtenservice) oder MMS (Multimedia Messaging Service), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access), PDC (Personal Digital Cellular System), WCDMA (Wideband Code Division Multiple Access), CDMA2000 oder GPRS (General Packet Radio System) bereitstellen. Eine derartige Kommunikation kann beispielsweise über den Transceiver 768 unter Verwendung einer Funkfrequenz erfolgen. Zusätzlich kann eine Kurzstreckenkommunikation, wie z. B. unter Verwendung eines Bluetooth-, WLAN- oder eines anderen solchen Sendeempfänger (nicht dargestellt) erfolgen. Außerdem kann ein GPS (Global Positioning System)-Empfängermodul 770 zusätzliche, mit der Navigation und dem Ort verbundene drahtlose Daten für das mobile Computergerät 750 bereitstellen, die ggf. von Anwendungen verwendet werden können, die auf dem mobilen Computergerät 750 laufen.
-
Die mobile Computervorrichtung 750 kann ebenfalls unter Verwendung eines Audiocodec 760, der gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audiocodec 760 kann gleichermaßen einen hörbaren Ton für einen Benutzer erzeugen, beispielsweise über einen Lautsprecher, wie zum Beispiel in einem Handset des mobilen Computergeräts 750. Ein derartiger Ton kann einen Ton von Sprachfernsprechverbindungen, aufgenommene Töne (z. B. Sprachnachrichten, Musikdateien usw.) und auch Töne beinhalten, die von Anwendungen erzeugt werden, die auf dem mobilen Computergerät 750 betrieben werden.
-
Die mobile Computervorrichtung 750 kann in einer Anzahl von unterschiedlichen Formen implementiert sein, wie es in der Figur gezeigt ist. Es kann beispielsweise als ein Mobiltelefon 780 implementiert sein. Es kann außerdem als Teil eines Smartphones 782, Personal Digital Assistant oder eine andere ähnliche mobile Vorrichtung implementiert sein.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltungen, integrierten Schaltungen, speziell konzipierten ASICs (anwendungsorientierten integrierten Schaltungen), Computerhardware, Firmware, Software und/oder Kombinationen derselben realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller oder für allgemeine Zwecke sein kann und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Befehlen an ein Speichersystem, mindestens ein Eingabegerät und mindestens ein Ausgabegerät gekoppelt ist.
-
Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assembler-/Maschinensprache implementiert sein. Wie hierin verwendet, bezeichnen die Begriffe „maschinenlesbares Medium“ und „computerlesbares Medium“ ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal“ bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
-
Um eine Interaktion mit einem Benutzer zu ermöglichen, können die hierin beschriebenen Systeme und Techniken auf einem Computer implementiert werden, der ein Anzeigegerät (wie z. B. einen CRT- (Kathodenstrahlröhren) oder LCD- (Flüssigkristallanzeige) -Monitor) aufweist, um dem Benutzer Informationen anzuzeigen, sowie eine Tastatur und eine Zeigegerät (z. B. eine Maus oder einen Trackball) aufweist, mittels denen der Benutzer eine Eingabe an den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Benutzer zu sorgen; beispielsweise kann eine an den Benutzer bereitgestellte Rückkopplung eine beliebige Form von sensorischer Rückkopplung sein, wie z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe vom Benutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe.
-
Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Backendkomponente (z. B. einen Datenserver), oder eine Middlewarekomponente (z. B. einen Applikationsserver), oder eine Frontendkomponente (z. B. einen Clientcomputer mit einer grafischen Benutzeroberfläche oder einem Webbrowser, durch die bzw. den ein Benutzer mit den hier beschriebenen Systemimplementationen und Techniken interagieren kann) oder eine Kombination aus jenen Backend-, Middleware- oder Frontendkomponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN“), ein Fernnetzwerk („WAN“) und das Internet.
-
Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander aufweisen.
-
Obwohl weiter oben verschiedene Ausführungen detailliert beschrieben wurden, sind auch andere Modifikationen möglich. Außerdem erfordern die in den Figuren dargestellten logischen Abläufe nicht die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. Darüber hinaus können andere Schritte vorgesehen sein oder Schritte aus den beschriebenen Abläufen eliminiert und andere Komponenten zu den beschriebenen Systemen hinzugefügt oder aus denselben entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.