Erkennung thailändischer supranukleärer Parese (SP) mit Wav2Vec und OpenAI Whisper – von Jirat Chiaranaipanich
Neurodegenerative Erkrankungen betreffen 1 von 6 Menschen – quick 1 Milliarde Menschen weltweit. Zu dieser Krankheitsgruppe zählen unter anderem Alzheimer, Parkinson und A number of Sklerose. Obwohl jede Krankheit ihre einzigartigen Merkmale und klinischen Manifestationen aufweist, führen quick alle neurodegenerativen Erkrankungen zu einer Verschlechterung der Sprache.
Sprach- und Sprachveränderungen sind oft die ersten Anzeichen dieser neurologischen Erkrankungen. Die frühzeitige Erkennung dieser Symptome kann für eine wirksame medizinische Intervention von entscheidender Bedeutung sein, doch die aktuellen Diagnosemethoden sind für den großen Teil der Menschen mit diesen Krankheiten nicht zugänglich. Viele Diagnosemethoden sind teuer und können nur in Krankenhäusern in Großstädten mit spezieller Ausrüstung durchgeführt werden, was dazu führt, dass die Früherkennung neurodegenerativer Erkrankungen für weniger privilegierte Personen nur schwer zugänglich ist. Maschinelles Lernen verspricht eine nicht-invasive, kostengünstige und zugängliche Methode zur Erkennung früher Anzeichen des Ausbruchs neurodegenerativer Erkrankungen.
Eine der existierenden Parkinson-Erkrankungen ist die supranukleäre Parese (SP), die ähnlich wie viele andere neurodegenerative Erkrankungen eine Sprachverschlechterung aufweist. In diesem Projekt verwende ich Wav2Vec und OpenAI Whisper, um vorherzusagen, ob jemand an supranukleärer Parese leidet oder nicht. Dieselben Trainingsskripte könnten verwendet werden, um andere neurodegenerative Erkrankungen mit Symptomen einer Sprachbeeinträchtigung zu klassifizieren.
Die Metriken für dieses Projekt wurden von der Scikit-Be taught-Bibliothek bereitgestellt, die den Rückruf, die Präzision, die Unterstützung und den F1-Rating für das Modell berechnet. Die Genauigkeitsberechnung wurde selbst durchgeführt. Die Genauigkeit ist einfach die Anzahl der richtigen Vorhersagen geteilt durch die Anzahl der Gesamtvorhersagen. Recall, auch als True-Constructive-Fee bekannt, misst den Prozentsatz der True-Positives in allen Dateien, die tatsächlich positiv sind (richtig-positiv + falsch-negativ). Präzision ist der Prozentsatz der True-Positives in allen Dateien, die als positiv klassifiziert sind (richtig-positiv + falsch). positiv.) Der F1-Rating ist das harmonische Mittel für Erinnerung und Präzision. Unter Help versteht man die Anzahl der wahren Vorhersagen für jedes Label.
Für unsere Grundlagen eine Studie über Mandarin-Audioerkennung von Parkinson erreichte eine Genauigkeit von ~75 %. Eine Studie über Englische Audioerkennung von Parkinson erreichte eine AUC von ~0,75. Es gibt keine Basislinien für die Erkennung von Parkinson in thailändischer Sprache und keine Basislinien für die Erkennung von thailändischer supranukleärer Parese.
Die Daten für dieses Projekt wurden freundlicherweise von der Chulalongkorn-Universität zur Verfügung gestellt. Der Datensatz besteht aus .wav-Datei-Sprachaufzeichnungen von Teilnehmern mit SP und ohne SP (Kontrollgruppe). Der Datensatz wurde bereits bereinigt und vorverarbeitet und in Ordner für SP und CT aufgeteilt. Die Ordner wurden weiter in Ordner für jeden einzelnen Teilnehmer unterteilt, wobei jeder Ordner 8 verschiedene thailändische Sätze oder Phrasen enthielt:
- ชาวไร่ตัดต้นสนทำท่อนซุง
- ปูม้าวิ่งไปมาบนใบไม้ (เน้นใช้ริมฝีปาก)
- อีกาคอยคาบงูคาบไก่ (เน้นใช้เพดานปาก)
- Das ist alles
- „อาาาาาาาาาาา“
- „อีีีีีีีีี“
- „อาาาา“ (ดังขึ้นเรื่อยๆ)
- „อาา อาาา อาาาาา“
Hinweis: Bei einigen Personen fehlten bis zu drei Sätze.
Vor dem Modellieren habe ich mir viele Audiodateien aus den SP- und CT-Ordnern angehört. Insgesamt bestand der Hauptunterschied zwischen SP und CT darin, dass Menschen mit SP tendenziell einen zittrigeren, langsameren Ton sowie eine heiserere Stimme hatten. Darüber hinaus sprachen einige Personen mit SP bestimmte Silben unklar aus. Diese Sprachveränderungen sind wahrscheinlich auf die Auswirkungen der neurodegenerativen Erkrankung auf die Muskeln zurückzuführen, die die Sprachproduktion steuern, was als Dysarthrie bezeichnet wird.
Die Teilnehmer der Kontrollgruppe hingegen sprachen die Sätze regular aus, ohne dass es zu wackeligen Schwankungen kam.
Versuchen Sie, sich ein Beispiel von jemandem mit SP anzuhören: https://drive.google.com/file/d/1IP836b7V4B4nw9WfMnn9ZMA3E6aggEVL
Und ein Beispiel für jemanden ohne SP (Kontrolle): https://drive.google.com/file/d/11OcYfMsrF851dmZACPgYvMK_M0GFkVzg/view?usp=sharing
Die explorative Datenanalyse informierte später über meine Entscheidung, TimeShift nicht als Teil der Audioerweiterungen zu verwenden, da einige der mit SP verbundenen Sprachdeformitäten durch zeitversetzte Kontrollaudiodateien reproduziert werden könnten. Die Zeitdehnung einer Kontroll-Audiodatei kann das Modell verwirren, da Personen mit SP tendenziell langsamer und heiserer sprachen, wodurch die Audiodateien weniger voneinander unterscheidbar waren.
Ich habe zwei vorab trainierte Modelle getestet, Wav2Vec und OpenAI Whisper. Ich habe wav2vec mit und ohne Audio-Erweiterungen und OpenAI Whisper aus Zeitgründen ohne Audio-Erweiterungen trainiert. Alle Modelle hatten eine Spitzengenauigkeit von über 90 %.
Die Trainingsskripte können auf meiner Github-Seite eingesehen werden: https://github.com/spycoderyt/thaispdetection
Trainingsprozess
Die WAV-Dateien wurden aus Google Drive extrahiert und mit Sci-Equipment Be taught Train_test_split() getrennt. Jede Gruppe wurde in einen benutzerdefinierten Datensatz geladen und schließlich in einen DataLoader mit der Stapelgröße 16 geladen.
Anschließend wurden die Modelle zur binären Klassifizierung geladen (fb/wav2vec2-base-960h und openai/whisper-tiny). Für die Verlustfunktion wurde der Kreuzentropieverlust und der Adam-Optimierer verwendet. Außerdem wurde ein Zeitplaner mit Schrittgröße 5 und Gamma = 0,1 verwendet, um eine Überanpassung zu verhindern und seltsame Verlustdiagramme durch Verringern der Lernrate zu bewältigen, und eine Aufwärmphase für den Lernratenplan battle ebenfalls enthalten.
Für etwa 30 Epochen wurde eine Commonplace-Trainingsschleife verwendet, die die Verlustwerte aufzeichnete und die Anzahl der Fehler für jeden Satztyp zählte.
Audio-Augmentation wurde auch in der Trainingsschleife für die Versuche mit Audio-Augmentation angewendet, wobei Audiomentationen ausschließlich mit PitchShift (min_semitones = -2, max_semitones = 2, p = 0,1) verwendet wurden. Aufgrund der Artwork der Sprachbehinderung scheint TimeShift zu falsch-positiven und falsch-negativen Ergebnissen zu führen.
Am Ende der Trainingsschleife erhöht sich der Planer um einen Schritt und die Sci-kit Be taught-Bibliothek wird verwendet, um einen Klassifizierungsbericht zu drucken, der den Rückruf, die Präzision, den f1-Rating und die Unterstützung für die beiden Bezeichnungen detailliert beschreibt.
Validierung
Es wurde eine Standardauswertungsfunktion verwendet, die vier Argumente benötigt: Modell, Datenlader, Kriterium und Gerät. Anschließend wird das Modell mit mannequin.eval() in den Auswertungsmodus versetzt. Es durchläuft den Verlustdatensatz und erhöht den laufenden Verlust, während falsch klassifizierte Dateien zur Liste „falsche_Dateien“ hinzugefügt werden.
Fehleranalyse
Falsch klassifizierte Dateien aus dem Validierungssatz wurden verwendet, um zu bestimmen, welche Sätze für die Klassifizierung von SP am problematischsten waren. Insgesamt waren die Phrasen bzw. Laute die Sätze, die für die Klassifizierung am problematischsten waren.
Ergebnisse
Das Modell wurde mit Gradio auf der Huggingface Inference API bereitgestellt. Dies macht das Modell für jeden zugänglich, der testen möchte, ob er an supranukleärer Parese oder anderen neurodegenerativen Erkrankungen leidet, die ebenfalls Dysarthrie verursachen. Die Bereitstellung kann hier eingesehen werden: https://huggingface.co/spaces/spycoder/wav2vec
Die gradio app.py-Datei kann hier eingesehen werden: https://huggingface.co/spaces/spycoder/wav2vec/blob/main/app.py
Es umfasst eine Choice zum Hochladen einer WAV-Datei zur Vorhersage sowie eine Choice zur Aufnahme direkt vom Mikrofon. Benutzer sollten Aufzeichnungen von einem der 8 Sätze hochladen, mit denen das Modell trainiert wurde und die ebenfalls auf der Benutzeroberfläche aufgeführt sind.
Ich möchte mich bei Ajarn Delicate und P‘Title dafür bedanken, dass sie mich in den letzten Monaten durch diesen Prozess begleitet haben. Ich habe bei diesem Projekt viel gelernt, vom Gesamtbild der künstlichen Intelligenz bis hin zu den Einzelheiten der Kreuzentropieverlustfunktionen und der Quantisierung. Ich habe die familiäre Atmosphäre und die gelegentlichen Discord-Spiele, die wir gespielt haben, sehr genossen, lange nachdem alle anderen ihre Anrufe beendet hatten. Ich hoffe, dass ich dieses neu gewonnene Wissen als Grundlage für meine zukünftigen Projekte im Bereich KI/ML nutzen kann, und bin schon gespannt darauf, zu lernen, was ich noch nicht entdeckt habe.
Speziell zum Thema dieses Projekts denke ich, dass es große Auswirkungen haben könnte, wenn die Dysarthrie von SP auf Dysarthrie von häufigeren neurodegenerativen Erkrankungen verallgemeinert werden könnte. Obwohl SP relativ selten vorkommt, dient dieses Projekt als fundierter Konzeptnachweis für die Audioklassifizierung verschiedener neurodegenerativer Erkrankungen in thailändischer Sprache. Im Vergleich zu den Basislinien ist die Validierungsgenauigkeit der Wav2Vec- und Whisper-Modelle nach Audioerweiterung + Lernratenplanung mit Aufwärmen relativ hoch.
Die nächsten Schritte wären Kreuztests mit Krankheiten wie Parkinson und Alzheimer, um zu sehen, ob das Modell noch funktioniert, oder das Sammeln von Sprachdaten von Menschen mit diesen neurodegenerativen Erkrankungen, wenn die Dysarthrie nicht verallgemeinerbar ist. Die potenziellen Auswirkungen einer zugänglichen Frühdiagnose dieser neurodegenerativen Erkrankungen sind groß und könnten vielen Menschen zugute kommen, indem sie sie auf ihre Erkrankungen aufmerksam machen und sie dazu veranlassen, medizinische Hilfe für eine frühzeitige Intervention in Anspruch zu nehmen.