Als Reaktion auf meine vorherige Frage habe ich mich gefragt, ob es Spracherkennungsbibliotheken gibt. Unter Spracherkennung verstehe ich das Übergeben eines Audiopuffers und das Zurückholen eines Indexes, in dem die Sprache beginnt und stoppt. Wenn ich also 10 Sekunden Audio-Sampling bei 44 kHz habe, würde ich eine Reihe von Zahlen erwarten, wie zum Beispiel:
44000
88000
123000
190334
...
Dies würde zum Beispiel anzeigen, dass die Sprache eine Sekunde später beginnt und dann an dem Punkt von zwei Sekunden endet usw.
Was ich nicht suche, ist Spracherkennung, die Text aus gesprochenem Wort schreibt. Das sehe ich leider oft, wenn ich auf "Spracherkennung" gehe.
Es wäre großartig, wenn die Bibliothek in C, C ++ oder sogar Objective-C wäre, da ich eine App für das iPhone schreibe.
Vielen Dank!
Antworten:
In meiner Antwort auf diese Frage hatte ich erwähnt, dass die Sprachaktivitätserkennung eine Standardfunktion für Codecs wie G.729 und andere ist.
Sie sollten nach Referenzcodierern und -decodierern für Algorithmen suchen, die dies anwenden.
Ein solches Beispiel ist - http://www.voiceage.com/openinit_g729.php
Eine weitere mögliche Quelle ist der Speex-Codec. Welches implementiert VAD
Übrigens: Sie sollten "Voice Activity Detection" oder "Talk Spurt" anstatt "Speech Detection" googeln.
quelle
Es gibt Open-Source-Implementierungen in den Projekten Sphinx und Freeswitch. Ich denke, dass sie alle energiebasierte Detektoren sind, die kein Modell benötigen.
Sphinx 4 (Java, aber es sollte einfach sein, nach C / C ++ zu portieren)
PocketSphinx
Freischalter
Antwort aus der Stackoverflow-Frage .
quelle
Die Sprachaktivitätserkennung mit Adaptive Threshold ist auf jeder Plattform sehr einfach und praktisch zu implementieren
Hier können Sie einen Algorithmus verwenden, der auf adaptiver Energie basiert
Wenn Sie zum ersten Mal rechnen, nehmen Sie als kleine Ergänzung zum obigen Algorithmus Mean of Energy und markieren Sie ihn als Emin
In diesem Fall wird der übergebene Frame in Unter-Frames unterteilt, und Sie können jeden Unter-Frame auf seine Aktivität untersuchen
Sie können weitere Probleme mit überlappenden Frames überwinden
quelle
Wie wäre es mit LibVAD?
Das scheint genau das zu tun, was Sie beschreiben.
Offenlegung: Ich bin der Entwickler hinter LibVAD
quelle