Bibliotheken zur Sprachaktivitätserkennung (keine Spracherkennung)


18

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!


1
Sie könnten Ihre Antwort in einem dieser Antwort finden: dsp.stackexchange.com/questions/912/...
Geerten

1
Dies ist sehr ähnlich, mit Ausnahme von Singen statt Sprechen: dsp.stackexchange.com/q/2367/29
Endolith

1
Ebenfalls relevant: dsp.stackexchange.com/a/1543/29 "Sprachaktivitätserkennung"
Endolith

1
Sie sollten sich mit der Onset- / Offset-Erkennung befassen. Es ist ein aktives Gebiet mit vielen Anwendungen in der Musik-, Sprach- und Radarsignalverarbeitung.
CyberMen

Antworten:


13

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.



4

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


Ich versuche, die Methode in dem Artikel zu implementieren, aber ich verliere mich, wenn Min_E wegen der Rauschunterdrückung Null ist. In diesem Fall wäre der Thresh_E -INF aus der Gleichung. Selbst wenn log1p (Min_E) verwendet wird, wäre der Thresh_E gleich Null, so dass es sehr leicht ist, stimmhafte Frames aufgrund von Energie ungleich Null falsch zu klassifizieren. Irgendwelche guten Vorschläge oder verstehe ich das falsch? Gleichungen: Thresh _ E Energy _ Pr imThresh * log (Min _ E)
Farley

3

Wie wäre es mit LibVAD?

Das scheint genau das zu tun, was Sie beschreiben.

Offenlegung: Ich bin der Entwickler hinter LibVAD


Wie kommt man zu libVAD?
Todd

Durch den Kauf. Auf der Website wird der Preis jedoch erst bekannt gegeben, nachdem Sie ein Formular ausgefüllt haben.
Camille Goudeseune

2
Der Link geht jetzt zu einer Malware-Site, auf der Besucher Flash aktualisieren sollen.
Steve Severance
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.