Pogadaj z komputerem

Od dwóch lat znacznie wzrosło zainteresowania programami rozpoznającymi mowę. Pojawiło się kilka komercyjnych produktów, recenzje w prasie, zestawienia, testy... Oprogramowanie rozpoznające mowę ciągłą wyszło z laboratoriów firm programistycznych i sal wykładowych wydziałów informatyki. Czy możemy już rozmawiać z komputerem, swobodnie wydawać mu polecenia i dyktować teksty? Czy nadszedł już czas krótkich pogawędek z odtwarzaczami płyt kompaktowych i kłótni z podejrzliwymi drzwiami do mieszkania? Wydaje się, że radość jest przedwczesna. Wizja przyszłości - swobodna rozmowa człowieka z maszyną - jeszcze się nie ziściła, chociaż jest niedaleko, tuż za zakrętem drogi...

Od dwóch lat znacznie wzrosło zainteresowania programami rozpoznającymi mowę. Pojawiło się kilka komercyjnych produktów, recenzje w prasie, zestawienia, testy... Oprogramowanie rozpoznające mowę ciągłą wyszło z laboratoriów firm programistycznych i sal wykładowych wydziałów informatyki. Czy możemy już rozmawiać z komputerem, swobodnie wydawać mu polecenia i dyktować teksty?

Czy nadszedł już czas krótkich pogawędek z odtwarzaczami płyt kompaktowych i kłótni z podejrzliwymi drzwiami do mieszkania? Wydaje się, że radość jest przedwczesna. Wizja przyszłości - swobodna rozmowa człowieka z maszyną - jeszcze się nie ziściła, chociaż jest niedaleko, tuż za zakrętem drogi...

Czy warto inwestować w badania nad systemami rozpoznawania mowy? Z pewnością tak. Wprowadzanie poleceń i tekstów za pomocą głosu może przynieść ogromny wzrost produktywności. Dzisiejsze programy rozpoznające mowę umożliwiają dyktowanie z prędkością do 140 -160 słów na minutę - przynajmniej według producentów. Jak wykazały nasze testy, dyktowanie po angielsku przez osobę dobrze posługującą się tym językiem daje efektywną prędkość około 30 - 40 słów na minutę. Naturalna prędkość mówienia (np. podczas rozmowy) wynosi około 200 słów na minutę, widać więc, że do optymalnej prędkości dyktowania jeszcze daleka droga. Zwykłe wprowadzanie tekstu z klawiatury zostaje w tyle (średnio około 15 do 20 słów na minutę). Brzmi to bardzo zachęcająco, ale użytkownik przyzwyczajony do pisania na klawiaturze, a nienawykły do wyraźnego dyktowania

może się przekonać, że tradycyjne metody są wciąż skuteczniejsze.

Rozpoznawanie mowy - jak to działa?

Głos mówiącego przetwarzany jest przez mikrofon z drgań powietrza na postać analogową - zmienny prąd elektryczny. Karta dźwiękowa i oprogramowanie przetwarzają głos z postaci analogowej na cyfrową. Od tej pory rozpoznanie mowy pozostaje domeną programu.

Cyfrowy zapisu głosu poddawany jest wstępnej obróbce: odfiltrowaniu zakłóceń, wyrównaniu głośności, tonu itd. Wykorzystywana jest transformata Fouriera (FFT) do zmniejszenia objętości przetwarzanych danych i wyodrębnienia cech charakterystycznych, tzw. wektorów cech (stosowany jest także mniej znany algorytm MFCC - Mel-Frequency Cepstral Cofficient). Po tym etapie wielkość danych w porównaniu z pierwszą cyfrową postacią słowa zmniejszyła się około 300 razy.

Wektory cech głosu są przetwarzane w celu znalezienia charakterystycznych cząstek - fonemów - z wykorzystaniem metod statystycznych i sieci neuronowych Szukany jest wyraz najlepiej pasujący do wczytanego ciągu fonemów. Na tym etapie wykorzystuje się najczęściej algorytm znany jako HMM (Hidden Markov Model - ukryte łańcuchy Markowa). Użycie HMM miało znaczący wpływ na poprawę działania programów rozpoznających mowę - niestety, wymaga to dużej liczby danych "treningowych".

Jednocześnie tworzona jest lista prawdopodobieństw wystąpienia danego wyrazu na podstawie dwóch poprzednich wyrazów w zdaniu (tzw. trigram analysis).

Wyniki uzyskane metodą analizy fonetycznej i słownikowej są porównywalne. Po odrzuceniu wyrazów, które tworzą zdania niedopuszczalne gramatycznie lub bezsensowne, najbardziej prawdopodobne słowo wyświetlane jest na ekranie.

Jeżeli nastąpiła pomyłka, użytkownik poprawia tekst, a oprogramowanie zapisuje wprowadzoną zmianę, aby nie popełniać tego samego błędu w przyszłości.

Równie ważna jak prędkość jest niezawodność programów, a tutaj także nie można jeszcze mówić o pełnym sukcesie. O ile producenci zapewniają o skuteczności rzędu 95 procent, to w praktyce, przynajmniej na początku pracy, wynosi ona około 90 procent, co oznacza, że średnio jedno słowo na dziesięć zawiera błąd. Oczywiście, tylko wtedy, gdy biegle mówimy po angielsku (lub w innym języku rozpoznawanym przez program). Bardzo często jednak pierwszy kontakt z programem do dyktowania przynosi rozczarowanie, gdyż trudno sprawdzić, czy to, że tekst na ekranie ma niewiele wspólnego z dyktowanym, jest skutkiem błędów programu czy użytkownika.

Rozpoznawanie mowy może przynieść także poprawę prędkości wydawania poleceń, gdzie znaczenie ma nie tylko szybkość dyktowania, ale także rozumienie złożonych poleceń - wyobraźmy sobie wysyłanie świątecznych życzeń przez e-mail. Wystarczyłoby powiedzieć: "Nowy list do wszystkich..." i podyktować jego treść. Co więcej, można przecież jednocześnie mówić i używać klawiatury oraz myszy - albo przeciwnie, wydawać polecenia głosem, gdy ręce są zajęte - typowym przykładem jest sterowanie radiem lub telefonem komórkowym podczas prowadzenia samochodu.

Problemy związane z rozpoznawaniem mowy, zwłaszcza mowy ciągłej, uniemożliwiały do niedawna tworzenie programów, które mogłyby działać na zwykłych, domowych komputerach. Dlaczego rozpoznawanie tekstu wprowadzanego za pomocą głosu jest takie trudne?

Słowa, które wypowiadamy, można podzielić na tzw. fonemy, czyli podstawowe, niepodzielne cząstki (tak jak litery są "cząstkami" słów na papierze), odpowiadające z grubsza głoskom. Okazuje się jednak, że rozpoznawanie fonemów jest trudne, gdyż ich cyfrowe postaci są do siebie bardzo podobne, co więcej, cyfrowy zapis tego samego słowa może przybierać różne kształty - zależnie od płci, wieku, stanu zdrowia mówiącego (chrypka?), zewnętrznych zakłóceń (ruch uliczny, rozmowy, praca silnika samochodu), a nawet rodzaju użytego mikrofonu.

Nawet jeśli uda się pokonać problem rozpoznawania poszczególnych fonemów, pozostaje kwestia dzielenia ciągłego "potoku słów" na poszczególne wyrazy, co w przypadku mowy ciągłej przysparza wielu problemów.


Zobacz również