Biblioteki do wykrywania aktywności głosowej (bez rozpoznawania mowy)

18

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!

Eric Brotto
źródło
1
Odpowiedź możesz znaleźć w jednej z tych odpowiedzi: dsp.stackexchange.com/questions/912/…
Geerten
1
Jest to bardzo podobne, z wyjątkiem śpiewu zamiast mowy: dsp.stackexchange.com/q/2367/29
endolit
1
Również istotne: dsp.stackexchange.com/a/1543/29 „wykrywanie aktywności głosowej”
endolith
1
Powinieneś przyjrzeć się wykrywaniu początku / przesunięcia. Jest to aktywne pole o wielu zastosowaniach w przetwarzaniu muzyki, mowy i sygnału radarowego.
CyberMen

Odpowiedzi:

13

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”.

Dipan Mehta
źródło
6

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 .

Geerten
źródło
4

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

kakeh
źródło
Próbuję zaimplementować tę metodę w dokumencie, ale zgubić się, gdy Min_E wynosi zero z powodu tłumienia hałasu. W takim przypadku Thresh_E będzie równaniem -INF. Nawet biorąc log1p (Min_E), Thresh_E byłby zerowy, tak że bardzo łatwo jest błędnie sklasyfikować dźwięczne ramki z powodu niezerowej energii. Jakieś dobre sugestie lub źle to rozumiem? Równania: Thresh _ E Energia _ Pr imThresh * log (Min _ E)
Farley
3

Co powiesz na LibVAD?

Wygląda na to, że robi dokładnie to, co opisujesz.

Ujawnienie: Jestem programistą odpowiedzialnym za LibVAD

Charles
źródło
Jak zdobyć libVAD?
todd
Kupując to. Jednak strona internetowa nie ujawnia ceny, dopóki nie wypełnisz formularza.
Camille Goudeseune,
2
Link prowadzi teraz do strony ze złośliwym oprogramowaniem, która chce, aby użytkownicy zaktualizowali flash.
Steve Severance,