- SolarFLow 4000 Mix Pro Video Tutorial    Werbung      
Ergebnis 1 bis 10 von 25

Thema: Stimmen unterscheiden

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    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.

  2. #2
    HaWe
    Gast
    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 Bild  

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    58
    Beiträge
    2.814

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    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.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    35
    Beiträge
    1.192
    Meine Hochachtung hast du wenn du das hinbekommst Bild   , ich denke dass Spracherkennung mit allem was dazu gehört ein außergewöhnlich anspruchsvolles Gebiet ist. Viel Erfolg.
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    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 ^^

  7. #7
    HaWe
    Gast
    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.
    Geändert von HaWe (04.07.2016 um 15:29 Uhr)

Ähnliche Themen

  1. Hackerspace Bremen braucht Stimmen
    Von Manf im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 29
    Letzter Beitrag: 07.11.2012, 05:02
  2. RN-Contoller Defekt- Spannungen an Pins stimmen nicht - was machen?
    Von clownfish im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 4
    Letzter Beitrag: 02.04.2012, 21:46
  3. Rot Grün unterscheiden!?
    Von DanielSan im Forum Sensoren / Sensorik
    Antworten: 8
    Letzter Beitrag: 12.08.2009, 13:44
  4. Stimmen meine AVRDUDE-Befehle?
    Von Zumlin im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 21.05.2007, 20:22
  5. Da kann doch was net stimmen *grummel* ;o(
    Von sick im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 30.06.2005, 12:17

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      Solar Speicher und Akkus Tests