Technologie Mowy
Transkrypt
Technologie Mowy
2017-01-16 www.dsp.agh.edu.pl http://rozpoznawaniemowy.blogspot.com/ Technologie Mowy Bartosz Ziółko 1 Technologie Mowy 2 1 2017-01-16 Dane kontaktowe Dr inż. Jakub Gałka C2/419 Telefon 50-68 [email protected] Dr inż. Bartosz Ziółko C2/418 Telefon 36-39 http://www.dsp.agh.edu.pl/pl:dydaktyka:tmo 3 Wykłady • Wprowadzenie i historia • Fizjologia mowy i elementy fonetyki języka polskiego. Dialekty języka polskiego. Właściwości sygnału mowy • Zbiory nagrań mowy i tekstów. Słowniki komputerowe • Redukcja zakłóceń i przetwarzanie wstępne sygnału • Metody parametryzacji i segmentacji sygnału • Kodowanie, kompresja i transmisja mowy. Synteza mowy • Metody rozpoznawania wzorców 4 2 2017-01-16 Wykłady • Ukryte modele Markowa. Rozpoznawanie słów izolowanych • HTK, ANN, SVM, DBN, K-NN • Weryfikacja i identyfikacja mówcy. Emocje w głosie • Metryka edycyjna. Rozpoznawanie mowy ciągłej. • Syntaktyczne modelowanie języka • Semantyczne modelowanie. Ontologie • Interfejs głosowy i systemy dialogowe • Istniejące systemy i przyszłość TM 5 Laboratoria 6 3 2017-01-16 Ćwiczenia • Elementy statystyki matematycznej (Bayes, rozkłady, Gaussiany, itd.) • Zapis fonetyczny, dialekty • Dyskusje o technologiach mowy na podstawie artykułów • Analizy grafów • 3 Kolokwia (także z wykładów) • Obliczanie HMM bez komputera • Prezentacje studentów na wybrany temat • Analiza spektogramów 7 Prezentacje • Elementy lingwistyki języka polskiego • Wybrane komercyjne lub eksperymentalne systemy technologii mowy • Zreferowanie wybranego artykułu na temat technologii mowy • Pomysł na własny biznes wykorzystujący technologie mowy • Można zgłaszać własne propozycje tematów prezentacji • Śpiew traktujemy jako mowę • Wykonanie i zaprezentowanie strony w Wikipedii o technologii mowy • Wykonanie materiału multimedialnego popularyzującego technologie mowy 8 4 2017-01-16 Oceny • Laboratorium – Wykonanie zadań laboratoryjnych, ich staranność i jakość – Obecność na zajęciach • Ćwiczenia – 3 kolokwia z ćwiczeń i wykładów (60%) – Prezentacja (10%) – Wykonanie ćwiczeń w trakcie zajęć (w tym aktywność) (30%) 9 Kolokwium poprawkowe • • • • 1 termin Można poprawiać całość przedmiotu Lub pojedyncze kolokwium W wypadku zwolnień lekarskich itp. Ten sam termin po zakończeniu semestru 10 5 2017-01-16 Podręcznik 11 Bibliografia • http://class.coursera.org/nlp • • http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6345-automatic-speech-recognition-spring-2003/ http://nlp.ipipan.waw.pl/wiki/clip • D. Jurafsky and J.H. Martin „Speech and Language Processing”, 2nd edition • • • • • • • • W. Kwiatkowski, Metody automatycznego rozpoznawania wzorców, BEL Studio, Warszawa 2007 (28 zł) J. Koronacki, J. Ćwik, Statystyczne systemy uczące się, Wyd 2., EXIT, Warszawa 2008 (45 zł) M. Krzyśko, W. Wołyński, T. Górecki, M. Skorzybut, Systemy uczące się, WNT, Warszawa 2008 (47 zł) W. Kasprzak, Rozpoznawanie obrazów i sygnałów mowy, WPW, 2009 (28 zł) S. Theodoridis, K. Koutroumbas, Pattern Recognition, Academic Press, 2009 R. O. Duda, P. E. Hart, D. G. Stork, Pattern Classification, 2nd Edition, Wiley & Sons 2000 J. P. Marques de Sa, Pattern Recognition, Springer 2001 http://home.agh.edu.pl/~jgalka/dydaktyka/tm/Podstawy%20ewaluacji%20w 12 %20systemach%20detekcji.pdf 6 2017-01-16 Pierwsze syntezatory mowy 1779 - Christian Kratzenstein - urządzenie umożliwiające generowanie dźwięków przypominających 5 różnych głosek Równolegle, nad swoją akustycznomechaniczną maszyną imitującą mowę pracował Wolfgang von Kempelen 13 Alexander Graham Bell Profesor fizjologii dźwięku na Uniwersytecie w Bostonie oraz nauczyciel głuchoniemych. Badania Bella finansowane przez jego teścia doprowadziły do zbudowania telefonu w latach osiemdziesiątych XIX wieku, a więc także mikrofonu i słuchawki. 14 7 2017-01-16 Lampa próżniowa • W 1914 roku Harold D. Arnold opracował lampę próżniową, będącą wzmacniaczem sygnału akustycznego generowanego przez prąd elektryczny. • Umożliwiło to firmie AT&T (American Telephone and Telegraph) pierwszą transkontynentalną rozmowę w 1915 roku. 15 Ferdynand de Saussure - 1916 Określił język jako system norm społecznych umożliwiający przekazywanie informacji. Dokonał rozróżnienia między językiem (fr. langue) a mówieniem (fr. parole). Zdefiniował język jako systemem symboli i reguł ich tworzenia, który nie może być wytworem pojedynczego człowieka. Określił go więc jako abstrakcję, urzeczywistniającą się w mówieniu realizowanym przez indywidualnych ludzi. 16 8 2017-01-16 „Cztery” 17 Sygnał mowy 18 9 2017-01-16 REX - 1920 Przymocowany do płytki reagującej obrotem na drgania o częstotliwości 500 [Hz] odpowiadającej między innymi głosce „e”. Przy tej częstotliwości pojawiał się rezonans, który odcinał prąd, wypychając psa z budy. W ten sposób zabawka reagowała na imię Rex. 19 VOCODER – Bell Labs Posiadał klawiaturę i mógł między innymi syntezować mowę. Służył także do kodowania mowy na potrzeby transmisji. Działało w oparciu o bank filtrów. Z urządzenia najprawdopodobniej korzystali Churchill i Roosevelt do przeprowadzania transkontynentalnych konferencji. Po wojnie zaczęto wykorzystywać ulepszone urządzenia oparte na VOCODERZE w muzyce. 20 10 2017-01-16 Bell Labs digit recogniser - 1952 • Analiza spektrum podzielonego na 2 pasma częstotliwości (powyżej i poniżej 900 Hz). • Rozpoznawał cyfry wypowiadane po angielsku z błędem mniejszym niż 2%, zakładając, że użytkownik nie zmienił położenia ust względem mikrofonu pomiędzy fazą ustalania parametrów głosu a testowaniem. 21 22 11 2017-01-16 Japoński system rozpoznawania samogłosek (J. Suzuki, K. Nakata, Radio Research Labs, Japonia, 1961) 23 Zimna wojna • Szybka transformata Fouriera (FFT) • Hidden Markov Model (HMM) • ARPA Speech Understanding Project 1971 ($15M) • Rozpoznawanie mowy ciągłej • Słownik około 1000 słów • => system CMU Harpy (5% błędów) • Algorytm Viterbiego do ćwiczenia modeli 1967 - 1973 24 12 2017-01-16 LPC - 1975 Linear predictive coding F. Itakura Bell/NTT Labs 25 Podstawowe technologie mowy • • • • • • • • Automatyczne rozpoznawanie mowy Synteza mowy Rozpoznawanie mówcy Rozpoznawanie emocji Generowanie emocji Synteza z ruchem ust Tłumaczenie mowa-mowa Aplikacje w nauce języków obcych 26 13 2017-01-16 Zalety technologii mowy • Naturalność (nie wymagają przeszkolenia) • Pozostawiają swobodę rąk i oczu • Szybkie (3 razy szybciej mówimy niż piszemy na klawiaturze) • Ekonomiczność (tekst zajmuje dużo mniej bajtów niż sygnał akustyczny) Szczególnie istotne dla osób nieprzyzwyczajonych do komputerów, niepełnosprawnych oraz w zastosowaniach telefonicznych 27 Zastosowanie w telekomunikacji 28 14 2017-01-16 Systemy dialogowe 29 30 15 2017-01-16 Różne poziomy modelowania 31 Komunikacja z komputerem 32 16 2017-01-16 Komunikacja z komputerem 33 Ogólny schemat rozpoznawania mowy 34 17 2017-01-16 Możliwe zastosowania ASR • Głównie jako wejście – Proste komendy i sterowanie – Krótkie wprowadzanie danych (np. przez telefon) – Dyktowanie • Interaktywne (z rozumieniem) – Punkty informacyjne – Przetwarzanie transakcji – Wirtualni doradcy 35 Zakres mowy i słuchu człowieka (Tadeusiewicz, 1988) 36 18 2017-01-16 Cechy systemów mowy • • • • • Mowa izolowana lub ciągła Czytana lub spontaniczna Zależny lub niezależny od mówcy Mały (20 słów) lub duży (>50 000) słownik Model językowy stały lub zależny od Miara nieokreśloności kontekstu k H pi log 2 pi • Perpleksja (entropia) wypowiedzi i 1 2^H • SNR (<10 dB niski, >30 dB wysoki) • Sposób rejestracji (telefon, komputer, mikrofon z niwelowaniem szumu) 37 38 19 2017-01-16 Fonetyka Dialekty języka polskiego Zbiory nagrań i tekstów Słowniki Bartosz Ziółko 39 Alfabety fonetyczne Dialekty języka polskiego Korpusy mowy polskiej Korpusy tekstów - przykłady Słowniki – przykłady Słowniki - formaty Wordnet 40 20 2017-01-16 41 42 21 2017-01-16 IPA 43 IPA 44 22 2017-01-16 IPA 45 Baldi features accurate, visible articulators (CSLU Toolkit) 46 23 2017-01-16 Fonem i trifon • Pojęcie fonemu, jako pierwszy wprowadził Jan Niecisław Ignacy Baudouin de Courtenay. Obecnie fonem najczęściej definiuje się jako najmniejszą rozróżnialną jednostkę mowy. Szerzej znane pojęcie głoski, opisuje realizację konkretnego fonemu w jakiejś wypowiedzi. Zbiór fonemów, opisujących dany język całościowo jest więc alfabetem fonetycznym. • Trifon to fonem w lewym i prawym kontekście, a NIE trzy fonemy 47 OrtFon – transkryptor ortofonetyczny 48 24 2017-01-16 Tabele OrtFona 49 Tabele OrtFona 50 25 2017-01-16 Dialekty języka polskiego Wykorzystano materiały Pauliny Macury i Darii Korzec oraz www.gwarypolskie.uw.edu.pl Dialekt ● ● ● Dialekt charakteryzują swoiste cechy fonetyczne, leksykalne, semantyczne i fleksyjne odróżniające go od ogólnonarodowego języka, używanego przez ogół społeczności a gwara ● Mówiony wariant terytorialny (lokalny) języka narodowego używany na stosunkowo niewielkim terenie Zespół gwar ludowych używanych na większym obszarze, termin nadrzędny w stosunku do gwary ludowej Dialekt jest pojęciem szerszym 26 2017-01-16 Język ogólny Dialekt Gwara Cechy dialektów Mazurzenie – wymowa spółgłosek dziąsłowych sz, ż, cz, dż jako przedniojęzykowo-zębowe s, z, c, dz np. lepsze = lepse, czas = cas, żeby = żeby, „rz” nie podlega mazurzeniu!!! np. rzeka (a nie zeka), przypali (nie psypali) Fonetyka międzywyrazowa - dwa wyrazy, gdy pierwszy kończy się na spółgłoskę, a drugi rozpoczyna się od głosek m, n, r, l, j, ł, lub od samogłoski -nieudźwięczniająca - pomósz mje = pomóż mi, tak_ jakby -udźwięczniająca – pomóż_mje = pomóż mi, tag_jakby 27 2017-01-16 Cechy dialektów Samogłoski pochylone – a – o, e – y występowanie samogłosek pochylonych, czyli gwarowych kontynuantów staropolskich samogłosek długich: ā, ō, ē. Ich realizacja przedstawia się następująco: -a pochylone – á - jako dźwięk pośredni między a i o, kontynuant staropolskiego ā, np. górole, downo , krzoki; -o pochylone – ó – jako dźwięk pośredni między o i u, kontynuant staropolskiego ō, np. wóz, dziadów, kónia; -e pochylone – jako dźwięk równy samogłosce y, kontynuant staropolskiego ē, występuje po spółgłoskach twardych i miękkich, np. mlyko, tyz, śpiywo, biyda; 55 Cechy dialektów Sziakanie (jabłonkowanie) – taka sama wymowa spółgłosek dziąsłowych sz, ż, cz, dż i spółgłosek środkowojęzykowych ś, ź, ć,dź jako zmiękczone dziąsłowe sz’, ż’, cz’, dż’ np. cziarni czielak = czarny cielak Szadzenie - zjawisko polegające na zastąpieniu szeregu spółgłosek zębowych: c, s, z, dz szeregiem spółgłosek dziąsłowych cz, sz, ż, dż; wynika z przesadnego unikania mazurzenia, występuje na Suwalszczyźnie 28 2017-01-16 Cechy dialektów Prejotacja - poprzedzenie samogłosek w nagłosie j niezgłoskotwórczym np. jile, Jewa, janioł = ile, Ewa, anioł Jigła, jindycka, jinnych Labializacja - to zjawisko poprzedzania samogłosek tylnych o niezgłoskotwórczym u, zwykle osłabionym (zapisywanym jako ł), Okno = łokno, golec łorkiestra MAPA DIALEKTÓW 29 2017-01-16 Dialekt śląski ● Wymowa udźwięczniająca ostatnią głoskę pierwszego wyrazu w połączeniach wyrazowych, np: tag_robili , mógbyź_mi (pomóc) ● Brak mazurzenia ● Sziakanie (jabłonkowanie) ● Samogłoski pochylone ● 1-os. lp. cz. przeszłego np. ● byłech, robiłech Powiedzioł mi wczora chlapiec 1.Powiedzioł mi wczora chłapiec, że nie umiem chleba napiyc. Cieszyn, Opawa, Frydek, Morawa, chleba napiyc. 2. Jo się na to rozgniewała, móki, soli napojczała. Cieszyn, Opawa, Frydek, Morawa, napojczała. 3. Taki się mi chlyb wydarził, spoza skury kot wyłaził. Cieszyn, Opawa, Frydek, Morawa, kocur łaził. 4. Z jednej stróny woda ciekła, z drugi stróny mysz uciekła. Cieszyn, Opawa, Frydek, Morawa, mysz uciykła. 30 2017-01-16 Dialekt śląski 61 Dialekt małopolski Mazurzenie ● Fonetyka międzywyrazowa udźwięczniająca ● Samogłoski pochylone ● Przejście wygłosowego -ch jako -k, np. tych = tyk, ● na polach = na polak ● (Spisz – ch na f) ● Podhale - 1-os. lp. cz. przeszłego np. byłek, robiłek ● 31 2017-01-16 Siwy dym Kiebyś miała rozum i do ludzi zdanie Hej! To byś mnie kochała za samo śpiywanie Siwy dym, siwy dym Biołe sadze niesie Hej! Pockoj mnie dziywcynko przy zielonym lesie. Dialekt małopolski (Spisz, Jurgów) To w ogóle nie było wody. Wiycie jako była biyda o wode. Ludzie to takie mieli beckid¦rewniane i wozili tum wode w tyk becka(ch). No to nos było duzo dziewcount bo było nos pieńć siostrók, a u sąsiadów zaś było duzo chłopców no to tam wiyncyj tum wode prziwozili te chłopc·i, bo no bo z|aprzągli kónia i jechali. Tak to cza bylo, jak choć kiedy to my tak sły...P¦łozycciez nom do wiadra wody. No bo cza było d|aleko po nium jechać. Tam ze dwa tam jak do p|otoka to d|aleko. Tako becka byla d|rewniano. Taki korek był w|epchany. Nej sie go w|yciąugło i ta woda tak z tej becki l|eciała. No to a p|rasuwanie. No to pranie, no pranie, bo pralków n|ie było. To była tako mied..., tako była bajla, tako tako zela.... Tako jak no soum jesce teroz takie. Takie ani... alimunowane c·i takie jak to sie nazywajom. No to i tako była r¦ajbacka, tak sie rynkum tako tyz zelazno. My nie mieli pralki, to jo potym ho ho juz nie wiym c·i do siódmej klasy nie chodziła, kiej mama takom Franie p|amiyntom p¦rziwiezłaz miasta. Byli z p|rosientami. A tak to w ryncach prali. Nej płukać to tak d|aleko my miały d|o wody, to c·i ch|łodniki c·i co, no to cza było straśnie ł|oscyndzać, zeby zeby z tym praniym. To jag my juz wyprały takie cosi b|ielizne c·i z p|łościele c·i cosi, co była c|yściyjso woda, to juz my potym to tum wodom podłoge musiały myć, zeby jom nie w|ylywać, zeby jom na cosi zuzyć. No a p¦rasuwać to takie było z|elazko lampy ... jak sie p|oliło w piecu no to ono mia.. 64 32 2017-01-16 Dialekt małopolski (Lubelszczyzna Wsch, Moniatycze) ur. w 1934 r. w Jankach koło Hrubieszowa kilka kilometrów na zachód od Moniatycz). Ukończyła 4 klasy szkoły podstawowej. Wyjeżdżała jedynie do Hrubieszowa. Kjedyś? Kiedyś taniec to był naprawde: polka… ouberek to to już było zakładanie, to sie kiedyś zakładało. Dajmy na to, jak ja bym poszła na… na óberek, tańczyć, to chłopcy sie zakładali, ilie ona wytrwa. Ódbijali. Pięć, sześć, siedem chłopców, a jedna dziwczynka, ilie ona wytrwa tego oberka. Więc ta dziwczynka zarabjała. Czy na czeykoulade, czy na cukierki, czy na… jak jak latem było, czy na doubrego loda. No bo to kiedyś co to, to… ludzie róbili w domu. A jak sie coś dzieś trafiło, to to było jak… ja wjem? Ziarko w morzu. No i i takim… to to była taka właśnie moja młodość, o. A ja byłam taka sprytna, ży ja wszyskichprzytańczyłam, bo ja tańczyłam przyz noge. Nie tak jak to sie poudbijali oboma nougami, tyl’ko ja przyz noge tańczyłam, tak że ja wszyskim mogłam przytańczyć, ja sie ni ma… nie męczyłam. To już jak szed ten zakład z chłoupakami to już… ja już widziałam, że oni sie zakładajo, że idzie chtoś do mnie. A szed najpierw taki, co ni umiał tańczyć. Żeby ja gouczyła, żeby ja sie zmynczyła. A ja nie tak nie… Bo jak przyz noge sie tańczy, to tak sie i chłópaka ni męczy i sam sie niei męczy. Ja mówi: czekaj, dou tego chłoupaka. 65 Dialekt wielkopolski ● ● ● ● ● Brak mazurzenia fonetyka międzywyrazowa udźwięczniająca- np. szeź_arów, laz_uruojs = sześć arów, las urósł Samogłoski pochylone -ow jako -ew np. majowy = majewy Labializacja 33 2017-01-16 Dialekt wielkopolski (Baranówko, koło Poznania) Kiedyź no to, kiedyś to wykopki odbywały sie dziabkom, nawet wprawdzie nie u nas, w naszym gospodarstwie nie, ale w gospodarstwach w takich tych pegeerowskich, w tych majontkach, to dziabkami, dziabkami wykopywali, to tam cały szereg tych pań szło. Mówili na to: na szefle chodzóm i to miały płacone od wykopków, od tych szefli, nie wiem, ile na taki szefel tam wchodziło, w każdym bądź razie że one szły z koszykami, wsypały do jakigoś tam pojemnika, to był, który nazywał sie tym szeflym i ten, ten, ten, ten który tam pilnował, nadzorował, to on to zapisywał i od tego miały obliczane. U naz natomias była maszyna tak zwana figaka, to ona tak wyrzucała na boki i każdom jednom radlone, radlin... radline brała, a dwóch musiało zbierać, bo to tam rorzuciła na jakieś tszy metry. I to ludzie byli paramirozstawini, co kawołek inna para, takie tam cztery pińć par czasym zbierało te zimniaki, jak zależności od tego, jakie było długie pole, nie. A w kóńcu przyszły te el... elewatorowe tak zwane ciągnikowe maszyny, które wyrzucały do tyłu i zabierały dwie radliny, a zbierał jeden człowiek i wtynczas znowuż zbierali raz przy razie mogli sobie zbierać wszyscy i z boku sie jechało czy tam końmi, czy ciągnikiem i jeden wysypywał te ziemniaki na... na... do skrzyni, do tej, do tej przyczepy, tak. No a obecnie to som już tam te kombajny, które... które wybierajom, no som jeszcze że jeszcze tam, jeszcze sie spotyka, że jeszcze wybierajom takimi też zimniakami, te zimniaki, tymi ewelator... elewatorowymi, 67 Dialekt mazowiecki Mazurzenie Fonetyka ubezdźwięczniająca międzywyrazowa np. tak_jakby ● Stwardnienie grupy li w ly np. lypa, malyna ● Przejście nagłosowego (na początku) ja- w je-, np. jak = jek, jagoda = jegoda, oraz ra- w re-, np. rano = reno ● Po spółgłoskach wargowych miękkich pojawiają się dodatkowe spółgłoski, np. mniasto ● ● 34 2017-01-16 Dialekt mazowiecki (Janówek, koło Warszawy) Drzewa to se teras nie obdziabuje. Obdziabuje sie, śnuruje, panie, sie. Mas pan sznur i zaznacas ołówkem tu, tu, zeby było prosto, panie, i mozna obdziabywać albo oberżnounć na pile, panie, tak, takie drzewo i zeby było cy do kantu, ji na jakie chces pan, cy na łaty, cy na te krokwy. No bo jak na łaty chces pan, pod blache bić, to cienkie, a na krokwi to musombyć, panie, dobre drzewo, grubse i mocne. To pan dajes później trempel, to trempel, zebysie nie zawaliło, ten, ten dach, jak to, no to musi być zmocowany, jak to sie mówi, panie. I to wszystko jest, to robota była, panie, taka, i panie ji. Robiło sie na Ursynowje, budynkistawjało sie, wjeżowce, panie, Łokeńcie sie budowało, na Łokeńcie byłem, było tepowjenkszenie tego Okeńcia, tyż robiłem, panie, zakłady Nowotki, polskie nagranie, na strzelnicy sie robiło tu, na Bjelanach, tu na Młocinach, wszystko robiło tamoj, panie, strzelnicy, to poszli duzo piniendzy a to nic z tego nie wysło, bo to w kepskim mjejscuzaplanowali. Bo to ta Wisłostrada leci, tutej rozjazdy, wje pan, panie. Wszystko to, widzis pan, wszystko to robiłem sam, panie, ło. 69 Dialekt mazowiecki (Czerwonka, Podlasie) Kiedyś co tutaj było? Kowal. Kawal’ był, wszystko było swoje, nie, tedy wszystko, nichto ni kupował, wszystko swoje, dawali, warzywo, nie warzywo, wszystko, tylko tera to tam o robio, no. Ale też tak kawala nie ma, już koso i nie ko¦szo, cepami nie młóco, maszynami, niestety, już wszystko, zmieniłoa s’ie, no bardzo zmieniło sie... Jak ja jeszcze byłam nawet młodoam, to w szkole aorganizoawali komedyjki takie różne, przedstawienia różne, brałam dużo udziału w tym. To jeszcze było w Pokośnem, do szkoły chodząc i ze szkoły różne tance, rozmaite, różne te strouje te. Są takie spódnicy, baby nosili kiedyś, naszywanea, długiea z takimi koaronkami różne, jeszcze gdzieś tam może na górze jest. Z tych tradycyjów, było ale już tera nie ma, zanikło. Bo nie ma młodych, my już stare, to co tam, nie dasz rady, no to co tam, nie robisz nic i tak, o. Są jeszcze tradycje różne. Alejusz nie już tylko tak, weas’iele jeszcze tradycyjne jest, pogrzeb tradycyjny jest, no i chrzciny tradycyjne spotykajo, że podajo dz’ieciaka do chrztu. No to jest jeszcze tradycja. Nie ma teygo, jusz jakie może dziesięć lat jusz nie ma tego, co było kiedyś. Byli zabawy to jak liatem u stodołach, dz’iś jusz nie ma tych zabawów. A jeszcze kiedys’ to poamieszkaniach, to byłoa byli, no i grali tutaj, o tam u kogoś gdz’ie młodych dużo było, to poproszo i grali i tańczyli, byłoa więcej rozrywki było, różne takie przyśpiewki śpiewali. 70 35 2017-01-16 Nowe dialekty mieszane Termin stosowany na określenie odmian języka polskiego używanych na ziemiach zachodnich i północnych Polski, tzw. ziemiach odzyskanych. Powstały ze zmieszania się kilku różnych gwar. Stały się polszczyzną ogólną z elementami gwarowymi. Język kaszubski ● Od 2005 roku język regionalny z możliwością wprowadzenia do urzędów jako język pomocniczy ● W województwie pomorskim ● Można zdawać maturę z języka kaszubskiego ● Inne znaki fonetyczne niż w języku polskim ● Spółgłoski które w wielu gwarach polskich ulegają mazurzeniu w kaszubszczyźnie upodabniają się do ś, ź, ć, dź - kaszubienie 36 2017-01-16 Kaszubski 73 Mazurzenie 37 2017-01-16 Lwowski 75 Fonetyka międzywyrazowa TAK_JAKB Y TAG_JAKB Y 38 2017-01-16 Ziemniaki ● Grule – Podhale ● Rzepy – Orawa ● Pyry – Wielkopolska ● Kobzale, knule, jabłka – Śląsk ● Kartofle – Mazowsze i Śląsk ● Bulwy – Pomorze ● Pantówki - Kujawy Dialekty angielskiego 78 39 2017-01-16 Znaczenie korpusów • Większość metod w przetwarzaniu mowy opiera się na statystykach => • Jakość i wielkość korpusów jest kluczowa dla jakości systemów 79 Korpus a zbiór danych • • • • Przetwarzalny przez maszyny Autentyczne dane językowe Reprezentatywny Zwykle anotowany (transkrypcje do mowy, funkcje gramatyczne do tekstów, osoby wypowiadające się itd.) 80 40 2017-01-16 Jakość sygnału mowy 81 Anotacje • Wykonanie wszelkiego rodzaju anotacji jest procesem bardzo czasochłonnym i uciążliwym (1 min mowy -> 20 min pracy) => • Korpusy są dużo kosztowniejsze niż ich nie przetworzona zawartość • Stosuje się coraz częściej także podejścia automatyczne, bez anotacji przez ludzi (Google) 82 41 2017-01-16 Anotator AGH 83 phoneme.dsp.agh.edu.pl/nagrywarka/ 84 42 2017-01-16 Segmentacja na fonemy 85 Aspekt prawny • Teksty i nagrania są wytworem myśli i jako takie są chronione prawem autorskim • Prawo w Polsce dopuszcza pobieranie tekstów z internetu, zabrania ich udostępniania bez zgody autorów • Nie ma przepisów prawnych odnośnie praw do modeli językowych wytworzonych na podstawie tekstów objętych ochroną prawem autorskim • Można założyć, że statystyki nie są już chronione prawem, ale trzeba liczyć się z wątpliwościami 86 43 2017-01-16 Polskie korpusy mowy •Grocholewski CORPORA •Jurisdic •GlobalPhone •Luna •SpeechDat(E) •EPPS European Parliament corpus •Szklanny corpus (PJWSTK) •AGH corpus 87 CORPORA - anotacja "*/ak1c1kzm.lab„ 0 0 sil 50000 900000 k 950000 2000000 a 2050000 3300000 zi 3350000 4050000 i 4100000 5050000 m 5100000 6100000 j 6150000 6800000 e 6850000 7950000 r 8000000 10000000 a 10050000 10800000 sil . MLF, CHR, FON Programy LABEL98 i BASAK98 88 44 2017-01-16 GlobalPhone - anotacja ;SprecherID 001 ; 1: Niemiecka gazeta "Franfurter Rundschau" wczorajsza~ korespondencje~ z Krakowa zatytul1owal1a "Wieczna postac1" ; 2: Dziennik nawia~zal1 do wypowiedzi jednej z ml1odych mieszkanek Krakowa kto1ra mial1a cztery lata gdy kardynal1 Wojtyl1a wyjechal1 do Rzymu w tysia~c dziewie~c1set siedemdziesia~tym o1smym roku ; 3: Cal1e moje z0ycie przebiega pod znakiem Jana Pawl1a drugiego ;timestamp: 1999 ;BEGIN ;LANGUAGE:Polish ;SUPERVISOR:Patrycja H ;TAPELABEL:notape ;RECORD DATE: ;ARTICLE READORDER: ;TOPIC ARTICLE: ;SPEAKERDATA ------------;NAME OF SPEAKER:Patrycja ;SPEAKER ID:001 ;NATIVE LANGUAGE:Polish ;RAISED IN:Poland ;DIALECT: ;SEX:female ;AGE:22 ;OCCUPATION:student ;COLD OR ALLERGY:ok ;SMOKER:nonsmoking ;RECORDING SETUP -----------;RECORD PLACE: ;ENVIRONMENT NOISE: ;RECORD CONDITIONS: ;COMMENTS: ;END 89 Luna – anotacja (2 sek) 90 45 2017-01-16 Luna – anotacja (2 sek) c.d. 91 Luna – anotacja (2 sek) c.d. 92 46 2017-01-16 Luna – anotacja c.d. 93 Europarlament - anotacja <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Trans SYSTEM "trans-14.dtd"> <Trans audio_filename="1655_1730_PL_SAT" version="2" version_date="110106"> <Speakers> <Speaker id="spk1" name="unknown" type="unknown" dialect="native" accent="" scope="global"/> <Speaker id="spk2" name="Geremek" check="no" dialect="native" accent="" scope="local"/> </Speakers> <Episode> <Section type="report" startTime="0" endTime="2099.976"> <Turn startTime="0" endTime="32.526"><Sync time="0"/> 94 47 2017-01-16 Europarlament – anotacja c.d. </Turn> <Turn speaker="spk1" startTime="32.526" endTime="166.829"> <Sync time="32.526"/> [noise] <Sync time="161.086"/> [pause] <Sync time="163.414"/> [noise] </Turn> <Turn speaker="spk2" startTime="166.829" endTime="246.34"> <Sync time="166.829"/> dziękuję panie przewodniczący . <Sync time="169.089"/> muszę wyznać , że przemówienia pana premiera [xxx] mają siłę uwodzicielską . <Sync time="174.29"/> i po przemówieniu czerwcowym w parlamencie słuchając końcowego dzisiejszego , 95 Europarlament – anotacja c.d. Sync time="181.06"/> chciałem rozpocząć moje wystąpienie od tego , że uważam premiera [xxx] [xxx] za jednego z nielicznych europejskich mężów stanu . <Sync time="190.204"/> ale czar prysł , gdy pan premier wyszedł . <Sync time="193.549"/> i dlatego moje słowa będą nieco odmienny charakter nosiły . <Sync time="197.796"/> wiele wskazuje na to , że prezydencja brytyjska będzie miała bilans , który będzie smutny dla unii europejskiej . <Sync time="240.712"/> [applause] </Turn> <Turn speaker="spk1" startTime="246.34" endTime="1991.21"> <Sync time="246.34"/>[noise]</Turn> <Turn startTime="1991.21" endTime="2099.976"> <Sync time="1991.21"/> </Turn> </Section></Episode></Trans> 96 48 2017-01-16 Szklanny - anotacja intervals [3]: xmin = 1.1319438952189453 xmax = 1.161179389606396 text = "e" xmin = 0 intervals [4]: xmax = 5.54 xmin = 1.161179389606396 tiers? <exists> xmax = 1.2331743328651683 size = 1 text = "z" item []: intervals [5]: item [1]: xmin = 1.2331743328651683 class = "IntervalTier" xmax = 1.2801699383273164 name = "Alignment" text = "a" xmin = 0 intervals [6]: xmax = 5.54 xmin = 1.2801699383273164 intervals: size = 57 xmax = 1.3426052499999999 intervals [1]: text = "m" xmin = 0 intervals [7]: xmax = 0.9933668981481482 xmin = 1.3426052499999999 text = "_sil_" xmax = 1.3797865044247786 intervals [2]: text = "j" xmin = 0.9933668981481482 xmax = 1.1319438952189453 text = "n'" File type = "ooTextFile" Object class = "TextGrid" intervals [8]: xmin = 1.3797865044247786 xmax = 1.4101731150793648 text = "e" intervals [9]: xmin = 1.4101731150793648 xmax = 1.490879220335675 text = "Z" intervals [10]: xmin = 1.490879220335675 xmax = 1.5409413580246911 text = "a" intervals [11]: xmin = 1.5409413580246911 xmax = 1.5825974934895832 text = "m" intervals [12]: xmin = 1.5825974934895832 xmax = 1.6389739583333332 text = "m" 97 Korpus AGH - anotacja 98 49 2017-01-16 Korpus AGH - zawartość 99 Korpus AGH - zawartość 100 50 2017-01-16 Polskie korpusy tekstów IPI PAN (z POS tagami) NKJP (National Corpus of Polish) Rzeczpospolita Literatura Transkrypcje Sejmu i zjazdów Solidarności Nazwiska (Lista Wildsteina, PESEL, ANWIL SA) Notatki PAP Wikipedia Inne strony (crawling) http://clip.ipipan.waw.pl/LRT 101 Korpus IPI PAN <tok> <orth>Porządek</orth> <lex><base>porządek</base><ctag>subst:sg:acc:m3</ctag></lex> <lex disamb="1"> <base>porządek</base><ctag>subst:sg:nom:m3</ctag> </lex> </tok> <tok> <orth>dzienny</orth> <lex><base>dzienny</base><ctag>adj:sg:acc:m3:pos</ctag></lex> <lex><base>dzienny</base><ctag>adj:sg:nom:m1:pos</ctag></lex> <lex><base>dzienny</base><ctag>adj:sg:nom:m2:pos</ctag></lex> <lex disamb="1"> <base>dzienny</base><ctag>adj:sg:nom:m3:pos</ctag> </lex> </tok> 102 51 2017-01-16 Polskie korpusy tekstów 103 Problemy z formatem polskich liter Standardy polskich liter: -UTF-8 -Windows 1250 -ISO 8859-2 -Mazovia -IBM CP 852 -? Czasami w jednym pliku może być użytych kilka 52 2017-01-16 Litery języka polskiego w UTF-8 105 Litery języka polskiego w UTF-8 106 53 2017-01-16 Korpusy tekstów angielskich - American National Corpus (ANC) 22 mln (2009) - CollinsWordbank, mixed mainly British 56 mln (2009) - British National Corpus (BNC) 100 mln (spoken and written) - Corpus of Contemporary American English (COCA) 385 mln (spoken, literature, journals, academic papers) - Brown Corpus (1967) 1 mln but with POS tags - International Corpus of English (ICE) 1 mln (British, Hong Kong, Western Africa, India, New Zeland, Philipines & Singapur) - Oxford English Corpus 2 000 mln (but including Internet websites) - Scottish Corpus of Texts and Speech 4 mln of Scottish 107 Inne typy korpusów • Wielojęzyczne (do uczenia tłumaczeń) • Wielomodalne (np. audiovideo) • Emocjonalne (z pracy mgr inż. Magdaleny Igras) • „medyczne” 108 54 2017-01-16 Korpus audiovideo AGH 109 Korpusy Ultrasonograficzne Thomas Hueber 1, Elie-Laurent Benaroya2, Bruce Denby 3,2, Gérard Chollet 1GIPSA-lab, 2Sigma Laboratory, ESPCI Paristech, 3Université Pierre et Marie Curie, Paris, France 4LTCI/CNRS, Telecom ParisTech 110 55 2017-01-16 Korpusy z obrazowaniem metodą rezonansu magnetycznego (MRI) 111 Korpusy z obrazowaniem metodą rezonansu magnetycznego (MRI) 112 56 2017-01-16 Korpusy elektromiograficzne (EMG) Michael Wand, Matthias Janke, Tanja Schultz (KIT) 113 Korpusy z elektromagnetycznym artykulografem (EMA) P. West, Oxford University Phonetics Lab 114 57 2017-01-16 Korpusy mowy i tekstów – czym się kierować przy wyborze •Jakość i wielkość – potrzebna optymalna decyzja •Format nagrań lub tekstów •Anotacje •Zgodność z tekstem •Szczegółowość (zdania, słowa, fonemy) •Dodatkowe informacje •Kim byli mówcy •O czym jest korpus •Czy mówcy powtarzają te same wypowiedzi •Cena (od 2000 Euro do 50 000 Euro) 115 Słowniki – 3 reprezentacje Pliki tekstowe Bazy danych Finite State Automaton 116 58 2017-01-16 Słowniki języka polskiego • Synonimy Open Office http://synonimy.ux.pl/, • Wielki Słownik Języka Polskiego http://www.wsjp.pl/, • Słownik wyrazów obcych i zwrotów obcojęzycznych Władysława Kopalińskiego http://www.slownik-online.pl/index.php, • Wikisłownik http://pl.wiktionary.org/, • Słownik synonimów i antonimów Piotra Żmigrodzkiego http://leksykony.interia.pl/synonim, • Słownik Języka Polskiego http://sjp.pl/, • N-gramowy słownik frekwencyjny języka polskiego 117 Słowniki do rozpoznawania mowy … … zawsze będą mieć transkrypcję fonetyczną. może moZe Morze moZe tak tak tak tag 118 59 2017-01-16 Wybór silnika bazy danych Potrzeby: - Duża szybkość odczytu - Odpowiednia licencja - Małe zużycie zasobów - Prostota - Łatwość „instalacji” (brak serwera usług) - Przenośność danych SQL vs noSQL SQL – Structured Query Language – relacyjne bazy danych (MySQL, Ms SQL, Oracle, SQLite ...) NoSQL - „not only SQL” - wszystkie inne – key-value store, document store, graph DB, object DB, tabular ,… (BerkeleyDB, BigTable, CouchDB, …) 60 2017-01-16 Wybór silnika bazy danych Dostępność Relational Key-Value Tabular Document Tokyo Cabinet, CouchDB, Cassandra RDBMS (MySQL, Postgres, MS SQL) Wybierz dwa! Spójność BerkeleyDB, BigTable (Google), MongoDB „Podzielność” Wybór silnika bazy danych Dostępność Tylko czytanie danych Wybierz dwa! Spójność „Podzielność” 61 2017-01-16 Wybór silnika bazy danych Dostępność Tylko czytanie danych Wybierz dwa! „Podzielność” Spójność Zapis danych jednowątkowo Wybór silnika bazy danych Dostępność Tylko czytanie danych Wybierz dwa! Spójność Zapis danych jednowątkowo „Podzielność” Dane przechowywane tylko lokalnie 62 2017-01-16 Wybór silnika bazy danych Dostępność Tylko czytanie danych Spójność Zapis danych jednowątkowo HODB key-value store (DSP AGH) - Duża szybkość odczytu - Własna licencja - Prosta implementacja „Podzielność” Dane przechowywane tylko lokalnie Testowane silniki baz danych SQLite – lekki silnik relacyjnych baz danych BerkeleyDB – nierelacyjna baza danych przechowuje dane w oparciu o schemat kluczwartość HODB – własna implementacja bazy danych w oparciu o tablicę mieszającą (hash table) 63 2017-01-16 Zbieranie danych do modelu językowego Odczyt danych – dane rzeczywiste 64 2017-01-16 Semantyczne zasoby dla języka Polskiego Słowosieć http://plwordnet.pwr.wroc.pl/browser/ ◮ Wikipedia i DBPedia http://dbpedia.org/ ◮ Synonimy w OpenOffice http://synonimy.ux.pl/ ◮ Wielki Słownik Języka Polskiego http://www.wsjp.pl/ ◮ Słownik Języka Polskiego http://sjp.pl/ 129 Słowosieć Elektronika jest typem sprzętu Elektronika jest typem nauki matematycznoprzyrodniczej i nauki ścisłej 130 65 2017-01-16 Słowosieć Automatyka Informatyka Mechanika Inżynieria 131 Konstruowanie Słowosieci 132 66 2017-01-16 Podsumowanie • Orientacja w zagadnieniach związanych z korpusami mowy i tekstów (jak się je robi, ocenia ich jakość, wielkość itp.) • Rodzaje korpusów (tekst, mowa, wielojęzyczne, audiovideo, emocje, obrazy „medyczne”) • Implementacje słowników (tekst, BD, FSA) • Słowosieć (sprawdzić stronę) 133 HTK 134 67 2017-01-16 Czym jest HTK • Zbiór programów implementujących Niejawne Łańcuchy Markowa - Hidden Markov Models (HMMs) • ASR, synteza mowa, rozpoznawanie liter, badania nad sekwencjami DNA • Analiza mowy, wyćwiczenie HMM, testowanie i analiza rezultatów • HTK dopasowuje hipotezę każdego rozpoznania do jednego z elementów słownika przygotowanego przez użytkownika • Porównanie transkrypcji fonetycznych słów 135 Schemat HTK 136 68 2017-01-16 Sekwencja symboli 137 Rozpoznanie pojedynczego słowa 138 69 2017-01-16 Łańcuch Markowa 139 Ćwiczenie 140 70 2017-01-16 Rozpoznawanie 141 Reprezentowanie mikstur 142 71 2017-01-16 Reestymacja • Najpierw robi się zgrubne przybliżenie wartości parametrów HMM • Następnie dokładniejsze parametry można znaleźć stosując reestymację Baum-Welcha • Według kryterium maksymalnego podobieństwa (maximum likelihood) 143 Algorytm Viterbiego dla rozpoznawania izolowanych słów 144 72 2017-01-16 Sieć rozpoznawania dla mowy ciągłej 145 Tokeny wykrywające granice słów 146 73 2017-01-16 Używanie HTK • System można wykonać korzystając z tutoriala HTK Book, jednakże niektóre kroki będą inne, a niektóre można pominąć – Step 7 - 8 Fixing the Silence Models – Step 9 - 10 Making Triphones from Monophones • Różnice i niedopatrzenia – Przygotuj plik config1 i codetr.scp (config jak w tutorialu ale z SOURCEFORMAT = WAV) – Utwórz katalogi hmm0, hmm1, ... 147 Rzeczy o których należy pamiętać • Dokumentuj używane komendy i inne czynności • Dbaj o porządek w swoich plikach • Nagrywaj mowę w dobrej jakości (głośno, poprawnie wymowa, jak najmniej zakłóceń i szumu, bez przesterowania) • Nagrania muszą idealnie pasować do transkrypcji • Niczego nie kasuj • Aby otrzymać ocenę wyślij sprawozdanie, 148 nagrania, transkrypcję i cały system 74 2017-01-16 Modelowanie mowy 149 HMM 150 75 2017-01-16 151 152 76 2017-01-16 153 Probability density function 154 77 2017-01-16 Maximum A Posteriori (MAP) Estimation Maximising the posterior pdf 155 Maximum-Likelihood (ML) Estimation Maximising the likelihood function 156 78 2017-01-16 Common problems with using statistics 157 158 79 2017-01-16 Klasyfikowanie i dekodowanie w ASR poza HMM • Klasyfikator k-NN • Artificial Neural Networks (ANN), Sztuczne sieci neuronowe • Support Vector Machine (SVM), Maszyna wektorów nośnych • Dynamic Bayesian Networks (DBN), Dynamiczne sieci Bayesa • Głebokie sieci neuronowe (DNN) 159 Artificial Neural Networks (ANN, NN) 160 80 2017-01-16 Modelowanie czasu i kontekstu w ANN 161 Hosom, Cole, Fanty, CSLU at Oregon Institute of Science and Technology 162 81 2017-01-16 163 Metodologia empirycznego oceniania • Wyniki testów niczego nie dowodzą, mogą jedynie wskazywać itp. • Konieczne jest rozdzielenie danych treningowych i testowych, aczkolwiek można „crossować” • Prawo wielkich liczb, ale • Niektóre systemy statystyczne mogą się przećwiczyć • Oceniamy na raz wyłącznie jedną zmienną, reszta systemu musi być całkowicie stabilna • Należy podać jak najwięcej szczegółów dotyczących danych testowych, a w miarę możliwości używać ogólnodostępnych testów • Wyniki naukowe powinny być falsyfikowalne – 164 otwarcie na krytykę 82 2017-01-16 Support Vector Machine (SVM) 165 166 83 2017-01-16 Ganapathiraju, Hamaker, Picone: „Applications of Support Vector Machines to Speech Recognition” • SVM nie może modelować wprost struktur czasowych • Stosuje się rozwiązania hybrydowe SVM/HMM • SVM zapewnia miarę i dyskryminant umożliwiający porównywanie klasyfikatorów • Brak jasnych relacji między dystansem klastrów i prawdopodobieństw a posteriori • Projektowanie klasyfikatora: jeden przeciwko wszystkim lub jeden na jeden • Model segmentowy ze stałą liczbą regionów 167 Ganapathiraju, Hamaker, Picone: „Applications of Support Vector Machines to Speech Recognition” 168 84 2017-01-16 Nieliniowe klasyfikacje SVM 169 Sieć Bayesowska Skierowany acykliczny graf reprezentujący zbiór zmiennych losowych i zależności warunkowych między nimi. 170 85 2017-01-16 Sieć Bayesowska 171 172 86 2017-01-16 Dynamiczne sieci Bayesowskie Wyrażenie s ozna cza wystąpienia stanów koncepcyjnych z dyskretnymi wartościami opisującymi fizyczny system o wartościach ciągłych ze stanami x i obserwacjami y 173 174 87 2017-01-16 HMM a DBN • HMM jest podklasą DBN • DBN reprezentuje wprost właściwości rozkładu na czynniki • Rozkład na czynniki określony przez DBN narzuca warunki które model musi spełnić • DBNy przekazują informację strukturalną o ukrytym problemie 175 Edinburgh articulatory DBN model manner, place, voicing, rounding, front-back, static 176 88 2017-01-16 Graphical Model Toolkit extension of DBN • Dopuszcza krawędzie ukierunkowane przeciwnie do upływu czasu • Płaszczyzny sieci mogą obejmować wiele ramek czasowych • Łamie założenia Markowa • Mechanizm do przełączania dziedziczenia • Dziedziczenie zmiennej może być wielokrotne a także ulokowane w przyszłości • Dopuszcza różne wieloramkowe struktury pojawiające się zarówno na początku jak i na końcu sieci Bilmes, Bartels: Graphical Model Architecture for Speech Recognition 177 GMTK 178 89 2017-01-16 Maximum Entropy Markov Model Kuo, Gao: Maximum Entropy Direct Models for Speech Recognition 179 Conditional Random Fields • DBNy modelują dystrybucję prawdopodobieństw wielu zmiennych p(y,x) • CRFy modelują dystrybucję prawdopodobieństw warunkowych p(y|x) 180 90 2017-01-16 Deep Neural Networks • Więcej warstw • Wysokopoziomowe cechy są definiowane w oparciu o niskopoziomowe 181 182 91 2017-01-16 Dynamic Time Warping 183 184 92 2017-01-16 185 186 93 2017-01-16 Podsumowanie • W ASR stosuje się rozwiązania konkurencyjne do HMM (kNN, ANN, SVM, DBN, MEDM, GMTK, CRF, DNN). • We wspomnianych metodach są problemy z modelowaniem czasu i kontekstu koartykulacyjnego, dlatego często stosuje się hybrydy z HMM. • Metodologia testowania i oceny ASR • Przeszukiwanie grafów szerokie i dogłębne 187 Metryka edycyjna Rozpoznawanie mowy ciągłej (wykorzystano materiały Dawida Skurzoka i MIT) 188 94 2017-01-16 Levenshtein Distance Wolfram Mathematica Demo: Edit Distance 189 Metryka edycyjna 190 95 2017-01-16 Metryka edycyjna 191 Metryka edycyjna 192 96 2017-01-16 Modyfikacja metryki edycyjnej o d t a p g d i e k o n t f d u a l a m k o t a 0 1 2 3 4 5 6 7 8 A 1 0 1 2 3 4 5 6 7 L 2 1 0 1 2 3 4 5 6 A 3 2 1 0 1 2 3 4 5 Lepsze dopasowanie niemożliwe – przerwanie analizy kolejnych segmentów Modyfikacja metryki edycyjnej o d t a p g d i e k o n t f d u a l a m k o t a 0 1 2 3 4 5 6 7 8 D 1 1 1 2 3 4 5 6 7 O 2 2 2 1 2 3 4 5 6 M 3 3 3 2 1 2 3 4 5 Przerwanie analizy 97 2017-01-16 Modyfikacja metryki edycyjnej o d t a 0.5 e a k o o 0.25 l a n 0 0 1 2 3 4 O 1 K 2 0.5 1.5 2.5 3.5 1.5 0.75 1.75 2.75 O 3 2.5 1.75 1 1 Ilość segmentów = 4 końcowa odległość: 1 / 4 = 0.25 Ilość segmentów = 3 końcowa odległość: 1 / 3 = 0.3333 Tworzenie siatki a l a m k o t a e k o n t f d u o d t a p g d i a ala akta ola atrapa …. 98 2017-01-16 Tworzenie siatki a l a m k o t a e k o n t f d u o d t a p g d i k o t a dom lama koń kotdam Tworzenie siatki a l a m e k o n t f d u o d t a p g d i a ono tak amok 99 2017-01-16 Tworzenie siatki a l a m k o t a e k o n t f d u o d t a p g d i k o t a kot akta akt … Tworzenie siatki a l a m e k o n t f d u o d t a p g d i kot akta akt … 100 2017-01-16 Tworzenie siatki a l a m k o t a e k o n t f d u o d t a p g d i kot akta akt … Łączenie wyrazów Ala Oko dom ono auto a lamo tak ma i koń a nip u kota to kodu a 101 2017-01-16 Usuwanie tych samych wyrazów dom ono auto a lamo tak ma i koń a nip ma kota to a dom ono auto a lamo tak ma i koń nip kota to a Usuwanie tych samych wyrazów dom ono lamo tak koń auto a ma i nip kota to a dom ono lamo tak koń auto a ma i nip kota to 102 2017-01-16 Usuwanie ślepych ścieżek ala oko dom Ono Auto lamo Tak Ma koń a nip a Usuwanie ślepych ścieżek ala dom Ono Auto Ma oko koń a nip a 103 2017-01-16 Wyszukiwanie najlepszych ścieżek Ala dom ono auto a oko lamo tak ma i a koń a nip u kota od to ot kodu oda a u i . Przykład hipotezy zdania 104 2017-01-16 Modified Weighted Levenshtein Distance K K K k 1 k 1 k 1 MWLD( A, B ) min{ lnk rk ( w) hk i ( w) g k d ( w)} Substitution weight: lnk (ln( p1k ) ln( pnk )) Insertion weight: hk ln( pins ) const Deletion weight: g k ln( p1k ) ln( pdel ) 209 substitution = deletion + insertion Substitution can be replaced by insertion and deletion Sum of insertion and deletion weights have to be bigger then weight of substitution hk g k lnk 210 105 2017-01-16 1 substitution and 1 deletion Segment 1 Phon. Segment 2 prob. Phon. prob. j 0.35 e 0.35 i e … 0.25 0.15 … y j … 0.30 0.20 … Segment 3 Phon. Segment 4 Segment 5 prob. Phon. Prob. Phon. Prob. ż 0.30 w 0.30 p 0.30 sz ś … 0.25 0.20 … y 0.25 0.20 … t e … 0.25 0.20 … e … MWLD (ln( p1k ) ln( pnk )) (ln( p1k ) ln( pdel )) MWLD 0.18 0.69 • Substitution has low weight (0.18), because the phoneme, for which we replace, was high on the hypotheses list. • Deletion weight is higher because the deleted phoneme has relativelly high probability. 211 Modified Weighted Levenshtein Distance 212 106 2017-01-16 213 Dzielenie na słowa 1 0.8 silne 450 [ms] działanie 450 [ms] uboczne 600 [ms] 0.6 0.4 amplitude 0.2 /s’il/ 0 /ne/ /dz'a/ /wa/ /n’e/ /u/ /bo/ / tSne/ -0.2 -0.4 -0.6 -0.8 -1 pause 110 [ms ] 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 time [s] 1 1.1 1.2 1.3 1.4 1.5 1.6 214 107 2017-01-16 Rozpoznawanie mowy ciągłej 215 216 108 2017-01-16 217 218 109 2017-01-16 219 220 110 2017-01-16 221 222 111 2017-01-16 223 224 112 2017-01-16 225 226 113 2017-01-16 227 228 114 2017-01-16 229 230 115 2017-01-16 231 232 116 2017-01-16 233 Podsumowanie • Metryka edycyjna (Levenshteina) • Zjawisko braku ciszy między słowami • Level builder • Konstruowanie siatki słów • Łączenie sekwencji HMMów 234 117 2017-01-16 Katedra Elektroniki, Zespół Przetwarzania Sygnałów www.dsp.agh.edu.pl http://rozpoznawaniemowy.blogspot.com/ Rozpoznawanie mówcy i emocji 235 Wprowadzenie • Mowa zawiera nie tylko informacje słowne o przekazywanej wiadomości • Rozpoznawanie mowy • Rozpoznawanie mówcy • Rozpoznawanie emocji -> co? -> kto? -> jak? • Mowa może być wykorzystana w systemach biometrycznych 236 118 2017-01-16 Rozpoznawanie mówcy 237 Architektura systemów automatycznego rozpoznawania mówcy 238 119 2017-01-16 Ogólny podział systemów automatycznego rozpoznawania mówców 239 Weryfikacja a identyfikacja Źródło: www.zamelcet.com WERYFIKACJA IDENTYFIKACJA Źródło: PAP 240 120 2017-01-16 Opis jakości systemu – stopień rozpoznania 241 Zastosowania • Biometryczne systemy bezpieczeństwa – Zalety w porównaniu do innych systemów • Nieskończona ilość materiału do analizy (więcej nagrań – większa dokładność) • Wymagany jedynie tani sprzęt • Niewymagana obecność (zdalne rozpoznanie) • Bezpieczeństwo 121 2017-01-16 Zastosowania 243 Zastosowania • Biometryczne systemy bezpieczeństwa – Oczekiwany wzrost zainteresowania systemami rozpoznawani mówcy w porównaniu do innych systemów biometrycznych 122 2017-01-16 Zastosowania • Biometryczne systemy bezpieczeństwa • Przez telefon – Transakcje bankowe » Zmniejszenie strat powiązanych z defraudacjami » Zmniejszenie kosztów prewencji defraudacji » Zwiększenie przychodu w związku ze wzrostem satysfakcji klientów – Poczta głosowa – Zakupy przez telefon – Głosowe interaktywne systemy odpowiadające Zastosowania • Biometryczne systemy bezpieczeństwa – Defraudacje związane z podszywaniem się • Jedynie w 2006 roku, 8,9 milliona dorosłych obywateli US było ofiarami podszywania się • 1,3 miliarda funtów strat rocznie w Zjednoczonym Królestwie Przychód z systemów biometrycznych 123 2017-01-16 Zastosowania – systemy bezpieczeństwa – Fizyczny dostęp (klucz) – VADC (Voice Activated Device Control) – Bankomaty bez kart Zastosowania • systemy bezpieczeństwa - Dostęp do komputerów i sieci 248 124 2017-01-16 Zastosowania 30 do 40 % telefonów do obsługi klienta to problemy z hasłem SR • systemy bezpieczeństwa Odzyskiwanie hasła przez telefon Zastosowanie – Monitoring • Kontrola zdalnej pracy i obecności pracowników • Weryfikacja zwolnień warunkowych i aresztów domowych • Gmina Iberville w LA (US) używa identyfikacji mówcy przez telefon dla osób objętych opieką kuratora – Przed automatyzacją -> 1400 $/dziecko – Po -> 193 $/dziecko • Użycie telefonów więziennych 125 2017-01-16 Zastosowania • Wsparcie służb – W kryminalistyce – Rozpoznawanie mówców na żywo w identyfikacji osób dzwoniących • Śledzenie mówcy, wykrywanie i nadzór • Analiza mowy syntezowanej i modulowanej • Cechy głosu są trudniejsze do ukrycia niż twarz Zastosowania • Rozpoznawanie mowy i mówcy – Ulepszenie systemów bezpieczeństwa – Transkrybowanie wielu mówców na raz w konwersacji - Rozprawy sądowe, parlamenty i inne transkrypcje spotkań 126 2017-01-16 Zastosowania • NIST www.nist.gov • Korpusy do oceny systemów rozpoznawania mówcy • www.speechtechmag.com • Departament Sprawiedliwości US • The European CAller VErification Project www.kpntelecom.nl/cave/ • Voicetrust www.voicetrust.com • PerSay Voice Biometrics ww.persay.com • International Biometric Group, New York • Mało ale dużych użytkowników (korporacje i instytucje rządowe) => wysokie ceny Klasyfikacja • Zamknięty/ otwarty-zbiór Narzucone błędne rozpoznanie ? ? Baza danych System z zamkniętym zbiorem Baza danych Poza bazą danych „nie pasuje do żadnego” System ze zbiorem otwartym • Weryfikacja / Identyfikacja ? Tak ? Mówca N Nowak ? Nie Baza danych Baza danych • Zależne (stałe lub zmienne) lub niezależne od tekstu • Cechy niskiego poziomu (akustyczne) lub wysokiego (lingwistyczne, dialektowe, społeczne, itd.) 127 2017-01-16 Poziomy rozpoznawania mówcy Cechy wysokiego poziomu (nieakustyczne) Cechy niskiego poziomu (fizyczne) Semantyka, dykcja, wymowa Status społecznofinansowy, edukacja, miejsce urodzin Prozodia, rytm, tempo intonacji, modulacja głośności Typ osobowości, wpływ rodziców Akustyczne aspekty mowy Anatomiczna struktura narządów mowy Trudna ekstrakcja Łatwa ekstrakcja Przygotowywanie systemu 256 128 2017-01-16 Rozpoznawanie 257 System weryfikacji mówcy 129 2017-01-16 System identyfikacji mówcy 259 Pobieranie danych Zmienność kanału pomiędzy nagraniami Ściana Zmiana głosu mówcy wraz z czasem A/D Kanał 2 .5 2 1 .5 1 0 .5 0 -0 . 5 -1 -1 . 5 -2 -2 . 5 0 2 0 4 0 6 0 8 0 1 0 0 1 2 0 1 4 0 1 6 0 Źródło szumu 1 8 0 2 0 0 Wpływ innych rozmów, przepięcia, inne zakłócenie sprzętowe Niska rozdzielcz ość, np. GSM 130 2017-01-16 Ekstrakcja cech • Celem jest wydzielenie, najważniejszych, charakterystycznych informacji z sygnału • Różne metody: – – – – LPC Cepstrum MFCC DWT Dopasowywanie wzorców • Modele z wzorcami – DTW – VQ Source Modelling – kNN • Modele stochastyczne – HMM + GMM • Sieci neuronowe (NN) • Maszyna wektorów nośnych (SVM) 131 2017-01-16 Klasy (dźwięczna\bezdźwięczna) 263 Klasy (dźwięczna\bezdźwięczna) – ”Cztery” 264 132 2017-01-16 Klasy (dźwięczna\bezdźwięczna) 265 Decyzje • Bez modelu tła • Porównanie do średniej pozostałych hipotez 266 133 2017-01-16 Decyzje 267 Przykład podejmowania decyzji – system AGH Średnia prawdopodobieństw hipotez 2-5 to około 0.14 0.52 >> 0.14 => Decyzja może być podjęta – mówcą jest Andrzej Jajszczyk 268 134 2017-01-16 Decyzje – Uniwersalne modele tła (UBM) Model dla odrzucanych i niezidentyfikowanych rozpoznań 269 Testowanie Krzywa DET (detection error trade-off) •Zaakceptowany właściwy mówca •Odrzucony właściwy mówca •Zaakceptowany błędny mówca •Odrzucony błędny mówca 270 135 2017-01-16 Analiza możliwych wersji systemu Przypadek projektowania systemu identyfikacji mówcy jako pracy magisterskiej (David Sierra) CMN - Cepstral mean normalisation 271 Typy cech akustycznych 272 136 2017-01-16 Liczba stanów w HMM 273 Liczba mikstur w GMM 274 137 2017-01-16 Optymalna wersja systemu w warunkach projektowych System został wykonany i wówczas może być testowany (w tym przypadku w warunkach otwartego zbioru) co powinno być wykonane na innych danych 275 Eksperymenty z różnymi systemami podejmowania decyzji SNRSignal to Noise Ratio RAPT Robust Algorithm for Pitch Tracking 276 138 2017-01-16 Wyniki testów systemów decyzyjnych 277 Eksperymenty stosowania uniwersalnych modeli tła 278 139 2017-01-16 Rezultaty stosowania uniwersalnych modeli tła 279 Eksperymenty z ilością materiału przygotowawczego (Angielski TIMIT) 280 140 2017-01-16 Eksperymenty z ilością materiału przygotowawczego (CORPORA) 281 Eksperymenty z ilością materiału przygotowawczego (CORPORA) 282 141 2017-01-16 Skuteczność w zależności od szumu 283 Skuteczność w zależności od liczby mówców 284 142 2017-01-16 Standardy, testy i certyfikaty • Systemy rozpoznawania mówców są w dużej mierze wykorzystywane przez służby mundurowe, specjalne i sądownictwo • Duży nacisk na wykazanie ich skuteczności • Niezależne instytucje (firmy i uniwersytety) przeprowadzają testy i wydają certyfikaty skuteczności • Nawet z certyfikatami, skazywanie na podstawie dowodów w postaci analizy systemu rozpoznawania mówcy może być kwestionowane • Problemy z nienadążaniem prawa za 285 rozwojem informatyki Podsumowanie • • • • Architektura systemu rozpoznawania mówcy Podział systemów rozpoznawania mówcy Przykładowe zastosowania Dźwięczność i bezdźwięczność mowy (sposoby analizy) • Prawdopodobieństwo a podejmowanie decyzji w systemach rozpoznawania mówcy • Universal background model • Metodologia projektowania, testowania i wykazywania skuteczności 286 143 2017-01-16 287 Rozpoznawanie emocji 288 144 2017-01-16 Klasyfikacja emocji 289 Analiza głosu 290 145 2017-01-16 Kismet emotional robot 291 Geminoid 292 146 2017-01-16 Geminoid 293 Geminoid 294 147 2017-01-16 Syntaktyczne modelowanie języka 295 Gramatyka/ modelowanie syntaktyczne • Parsery • Analizatory morfologiczne / POS tagery • n-gramy • Wygładzanie modeli • Filtry Blooma 296 148 2017-01-16 Nadmiarowość w językach • Konieczna z tego samego powodu co w kodach transmisyjnych • Prawdopodobnie stopień nadmiarowości zależy od warunków geograficznych 297 Powody modelowania syntaktycznego Niektóre zdania mogą brzmieć bardzo podobnie: I helped Apple wreck a nice beach. I helped Apple recognise speech. W języku polskim nawet identycznie: może / morze 298 149 2017-01-16 Noam Chomsky Gramatyka formalna składa się z: • skończonego zbioru symboli końcowych • skończonego zbioru symboli niekońcowych • skończonego zbioru reguł produkcji na lewo i prawo składających się z sekwencji tych symboli • symbol startowy 299 Hierarchia Chomskiego 300 150 2017-01-16 MIT Regina Barzilay Michael Collins N = noun, V = verb, D = determiner 301 302 151 2017-01-16 303 304 152 2017-01-16 Disambiguity in parsing 305 Analizator morfologiczny / POS tager Proces zaznaczania słów w tekście jako odpowiadających szczególnym częściom mowy, oparty zarówno na ich definicjach, jak i ich kontekstach. 306 153 2017-01-16 Sekwencje słów są przewidywalne Przykład: Losowanie sekwencji 5 dowolnych słów bardzo rzadko wygeneruje zdanie 307 1-gramy słów (wybrane korpusy) 1) się 1 780 825 (2,6%) 9) że 760 078 17) tak 279 877 2) i 1 632 596 (2,4%) 10) a 479 713 18) za 263 700 3) w 1 569 027 (2,3%) 11) o 396 011 19) od 225 843 4) nie 1 445 832 (2,1%) 12) jak 368 386 20) jego 219 587 5) na 1 283 268 (1,9%) 13) ale 343 482 21) go 217 036 6) z 1 116 819 (1,6 %) 14) po 330 381 22) już 201 735 7) do 816 874 (1,2 %) 15) co 329 270 23) tym 199 894 8) to 801 472 (1,2 %) 16) jest 302 011 24) czy 196 565 308 154 2017-01-16 2-gramy słów (wybrane korpusy) 1) się w 116 446 (0,17%) 10) to nie 39 087 19) nie jest 31 615 20) a potem 31 196 2) się na 93 751 (0,14%) 11) się i 38 772 3) się z 83 610 (0,12%) 12) się nie 38 622 21) nigdy nie 31 082 4) się do 83 524 (0,12%) 13) i nie 38 177 22) mu się 27 209 5) się że 57 126 (0,08%) 14) ale nie 35 241 23) po prostu 26 047 6) że nie 50 222 (0,07%) 15) na to 34 259 24) w tej 25 461 7) w tym 48 035 (0,07%) 16) że to 34 171 25) to co 24 661 8) nie ma 43 633 (0,06%) 17) mi się 33 441 26) w końcu 23 863 9) o tym 42 041 (0,06%) 18) nie było 31682 27) co się 23 762 309 3-gramy słów (wybrane korpusy) 1) w ten sposób 10 119 (0,015%) 2) na to że 8 619 (0,012%) 3) w tej chwili 8 121 (0,012%) 10) zwrócił się do 5 349 11) wydaje mi się 4 855 12) od czasu do 4 742 4) w każdym razie 7 587 (0,011%) 13) się z nim 4 609 5) po raz pierwszy 7 266 (0,010%) 14) to nie jest 4 538 6) mi się że 6 395 (0,009%) 15) czasu do czasu 4 470 7) sobie sprawę że 5 514 (0,008%) 16) w tym momencie 4 455 8) mam nadzieję że 5 499 (0,008%) 17) po drugiej stronie 4 445 9) w takim razie 5 462 (0,008%) 18) w ogóle nie 4 309 310 155 2017-01-16 Naprawianie n-gram 311 Zastosowanie n-gramów N-gramy są najpopularniejszym sposobem modelowania języka w rozpoznawaniu mowy: Z powodów obliczeniowych, zależność jest ograniczana do n słów wstecz. Prawdopodobnie najpopularniejszym jest model trigramowy ponieważ zależność od dwóch poprzednich słów jest bardzo silna, podczas gdy komplikacja modelu jest dość mała a zapotrzebowanie na statystyki 312 realizowalne. 156 2017-01-16 Siatka słów wejście prezydent to aportuje dwieście rezydent strefy do trafi szelkę o stepy aprobuje szogun nieście prezydium schengen operuje dom 313 Siatka słów z zaznaczonym prawidłowym zdaniem strefy wejście prezydent aportuje rezydent to trafi szelkę o dwieście do stepy aprobuje szogun nieście prezydium schengen operuje dom 314 157 2017-01-16 Podkreślmy szczególnie prawdopodobne 1- i 2-gramy wejście prezydent strefy aportuje rezydent trafi dwieście to o aprobuje prezydium nieście szelkę stepy do szogun schengen operuje dom 315 Ponownie nałóżmy poprawne zdanie wejście prezydent strefy trafi rezydent aportuje dwieście to o stepy prezydium aprobuje nieście szelkę do szogun schengen operuje dom 316 158 2017-01-16 Usuńmy mało prawdopodobne 2-gramy wejście prezydent rezydent aportuje strefy do trafi szelkę dwieście to o stepy aprobuje szogun nieście prezydium schengen operuje dom 317 … i nałóżmy zdanie wejście prezydent strefy do rezydent aportuje dwieście to prezydium aprobuje operuje trafi szelkę o stepy szogun nieście schengen dom 318 159 2017-01-16 Zbiory tekstów języka polskiego Źródło MBajty Mil. słów Różnych słów Różnych dwójek Różnych trójek Rzeczpospolita 879 104 856 349 18 115 373 43 414 592 Wikipedia 754 97 2 623 358 31 139 080 61 865 543 Literatura 490 68 1 151 043 23 830 490 50 794 854 Transkrypcje 325 32 381 166 6 848 729 16 283 781 Literatura 2 6500 949 6 162 530 153 152 158 441 284 743 Literatura 3 285 181 1 229 331 36 297 382 93 751 340 W Literatura 2 : Słowa występujące więcej niż 10 razy to 951 844 Dwójki słów występujące więcej niż 10 razy to 6 426 198 Trójki słów występujące więcej niż 10 razy to 5 166 537 319 Problemy z n-gramami - Różne pisowanie (np. u - ó), - błędne formaty, - sprawdzanie ze słownikiem, np. myspell ?, 160 2017-01-16 Histogram n-gramów 321 Przykład wyliczeń modelu n-gramowego 322 161 2017-01-16 Przykład wyliczeń modelu n-gramowego \begin{equation} E(s,h)=\frac{N(s,h)}{N(h)} \; , \end{equation} 323 Przykład wyliczeń modelu n-gramowego 324 162 2017-01-16 Przykład wyliczeń modelu n-gramowego 325 Algorytm Dijkstry 326 163 2017-01-16 Przykład wyliczeń modelu n-gramowego Licząc ścieżkę nie sumujemy dystansów tak jak w telekomunikacji, a mnożymy prawdopodobieństwa (ze względu na regułę Bayesa) lub sumujemy logarytmy! 327 Wyszukiwanie najlepszych ścieżek z użyciem 3-gramów Ala . ale Złamała ładnego kota ma . łapie keta Ala ma ładnego kota 164 2017-01-16 Klasyczny algorytm Dijkstry (bigramy) koszt = 0.1 koszt = 1 Ala 0.1 . ale ładnego ma 0.3 0.2 kota 0.4 1 Złamała 1 łapie keta 1.2 1.3 . 0.5 Zipf Law Jeżeli dla jakiegokolwiek tekstu lub grupy tekstów ustala się wykaz wyrazów ułożonych w malejącym porządku częstotliwości ich występowania, to ranga rośnie w miarę zmniejszania się częstotliwości. Częstotliwość jest odwrotnie proporcjonalna do rangi czyli iloczyn częstotliwości i rangi powinien być wielkością stałą. 330 165 2017-01-16 Back-off if ( w | h) p ( w | h) (h) ( w | h) if N (h, w) 0 N (h, w) 0 N – liczba zliczeń słowa z danych statystycznych β – bardziej ogólna dystrybucja niż α - czynnik normalizacyjny zapewniający spełnianie przez p(w|h) aksjomatu sumowania do jedności, określony jednoznacznie przez α i β: 1 (h) (w | h) w:N ( h,w)0 (w | hˆ) jest 3-gramem a jest 2-gramem w:N ( h,w)0 331 Metoda „Floor” (w | h) N (w, h) (w | h) N N – liczba słów w danych statystycznych - parametr, często równy liczbie słów w słowniku Metoda przeszacowuje prawdopodobieństwa wydarzeń z małą liczbą zliczeń. 332 166 2017-01-16 Przykład ciemny zielony materiał 3-gram C = 0 ciemny zielony 2-gram C > 0 zielony materiał 2-gram C > 0 => wygładzony model „ciemny zielony materiał” P > 0 ufortyfikowany zamek nierdzewny 3-gram C = 0 ufortyfikowany zamek 2-gram C > 0 zamek nierdzewny 2-gram C > 0 => wygładzony model „ ufortyfikowany zamek nierdzewny” P > 0 333 Wygładzanie modeli statystycznych Statystyki wyliczone ze zbiorów danych, opisują ściśle, rzecz biorąc te zbiory a nie rzeczywistość, jak na przykład język jako całokształt. Z tego powodu model n-gramowy można wygładzić w celu uzyskania większej efektywności poprzez zmniejszenie zależności od specyfiki wykorzystanych zbiorów. 334 167 2017-01-16 Przykład wygładzania modelu ngramowego Add-one h 335 Przykład wygładzania modelu ngramowego Add-one 336 168 2017-01-16 Model interpretacji liniowej z parametrem interpolacyjnym Zdefiniujmy parametr N gdzie 0 1, Wówczas otrzymujemy równanie interpolacyjne Jelinka (w | h) (1 ) N (w, h) (w | hˆ) N Małe zliczenia nie są aż tak bardzo podbijane dzięki interpolacji. 337 Wygładzanie Katz’a Katz wprowadził ogólną funkcję dyskontującą d : w d (w) i zależną od niej dyskontowaną masę prawdopodobieństwa 1 W Q[d ] d (w) N w1 Równanie wygładzające wygląda (w | h) N (w, h) d (w) Q[d ] (w | h) N 338 169 2017-01-16 Rozkład brzegowy ni = P(X = i). ni = ∑ P(X = i,Y = j). j Rozkład brzegowy podzbioru zmiennych losowych jest rozkładem prawdopodobieństw zmiennych zawartych w tym podzbiorze. 339 Przykład wyliczania rozkładu brzegowego Prawdopodobieństwo bycia potrąconym pod warunkiem określonego światła p(W|S), gdzie W oznacza wypadek, a S oznacza typ światła na sygnalizatorze. 340 170 2017-01-16 Przykład wyliczania rozkładu brzegowego 341 Wygładzanie Kneser-Ney z rozkładem brzegowym jako ograniczeniem W metodzie Katza, całkowita zniżka powoduje, że (w | h) N (w, h) d (w) N gdzie 0 d 1 Zdefiniujmy Maximum Likelihood Estimation (MLE) dla rozkładu brzegowego N (hˆ, g ) N (w, hˆ) ˆ ˆ p ( g | h ) i p(w | h) N N gdzie połączona liczba wystąpień N (hˆ, g ) jest równa N (g ) jeśli hˆ gˆ i 0 w przeciwnym przypadku. Wówczas N (w, hˆ) (w | hˆ) [ N (g, w) d ] g:gˆ hˆ , N ( g , w) 0 [N (hˆ, v) v [ N ( g, v) d ]] g:gˆ hˆ , N ( g ,v ) 0 342 171 2017-01-16 Leaving-one-out (również Kneser-Ney) Przygotowujemy model korzystając z danych, tak jakby nie zawierały konkretnego zdarzenia, które wystąpiło tylko raz. W przypadku n-gramów, wyliczamy model, pomijając na przykład jeden trigram, który wystąpił w zbiorach tekstów tylko raz. Następnie wykorzystujemy model, aby estymować prawdopodobieństwo usuniętego zdarzenia. Procedurę powtarzamy wielokrotnie używając rożnych trigramów. Suma logarytmów wszystkich wyliczonych w ten sposób prawdopodobieństw daje nam logarytm podobieństwa leaving-one-out, który następnie służy jak kryterium optymalizacji F ln[ ( g ) (v | gˆ )] const ({ (v | gˆ )}) . ( g ,v ):N ( g ,v ) 1 343 Trigramy z Dijkstry Koszt „dotarcia” do poprzedniego węzła z punku widzenia wyróżnionego węzła Koszt dotarcia do danego węzła w zależności od następnego węzła Ala ładnego 0.1 ma ale łapie 1 następny koszt ładnego 0.2 łapie 1.1 172 2017-01-16 Wyróżnione trigramy . Ala ma Ala ma ładnego koszt = 0.1 ma ładnego kota ładnego kota . . Ala ma ładnego kota . koszt = 0.4 Wyszukiwanie najlepszych ścieżek ładnego . Ala ma następny poprzedni koszt ładnego . 1 ma . 0.1 3-gram koszt . Ala ma 0.1 . Ala ładnego 1 173 2017-01-16 Wyszukiwanie najlepszych ścieżek . ma ale 3-gram koszt . ale ma 1 następny poprzedni koszt ma 1 . Wyszukiwanie najlepszych ścieżek Ala 0.1 ale ładnego ma łapie 1 następny ładnego łapie poprzedni koszt Ala 0.1+0.1 = 0.2 ale 1 + 0.1 = 1.1 Ala 0.1 + 1 = 1.1 ale 1+1=2 3-gram koszt Ala ma ładnego 0.1 ale ma ładnego 0.1 Ala ma łapie 1 ale ma łapie 1 174 2017-01-16 Wyszukiwanie najlepszych ścieżek Ala kota 1 ładnego ma 0.2 Złamała keta kota keta koszt Ala ładnego kota 1 Ala ładnego keta 1 ma ładnego kota 0.1 ma ładnego keta 1 Złamała ładnego kota 1 1 następny poprzedni 3-gram Złamałą ładnego keta koszt Ala 1+1=2 ma 0.2 + 0.1 = 0.3 Złamała 1+1=2 Ala 1+1=2 ma 1+1=2 Złamała 1+1=2 1 Wyszukiwanie najlepszych ścieżek ładnego 0.3 kota . 3-gram koszt ładnego kota . 0.1 łapie kota . 1 łapie 2 następny poprzedni . koszt ładnego 0.3 + 0.1 = 0.4 łapie 2+1=3 dodajemy koszt bigramów dla kropki 175 2017-01-16 Wyszukiwanie najlepszych ścieżek Ala . ale Złamała ładnego kota ma . łapie keta 10 węzłów 17 krawędzi 26 możliwych 3-gramów Rzeczywisty przypadek 176 2017-01-16 Funkcja haszująca Funkcja haszująca jest każdą, dobrze definiowaną procedurą lub funkcją matematyczną, która zamienia dużą ilość danych, które mogą mieć niestałą długość, na małą reprezentację, często w postaci jednego integera, który może służyć na przykład za indeks. 353 Filtr Blooma 354 177 2017-01-16 Podsumowanie Hierarchia Chomskyego Parser Tagger N-gram model Stosowanie n-gramów Algorytm Dijkstry Właściwości n-gramów (Zipf, histogram, konieczność wygładzania) Filtr Blooma 355 www.dsp.agh.edu.pl http://rozpoznawaniemowy.blogspot.com/ Technologie Mowy Modele semantyczne i ontologie Bartosz Ziółko Wykorzystano materiały MIT, Li Fei-Fei, Aleksandra Pohla, Jana Wicijowskiego, Mariusza Mąsiora i Wikipedię 356 178 2017-01-16 Rule-to-rule Bag-of-words Latent Semantic Analysis Wordnet CYC 357 Rule-to-Rule Semantic interpretation [aka “syntax directed translation”]: pair syntax, semantic rules. Generalised Phrase Structure Grammars (GPSG): pair each context free rule with semantic ‘action’; as in compiler theory – due to Knuth, 1968 358 179 2017-01-16 Meanings by compositionality Robert Berwick (MIT) 359 But there are exceptions 360 180 2017-01-16 Exceptions - Business class • Airlines – Business class is luxury, not much to do with making a good business; • Hotels - business class is a hotel, where you rent a room if you go in business. It is clean and has all useful things but small and nothing to do with luxury. Copyright Singapore Airlines 361 Human-like and computer-like analysis of expressions • Kirk: Spock, are there any Romulans in Sector 6471? • Spock: None, captain. • Kirk: Are you certain, Spock? • Spock: A 100% probability, Captain • [camera rolls] Kirk: Damn your Vulcan ears, Spock, I thought you said there were no Romulans in sector 6471 ! • Spock: But there is no sector 6471…Logic dictates… 362 181 2017-01-16 Bag-of-words Semantics of NL sentences and phrases can be composed from the semantics of their subparts (for example words) – Principle of Compositionality. 363 Bag-of-words by Li Fei-Fei (Princeton) 364 182 2017-01-16 Bag-of-words by Li Fei-Fei (Princeton) 365 Bag-of-words by Li Fei-Fei (Princeton) 366 183 2017-01-16 Bag-of-words by Li Fei-Fei (Princeton) 367 Bag-of-words by Li Fei-Fei (Princeton) 368 184 2017-01-16 Bag-of-words by Li Fei-Fei (Princeton) 369 370 185 2017-01-16 Vector space model Jan Wicijowski .xml 371 Applying Semantic Model to Recognition topics words word-topic matrix similarities vector hypothesis vector Jan Wicijowski Języki torricelli Język vanimo Język sahu Język wiaki Język yapunda 1.85172 0.64407 0.56976 0.56976 0.56976 Chesterfield F.C. Andrew Latimer Parnassius hunza Tom Smith Mononukleotyd flawinowy 0.24345 0.21302 0.21115 0.17938 0.17189 372 186 2017-01-16 Latent Semantic Analysis (LSA) A row in this matrix will be a vector corresponding to a term, giving its relation to each document, a column in this matrix will be a vector corresponding to a document, giving its relation to each term. The dot product between two term vectors gives the correlation between the terms over the documents. 373 Latent Semantic Analysis (LSA) 374 187 2017-01-16 Latent Semantic Analysis (LSA) 375 Bag-of-words with graphs Big John has a house. Big John has a black, aggressive cat. The black aggressive cat has a small mouse. The small mouse is a mammal. 376 188 2017-01-16 TFIDF (Term Frequency Inverse Document Frequency) • TFIDFi,j = ( Ni,j / N*,j ) * log( D / Di ) where • Ni,j = the number of times word i appears in document j (the original cell count). • N*,j = the number of total words in document j (just add the counts in column j). • D = the number of documents (the number of columns). • Di = the number of documents in which word i appears (the number of non-zero columns in row i). 377 LSA tutorial http://www.puffinwarellc.com/index.php/ne ws-and-articles/articles/33.html?start=1 378 189 2017-01-16 Semantyczne zasoby dla języka polskiego Słowosieć http://plwordnet.pwr.wroc.pl/browser/ ◮ Wikipedia and DBPedia http://dbpedia.org/ ◮ Synonims in OpenOffice http://synonimy.ux.pl/ ◮ Wielki Słownik Języka Polskiego http://www.wsjp.pl/ ◮ Słownik Języka Polskiego http://sjp.pl/ 379 Słowosieć Elektronika jest typem sprzętu Elektronika jest typem nauki matematycznoprzyrodniczej i nauki ścisłej 380 190 2017-01-16 Słowosieć Automatyka Informatyka Mechanika Inżynieria 381 Konstruowanie Słowosieci 382 191 2017-01-16 Ontologie Slajdy Aleksandra Pohla Po co nam to wszystko ? 383 384 192 2017-01-16 Ontologie RDFS – Resource Description Framework Schema 385 Ontologie 386 193 2017-01-16 Ontologie 387 Ontologie 388 194 2017-01-16 Ontologie 389 Ontologie 390 195 2017-01-16 Definicje ontologii w filozofii i informatyce Ontologia (filozofia): Termin wywodzący się z greckiego słowa oznaczającego byt, ale ukuty w XVII w. na oznaczenie gałęzi metafizyki zajmującej się tym co istnieje. Oksfordzki Słownik Filozoficzny Ontologia (informatyka): Formalna specyfikacja konceptualizacji wybranej dziedziny wiedzy. Tom Gruber Ogólna charakterystyka ontologii Elementy definicyjne: • formalna specyfikacja: CycL, FLogic, KIF, LOOM, OCML,OWL, RDF... • ...konceptualizacji: indywidua, pojęcia, własności, relacje, funkcje, procesy... • ...wybranej dziedziny wiedzy: – ontologie ogólne – ontologie dziedzinowe 196 2017-01-16 Cyc jako przykład ontologii ogólnej Cyc – produkt Cycorp® • Rozpoczęcie prac: 1984 • www.cyc.com • Największa znana ontologia: – 300 tyś. pojęć – 26 tyś. predykatów – 3 miliony asercji • 3 wersje: komercyjna, rozwojowa, otwarta • Zaawansowany silnik inferencyjny • Leksykon dla języka angielskiego CycL – język ontologii • CycL: – nadbudowany nad rachunkiem predykatów 2-rzędu – teoria mnogości ZF – asercje na meta-poziomie – operatory modalne • 2 poziomy języka – epistemologiczny – heurystyczny (SubL – dialekt Lispa) 197 2017-01-16 Struktura wiedzy 1. Pojęcia podstawowe • #$Thing – korzeń ontologii • #$Collection – kolekcja wszystkich kolekcji • #$Individual – kolekcja wszystkich indywiduów • #$genls – relacja generalizacji • #$isa – relacja należenia do kolekcji Struktura wiedzy 2. Kolekcje i indywidua • Kolekcje 1-ego rzędu: #$Intangible,#$PartiallyTangilbe, #$TemporalThing, #$SpatialThing • Kolekcje 2-ego rzędu: #$TemporalStuffType, #$TemporalObjectType, #$ExistingStuffType, #$ExistingObjectType 198 2017-01-16 Struktura wiedzy 3. • Predykaty – – – – arność typ argumentów format argumentów relacja genlPreds przykład (#$colorOfType, #$conceptuallyRelated) • Funkcje – pozwalają unikać reifikacji przykład (#$CapitalFn COUNTRY) Mikroteorie • 3 miliony asercji! • Trudność spełnienia wymogu globalnej niesprzeczności • Podział wiedzy na mniejsze jednostki – mikroteorie • predykat #$genlMt • #$BaseKB – korzeń drzewa mikroteorii • #$EverythingPSC – suma wszystkich mikroteorii 199 2017-01-16 Leksykon • Mapowanie pomiędzy pojęciami (#$Dog) a słowami języków naturalnych („dog”) • Symboliczna reprezentacja słów (X-TheWord) • Predykat denotacji (#$denotation WORD POS N DENOTATION) • Bank(1) (#$denotation #$Bank-TheWord #$CountNoun 0 #$Bank-Topographical) • Bank(2) (#$denotation #$Bank-TheWord #$CountNoun 1 #$BankOrganization) Architektura Cyc © Cycorp 200 2017-01-16 Architektura Cyc • • • • • • • • Baza wiedzy „Świat” Wyciąg operacji, serwer operacji Partycje wiedzy Silnik inferencyjny Interfejs użytkownika API Narzędzie integracji źródeł wiedzy Organizacja danych • „Świat” - obraz pamięci działającej ontologii zapisany w formacie CFASL – może być załadowany z powrotem bez sprawdzania integralności danych • Wyciąg operacji – zestaw operacji wykonywanych przez użytkownika w czasie pracy z systemem • Serwer operacji – pośredniczy w wymianie informacji pomiędzy sesjami różnych użytkowników • Partycja wiedzy – fragment „Świata” 201 2017-01-16 Interfejs użytkownika Interfejs użytkownika • Interfejs webowy – pozwala przeglądać ontologią, wprowadzać nowe fakty, zadawać pytania, etc. (HTML + CGI) • Edytor faktów (Fact Editor) – pozwala wprowadzać fakty osobom, które nie są zaznajomione ze strukturą ontologii (Java) • Biblioteka zapytań (Query Library) – pozwala tworzyć zapytania i je wykonywać. Wykorzystuje mechanizmy NLP (Java). 202 2017-01-16 Komunikacja ze światem zewnętrznym • API: – SubL: protokoły ASCII oraz CFASL przez TCP/IP, brak wsparcia dla wywołań zwrotnych – Java: nadbudowany nad SubL, zapewnia łatwą integrację z systemami napisanymi w Javie, wspiera wywołania zwrotne • Wspierane języki RW: CycML, DAML, OWL • SKSI: narzędzie pozwalające na integrację z bazami danych i stronami internetowymi Zastosowania Cyc 203 2017-01-16 Zastosowania Cyc - aktualne • Integracja baz danych • Integracja baz wiedzy • Inteligentne wyszukiwanie informacji: – na podstawie krótkich opisów (np. zdjęcia) – na stronach WWW • Rozproszona AI • Przetwarzanie języka naturalnego Zastosowania Cyc - potencjalne • • • • • Automatyczne pośrednictwo w sprzedaży dóbr Tworzenie inteligentnych interfejsów Tłumaczenie maszynowe wysokiej jakości Rozpoznawanie mowy wspomagane wiedzą Zaawansowane modelowania zachowań użytkowników • Semantyczny data-mining • Wsparcie dla e-biznesu 204 2017-01-16 Bazy danych Wymagania: zmapowanie tabel i ich atrybutów na pojęcia występujące w Cyc. Rezultat: • Możliwość wykrycia anomalnych danych poprzez ich analizę z wykorzystaniem wiedzy zdroworozsądkowej. • Integracja wiedzy występującej w wielu bazach danych: – wykrycie danych sprzecznych – generowanie zapytań obejmujących wiele baz danych CYC 410 205 2017-01-16 CYC 411 Przykład CYC 412 206 2017-01-16 Wyszukiwanie informacji 1. Założenia: baza danych/wiedzy obejmująca tysiące lub setki tysięcy danych niepodlegających analizie tekstowej, zawierających krótkie opisy (np. zdjęcia, filmy, abstrakty) Rezultat: możliwość inteligentnego wyszukiwania informacji znacznie wykraczającego poza zwykłe mechanizmy dopasowania/zastępowania synonimami. Wyszukiwanie informacji 2. Założenie: dziedzinowe bazy wiedzy dostępne przez WWW, implementujące protokół komunikacyjny Cyc Rezultat: możliwość zaawansowanego wyszukiwania wszelkich informacji dostępnych w dziedzinowych bazach wiedzy (dla użytkownika końcowego wygląda to tak, jakby cała wiedza znajdowała się w Cyc). 207 2017-01-16 Problemy ze stosowaniem ontologii • • • • Ogromne koszty Wiedza zmienia się z czasem Ontologie zawierają ograniczoną wiedzę Mogą być błędy wynikające z automatycznej ekstrakcji faktów z tekstów • Ale Watson wygrał w Va Banque z mistrzami 415 Watson gra z mistrzami w Va Banque 416 208 2017-01-16 Przetwarzanie języka naturalnego Precyzyjne przetwarzanie języka naturalnego wymaga często posiadania wiedzy zdroworozsądkowej: I saw clouds flying over Zurich. Widziałem chmury lecące nad Zurychem. I saw buildings flying over Zurich. Widziałem domy lecąc nad Zurychem. Linked Data 418 209 2017-01-16 Podsumowanie • • • • Zasada kompozycyjności (fioletowa krowa) Koncepcja modelu bag-of-words Podstawy LSA Orientacja w zagadnieniach związanych z korpusami mowy i tekstów (jak się je robi, ocenia ich jakość, wielkość itp.) • Implementacje słowników (tekst, SQL, FSA) • Słowosieć (koniecznie sprawdzić stronę) • Czym jest ontologia, czyli jak dodać Mruczka do Facebooka 419 www.dsp.agh.edu.pl http://rozpoznawaniemowy.blogspot.com/ Technologie Mowy Interfejs głosowy, systemy dialogowe Bartosz Ziółko Wykorzystano materiały Aleksandra Pohla, MIT, Stanusch Technologies i AIML 420 210 2017-01-16 Interfejs głosowy 421 Początki komunikacji człowiek komputer 422 211 2017-01-16 Kilka zasad dobrego interfejsu • Szybkość vs potwierdzanie komend • Syndrom bankomatu • Rozumienie potrzeb i możliwości użytkownika (rozpoznawanie vs przypominanie) • Ilość dźwięków w interfejsie • Szkocka winda • Standaryzacja (dlaczego McDonalds odniosło sukces) • Jasna i łatwo powtarzalna nawigacja • Problem zniecierpliwienia (10 sekund) 423 Interfejs głosowy vs ekrany dotykowe Według Microsoftu ekrany dotykowe będą przyszłością komunikacji człowiek – komputer. Na razie bez znaczących sukcesów komercyjnych, poza urządzeniami mobilnymi. 424 212 2017-01-16 Obecne zastosowania ekranów dotykowych 425 Przyszłość, już teraz tylko nikt jej nie chce * * (poza Billem Gatesem) Microsoft Surface - a new $10,000 touchscreen table. 426 213 2017-01-16 Problemy z ekranami dotykowymi Touch Table Microsoftu miał być przełomem w sprzęcie korporacyjnym. Sprzedano jednak bardzo niewielką ilość. - Za bardzo nastawiony na pracę zespołową (?), - zbyt rewolucyjny pod kątem ergonomicznym – nie tylko usunięcie klawiatury, ale także patrzenie na ekran w dół (?). 427 Kto to? 428 214 2017-01-16 HAL 9000 –Odyseja kosmiczna 429 Systemy dialogowe • Najbardziej naturalny sposób komunikacji dla człowieka • Atrakcyjny • Prosty dla nieprzeszkolonych osób • Sprzyja miniaturyzacji 430 215 2017-01-16 Wirtualni doradcy •Symulacja osobowości •Mowa ciała •Zaskakiwanie •Synteza mowy •Planowane ASR 431 Wirtualni doradcy • WD: Witaj w centrum obsługi technicznej naszej telewizji. Nazywam się Jerzy i postaram się rozwiązać Twoje problemy. Bedzie nam łatwiej jeżeli będę się do Ciebie zwracać po imieniu. Powiedz mi jak masz na imię? • Użytkownik: Ewa • WD: Witaj Ewo. Jaki masz problem. • Użytkownik: Nie ma obrazu. • WD: Czy telewizor jest włączony i czy świeci się kontrolka jego włączenia? •Użytkownik: Tak •WD: Czy dekoder telewizji jest włączony? •Użytkownik: Tak •WD: Czy telewizor jest ustawiony na kanał na którym odbierasz programy satelitarne? •Użytkownik: Tak •WD: Podejdź do telewizora i sprawdź czy kable łączące telewizor i odbiornik telewizji satelitarnej nie poluzowały się. •Użytkownik: Zadziałało! Jest obraz. Dziękuje bardzo. •WD: Bardzo proszę. Czy mogę jeszcze w czymś pomóc? 432 216 2017-01-16 Standard dialogue in a computer game 433 434 217 2017-01-16 435 Rozumienie języka ludzi przez komputery Masz długopis? => proszę podaj mi swój długopis, jeśli masz takowy… Każdy rolnik, który ma owce, lubi je. Po zebraniu makulatury, sprzedaliśmy ją razem z panią. Kasia to moja siostra cioteczna, Jurek też. 436 218 2017-01-16 Dialogue System Architecture MIT Regina Barzilay 437 438 219 2017-01-16 Example 439 440 220 2017-01-16 441 Surface form is a weak predictor 442 221 2017-01-16 443 Hidden Markov Model for Dialogue Acts Interpretation 444 222 2017-01-16 HMMs for dialogue acts interpretation 445 446 223 2017-01-16 How to Generate This Semantics 447 Natural language generation 448 224 2017-01-16 States in the dialogue system 449 States in the dialogue system • greet=0 if user has to be greeted, 1 otherwise • attr represents attribute being queried; 1/2/3 =activity/location/time, 4 = done with attributes • conf represents confidence in the attribute value. 0,1,2=low/miidle/high confidence in the speech recognizer; 3=recognition system has received “YES” as an answer to a confirmation; 4=system has received “NO” • val=1 if attribute value has been obtained, 0 otherwise • times=number of times system has asked about the attribute • gram=type of grammar used to obtain the attribute value • hist=0 if system has had problems in understanding the user earlier in the conversation; 1 otherwise 450 225 2017-01-16 AIML - Artificial Intelligence Markup Language 451 AIML - Artificial Intelligence Markup Language 452 226 2017-01-16 AIML - Artificial Intelligence Markup Language AIML (Artificial Intelligence Markup Language) is an XML-compliant language that's easy to learn, and makes it possible for you to begin customising an Alicebot or creating one from scratch within minutes. The most important units of AIML are: • <aiml>: the tag that begins and ends an AIML document • <category>: the tag that marks a "unit of knowledge" in an Alicebot's knowledge base • <pattern>: used to contain a simple pattern that matches what a user may say or type to an Alicebot • <template>: contains the response to a user input 453 Categories The free A.L.I.C.E. AIML includes a knowledge base of approximately 41 000 categories. Here's an example of one of them: <category> <pattern>WHAT ARE YOU</pattern> <template> <think><set name="topic">Me</set></think> I am the latest result in artificial intelligence, which can reproduce the capabilities of the human brain with greater speed and accuracy. </template> </category> 454 227 2017-01-16 Recursion AIML implements recursion with the <srai> operator. No agreement exists about the meaning of the acronym. The "A.I." stands for artificial intelligence, but "S.R." may mean "stimulus-response," "syntactic rewrite," "symbolic reduction," "simple recursion," or "synonym resolution." The disagreement over the acronym reflects the variety of applications for <srai> in AIML 455 Symbolic reduction It refers to the process of simplifying complex grammatical forms into simpler ones. Usually, the atomic patterns in categories storing robot knowledge are stated in the simplest possible terms, for example we tend to prefer patterns like "WHO IS SOCRATES" to ones like "DO YOU KNOW WHO SOCRATES IS" when storing biographical information about Socrates. <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template><srai>WHO IS <star/></srai></template> </category> Whatever input matched this pattern, the portion bound to the wildcard * may be inserted into the reply with the markup <star/>. This category reduces any input of the form "Do 456 you know who X is?" to "Who is X?" 228 2017-01-16 Divide and conquer Many individual sentences may be reduced to two or more subsentences, and the reply formed by combining the replies to each. A sentence beginning with the word "Yes" for example, if it has more than one word, may be treated as the subsentence "Yes." plus whatever follows it. <category> <pattern>YES *</pattern> <template><srai>YES</srai> <sr/></template> </category> The markup <sr/> is simply an abbreviation for <srai><star/></srai> 457 Synonyms The AIML 1.01 standard does not permit more than one pattern per category. Synonyms are perhaps the most common application of <srai>. Many ways to say the same thing reduce to one category, which contains the reply: <category> <pattern>HELLO </pattern> <template>Hi there! </template> </category> <category> <pattern>HI </pattern> <template><srai> HELLO </srai></template> </category> <category> <pattern>HI THERE </pattern> <template><srai> HELLO </srai></template> </category> 458 229 2017-01-16 Spelling and grammar correction The single most common client spelling mistake is the use of "your" when "you are" is intended. Not every occurrence of "your" however should be turned into "you are." A small amount of grammatical context is usually necessary to catch this error: <category> <pattern>YOUR A *</pattern> <template>I think you mean "you are" not "your." <srai>YOU ARE A <star/></srai> </template> </category> Here the bot both corrects the client input and acts as 459 a language tutor. Keywords AIML template which is activated by the appearance of a keyword anywhere in the input sentence. <category> <pattern>MOTHER</pattern> <template> Tell me more about your family. </template> </category> Both, detects the keyword when it appears by itself, and provides the generic response. <category> <pattern>_ MOTHER</pattern> <template><srai>MOTHER</srai> </template> </category> Detects the keyword as the suffix of a sentence. 460 230 2017-01-16 Keywords <category> <pattern>MOTHER _ </pattern> <template> <srai> MOTHER </srai> </template> </category> <category> <pattern>_ MOTHER * </pattern> <template> <srai> MOTHER </srai></template> </category> Detects it as the prefix of an input sentence detects the keyword as an infix. Each of the last three categories uses <srai> to link to the first, so that all four cases produce the same reply, but it needs to be 461 written and stored only once. Conditionals Conditional branches using only the <srai> tag. <category> <category> <category> <pattern> <pattern>WHO IS <pattern>WHOISHE * WHOISHE HE</pattern> </pattern> UNKNOWN <template><srai> <template>He is <get </pattern> name="he"/>. WHOISHE <get <template> I don’t name="he"/></srai> </template> know who he is. </template> </category> </template> </category> </category> Provided that the predicate "he" is initialised to "Unknown," the categories execute a conditional branch depending on whether "he" has been set. AIML also provides the equivalent function 462 through the <condition> tag. 231 2017-01-16 Targeting User: Where do I find the webpage with Australopithecus? Alice: Where do you want to find it? User: Bad Answer Alice, time to Learn a new Line Alice: How would you answer "Where do I find the webpage with Australopithecus?" User: I would say: "http://www.ancientskulls.net/australopithecus.html" Alice: Thanks, human. Try asking me again. User: Where do I find the webpage with Australopithecus? Alice: http://www.ancientskulls.net/australopithecus.html 463 CONTEXT The keyword "that" in AIML refers to the bot’s previous utterance. Specifically, if the bot responds with a multiple sentence paragraph, the value of that is set to the last sentence in the sequence. The choice of the keyword "that" is motivated by its use in ordinary language: R: Today is yesterday. C: That makes no sense. R: The answer is 3.1412926 approximately. C: That is cool. 464 232 2017-01-16 That In AIML the syntax <that>...</that> encloses a pattern that matches the robot’s previous utterance. A common application of <that> is found in yes-no questions: <category> <pattern>YES</pattern> <that>DO YOU LIKE MOVIES</that> <template>What is your favorite movie? </template> </category> This category is activated when the client says YES. The robot must find out what is he saying "yes" to. If the robot asked, "Do you like movies?," this category matches, and the response, "What is your favorite movie?," continues the conversation along the same 465 lines. Topic INPUT <that> THAT <topic> TOPIC. <topic name="CARS"> <category> <pattern>*</pattern> <template> <random> <li>What’s your favorite car?</li> <li>What kind of car do you drive?</li> <li>Do you get a lot of parking tickets?</li> <li>My favorite car is one with a driver.</li> </random> </template> 466 233 2017-01-16 Facade • http://www.interactivestory.net/ • Download and play 467 Typy wypowiedzi 468 234 2017-01-16 Podsumowanie • Czym jest ontologia, czyli jak dodać Mruczka do Facebooka • Podchwytliwe pytanie „Co to jest CYC?” • Podstawowe zasady projektowania interfejsów • Zalety i wady stosowania mowy w interfejsach • Czym system dialogowy różni się od zwykłego interfejsu • Systemu dialogowe • AIML 469 235