Rozpoznawanie głosu

1

Cześć. Jest w sieci narzędzie do rozpoznawania konkretnego głosu ? Pisze apke do sterowania gry za pomocą głosu i musi być koniecznie mojego głosu, po to żeby chociażby muzyka nie narobiła szkody. Najlepiej, żeby narzędzie jakieś API, lub biblioteka było udostępnione w C++, C#, Javie lub Pythonie.

4

http://www.cp.jku.at/people/schedl/Research/Development/CoMIRVA/webpage/CoMIRVA.html
http://www.cp.jku.at/people/schedl/Research/Development/CoMIRVA/releases/0.3/CoMIRVA/doc/comirva/audio/util/MFCC.html

Biblioteka zawiera funkcje do generowania MFCC. Wyniki rozpoznanych słów można dopracować dobierając parametry, np. nakładanie ramek. Po drugie: słownik, im większy tym lepiej. Ja dla eksperymentów nagrałem kilkaset próbek i wyszło dobrze.

EDIT: Odpowiedź w komentarzu bałaby przydługa. Algorytm MFCC służy głównie do porównywania pojedynczych słów i dobrze sprawdza się ze słownikiem. Do rozpoznawania mowy ciągłej można użyć np. HMM (Hidden Markov Models). Jest on trochę trudniejszy w zrozumieniu i implementacji, ale czasem ma lepsze wyniki. Jest bardziej odporny na różnicę w wymowie.
W obu przypadkach słownik może zawierać powiązanie: tekst reprezentujący słowo + tablica ze współczynnikami. Po wypowiedzeniu słowa aplikacja powinna obliczyć współczynniki i porównać ze słownikiem. W wyniku otrzymujemy odległość euklidesową między słowami. Im niższa, tym lepiej, najlepiej 0. Im więcej razy powtórzeń tego samego słowa powiążemy z tekstem tym lepiej zadziała algorytm.

EDIT 2:
CMU Sphinx też jest fajnym projektem
https://cmusphinx.github.io/wiki/faq/

0

@PerlMonk: Czy MFCC sprawdzi się, przy komendach 3-wyrazowch ?
Możesz pomóc mi dołączyć / zlinkować tą libkę ?

1
Munvik napisał(a):

@PerlMonk: Czy MFCC sprawdzi się, przy komendach 3-wyrazowch ?
Możesz pomóc mi dołączyć / zlinkować tą libkę ?

MFCC da się zastosować przy komendach złożonych z kilku słów pod warunkiem, że program wyraźnie zaznaczy granice między słowami. Można na etapie tworzenia ramek sprawdzić gdzie jest cisza. Jeśli ktoś kolejne komendy mówi w jednym ciągu (bez przerw), lepiej sprawdzi się HMM.

Odnośnie linkowania paczek w Javie... Pewnie korzystasz z jakiegoś IDE. W takim przypadku każde IDE ma swoje sposoby na dodawanie zależności.

0
PerlMonk napisał(a):
Munvik napisał(a):

@PerlMonk: Czy MFCC sprawdzi się, przy komendach 3-wyrazowch ?
Możesz pomóc mi dołączyć / zlinkować tą libkę ?

MFCC da się zastosować przy komendach złożonych z kilku słów pod warunkiem, że program wyraźnie zaznaczy granice między słowami. Można na etapie tworzenia ramek sprawdzić gdzie jest cisza. Jeśli ktoś kolejne komendy mówi w jednym ciągu (bez przerw), lepiej sprawdzi się HMM.

Odnośnie linkowania paczek w Javie... Pewnie korzystasz z jakiegoś IDE. W takim przypadku każde IDE ma swoje sposoby na dodawanie zależności.

Dzięki. Możesz udostępnić kawałek kodu jak to napisałeś ?

0

@Munvik: Najpierw znajdę ten kod. Od paru lat leży sobie grzecznie w archiwum. W tym tygodniu sprawdzę czy wszystko działa i postaram się coś podrzucić.

0
PerlMonk napisał(a):

@Munvik: Najpierw znajdę ten kod. Od paru lat leży sobie grzecznie w archiwum. W tym tygodniu sprawdzę czy wszystko działa i postaram się coś podrzucić.

Dzięki, czekam ;)

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