Open-source-code für die voice-Erkennung und Diskriminierung
Habe ich 15 audio-Kassetten, von denen ich glaube, enthält eine alte Aufnahme von meiner Großmutter und mir zu reden. Einen schnellen Versuch die richtige Stelle zu finden nicht turn it up. Ich will nicht zu hören Sie bis zu 20 Stunden des Bandes, um es zu finden. Die Lage kann nicht am start sein, der eines der Bänder. Die meisten Inhalte haben scheint, fallen in drei Kategorien-in der Reihenfolge der Gesamt-Länge, längste zuerst: silence, speech radio und Musik.
Ich planen, zu konvertieren alle Bänder in ein digitales format, und dann suchen Sie wieder für die Aufnahme. Der offensichtliche Weg ist, Sie alle zu spielen im hintergrund, während ich andere Dinge zu tun. Das ist viel zu einfach für mich, also: gibt es irgendwelche open-source-Bibliotheken oder anderen code, der erlauben würde, mich zu finden, in der Reihenfolge der zunehmenden Komplexität und Nützlichkeit:
- Nicht-silent-Regionen
- Regionen, in denen die menschliche Rede
- Regionen mit meine eigene Rede (und meiner Großmutter)
Meine Vorliebe für Python, Java oder C.
Fehlerhaften Antworten, Tipps über Suchbegriffe wären dankbar, da ich nichts weiß über das Feld.
Verstehe ich, ich könnte leicht zu verbringen mehr als 20 Stunden auf.
InformationsquelleAutor der Frage Croad Langshan | 2011-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie wahrscheinlich sparen Sie sich die meiste Zeit ist Sprecher diarization. Dies funktioniert, indem Sie Anmerkungen zu den Aufnahmen mit Sprecher-IDs, die kann man dann manuell zuordnen zu echten Menschen, mit sehr wenig Aufwand. Die Fehler-raten sind in der Regel bei etwa 10-15% der Satzlänge, das klingt schrecklich, aber dazu gehört das erkennen auch viele Lautsprecher-und mapping-zwei IDs dieselbe person, das ist nicht schwer zu Flicken.
Eines solchen gutes Werkzeug ist Schreien toolkit (C++), obwohl es ist ein bisschen wählerisch über input-format. Siehe Verwendung für dieses tool vom Autor. Es gibt voice/speech activity detection Metadaten UND Lautsprecher diarizationdas heißt, Sie erhalten den 1. und 2. Punkt (VAD/SAD) und ein bisschen extra, da es kommentiert ist, wenn der gleiche Lautsprecher aktiv in einer Aufnahme.
Andere nützliche tool ist LIUM spkdiarization (Java), die im Grunde genommen die gleiche, außer ich habe nicht genug Mühe noch eine Abbildung, wie man VAD-Metadaten. Es verfügt über einen schönen einsatzbereit Download-Paket.
Mit ein bisschen kompilieren, sollte diese Arbeit in unter einer Stunde.
InformationsquelleAutor der Antwort hruske
Wäre die beste option sein, zu finden, ein open-source-Modul, funktioniert die Spracherkennung oder Sprecher-Identifikation (keine Spracherkennung). Sprecher-Identifikation wird verwendet, um einen bestimmten Lautsprecher in der Erwägung, dass die Spracherkennung ist die Umwandlung von gesprochenen audio zu text. Es kann open-source-Sprecher-Identifikation von Paketen, die Sie könnten versuchen, auf der Suche etwas wie SourceForge.net für "speaker identification" oder "Sprach-UND Biometrie". Da ich nicht verwendet haben, einer mich ich kann nicht empfehlen, alles.
Wenn Sie nicht finden können, irgendetwas, aber Sie sind daran interessiert, rolling Ihrem eigenen dann es gibt viele open-source-FFT-Bibliotheken für alle gängigen Sprache. Die Technik wäre:
Beachten Sie, dass die Anzahl der Stunden, die dieses Projekt zu vollenden, könnte leicht über die 20 Stunden hören sich die Aufnahmen manuell. Aber es macht viel mehr Spaß als Schleifen über 20 Stunden audio-und Sie können die software, die Sie bauen in der Zukunft wieder.
Natürlich, wenn der Ton ist nicht empfindlich aus Datenschutz-Sicht, die Sie auslagern könnte die audio Vorsprechen Aufgabe zu sowas wie Amazon ' s mechanical turk.
InformationsquelleAutor der Antwort Robert Oschler
Könnte man auch versuchen,pyAudioAnalysis:
from pyAudioAnalysis import audioBasicIO as aIO
from pyAudioAnalysis import audioSegmentation as aS
[Fs, x] = aIO.readAudioFile("data/recording1.wav")
segments = aS.silenceRemoval(x, Fs, 0.020, 0.020, smoothWindow = 1.0, Weight = 0.3, plot = True)
segments
enthält die Endpunkte der nicht-Stille Segmente.InformationsquelleAutor der Antwort Theodore Giannakopoulos
wenn Sie sind vertraut mit java könntest du versuchen zu füttern, die audio-Dateien throu minim und berechnen einige FFT-Spektren. Die Stille kann erkannt werden durch die Festlegung eines minimalen Niveaus für die amplitude der Proben (um auszuschließen, Lärm). Zu trennen Rede von der Musik der FFT-Spektrum einer Zeit-Fenster verwendet werden kann. Rede verwendet einige sehr deutliche frequencybands Formanten genannt
- vor allem für vovels - Musik ist mehr gleichmäßig verteilt das Frequenzspektrum.
Du vermutlich nicht bekommen eine 100% ige Trennung der Sprach - /Musik-Blöcke zu, aber es sollte gut genug, um tag-Dateien und hören Sie nur die interessanten Teile.
http://code.compartmental.net/tools/minim/
http://en.wikipedia.org/wiki/Formant
InformationsquelleAutor der Antwort Nikolaus Gradwohl
Zwei Ideen:
InformationsquelleAutor der Antwort Anders Lindahl
Schrieb ich einen blog-Artikel vor, die über die Verwendung der Windows-Spracherkennung. Ich habe ein basic-tutorial über die Konvertierung von audio-Dateien zu text in C#. Sie können sich hier.
InformationsquelleAutor der Antwort mrtsherman
Ich würde hier anfangen,
http://alize.univ-avignon.fr/
http://www-lium.univ-lemans.fr/diarization/doku.php/quick_start
codeblocks:: ist gut für gcc
InformationsquelleAutor der Antwort Kickaha
Versuchen, audacity + view track als Spektrogramm(logf) + trainieren Sie Ihre Augen(!) für das erkennen der Sprache. Sie müssen, tune, time scale und FFT-Fenster.
InformationsquelleAutor der Antwort visitor