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!


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



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


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


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.