Der Hörer

aus sub-bavaria, dem Internet-Lexikon der bayerischen Subkulturen
Zur Navigation springenZur Suche springen

Projekt im Rahmen von Sub City Munich 2021.

[-- 15. September 2021 --]

Der Hörer ist eine Maschine. Ein Computer, also die Zukunft? Jedenfalls modern. Der Hörer sitzt in der Ecke und hört.

Was er versteht, druckt er aus. Vieles versteht er aber nicht. Oder genauer gesagt, er versteht es falsch und das ist das Interessante: das ist unser Ausgangspunkt.


Der Hörer basiert auf der OpenSource Spracherkennungsbibliothek CMU Sphinx. Sie ist nicht das modernste und beste auf dem Markt, aber sie funktioniert auch komplett offline. Der Hörer braucht ein Sprachmodell und ein Wörterbuch. Beides haben wir im Internet gefunden, die Arbeit vieler Stunden, geleistet von freundlichen Menschen. Wenn wir anschauen, was der Hörer erkennt und was nicht, können wir raten, mit welchen Texten er "trainiert" wurde: er kennt den ehmaligen Präsidenten Reagan, Regionalstellen und Feuergefahr. Die Texte waren wohl eher bürokratisch, politisch, technisch.


Das Wort Kiosk kennt der Hörer nicht. Das soll sich ändern. Wir versuchen also in den kommenden Tagen und Wochen, das Verständnis des Hörers in unserem Sinne zu erweitern. Dazu müssen wir Worte sammeln: eine fette Liste liegt aus und jeder kann Anregungen reinschreiben. Und wir müssen versuchen zu verstehen, was im Innern der Maschine so passiert. Und natürlich auch die Technik bedienen. Unsere Versuche logge wir mit. Und, was wir uns - oft haarsträubend unpräzise - zusammenreimen; wie das alles so funktioniert:


Vom Klang zum Wort

Für den Computer sind Laute eine (ziemlich komplizierte) Wellenform. In dieser Wellenform muss der Computer etwas erkennen. Zum Beispiel Worte. Die Wellenform des Wortes "Computer" zum Besipiel ist eingermaßen erkennbar. Es ist aber nicht eben ökonomisch für jedes Wort das Bild einer Wellenform zu hinterlegen. Denn es gibt ziemlich viele Worte.

Sinnvoller (wenn auch viel schwieriger) ist es, in den Wellenformen einzelne Buchstaben zu erkennen und die Worte dann später aus denen zusammenzusetzen. Eigentlich wollen wir aber nicht wirklich Buchstaben erkennen: Im Wort Not steckt ein o, im Wort Kiosk ebenfalls. Beide sind der selbe Buchstabe - aber unterschiedliche Laute. Das "o" in Not ist nicht nur länger als das in Kiosk. Es ist auch irgendwie anders. Reiner. Aber geschlossener (ganz spitze Lippen). Egal, wie man es beschreibt: jedenfalls sind sie unterschiedlich. Das selbe gilt für das "ch" in 'Sprache und das "ch" in ich. Es gibt also mehre Laute pro Buchtaben(-kombination). Und wir müssen von dem ausgehen, was wir hören.

Ein guter Ansatz wäre also vielleicht:

  • eine Liste an Lauten, die in der gesprochenen Sprache vorkommen, aufstellen. Das sind (siehe oben) offenbar deutlich mehr als Buchstaben.
  • Diese Laute in der Wellenform erkennen
  • Die erkannten Laute Buchstaben zuordnen
  • Die erhaltenen Buchstaben mit einer Wortliste abgleichen
  • Die wahrschenlichsten Worte hinschreiben.

Eben das ist, was die Maschine tut. Mal sehen, wo wir als Amateure da eingreifen können.


Das Sprachmodell

Das Sprachmodell legt Regeln fest, wie Laute erkannt werden. Es schaut dabei nicht die Wellenform des Wortes "Computer" an und versucht dessen Form mit einer bekannten, komplexen, Form zu vergleichen. Sondern es sucht in dieser komplexen, zusammenhängenden Form nach viel kleineren, eher einfachen, Formen. Entsprechend viel mehr (potenzierte) Möglichkeiten für Mißverständnisse und Irrtümer gibt es. Wie funktioniert das Ganze? Hier halten wir uns vornehm zurück. Das ist zwar alles haarsträubend interessant aber eben auch völlig krasse Mathematik. Hier einzugreifen - davor schrecken wir zurück.


[-- 16. September 2021 --]

Das Wörterbuch Das Wörterbuch ist schon mal eine Textdatei, die können wir also öffnen. Vielleicht können wir hier ansetzen! Und da stehen auch wunderbare Dinge drin:

 abends Q AAH B AX N TS
 abendschule Q AAH B AX N CH UUH L AX
 abendstern Q AAH B AX N CH T EH EX N
 akademischer Q AH K AAH D EEH M IH SH EX
 ...
 eingewöhnung Q AY N G AX V OHH N UU NG
 ...
 familienkreis F AH M IIH L IIH Y AX N K RR AY S
 familienkummer F AH M IIH L IIH Y AX N K UU M EX
 familienkutsche F AH M IIH L IIH Y AX N K UU CH AX

Da haben wir sie schon, die Laute. Freaks nennen sie Phone. Scheinbar sind in der Datei Worte notiert und die Aufschlüsselung in Phone dazu, Umschrift halt. e wird offenbar als EH ausgesprochen und an anderer Stelle als AX.

Das ist aber noch nicht alles Da steht öfter mal auch noch ein Q am Anfang. Das steht für kein Phon. Es scheint vor Umlauten am Anfang zu stehen. Vermutlich ist das nun eher eine Anweisung an die Maschine als ein Laut. Das alles ist mysteriös, wir können nur raten. Aber jedenfalls trauen wir uns da ran!

Als erstes machen wir einen Brutal-Versuch: Wir schreiben einfach ein neues Wort in die Liste, inklusive Lautumschrift, so wie wir sie uns halt zusammenreimen. Mal schauen, ob das Chaos gibt. Die Chancen sind hoch! (Wir haben das am Mittwoch beim Aufbau schon kurz erfolglos probiert, nun aber unter Labor-Bedingungen):


[-- 17. September 2021 --]

Wir fügen also eine Zeile ein, ein neues Wort, mittendrin. 'Habibi' und 'Kiosk' für's erste.

 habenden HH AAH B AX N D AX N
 habhaft HH AAH P HH AH F T
 habibi HH AH B IIH B IIH
 habs HH AH P S
 habt HH AAH P T
 hacker HH AE K ER


 kinovorschau K IIH N OOH F OOH EX SH AW
 kinshasa K IH N SH AAH Z AH
 kiosk K IH AO S K
 kippen K IH P EH N
 kirche K IH EX CC AX

Wir starten das Ding. Kein Fehler! Wir sprechen die neuen Worte. Und er erkennt?

 herr die videos wird
 kann die wie die ost
 haben die die uns

Also scheinbar reicht es nicht einfach nur neue Worte da reinzuschreiben. Schade, auch wenn wir das fast erwartet hatten...


[-- 22. September 2021 --]

Bitte um Vergebung für die fette Pause. In der Zwischenzeit habe ich mich durch die typische Technologie-induzierte Kette gehangelt. Eines führt zum anderen, man denkt immer "gleich hab ich's" und am Ende tut sich immer das nächste Problem auf und man kommt nie irgendwo an. Wir erinnern uns: der Plan war eigentlich unserer Software (CMUSphinx) neue Worte beizubringen. Dazu müssten wir ein neues Model generieren, dazu brauchen wir eine Menge zusätzlicher Tools, die ich alle auf meinem Arbeitsrechner installiert habe, dass die Drucker-Maschine ungestört weiterlaufen kann.

 SPHINXBASE installieren
 POCKETPHINX installieren
 TensorFlow installieren
 tensor2tensor & t2t-trainer installieren
 Docker-Container holen & starten
 python-setuptools installieren
 g2p-seq2seq installieren
 pocketsphinx-python installieren
 Versuchen das alles zum Laufen zu bringen

Das war eine verkürzte Version, insgesamt lief das alles eigentlich ganz gut, wenn's auch gedauert hat. In diesem Moment ist aber etwas unerwartetes passiert. Die Drucker-Maschine ist nämlich gestorben. Komplett tot. Das kam einigermaßen unerwartet, manchmal geht es mit dem Teufel zu. Da wir damit sowieso alles von vorne machen müssen (und auch ein anderes Gerät wählen können), habe ich entschieden, es gleich mit einer anderen Software zu versuchen. Also Vosk statt CMUSPhinx. Zudem versuchen, schnell einen neuen Rechner aufzutreiben. Ich mache es kurz. Am Ende habe ich vier Geräte durchprobiert, gehakt hat es bie jedem an irgendeiner Stelle. Der Vierte läuft nun aber...

Also Update: Wir arbeiten nun mit Vosk. Wir haben ein kleines, feines Model gefunden, die Erkennung ist besser als vorher. Wir sind aber auf dem selben Stand wie vor der Odyssee: Ich muss mal schauen, wie man das bei Vosk so macht, neue Worte einzupreisen.

Loop.


[-- folgt ... --]

Bilder

242105738-10158446374881958-8552785776614377257-n.jpg