Komunikaty głosowe do aplikacji "Start/Stop"

0

Ktoś moze polecić jakas bibliotekę aby zrobić proste komendy głosowe do aplikacji c++ ?

1

Akurat nie znam bibliotek jako takich, z takich prostych algorytmów to masz cross correlation gdzie masz przykłady jak wyglądają sygnały danych komend i wyliczasz pomiędzy sygnałem przechwyconym przez mikrofon, a tym z przykładu korelację i przy pewnym threshold akceptujesz.
Później masz feature extraction jakiś mel-frequency cepstral coefficiencs i później możesz jakieś ml metody na tych cechach przeprowadzać jak clustering, gaussian mixture model, hidden markov chain.
No i jeszcze lepsze to sieci neuronowe, gdzie poza tym możesz też użyć sieci one shot learning gdzie będzie obliczać similiarities między dźwiękami.

Jako, że to C++ to wszystkie modele AI ci zadziałają, gdyż wszystkie frameworki są zbudowane na C++, macierzysty język.
Do tych dwóch wyrazów w dodatku to są angielskie to zapewne wystarczy ci jakiś bardzo mały zdestylowany model, sam mam llame3 na dysku 8B i przemielenie koło 50-100 znaków w 3-5 sekund na zwykłym desktopie ogarnie.

Mój ulubiony model do speech to text akurat jest whisper, tiny model ma 32mb, te najprostsze wyrazy łatwo rozpoznaje poniżej 1sekundy, zależy jaki input dźwięku długi jest, jakieś trudne zdania polskie to już musisz mieć small wersję.
Przed chwilą nagrałem na mikrofonie stop i start wyraz, dałem pod najmniejszy model tiny i bezbłędnie wykrył wszystko.
Też można nie nagrywać np. 3 sekund i potem dać do modelu, tylko jednocześnie nagrywać i przetwarzać co też przyspieszy wykonanie.
(https://github.com/openai/whisper)

Później masz drugi problem jak będziesz nagrywał ten dźwięk, bo masz w sumie 2 sposoby, jeden to naciskasz klawisz i wtedy cię nagrywa, puszczasz to się kończy nagrywanie, to jest przekazywane do modelu.
Inny to jest ciągłe nagrywanie wtedy, będzie ciągle chodził procesor, można dać teź wake word, czyli słowo na które nasłuchuje model.
Czy ciągle po prostu przetwarzać co oczywiście może trochę być kosztowne.

Patrzyłem rozwiązania gotowe to taki command word w esp https://docs.espressif.com/projects/esp-sr/en/latest/esp32/speech_command_recognition/README.html używają wake word żeby wykryć, że ktoś chce coś powiedzieć do modelu i potem do głównego dają, żeby cały czas ten główny nie pracował, bo wtedy trochę będzie obciążał wszystko.

W sumie sam nie wiem jak z bibliotekami, sam nie używam, ale modele są do nawet całego przetwarzania tekstu.

Też czy jesteś ograniczony obliczeniowo żeby to wykonać.
Jeśli taki model AI ci wystarczy, czy użyć jakiegoś zewnętrznego api, to wtedy można spróbować jednego rozwiązani i jak coś to zmienić na inne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1