logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

rozpoznwanie mowy + analiza sygnału

kaminski_12 20 Lis 2006 18:13 2942 6
REKLAMA
  • #1 3244535
    kaminski_12
    Poziom 11  
    Witam. Piszę aplikację do rozpoznwania słów izolowanych; obecnie mam juz gotowe:
    :d
    ~filtr SOI
    ~algorytm pocztku i końca słowa na podstwie energii sygnału i liczby zmiany stanów
    ~FFT
    ~rejestracja dźwieku w DirectX;

    Zatrzymałem sie na analizie sygnału mowy; czy ktoś może zajmował sie analizą MFCC?? O co w tym chodzi??

    Szukam jakiś konktenych materiałów albo kodu źródłowego!!!
    ;]
  • REKLAMA
  • #2 3244607
    And!
    Admin grupy Projektowanie
    Mam pytanie po co SOI skoro przy pomocy FFT przechodzisz do dziedziny częstotliwości, i na otrzymanych danych możesz operować, wykonując mniej kosztowne operacje niż wstępna filtracja sygnału przed zrobieniem FFT ?
  • REKLAMA
  • #3 3244688
    kaminski_12
    Poziom 11  
    Stosuję filtr SOI, bo przed przejściem na częstotliwość wyznaczam początek i koniec słowa. Tylko czysty sygnał mowy jest poddawany dalszej analizie.
  • REKLAMA
  • #4 3245845
    And!
    Admin grupy Projektowanie
    Hmm nadal nie rozumiem jak SOI izoluje kolejne słowa. Przecież jak każdy filtr ma zmienną charakterystykę przenoszenia dla przetwarzanego sygnału i tyle. Wycina część widma z sygnału , to samo można zrobić mając już gotowe wyniki FFT (w najprostrzym przypadku, ignorować nieistotne prążki).

    Możesz przybliżyć jak FIR pomaga w procesie zamiany słów na ich widma częstotliwościowe ?

    Jeżeli chodzi o MFCC, faktycznie nie ma na sieci zbyt wielu istotnych informacji,
    jednak implementacja MFCC będzie niezbędna gdyż uniezależnia od osobniczych właściwości mowy wytwarzanej przez kolejne osoby.
  • #5 3247879
    kaminski_12
    Poziom 11  
    Filtem SOI wycinam niepotrzebne częstotliwości i uwydatniam amplitudy niskich częstotliwości (Stosujemy częstotliwości z zakresu 300 - 3400kHz) . Następnie w dziedzinie amplitudy obliczam początek i koniec słowa na podstawie energii sygnału i liczby przejść sygnału przez zero.

    Krótki opis algorytmu wyznaczania początku i końca słowa:
    1. Podzielić sygnał na ramki (od 10 do 30ms)
    Sygnał w ramce mnożymy przez funkcję okna (ja stosuję okno Hamminga).
    2. Obliczyć próg energii ( w pierwszych 100ms)
    3. Obliczyć energię sygnału dla każdej ramki
    4. Ramka która przekracza próg energii to początek słowa
    5. Cofamy sie o 100 - 250ms i sprawdzamy czy ramki przekroczyły próg ilości przejść sygnału przez zero.
    Jeśli tak to początek słowa jest w miejscu gdzie próg ilości przejść sygnału przez zero został przekroczony.

    Analogicznie robimy z końcem słowa.

    Dopiero po wyznaczeniu krańców słowa, poddaję go dalszej analizie czyli:
    1. FFT
    2. MFCC ale z tym mam problem.

    Mam nadzieje ze przybliżyłem ci o co mi chodzi (między innymi z SOI).
  • REKLAMA
  • #6 3247922
    And!
    Admin grupy Projektowanie
    Tak teraz wszytko jasne, powinno wykrywać odstępy po między słowami (chyba że ktoś ich nie stosuje :) ) ew problemy mogą być ze słowami pisanymi osobno a mówionymi razem np. "nie rozumiem".

    Co do MFCC niestety nie pomogę, ale w dziale jest kilku specjalistów więc bardzo możliwe, że przyłączą się do dyskusji.
  • #7 3248174
    kaminski_12
    Poziom 11  
    Co do współczynników MFCC to wiem ze sygnał trzeba przepuścić przez bank filtrów w skali mel, a następnie wyznaczyć DCT (Discret Cosine Transform).
    Tylko co dalej???

    Bank filtrów już mam, brakuje mi algorytmu DCT i nie wiem co dalej. Czy po wyliczeniu DCT będę miał już współczynniki MFCC??
REKLAMA