Forum: PC-Programmierung Spracherkennung


von Sunshine (Gast)


Lesenswert?

Hallo,

hat hier schon mal jemand eine Spracherkennung programmiert(also selbst, 
keine vorgefertigte Library), die eine Mikrofon-Aufnahme eines 
beliebigen Sprechers mit einer abgespeicherten Referenz-Aufnahme 
vergleicht?

Beispiel: Ich speichere eine Mikrofon-Aufnahme mit meiner eigenen Stimme 
des Wortes "Beenden". Jetzt nehme ich eine andere Person zwei mal auf, 
diese sagt bei der ersten Aufnahme "Beenden" und bei der zweiten 
Aufnahme "Verenden". Die andere Person hat natürlich eine vollkommen 
andere Stimme als ich. Die Spracherkennung sollte im ersten Fall ein 
TRUE liefern, im zweiten Fall ein FALSE.

Es ist nun nicht so, dass ich überhaupt keine Ahnung vom Programmieren 
habe. Mir ist bewußt, dass das nicht in 5 Minuten geht, weil so Sachen 
wie Beginn des Sprechens, unterschiedliche Lautstärke der Sprecher, 
Sprechgeschwindigkeit, Umgebungsgeräusche, usw. zu Berücksichtigen sind. 
Dies soll auch kein "Wie fliege ich mal eben zum Mars"-Thread werden und 
die Spracherkennung soll auch nicht in einem ausverkauften 
Fussballstadion funktionieren. Eventuell gibt es ja irgendeine 
Quick-And-Dirty-Lösung, die zumindest unter ordentlichen 
Bedingungen(leise Umgebung, Aufnahme ist laut und deutlich) mit 
hinreichender Genauigkeit funktioniert.

Ich bin so weit, dass ich die Mikrofon-Aufnahmen durchführen und die 
Roh-Daten auf Bit-Ebene bearbeiten bzw. mit meiner Referenz-Aufnahme 
vergleichen kann. Ist doch schon mal ein Anfang... ;)

Kann man so etwas überhaupt in akzeptabler Zeit selbst programmieren?
Falls nicht, würden mich trotzdem die programmiertechnischen 
Arbeitsschritte in stark abstrahierter Form interessieren, damit ich mal 
sehe, wie viel Aufwand hinter so einer "Funktion" steckt.

Gruß,
Sunshine

von Dan1el (Gast)


Lesenswert?

Es gibt ein Buch mit dem Titel

"Grundkurs Spracherkennung"

von Stephen Euler


z.B. hier:
http://www.amazon.de/Grundkurs-Spracherkennung-Sprachsignal-Computational-Intelligence/dp/3834800031/ref=sr_1_1?ie=UTF8&qid=1338197464&sr=8-1

Vielleicht hilft das weiter.

von Tommy S. (tommys)


Lesenswert?

Hi,

leider ist Spracherkennung nicht ganz trivial. Nur zwei Aufnahmen 
miteinander zu vergleichen funktioniert ueberhaupt nicht. Das war auch 
mein erster Versuch (vor knapp 15 Jahren) und der ist gruendlich 
schiefgegangen.

Wenn Du einfach einsteigen willst, kannst Du versuchen, die Huellkurven 
der Audiosignale zu bestimmen und diese zu vergleichen. Wird aber immer 
noch extrem schlechte Ergebnisse geben.

Zielfuehrender ist es, eine FFT durchzufuehren und dann aus den 
gewonnenen Daten "Features" zu extrahieren. Das ist auch eine gaengige 
Methode bei den aktuellen Spracherkennern. Ein Vergleich der Features 
mit vorhandenem Material und gewissen Unsicherheiten bringt Dich 
zumindest in die Naehe Deines Ziels. Bei Deinem Vergleich von "Beenden" 
und "Verenden" solltest Du auf unterschiedlichen Frequenzbaendern etwas 
sehen koennen. Beschaeftige Dich aber auch intensiv mit dem Thema, wie 
Sprache funktioniert und wie der Klang der Sprache entsteht. Nur mit 
diesem Wissen kann das halbwegs funktionieren und Du verstehst auch, 
warum die Fehler auftauchen...

Gruesse,
TommyS

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.