paint-brush
wav2vec2 für automatische Spracherkennung in einfachem Englischvon@pictureinthenoise
715 Lesungen
715 Lesungen

wav2vec2 für automatische Spracherkennung in einfachem Englisch

von Picture in the Noise7m2024/03/13
Read on Terminal Reader

Zu lang; Lesen

wav2vec2 ist ein führendes maschinelles Lernmodell für den Entwurf automatischer Spracherkennungssysteme (ASR). Es besteht aus drei allgemeinen Komponenten: einem Feature-Encoder, einem Quantisierungsmodul und einem Transformator. Das Modell wird anhand reiner Audiodaten vorab trainiert, um grundlegende Spracheinheiten zu lernen. Das Modell wird dann anhand gekennzeichneter Daten verfeinert, wobei Spracheinheiten Text zugeordnet werden.
featured image - wav2vec2 für automatische Spracherkennung in einfachem Englisch
Picture in the Noise HackerNoon profile picture

Einführung

Wenn Sie sich bereits mit der automatischen Spracherkennung („ASR“) beschäftigt haben, besteht eine gute Chance, dass Sie auf wav2vec 2.0 („wav2vec2“) von Meta AI Research gestoßen sind. Es gibt einige hervorragende technische Ressourcen, nicht zuletzt das Originalpapier zu wav2vec2 selbst, das beschreibt, wie das Modell des maschinellen Lernens („ML“) funktioniert. Außerdem hat das Meta AI Research-Team auf seiner Website einen schönen Überblick über wav2vec2 .


Ich möchte Sie ermutigen, einen Blick darauf zu werfen, da es eine schöne Zusammenfassung der wissenschaftlichen Arbeit bietet und die Abbildungen des wav2vec2-Modells in diesem Artikel von dieser Seite stammen. Vor diesem Hintergrund scheint es nicht viele Beiträge zu geben, die wav2vec2 in „einfachem Englisch“ erklären. Genau das versuche ich mit diesem Artikel zu erreichen.


In diesem Artikel wird davon ausgegangen, dass Sie einige grundlegende ML-Konzepte verstehen und daran interessiert sind, zu verstehen, wie wav2vec2 auf hohem Niveau funktioniert, ohne zu tief in die Materie einzusteigen.


Dementsprechend wird in den folgenden Abschnitten versucht, viele technische Details zugunsten einfacher Erklärungen und gegebenenfalls nützlicher Analogien zu vermeiden.


Dennoch ist es hilfreich, frühzeitig zu wissen, dass wav2vec2 aus drei Hauptkomponenten besteht: dem Feature Encoder , dem Quantization Module und dem Transformer .


Jedes wird im Laufe der Diskussion besprochen, indem man mit einigen grundlegenden Ideen beginnt und sich dann auf komplexere (aber immer noch verdauliche) Punkte konzentriert. Beachten Sie, dass wav2vec2 für andere Zwecke als ASR verwendet werden kann.


Vor diesem Hintergrund wird im Folgenden das Modell in einem ASR-spezifischen Kontext erörtert.

Ein sanfter Überblick

Bei seiner Einführung im Jahr 2020 bot wav2vec2 ein neuartiges Framework für den Aufbau von ASR-Systemen. Was war das Besondere daran? Vor wav2vec2 wurden ASR-Systeme im Allgemeinen mithilfe gekennzeichneter Daten trainiert. Das heißt, frühere Modelle wurden an vielen Beispielen von Sprachaudio trainiert, wobei jedem Beispiel eine Transkription zugeordnet war. Um die Idee zu erklären, betrachten Sie diese Wellenform:


Beispielwellenform


Es ist nicht ganz klar, was diese Wellenform darstellt, wenn man sie nur betrachtet. Wenn Ihnen jedoch gesagt wird, dass der Sprecher, der dieses Audio erzeugt hat, die Worte „Hallo Welt“ gesagt hat, können Sie wahrscheinlich einige intelligente Vermutungen darüber anstellen, welche Teile der Wellenform mit dem Text übereinstimmen, der sie darstellt.


Sie könnten – zu Recht – vermuten, dass das erste Segment der Wellenform mit dem Wort „Hallo“ verbunden ist. In ähnlicher Weise können ASR-Modelle lernen, wie man Assoziationen zwischen gesprochenen Audiowellenformsegmenten und geschriebenem Text herstellt.


Allerdings betonen die ursprünglichen wav2vec2-Forscher in ihrer Arbeit : „[Viele] Spracherkennungssysteme erfordern Tausende von Stunden transkribierter Sprache, um eine akzeptable Leistung zu erreichen, die für die überwiegende Mehrheit der fast 7.000 weltweit gesprochenen Sprachen nicht verfügbar ist.“


Deshalb erfanden die Forscher von wav2vec2 ein neues Modell, bei dem es nicht notwendig ist, „tausende Stunden transkribierter Sprache“ zu haben, um das System zu trainieren. Sie verweisen auf eine nützliche menschliche Analogie: Babys lernen nicht sprechen, indem sie ein Wort hören und dann sofort eine Textdarstellung dieses Wortes sehen.


Sie lernen Sprachdarstellungen, indem sie den Menschen in ihrer Umgebung (z. B. ihren Eltern, Geschwistern usw.) zuhören. wav2vec2 lernt auf analoge Weise: indem es zuerst zuhört .


Wie dies erreicht wird, ist natürlich Gegenstand der Diskussion in diesem Artikel. Bedenken Sie, dass wav2vec2 im Großen und Ganzen darauf ausgelegt ist, zwei Dinge zu erreichen :


  1. Erfahren Sie, welche Spracheinheiten mit unbeschrifteten Audioproben versehen werden sollten.


  2. Sagen Sie korrekte Spracheinheiten voraus.


An dieser Stelle müssen Sie nicht vollständig verstehen, was mit diesen Punkten gemeint ist. Sie werden im Folgenden erläutert. Behalten Sie sie vorerst einfach im Hinterkopf.

Spracheinheiten lernen

Stellen Sie sich vor, Sie verfügen über einen riesigen Datensatz mit Audiobeispielen – beispielsweise für eine Reihe von Englisch sprechenden Personen. Auch ohne formale Vorkenntnisse in Phonetik verstehen Sie möglicherweise intuitiv, dass die englische Sprache mithilfe einer Reihe von Grundlauten vokalisiert wird, die „aneinandergereiht“ werden, um Wörter, Sätze usw. zu bilden.


Wenn Sie Englisch sprechen, denken Sie natürlich nicht darüber nach, auf diese Weise zu sprechen, und Ihre Lautäußerungen von allem, was Sie sagen möchten, erfolgen mehr oder weniger automatisch! Der Punkt ist jedoch, dass die gesprochene englische Sprache – und eigentlich jede gesprochene Sprache – in grundlegendere, diskretere Laute zerlegt werden kann.


Wenn wir ein ASR-Modell irgendwie dazu bringen könnten, diese Grundlaute zu „extrahieren“, könnten wir damit jedes Audiobeispiel gesprochener Sprache kodieren . Dies ist, was wav2vec2 tut, indem es Audiodaten vorab trainiert .


Vortraining bedeutet in diesem Zusammenhang, dass der erste Teil des Modelltrainings insofern selbstüberwacht ist, als ihm nicht explizit „gesagt“ wird, wie die Grundtöne für einen bestimmten Satz von Audiodaten lauten sollen.


Wenn man etwas tiefer geht, wird das System mit einer großen Anzahl reiner Audiobeispiele „gefüttert“ und kann aus diesen Beispielen eine Reihe grundlegender Spracheinheiten lernen.


Somit besteht jedes Audiobeispiel effektiv aus einer Kombination dieser Spracheinheiten; auf die gleiche Weise, wie Sie ein gesprochenes Audiobeispiel in eine Folge von Phonemen aufteilen können.


Wichtig ist, dass die grundlegenden Spracheinheiten, die wav2vec2 lernt, kürzer als Phoneme sind und eine Länge von 25 Millisekunden haben.


An dieser Stelle stellt sich die Frage: Wie lernt wav2vec2 diese Spracheinheiten allein aus Audio?


Der Prozess des Lernens von Spracheinheiten beginnt mit dem Feature Encoder. wav2vec2 „kodiert Sprachaudio über ein mehrschichtiges Faltungs-Neuronales Netzwerk.“


Faltungs-Neuronale Netze oder CNNs sind Modelle, die es uns ermöglichen, Merkmale aus einer gegebenen Eingabe zu lernen, ohne dass diese Merkmale vorher explizit identifiziert werden.


Man kann sich jede Schicht eines CNN so vorstellen, dass sie Merkmale aus einer Eingabe extrahiert, wobei diese Merkmale mit zunehmendem Aufstieg zu höheren Schichten immer komplexer werden.


Im Fall von Audiodaten könnte man sich vorstellen, dass die erste Schicht in einem CNN Fenster mit Audioinformationen untersucht und Merkmale auf niedriger Ebene, wie etwa primitive Geräusche, extrahiert.


Eine spätere Schicht im selben CNN würde unter Nutzung der in früheren Schichten extrahierten Merkmale auf niedrigerer Ebene Merkmale auf höherer Ebene kodieren, beispielsweise Laute, die sich Phonemen annähern.


Dieser Idee folgend kann wav2vec2 damit beginnen, „zu lernen, welche Spracheinheiten mit unbeschrifteten Audiobeispielen versehen werden sollen“, indem es Zeitabschnitte jedes Audiobeispiels an den Feature Encoder übergibt und eine latente Darstellung jedes Abschnitts generiert.


wav2vec2 Feature-Encoder


Die Sammlung latenter Darstellungen stellt jedoch keine diskreten Spracheinheiten dar. Diese Darstellungen müssen auf irgendeine Weise diskretisiert werden. Dies wird erreicht, indem die Ausgabe des Feature-Encoders an ein Quantisierungsmodul weitergeleitet wird.


wav2vec2 Quantisierungsmodul


Tatsächlich nimmt das Quantisierungsmodul alle verschiedenen vom Feature Encoder generierten Audiodarstellungen und reduziert sie auf einen endlichen Satz von Spracheinheiten. An dieser Stelle lohnt es sich zu fragen, ob wav2vec2 für eine einzelne Sprache oder mehrere Sprachen vorab trainiert werden sollte.


Die Logik sagt uns, dass die Erfassung von Spracheinheiten, die mehrere Sprachen repräsentieren, im Vergleich zu einer einzelnen Sprache wahrscheinlich nützlicher ist, wenn ASR-Systeme entworfen werden, die in vielen Sprachen verwendet werden können.


Zu diesem Zweck ermöglicht das Vortraining von wav2vec2 mit einer Auswahl mehrsprachiger Audiobeispiele dem Modell die Erzeugung von Spracheinheiten, die tatsächlich mehrere Sprachen erfassen.


wav2vec2 Mehrsprachige quantisierte latente Sprachdarstellungen


Die Ermittler von wav2vec2 erkannten den Wert dieses Ansatzes, da „für einige Sprachen sogar [Audio-]Daten begrenzt sind“. Ihre ursprünglichen Erkenntnisse ergaben , „dass einige Einheiten nur für eine bestimmte Sprache verwendet werden, während andere in ähnlichen Sprachen und manchmal sogar in Sprachen verwendet werden, die nicht sehr ähnlich sind.“

Vorhersage von Spracheinheiten

Die Bestandsaufnahme von Spracheinheiten ist ein erster Schritt auf dem Weg zur Codierung von Audiobeispielen gesprochener Sprache. Aber was wir wirklich erreichen wollen, ist, wav2vec2 darin zu trainieren, wie diese Einheiten zueinander in Beziehung stehen.


Mit anderen Worten: Wir möchten verstehen, welche Spracheinheiten wahrscheinlich im gleichen Kontext vorkommen. wav2vec2 übernimmt diese Aufgabe über die Transformer-Schicht.


wav2vec2 Transformator


Der Transformer ermöglicht es wav2vec2 im Wesentlichen, im statistischen Sinne zu lernen, wie die Spracheinheiten auf die verschiedenen Audiobeispiele verteilt sind. Dieses Verständnis erleichtert die Codierung von Audio-Samples, die das Modell nach dem Vortraining „sehen“ wird.

Feinabstimmung

Letztendlich muss ein ASR-System in der Lage sein, eine Texttranskription für eine bestimmte Audiosequenz zu erstellen, die es zuvor noch nicht „gesehen“ hat. Nach dem Vortraining über die oben beschriebenen Schritte wird wav2vec2 für diesen Zweck feinabgestimmt . Dieses Mal werden dem Modell explizit Beispiele von Audiobeispielen und den dazugehörigen Transkriptionen gezeigt.


An diesem Punkt ist das Modell in der Lage, das, was es während des Vortrainings gelernt hat, zu nutzen, um Audioproben als Sequenzen von Spracheinheiten zu kodieren und diese Sequenzen von Spracheinheiten einzelnen Buchstaben im Vokabular zuzuordnen, die die Transkriptionen darstellen (d. h. die Buchstaben „a“ bis „). z“ im Fall von Englisch).


Das Lernen während der Feinabstimmung vervollständigt das Training des wav2vec2-Modells und ermöglicht es ihm, den Text für neue Audiobeispiele vorherzusagen, die nicht Teil seines Trainings während der Feinabstimmung waren.

Abschluss

Natürlich ist die Low-Level-Mechanik von wav2vec2 weitaus komplexer als das, was oben dargestellt wurde. Um es noch einmal zu betonen: Die Idee dieses Artikels besteht darin, Ihnen ein einfaches, konzeptionelles Verständnis dafür zu vermitteln, wie das Modell funktioniert und wie es trainiert wird.


wav2vec2 ist ein sehr leistungsfähiges ML-Framework zum Aufbau von ASR-Systemen und seine Ende 2021 eingeführte XLS-R- Variante wurde auf 128 Sprachen trainiert und bietet somit eine verbesserte Plattform für den Entwurf von ASR-Modellen in mehreren Sprachen.


Wie in der Einleitung erwähnt, stehen Ihnen zahlreiche hervorragende technische Ressourcen zur Verfügung, die Ihnen dabei helfen, mehr zu erfahren. Insbesondere die von Hugging Face bereitgestellten Tools können für Sie besonders nützlich sein.