W odpowiedzi na moje poprzednie pytanie zastanawiałem się, czy istnieją biblioteki do wykrywania mowy. Przez wykrywanie mowy rozumiem przekazywanie bufora audio i powrót do indeksu, od którego mowa zaczyna się i kończy. Więc jeśli mam 10 sekund próbkowania dźwięku przy 44 kHz, oczekiwałbym szeregu liczb takich jak:
44000
88000
123000
190334
...
Oznaczałoby to na przykład, że mowa zaczyna się w sekundę, a następnie kończy w drugim punkcie itd.
To, czego nie szukam, to rozpoznawanie mowy, które wypisuje tekst ze słowa mówionego. To niestety często widuję, kiedy google „wykrywa mowę”.
Byłoby wspaniale, gdyby biblioteka była w C, C ++, a nawet Objective-C, pisząc aplikację na iPhone'a.
Dzięki!
Odpowiedzi:
W mojej odpowiedzi na to pytanie wspomniałem, że wykrywanie aktywności głosowej jest standardową funkcją kodeków takich jak G.729 i innych.
Powinieneś poszukać koderów i dekoderów referencyjnych dla algorytmów, które to stosują.
Jednym z takich przykładów jest - http://www.voiceage.com/openinit_g729.php
Innym możliwym źródłem jest kodek Speex. Który implementuje VAD
BTW: Powinieneś znaleźć w Google „Wykrywanie aktywności głosowej” lub „Talk Spurt” zamiast „Detekcja mowy”.
źródło
W projektach Sphinx i Freeswitch dostępne są implementacje typu open source. Myślę, że wszystkie detektory oparte na energii nie potrzebują żadnego modelu.
Sfinks 4 (Java, ale powinno być łatwe do przeniesienia do C / C ++)
PocketSphinx
Freeswitch
Odpowiedź pochodzi z pytania Stackoverflow .
źródło
Wykrywanie aktywności głosowej za pomocą progu adaptacyjnego jest bardzo łatwe i przydatne do wdrożenia na dowolnej platformie
Tutaj możesz mieć algorytm oparty na energii adaptacyjnej
Mały dodatek do powyższego algorytmu podczas obliczania po raz pierwszy przejdź do wzięcia Mean of Energy i oznacz jako Emin
w tym przekazywana klatka jest podzielona na podramki, a ponadto możesz zbadać każdą podramkę pod kątem jej działania
możesz przezwyciężyć dalsze problemy z nakładającymi się ramkami
źródło
Co powiesz na LibVAD?
Wygląda na to, że robi dokładnie to, co opisujesz.
Ujawnienie: Jestem programistą odpowiedzialnym za LibVAD
źródło