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

Rozpoznawanie mowy na DSP

martin3885 15 Kwi 2005 10:19 5670 6
REKLAMA
  • #1 1406874
    martin3885
    Poziom 11  
    Witam
    musze zrobic projekt na ukladzie Analog Devices Ez-kit lite z ADSP BF533 rozpoznajacy mowe. Tj. probuje rozpoznawac mowe poprzez funkcje crosscorrelation. Nagrywam slowo w cool edit 2000, zapisuje w formacie tekstowym jako *.wav. Nastepnie odejmuje od wszystkich wartosci wartosc srednia obliczona ze wszystkich wartosci. Taki plik poddaje funkcji crosscorr w na ukladzie z dsp. W momencie jak porowniuje dwa te same pliki - czyli robie autokorelacje, to dostaje pierwsza wartosc bardzo duza. Natomiast w momencie gdy chce porownac np. dwa oddzielnie nagrane przeze mnei slowa "raz", wartosci z autokorelacji sa bardzo male. Nie mozna nawet dostrzec roznicy gdy wykonuje funkcjie crosscorr dla dwoch podobnych slow "raz" i dwoch calkiem rozmych slow np. "raz", "dwa". Czy ktos moglby mi powiedziec co robie zle? Ewentualnie jak inaczej moglbym sprobowac rozpoznawac moj glos?

    Pozdrawiam i gory dziekuje za odpowiedz!

    Marcin
  • REKLAMA
  • #2 1419925
    elektryk
    Poziom 42  
    Wydaje mi sie że to jest błąd metody, taka metoda jest bardzo czuła na różnice głośności (amplitudy) i przesunięcie w czasie między badaną próbką a wzorcem. Aby oba problemu można spróbować usunąć odpowiednim preprocesingiem, wyrównując głośność i usuwając wszystko przed próbką dzwięku.
  • REKLAMA
  • #3 1421196
    martin3885
    Poziom 11  
    dzieki za wskazowke.
    Mozesz mi powiedziec cos blizej jak to zrobic, albo polecic jakies materialy/strony www?
  • Pomocny post
    #4 1429303
    Paweł Es.
    VIP Zasłużony dla elektroda
    Niestety to są "uciechy" rozpoznawania mowy. To co dla nas jako ludzi z galaretoputerem w głowie brzmi jak "raz" w wykonaniu różnych osób w sensie matematyczno-fizycznym jest za każdym razem innym sygnałem.

    Funkcja korelacji da maksimum dla identycznych przebiegów tyle, że każde wykonanie słowa "raz" nawet przez tę samą osobę nie daje identycznych przebiegów. Jeździ wszystko:

    - czas trwania wymawianego słowa (za każdym razem inny).
    - ton podstawowy (krataniowy)
    - przebieg zmian wysokości tonu krt. (modulacja FM i to nieregularna)
    - skład widmowy tonu podstawowego
    - położenie formantów widma (wystarczy lekki katarek i już są problemy)
    - ewolucje czasowe położenia formantów (praktycznie niepowtarzalne
    nawet przy starannej wymowie)
    - zależności fazowe pomiędzy składowymi.
    - szumy w sygnale mowy (chrypka, oddychanie, zatkany nos, wysuszone usta)
    - szumy i hałasy otoczenia.

    Proponuję raczej metodę z rozbiciem przebiegu filtrami pasmowymi na kilka zakresów, normalizację amplitudową i zliczanie ilości przejść przez zero w każdym paśmie. Dopiero na podstawie tego można tworzyć jakies uśrednione wzorce.

    Inne problemy:

    Człowiek wydaje masę różnych mowopodobnych (w sensie widma) sygnałów (chrząknięcia, różne ee.., yy..., itp).

    Problemy głośności - prosta zmiana głośności sygnału wynikająca z odległości mówcy od mikrofonu zawali funkcję porównania z wzorcem.
    Pomijam już fakt, że sposób wymawiania (artykulacji) słowa zmienia się ze stanem fizycznym mówcy (przebieg głośności może być różny mimo, że wymawiamy to samo słowo).

    Problem hałasu w otoczeniu, jak wydzielić sygnał użyteczny z dźwięków pobocznych.

    Problem widma - sposób wymawiania słowa zależy od stanu psychicznego - to samo słowo będzie zupełnie różnie wyglądać w zapisie czasowym jak będziemy zmęczeni, śpiący, zdenerwowani, pijani.
    Problem także stworzy zwykły katar, który zmienia przebieg widma i przebieg czasowy, bo przecież musimy oddychać.

    Problem wysokości - konia z rzędem temu kto potrafi po np. miesiącu powtórzyć słowo tą samą wysokością tonu i tym samym akcentem.

    Do tego wystarczy zwykła spuchnięcie strun głosowych powodujące, że głos (ton krtaniowy) się obniża a w dźwięku pojawiają się składowe charczące zależne od stopnia skatowania gardła chorobą.

    Oczywiście można dać karteczkę:

    "Przed próbą mówienia do rozpoznawacza odpocznij, wyśpij się, uspokój, wytrzeźwiej, wylecz gardło i katar. Przypomnij sobie w jakim tempie i z jakiej odległości mówiłeś do mikrofonu pół roku temu jak robiłeś nagranie wzorca"

    Jedną z metod używaną w gotowych scalakach do rozpoznawania słów jest rozkład sygnału filtrami na pasma częstotliwości (np. 5) a następnie zliczanie w każdym paśmie przejść przez zero i przebiegu głośności.
    Parametry te po znormalizowaniu i logarytmowaniu są używane do uczenia sieci neuronowej generalizującej uzyskane informacje w postaci wag poszczególnych wejść. Sieć ta potem rozpoznaje sygnały z mikrofonu dające po przetworzeniu podobny obraz jak sygnały uczące.


    http://www.sensoryinc.com/ robią scalaki do rozpoznawania mowy.

    A tu ich patent z opisem metody (angielski)

    http://www.freepatentsonline.com/image-6021387-1.html


    Polecam książkę "Sygnał mowy" prof. Ryszarda Tadeusiewicza (jest dostępna w sieci w wersji on-line

    Tu były dywagacje na tematy "mowne"

    https://www.elektroda.pl/rtvforum/topic250537.html
  • REKLAMA
  • #5 1441525
    martin3885
    Poziom 11  
    Ma ktos moze namiary na dobre materialy odnosnie rozpoznawania mowy 1 osoby i 1 slowa(speaker dependant voice recognition). Tj. nie tylko zeby byla sama teoria, ale cos bardziej wytlumaczone, moze na jakims przykladzie... Szukam w necie,ale na nic fajnego nie moge trafic.
  • REKLAMA
  • #7 4742843
    łysy84
    Poziom 11  
    http://www.sensoryinc.com/ robią scalaki do rozpoznawania mowy.

    szukam układów do automatycznego rozpoznawania mowy, jakie znacie jeszcze oprócz tych firmy sensory?
REKLAMA