Archiv verlassen und diese Seite im Standarddesign anzeigen : Stimmen unterscheiden
hirnfrei
03.07.2016, 00:16
Mahlzeit!
Ich brauch mal Hilfe. Und zwar, mein Bot soll ja nicht nur die Worte verstehen können, die gesprochen werden, der soll nach Möglichkeit auch bekannte Stimmen erkennen. Ich war vor ein paar Jahren bei einem Vortrag, wo es hiess es wäre sehr einfach Stimmen zu unterscheiden, da Stimmen sich nahezu nie gleichen und es gerade für Sicherheitssysteme eine einfache und gute Möglichkeit wäre, sicher zu gehen das da die richtige Person vorhanden ist. Da ging es auch noch drum wie man erkennt ob eine Stimme vom Band kommt oder nicht, aber das ist mir erst einmal egal.
Ich suche nun Infos, wie und woran man Stimmen unterscheiden kann. Aber ich finde nur Störungen im Kopf wo der Mensch dann keine Stimmen mehr erkennt. Muss ich jetzt meinen Bot, nachdem er mal hört, dann erst zum Therapeuten schicken, oder kann mir von euch jemand sagen, nach was genau ich da suchen muss. Oder hat von euch sogar jemand Ahnung wie man das realisiert?
i_make_it
03.07.2016, 01:07
Ganz so einfach ist das nicht.
Streß, verstopfte Nase, Heiserkeit, etc. können die Stimme einer Person schon ganz gut verändern.
Ein zu scharf eingestelltes System kann da eine bekannte Person schnell mal als einen Fremden identifizieren.
Ein zu lasch eingestelltes System identifiziert wiederrum einen Fremden mit selben Sprechrythmus auch mal als eine bekannte Person.
Das sind mehrere tausend Merkmale die geprüft werden um ein halbwegs fehlerfreies System zu erhalten.
http://www.tik.ee.ethz.ch/spr/publications/Pfister:01a.pdf
http://www.twinsoft-biometrics.de/fileadmin/user_upload/redaktion/pdfs/Pressetexte/Artikel_und_Anzeige_Mag_fuer_die_Polizei_12.09_01. pdf
hirnfrei
03.07.2016, 01:21
Danke. Schaue ich mir gerne an.
Bei meinem Bot ist keine 100%ige Sicherheit notwendig. Ich meine, wir Menschen bringen auch mal Stimmen durcheinander, gehen davon aus mit jemand Anderem zu reden wie es dann tatsächlich ist. Gerade am Telefon hatte ich das schon sehr oft. Da mein Bot ja auch noch eine visuelle Identifikation vornehmen wird (das geht mit OpenCV überraschend einfach und wirklich gut!) sollte das relativ gut funktionieren. Wenn er in einer Gruppe nicht direkt alle an der Stimme erkennt kann ich damit leben. Wenn er aber sieht, wer sich im Umfeld befindet kann er die möglichen Stimmen dadurch schon einkreisen. Oder auch anders gesagt, wenn jemand neben oder hinter dem Bot etwas sagt und er kann die Stimme nicht zuordnen, wird er auch in der Lage sein seinen "Kopf" in Richtung des Sprechers zu drehen und diesen dadurch zu erkennen. Wenn er auch da die Person nicht erkennt ist stark anzunehmen, dass die Person ihm noch unbekannt ist, bzw. er die Person noch nicht oft genug gesehen hat um genug Daten für eine Identifizierung zu sammeln.
Ich hoffe ja nur das ein Raspi mit All dem auch klar kommt. Ich befürchte ja stark das ich das letzten Endes auf mehrere Raspis, bzw. andere Einplatinencomputer ausweiten werden muss.
Klang von Stimmen wird durch Oberwellen moduliert. Die liegen - geschätzt - bei vielleicht 4000-12000 Hz.
Ich würde also einen Filter einbauen, der genau diesen Bereich isoliert und dann mit Mustern vergleichen, die ebenfalls in diesem Frequenzbereich liegen.
Mein 1. Ansatz wäre dazu eine FFT, die den gefilterten aktuellen Klang mit Stimmmustern dieses Frequenzbandes per cross-correlation vergleicht, ggf. vorselektiert durch im Schritt vorher bereits erkannte Wortmuster aus den Sprech- und Sprachmustern der betreffenden Personen :D
i_make_it
03.07.2016, 10:34
Da man für bestimmte Schritte permanent die selben Filter anwenden muß kann man eine Vorverarbeitung mit Digitalen Signalprzessoren (DSP) durchführen um den Raspi zu entlasten.
http://www.dafx14.fau.de/papers/dafx14_sebastian_merchel_freedsp_a_low_budget_ope. pdf
http://user.it.uu.se/~ps/SAS-new.pdf
https://www-sigproc.eng.cam.ac.uk/foswiki/pub/Main/3F3/3F3__Digital_Signal_Processing_(DSP)_2015_1-49.pdf
http://web.itu.edu.tr/hulyayalcin/Signal_Processing_Books/DSP_Applications_Mitra.pdf
http://www.ee.cuhk.edu.hk/~myuan/Thesis.pdf
https://arxiv.org/ftp/arxiv/papers/1305/1305.1145.pdf
hirnfrei
03.07.2016, 14:56
So viel Material und so wenig Zeit ^^
@HaWe ich habe auch schon gelesen, dass man ein geglättetes Kurzzeitspektrum mit FFT filtern kann, mit welchem man dann auch eine Distanzmessung anwenden kann. Käme der Geschichte ja entgegen.
Meine Hochachtung hast du wenn du das hinbekommst ;) , ich denke dass Spracherkennung mit allem was dazu gehört ein außergewöhnlich anspruchsvolles Gebiet ist. Viel Erfolg.
Grüße, Bernhard
hirnfrei
03.07.2016, 21:02
Als ich die Idee hatte mit einem Bot, was mittlerweile eigentlich schon aufgespalten ist auf Bot und KI, haben in Allen Foren Alle gesagt, vergiss es das können nur Raketentechniker mit Quantum-Abitur. So mehr oder minder.
Aber ganz ehrlich? Es gibt echt für jeden Scheiss mittlerweile irgendwo eine API. Für Gesichtserkennung usw. OpenCV, wo auch ein neuronales Netz mit realisiert werden kann, aber da bin ich immer noch blutiger Anfänger (@HaWe ^^), Spracherkennung macht PocketShinx usw. Ich denke es ist nicht so sehr das Wissen wie etwas funktioniert. Das Wissen habe Andere schon umgesetzt. Es ist mehr die Phantasie, das Alles dann auch so zusammen zu stricken das am Ende ein Pulli bei raus kommt.
Wenn ich es hin kriege, dann nehme ich deine Hochachtung gerne an und gebe sie auch an entsprechende Leute weiter!
Wenn nicht, dann kann ich wenigstens sagen ich habs versucht ^^
Zum NN: das ist kein Hexenwerk.
Die FFT liefert bei Schwebungen /Tönen / Geräuschen ja Spikes, die den Grundfrequenzen entsprechen (0 bis zur Nyquist Frequenz).
Für Stimmenklang bei gesprochenen Wörtern sind wie bereits erwähnt die tiefen Frequenzen sicher weniger entscheidend (- oder doch? - müsste man vorab testen!), sodass man sich auf die Spikes der höheren oder zumindest weniger typischer Frequenzen konzentrieren kann (das sei jetzt mal so dahin gestellt), das sind dann sicher nicht mehr so schrecklich viele.
Die Verteilung der Spikes lässt sich als Input-Signal isolierter, diskreter digitaler Sensoren betrachten, und die können in ein neuronales Netz eingespeist werden.
Datenbank für den Vergleich ("alle mit allen") sind sämtliche gesprochene bekannte Wörter von allen Probanden.
Angenommen, du betrachtest die 100 höchsten (oder "wichtigsten") Frequenzspikes bis zur Nyquist Frequenz, dann hast du 100 Inputs für Input-Neuronen.
Angenommen, du hast 6 Personen, die erkannt werden sollen, dann hast du 6 Output-Neuronen.
Jede Person hat dabei sicher ein paar aussergewöhnliche FFT-Spike-Kombinationen, die trainiert werden können.
Da nicht auszuschließen ist, dass auch XOR-Kombination auftreten, scheidet ein Feed-Forward-Netz aus und man braucht daher mehrschichtige Netze.
Rückkopplung ist nicht notwendig, da nicht auf zeitlichen Kontext geachtet werden muss.
Also reicht ein normales Backpropagation-Netz aus Sensor-Schicht (100) , verdeckter Schicht (30-40, schätze ich, müssten reichen) und Ausgangs-Schicht (6).
Das in dieser Komplexität zu trainieren habe ich bereits mit einem Arduino Due geschafft - das einzige "Problem" ist der extreme Zeitaufwand, der Wochen oder Monate dauern kann.
Wenn du hier eine Automatisierung einprogrammieren kannst (bei ausreichendem *.wav Basis-Sound-Material), lässt du das Teil einfach ein paar Wochen lang Tag und nach durchlaufen, fertig.
Hier wird einfach ständig wiederholt:
a) ein .wav Sound eines bekannten Probanden wird randomisiert ausgewählt, die FFT erzeugt, dann die höheren Frequenzspikes ins NN eingespeist und dann das Netz aktiviert.
b) Der Netz-Output wird kontrolliert und solange das Netz im Lernmodus moduliert, bis Ist-Output mit Soll-Output (der bekannten aktuellen Person) übereinstimmt.
c) Dann kommt der nächste Zufalls-Sound dran.
d) Dann schließlich wird mit "Life-Sounds" getestet und trainiert
e) Das Lernen ist erledigt, wenn die Erkennungsrate z.B. bei den letzten 200 Sounds unterhalb einer selbst gewählten, akzeptablen Fehlergrenze liegt (z.B. 0,01 == 1%)
- das war's.
Prinzipiell ist auf diese Weise auch ein NN mit den Wörtern / Wortbedeutungen selber zu füttern, aber dann wächst die Netz-Komplexität ins exponentielle:
Du musst dann ALLE Spikes einspeisen (z.B. 4000), und hast 2 Outputbereiche,
Bereich 1: 1-6 für die Person und
Bereich 2: 7-wasweissich für die Anzahl der trainierbaren Wörter (z.B. 50).
Auch die Verdeckte Schicht ("Hidden Layer") wächst dann proportional zur Input-Schicht ("Sensor-Layer").
Sätze sind dann aber immer noch nicht möglich, dafür werden erneut weitere Module erforderlich.
Das macht zunächst eine Syntax-Analyse, z.B. per P-Marker:
S - Satz,
NP - Nominalphrase,
VP - Verbalphrase,
ART – Artikel,
N - Nomen,
V -Verb
(Konjunktionen, Präpositionen, Pronomen, Attribute u.a.m. hier noch ganz außen vor!)
z.B.:
"Hannah jagt die Katze "
[ S [NP [N Hannah ] ] [VP [V jagt] [NP [ART die] [N Katze] ] ] ]
und daraus wird dann die "Bedeutung" generiert, wozu zunächst dann die Kasusmarkierung erforderlich ist (wer jagt wen?), was hier nicht ganz trivial ist (denn beide Nomen könnten theoretisch hier sowohl im Nominativ als auch im Akkusativ stehen, d.h. Subjekt oder Objekt sein, für Hannah kämen auch zusätzlich Dativ und Vokativ in Frage, Dativ fällt allerdings raus, weil "jagt" eine konjugierte Form von "jagen" ist, welches transitiv ist), daher kommt hier auch eine Satzstellungsanalyse zum Tragen.
Der nächste Gesichtspunkt wäre ggf. Verb-Konjugation ( "Hannah jagt die Katze" versus "Hannah jagte die Katze") sowie Informations-Ebene versus Appell-Ebene ("Hannah jagt die Katze" versus "Hannah jage die Katze") -
.... was jetzt aber schon extrem ins Gebiet der Lingustik hinein reicht.
hirnfrei
04.07.2016, 17:15
Ich glaube ich muss mir das mit den NN doch mal genauer anschauen ;). Wenn du das schreibst klingt das immer alles so einfach und logisch ^^.
Wären die 6 Personen dann fix, oder kann das NN sich dann auch selbstständig, oder nach Vorgabe, neue Personen merken?
Diese Geschichte mit dem DUE. Wenn ich dich richtig verstanden habe wäre eine Stimmerkennung per NN auf diesem Gerät möglich? Das wäre doch eine Möglichkeit diese "Fähigkeit" auf eine andere Plattform zu bringen und die Ressourcen des Raspis zu schonen.
Was den Trainingsaufwand angeht. Automatisieren sollte da ja kein Problem darstellen würde ich sagen. Auch wenn der mal ein paar Wochen trainieren muss tut ja nicht weh. Das Ding wird angeworfen und zur Seite gestellt. Noch eine LED dran die signalisiert das die entsprechende Fehlergrenze erreicht ist, dann wäre das ja eine lockere Geschichte. Aber. Darf das Teil dann nie wieder vom Strom genommen werden? Oder kann man das Erlernte dann speichern und bei Bedarf wieder laden?
Im Falle der Wort- Satzerkennung vertraue ich da mittlerweile stark auf PocketSphinx. Das funktioniert echt super, solange der Input sauber ist. Sitze ich also zum Beispiel alleine hier, ohne das irgendwelche Hintergrundgeräusche dabei sind und das Mikro nicht zu nah ist, dann klappen selbst Sätze wie "Wie geht es dir" ziemlich gut. So verbessert es auch wenn ich den Input einfach durch 2 teile, dann geht einiges an Rauschen dahin und die Erkennung wird verbessert. Die API dürfte dir auch gefallen. Das sind nur ganz wenige Aufrufe zum Trainieren und dann zum erkennen. Das Erkennen geht in der Regel unter 2 Sekunden.
Aber leider ist es wie bei den meisten Lösungen, Deutsch wird im Vergleich zu Englisch nur am Rande unterstützt. Aber der deutsche Sprachschatz kann man erweitern. Ich weiss zwar noch nicht genau wie, aber ich denke das wird sich letzten Endes auch mal regeln lassen. Meine Bot-KI soll deutsch können. Dann reden wir über englisch ;).
nein, der Due hat ja nur 1 Prozessor, nur 84 MHz, kein pre-emptives Multitasking und nur 92 MB RAM - da nimmt man besser einen der 4 Raspi cores für diesen Zweck, mit Training und Erkennung in einem high-prio pthread task, ggf mit einer schnellen USB-HD für schnellen Dateizugriff.
Wenn du mehr als 6 Personen erkennen willst, heißt das zunächst: Das Netz von vornherein darauf skalieren, sonst musst du mit dem Training hinterher wieder bei Null beginnen.
Und erkennen kann ein NN immer nur das, was auch an Daten (wenigstens grob, aber dann mit entsprechender Fehlerrate) trainiert wurde.
Unbekannte Daten => Ergebnis=Müll.
Ich finde auch: wenn fertige Lösungen ausreichen und die Anwendung das Ziel ist, muss man das Rad nicht neu erfinden. Anders sieht es aus, wenn man Spaß am Selber-Erfinden hat, auch bei schlechteren - aber vlt flexibleren - Resultaten.
- - - Aktualisiert - - -
ps,
scheiße, schon wieder beim Schreiben automatisch von Forum ausgeloggt! was ist das für ein Mist?! alles weg !!
Kann man nicht die LogIn-Dauer länger einstellen?!?
jetzt nur in aller Kürze:
für ein 100x40x10 Netz brauchst du je Verknüpfung nur alle Verbindungsgewichte speichern, also 100x40 plus 40x10 double-Werte, das ist das Gedächtnis, was nicht besonders viel ist, das kannst du beim Neustart leicht wieder in die Einzel-Neuronen laden.
Unterschätze aber auch das RAM nicht:
pro Verknüfung über 16 Bytes samt temporärer Hilfsvariablen, das sind hier mindestens 600kB (doch mehr, als ein Due besitzt, auch wenn man nur floats statt double verwendet),
und bei einem größeren 1000x500x100 Netz wird mit geschätzen 1-2GB auch schon so langsam das RAM des Pi gesprengt (nur für das Netz, plus Programmcode und wave-Puffer oben drauf).
4000x2000x100 - das wären dann schon mindestens 12GB Variablen im RAM, grob überschlagen... :-/
hirnfrei
04.07.2016, 18:28
Ja das mit dem Speicher. Ich gehe eh nicht davon aus, dass mein Projekt letzten Endes auf einem einzelnen Gerät realisiert werden kann. Ich habe auch keine Lust einen kompletten PC dann zu verbauen ^^. Da wird sich noch zeigen müssen wie die Hardware zu da eingesetzt werden muss. Gibt ja auch noch leistungsstärkere Geräte wie der Raspi.
Was das selber Bauen angeht. Klar ist der Spass am selber Bauen da, aber ich will das grosse Ganze selber bauen. Ziel ist letzten Endes, eine KI dich mich versteht, die sieht und hört und die nach Möglichkeit auch selber lernen kann. Das Alles unter einen Hut zu bringen ist schon letzten Endes so viel Bastelarbeit, dass es schon fast zur Lebensaufgabe werden würde, wenn man da jedes Rad neu erfinden müsste. Zudem du es ja schon ansprichst, am Ende ist das Rad dann nicht so schnell und effizient wie die die es schon gibt.
Was ich aber wirklich cool finde ist die Tatsache das man die Gewichte einfach nur speichern muss. Dann kann ich ja theoretisch das NN auf einem Desktop trainieren, dort auf den grossen Platten wirklich viele Vergleichsounds haben und dann die Werte einfach in die Software auf dem Raspi einspielen. Das klingt echt verdammt gut!
ntl kannst du das Netz extern trainieren - aber dann muss das Netz auf dem Pi trotzdem 1:1 samt aller Neuronen und der exakten Architektur dem Trainings-Netz entsprechen. Was die Größe und das RAM angeht hast du also nicht viel gespart, eventuell aber ein wenig Trainingszeit auf dem schnelleren Trainings-PC.
Im Ausführungsmodus muss dann aber auf dem Pi ebenfalls alles an Daten in derselben Weise wie beim Training zur Verfügung stehen, also hier überhaupt kein Vorteil (abgesehen von der Personen-wav-Vergleichsdatenbank auf SD oder USB)...
- und all das geht sowieso nur bei einer selbst geschriebenen Spracherkennung, nicht zusammen mit der PocketSphinx.
hirnfrei
04.07.2016, 20:06
Warum sollte das mit PocketSphinx nicht funktionieren?
Davon aber ab, zur Stimmerkennung ist das gesprochene ja meines Wissens nach eh weniger wichtig. Also können die Rohdaten von der Soundkarte (eventuell auch vor gefiltert mit marsyas) auch direkt ans NN gehen.
Was die Datenmenge angeht, so wird da auch wegen der Gesichtserkennung früher oder später eine externe SSD zum Einsatz kommen müssen. Ich denke, auf Dauer ist das nichts für MicroSD Karten.
warum das nicht mit Pocketsphinx geht?
Ja Himmel, wo hat denn Pocketsphinx nochmal deine Wortdatenbank mit deinen zuzuordnenden Sprechern? ;)
Und wie soll die Spracherkennung von Pocketsphinx mit der FFT und dem NN zusammenarbeiten? :o
Auch können niemals die Rohdaten direkt ans Netz gehen, das hatte ich doch geschrieben 8)
hirnfrei
04.07.2016, 21:21
Wie ich aber sagte, Pocketsphinx ist dafür auch nicht nötig. Das kümmert sich ja um die Spracherkennung, nicht um die Stimmerkennung.
Ich erwähnte aber das die Rohdaten vor gefiltert sein können oder? Guckst du hier:
Also können die Rohdaten von der Soundkarte (eventuell auch vor gefiltert mit marsyas) auch direkt ans NN gehen
Marsyas sollte in der Lage sein da die entsprechenden Werte zum Vergleichen raus zu holen.
Schau doch mal hier -> Marsyas (http://marsyas.info/doc/sourceDoc/html/group__Analysis.html)
hirnfrei
05.07.2016, 01:03
Gehe ich eigentlich recht in der Annahme, dass bei einer Aufnahme die Werte die Frequenz in Hz darstellen?
sollte nur eine Erklärung zur Funktion eines NNs sein, wie man Sprach- und Stimmenerkennung zusammen mit einer FFT damit bearbeiten kann, es war nicht auf dein Marsyas und auch nicht auf deine Pocketsphinx zugeschnitten, mit denen arbeite ich ja nicht.
Wie wav Daten gesampelt sind, musst du dir wohl noch mal anlesen - das kann ich dir hier nicht in der Kürze eines Posts erklären...
- Ich glaube, da hast du was grundsätzlich komplett missverstanden: es ist Sampling wie mit einem ADC, das sind natürlich NICHT irgendwelche Frequenzwerte!
hirnfrei
06.07.2016, 08:59
Ich erwähnte ja schon, dass ich mich bislang nie für Audiodaten interessiert habe. Wenn ich da schon den vollen Plan hätte müsste ich ja nicht fragen.
ei, du misst - ganz einfach ausgedrückt - dasselbe, was auch beim Lautsprecher rauskommt:
ganz primitive (aber schnelle) analoge Spannungs-Änderungen, jeweilige Level gemessen in Volt (verstärkter Micro-Eingang), aber eben blitzschnell gemessen und gespeichert, nichts anderes ist Audio-Sampling.
hirnfrei
06.07.2016, 15:12
Wir haben mal in der Schule ein primitives Mikro gebaut. Das war schon ganz lustig ;).
Hallo hirnfrei,
Du ich hab mal eine Frage wegen pocketsphinx an Dich.
Hab das installiert und mir das deutsche Voxforge Sprachmodell herunter geladen. Läuft grundsätzlich auch.
Worüber ich mich aber wundere ist, dass ich mit pocketsphinx_batch brauchbare Ergebnisse bekomme, wenn ich aber pocketsphinx_continuous mit der selben Sprachdatei benutze quasi nur Unbrauchbares heraus kommt.
Könntest Du mal schildern, wie Du es benutzt und welche Ergebnisse Du bekommst? - Ähm, vielleicht müßten wir dafür einen neuen Thread machen?
Gruß botty
hirnfrei
08.07.2016, 13:37
Ein neuer Thread wäre sicher für andere Interessenten besser. Ich denke das dürften noch mehr interessant finden.
Zu deinem Problem kann ich allerdings wenig sagen, da ich PocketSphinx bisher ausschliesslich als C++ Lib in meinem eigenen Programm mit meinen selbst aufgezeichneten Daten verwende. Da sind die Ergebnisse bisher aber ausreichend. Ich nehme zwar an, dass mit bearbeiteten Daten sich da noch besser arbeiten lassen wird, aber soweit bin ich noch nicht.
Worte wie Hallo, Auto, Flugzeug usw. erkennt er sehr gut. Aus Frosch wird aber meistens Porsche. Auch Sätze wie "Wie geht es dir" erkennt er recht gut. Ich nehme aber mal an, in der Hauptsache muss die deutsche Datenbank da etwas besser gepflegt werden. Egal wo ich bisher gelesen habe heisst es immer das es auf deutsch ganz ok ist aber man Englisch benutzen soll. Da wird es sich in meinen Augen zu einfach gemacht ;). Aber da die Datenbank für die Sprache ja selbst angelegt und erweitert werden kann würde ich sagen, dem Missstand kann Abhilfe geschaffen werden.
Okay, da fährst Du aufgrund deines Anwendungsfalls einen anderen Ansatz.
Ich hatte die Idee einen ATV im MORSE Simulator (https://www.openrobots.org/wiki/morse/) über Stimme zu steuern, das halt auf meinem Lappi und da die Sounds des Sprachmodels welches ich verwende aus Aufnahmen besteht, die auf ähnlicher Hardware aufgenommen wurden, bot es sich an diese Daten zu verwenden und nicht erst ein eigenes Sprachmodell zu entwickeln.
Wobei es noch bessere Daten für eine Alternative (https://www.lt.informatik.tu-darmstadt.de/de/data/open-acoustic-models/) gibt aber da wag ich mich im Moment nicht dran.
Hab überings das Problem lokalisiert. Das pocketsphinx_continuous Prog initialisiert sich in der Lautstärke beim ersten Durchlauf anders als das Batch-Prog. Das läßt sich im feat.param File anpassen, bzw. muß man den allerersten Frame halt zweimal durchlaufen lassen, dann verbessert sich dier Erkennungsrate erheblich. (Der Parameter nennt sich "-cmninit 40,3,-1").
Frag mich bitte nicht nach der genauen Bedeutung - ich weiß nur das es jetzt erheblich besser ist ;)
Gruß botty
hirnfrei
08.07.2016, 20:44
Also definitiv kann man in den Einstellungen noch ganz viel raus holen. Ich habe auch schon Videos gesehen, da funktioniert das Erkennen fast genau so gut wie bei Google. Also der quatscht sein Gerät mit einem elend langen Text zu und während dem Reden schon kommen die gesprochenen Wörter. Aber das war glaub ich spanisch oder so. Aber da will ich es hin bringen.
Ich: Bot komm mal mit.
Bot: Okay. (Und dackelt mir dann brav hinterher)
Oder, im Falle das ich die KI dann mal im Auto einsetze:
Bot: Ich habe nicht mehr viel Treibstoff.
Ich: Wie lange hält der noch?
Bot: So zwischen 20 und 50 Km.
Würde ich es in Englisch machen wäre das auch echt schon eine Kleinigkeit. Die englische Grammatik ist deutlich einfacher und die Erkennung eben aus dem Stehgreif schon um einiges besser. Aber wie gesagt, ich will das auf Deutsch. Wenn alles gut läuft (aber bis dahin ist es noch ein gutes Stück), dann darf die KI auch eine eigene Persönlichkeit entwickeln. Also nicht nur Stumpf einen Befehl hören und reagieren sondern auch lernen. Da arbeite ich schon länger an einem Programm, was versteht was ich ihm sage. Es also den geschriebenen Satz nimmt, analysiert und daraus erkennt um was es geht. Mein Ansatz ist da schon halbwegs brauchbar würde ich sagen. Allerdings nicht selbst lernend. Alle Wörter müssen da mit Parametern in einer Datenbank zu finden sein. Aber daraus kann das Programm dann die Bedeutung von Sätzen erkennen. Inklusive Konjugieren und auch wenn Wörter nicht richtig geschrieben oder abgekürzt werden kann das Programm in vielen Fällen erkennen um was es sich handelt.Das wird nie perfektes Deutsch werden, zumindest kann ich mir das nicht vorstellen. Aber was solls! Das wird eben der DiaBot-Dialekt. Soll mal einer meckern oder es besser machen ;).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.