ČVUT FAKULTA ELEKTROTECHNICKÁ, TECHNICKÁ 2, 166 27 PRAHA, ČESKÁ REPUBLIKA Semestrální projekt Systém speech2text (pracovní název) Jiří Fric, Tomáš Plecháč 16.2.2009
Obsah 1. Zadání a cíle... 3 2. Teorie... 3 2.1. Ontologie... 3 2.2. RDF... 4 3. Obecně o systému... 5 3.1. Analýza a návrh systému... 5 3.2. Modelované spotřebiče... 5 3.3. Modelované lokality... 5 3.4. Průchod programem... 6 4. Asociativní slovník... 6 5. Věty pokrytí/nepokrytí... 7 6. Digram... 7 6.1. Vývojové fáze diagramu... 7 6.1.1. První fáze (seznamování s prostředím)... 7 6.2. Finální diagram... 8 7. Scénáře... 9 7.1. Scénář č.1... 9 7.1.1. Světlo... 9 7.2. Scénář č.2... 9 7.2.1. Trouba... 9 7.3. Scénář č.3... 10 7.3.1. Telefon... 10 7.4. Scénář č.4... 10 7.4.1. TV... 10 7.5. Scénář č.5... 10 7.5.1. Topení... 10 8. Algoritmy vyhledávající vazby v OWL... 11 8.1. Algoritmus s pomocí slovníku... 11 8.2. Algoritmus bez pomocí slovníku... 12 8.3. Algoritmus pro nalezení nejkratší cesty od kořene k dalšímu uzlu... 12 9. Závěr... 12 10. Zdroje... 12 Strana 2
1. Zadání a cíle Cílem této práce je navrhnout a pomocí scénářů procházet ontologii (OWL), která bude použita jako blok komplexnějšího systému na ovládání domácích spotřebičů hlasem. Naším cílem je, abychom navrhli funkční ontologii, která bude mít efektivní a v neposlední řadě modulární průchody v rozličných domácnostech. Jako výchozí ovládané zařízení uvažujeme: světlo, televizi, upomínkový systém, topení, telefon, ledničku, sporák, troubu, mikrovlnná troubu a rolety.. 2. Teorie 2.1. Ontologie Abychom se v celé problematice ontologie orientovali, tak zde nejprve stručně uvádíme teorii. Ontologie je webový jazyk, neboli Ontology Web Language, pro použití v aplikacích, který je zaměřen na zpracování obsahu informace, nikoliv jen na prezentaci. OWL bývá užíváno ve slovnících pro vyjádření významu, kde potřebujeme dosáhnout jistého vztahu mezi jednotlivými pojmy. Tuto reprezentaci pojmů a jejich vzájemných vazeb nazýváme ontologie. Ontologie popisuje a reprezentuje pojmy báze znalostí, jako jsou např. medicína, výrobní nástroje, nemovitosti, automobilovém odvětví atp.. Ontologie může popisovat různé stupně struktury, od jednoduché taxonomie až po logické teorie. Abychom mohli popisovat, zavadí ontologie tři druhy pojmů: 1) Třídy (obecná věc, entita) 2) Vztahy mezi třídami (definují v jakém se nachází vztahu sousední třídy) 3) Vlastnosti tříd (určují specifické atributy tříd). Pomocí správně a smysluplně napsané ontologie můžeme následně automatizovaně usuzovat a vyhodnocovat různé vstupní parametry a tím dosáhnout pokročilých služeb. Z toho vyplývá, že ontologie může zaujmout významnou roli v moderních aplikacích, které budeme nazývat inteligentními aplikacemi pracujícími na lidské konceptuální úrovni. Základní princip ontologie je hledání a spojování informací napříč rozličnými informacemi s korektním výsledkem a zajištěním interoperability neboli schopným a efektivním zajištěním poskytnutí služby systému. Čerpáno z [1] a [2]. Strana 3
Obr. 1 příklad ontologie (část našeho projektu) Obr. 2 příkladový obrázek, zdroj [4] 2.2. RDF RDF (Resource description Framework), česky systém popisu zdrojů, slouží jako metoda pro modelování v různých syntaxích. Základní myšlenka je postavena na spojení subjekt predikátobjekt, v RDF terminologii potom resource, property a property value. Subjekt představuje konkrétní zdroj, predikát určuje nějaký aspekt zdroje a vztah,vazbu mezi objektem a subjektem. RDF je navržen pro počítače, nikoliv pro zobrazování lidem na webu. Jako jazyk zápisu RDF slouží jazyk XML (extensible Markup Language). RDF potom ještě s RDF Schemas se staly hlavními zdroji při tvorbě OWL, tzn. sloučením několika dílčích zdrojů vniklo OWL s vyšším potenciálem než samotné RDF. Jednoduchý demonstrativní příkad [5]: <?xml version="1.0"?> <RDF> <Description about="http://www.w3schools.com/rdf"> <author>jan Egil Refsnes</author> <homepage>http://www.w3schools.com</homepage> </Description> </RDF> Kde http://www.w3schools.com/rdf je resource, author a homepage jsou property a Jan Egil Refsnes a http://www.w3schools.com property value. je autorem díla Továrna na absolutno. Reprezentace subjekt Jiná interpretace: Karel Čapek predikát objekt je: díla Továrna na absolutno představuje subjekt, je autorem predikát Karel Čapek objekt. Strana 4
Zapíšeme pomocí RDF dokumentu např. následovně: <?xml version="1.0"?> <RDF> <Work name="tovarna_na_absolutno"> <author>karel Capek</author> </Work> </RDF> Kde entita work představuje dílo a atribut name vyjadřuje subjekt. Vnořená entita author reprezentuje predikát a obsah párových značek author objekt. Nejjednoduším příkladem výrazu subjekt predikát objekt je výrok: Petr je člověk. > subjektem je Petr, predikátem je konstatovaní, že Petr má vlastnost být člověkem, která je vyjádřená v objektu člověk. 3. Obecně o systému 3.1. Analýza a návrh systému Systém/zařízení aktivujeme patřičně dlouhým časovým impulzem tlačítka, jež bude mít persona stále při sobě. Časový signál stanoven na délku >2s. Časový registr, např. na 10min, aby avatar zbytečně neříkal 5x během chvíle, dobré ráno,..jméno 5.pád... Start bude doprovázen úvodním zvukovým signálem. Deaktivace celého systému nastane po provedení příkazu a po uplynutí patřičné časové prodlevy >2s. Periodu 2s jsme volili záměrně, poněvadž je to doba dostačují, pro potencionálně další uživatelovo rozhodnutí. V případě, že vám avatar neporozumí, nabídne chybové hlášky: 1) Je mi líto, ale zadali jste neplatnou operaci, příkaz. 2) Prosím zopakujte příkaz. Hlášení případů mini kolize systému: 1) Vámi zadaný spotřebič se nenachází v zadané lokalitě. 2) Spotřebič je již aktivní. 3) Vámi zadaný spotřebič nepodporuje danou funkci. 4) Spotřebič je již neaktivní. 5) Spotřebič neodpovídá, zkontrolujte správné zapojení. 6) Spotřebič je rozbitý. 3.2. Modelované spotřebiče Seznam podporovaných spotřebičů: osvětlení, televize, upomínkový systém(budík), topení, telefon, lednička, sporák, trouba, mikrovlnná trouba a rolety. 3.3. Modelované lokality Seznam dostupných lokalit: koupelna, kuchyň, ložnice, obývací pokoj a pokoj. Strana 5
3.4. Průchod programem Uživatel zadá příkaz (věta typu: Rozsviť světlo v kuchyni. ). MyVoice systém (speech to text) z příkazu rozezná slova (slovní spojení), která se shodují se slovy v asociativním slovníku. Takto nalezená slovní spojení pošle do diagramu, kde se pomocí vyhledávajících algoritmů určí vazby mezi slovním spojením a kořenem diagramů(lokalita, Zařízení, Funkce). Do jádra systému je tedy odeslána vyhledaná Lokalita, Zařízení a Operace, jakou má zařízení vykonat. Systém otestuje správnost zadání a aktivuje dané výstupní zařízení v dané lokalitě. MyVoice (rozpoznání příkazů) Rolety Televize Upomínkový systém Slovník Diagramy Jádro systému Topení Telefon Lednička Sporák Trouba Mikrovlnná trouba Osvětlení Rozpoznávací část Vytváření vazeb Kontrola systému Aktivace zařízení 4. Asociativní slovník Pod pojmem asociativní slovník, dále jen slovník, se rozumí slovní zásoba příkazů. Příkazy na které bude systém aktivní a bude s nimi interagovat. Mezi jednotlivými slovy (slovními vazbami) jsou jisté asociativní vazby, proto asociativní, které určitému slovu vážou další podslova. V praxi potom například můžeme řící, že slovo představující funkci zvýšení zvuku u spotřebiče televize váže na sebe další tvary a slovní spojení typu: zvýšit, je to potichu, nic neslyším, nahlas, více/víc zvuku, doprava zvuk a nahoru zvuk. Strana 6
Je zřejmé, že vytvořit finální/kompletní verzi slovníku je časově i prakticky složité. Nicméně naší snahou bylo pokrýt co největší oblast těchto příkazů jak v oblasti lokality, spotřebičů (zařízení) tak i funkčních požadavků. Celý slovník je přiložen v příloze: priloha/slovnik.xlsx. Orientace v dokumentu pomocí záložek, kde jedna záložka reprezentuje slovní zásobu (slovník) pro daný spotřebič. 5. Věty pokrytí/nepokrytí Věty pokrytí a věty nepokrytí simulují rozsah našeho systému. Věty pokrytí potom ukazují množství vět, které je schopen náš systém objektivně pojmout a správně vyhodnotit. Věty nepokrytí představují potom opak. Věty pokrytí/nepokrytí jsou přiloženy v příloze: priloha/vety.docx. Tato příloha dále obsahuje (napsáno v závorkách) možné důvody nepokrytí/kolize neproveditelnosti příkazu. 6. Digram Diagramy naleznete v příloze: priloha/owl/1 19 fce.png 6.1. Vývojové fáze diagramu Diagram jsme začali nejdříve rozmyšlením, že pokryjeme celý dům a ne pouze jeden byt. Z toho nám vyplynulo, že budeme dělat daným lokalitám nadtřídy(např. kuchyň je nadtřída a její potomci následně budou moje kuchyň, kuchyň 1.patro, kuchyň 2.patro ). Naším dalším krokem bylo namodelování všech zařízení a jejich zařazení do daných lokalit. Nakonec jsme namodelovali veškeré funkce všech zařízení a vazbami is a připojili k odpovídajícím zařízením. (Celý vývoj diagramů najdete v příloze.) 6.1.1. První fáze (seznamování s prostředím) Obr. 3 vývojové fáze Strana 7
6.2. Finální diagram V obrázku vidíte poslední fázi vývoje celého diagramu viz příloha: priloha/owl/19 fce.png. Obr. 4 nastínění rozsáhlosti ontologie Strana 8
7. Scénáře Textové scénáře testování naší vytvořené ontologie viz. níže. Obrázky demonstrující průchod ontologií jsou potom přiloženy v příloze: priloha/scenar/[1 5]/obr [a,b,c,d,e][1 7].png. 7.1. Scénář č.1 7.1.1. Světlo V tomto scénáři si naznačíme jak bude vypadat průchod vnitřkem programu při zadání věty: Zapni světlo v kuchyni. 1. Zapni obr.a1 (Systém najde slovo zapni a díky němu si dokáže rovnou doplnit, že slovo zapni patří pod funkce a to přesně pod funkce základní) vznikla nám tedy vazba: Funkce základní zapnout 2. světlo obr.a2 (Jelikož systém za pomocí slovníku zjistí, že slovo světlo patří pod osvětlení a zde je defaultní hlavní světlo, pokud není jinak specifikováno, proto se vybere hlavní světlo ze zařízení) vznik vazby: Dům zařízení ostatní zařízení osvětlení hlavní světlo 3. v kuchyni obr.a3 (v této sekci se vybere lokalita a to kuchyň ) vznik vazby: dům místnost kuchyň moje kuchyň 4. Obr.a4 Nakonec musíme všechny vazby pospojovat, a to se provede pomocí vyhledávání dvojice zařízení lokalita.( v našem scénáři je to dvojice Světlo a kuchyň) díky tomuto kroku jsme dosáhli propojení lokality se zařízením. 5. Obr.a5 Nyní zbývá poslední věc a to je pouze propojení funkce s daným zařízením(v našem případě je to Zapnout a Osvětlení) 6. Nakonec se otestuje zda zařízení obsahuje danou funkci a zda se zařízení nachází v dané místnosti a také zda se místnost nachází v daném domě(našem systému). Jelikož je vše v pořádku, tak se námi zadaný příkaz provede. 7.2. Scénář č.2 7.2.1. Trouba V tomto scénáři si naznačíme jak bude vypadat průchod vnitřkem programu při zadání věty: Zapni elektrickou troubu v kuchyni na 290 stupňů oboustranného propékání. 1. Zapni obr.b1 (za pomocí slovníku se aktivuje funkce zapni) vznikla nám tedy vazba: Funkce základní zapnout 2. elektrickou troubu obr.b2 (Systém identifikuje slovní spojení jako zařízení trouba) vznikne vazba: Dům zařízení elektrické zařízení trouba 3. v kuchyni obr.b3 (Pomocí slovníku se nastaví lokalita na kuchyň) vazba bude: Dům místnost kuchyň moje kuchyň 4. na 290 stupňů obr.b4 (slovník rozpozná, že se musí přidat další funkce) vazba bude: Funkce pokročilé nastavit teplotu 5. oboustranného propékání obr.b5 (nastavení další funkce oboustranného opékání) Funkce pokročilé zapnout na 6. obr.b6 Dalším bodem bude pospojování funkcí a daného zařízení. 7. obr.b7 A následně spojit zařízení s lokalitou. Strana 9
8. Posledním bodem je test zařízení v dané místnosti a funkcí v daném zařízení. 7.3. Scénář č.3 7.3.1. Telefon V tomto scénáři si naznačíme jak bude vypadat průchod vnitřkem programu při zadání věty: Polož cihlu. 1. Polož obr.c1 (Pomocí slovníku jsme zjistili funkci a typ zařízení jelikož polož je unikátní a váže se k telefonu) funkce základní položit 2. cihlu obr.c2 (Slovník nám najde zařízení telefon) dům zařízení elektrické zařízení telefon 3. Místnost se nemusí hledat, jelikož je aktivován pouze jeden telefon. 4. Zbývá otestovat příkazy, které pro tuto aplikaci stačí. 7.4. Scénář č.4 7.4.1. TV V tomto scénáři si naznačíme jak bude vypadat průchod vnitřkem programu při zadání věty: Vypni telku v kuchyni. 1. Vypni obr.d1 (výběr základní funkce) funkce základní zapnout 2. telku obr.d2 (slovník nám rozpozná televizi) dům zařízení elektrické zařízení televize 3. v kuchyni obr.d3 (Lokalita se nastavila na kuchyň) dům místnost kuchyň moje kuchyň 4. obr.d4 Pospojujeme systémem nalezené vazby 5. Otestujeme nalezené příkazy. Příkaz je funkční. 7.5. Scénář č.5 7.5.1. Topení V tomto scénáři si naznačíme jak bude vypadat průchod vnitřkem programu při zadání věty: Zatop na zahradě. 1. Zatop obr.e1 (zatop znamená podle slovníku přitopit a rovnou nám aktivuje i zařízení) 2. Na zahradě Lokalita by se měla nastavit na zahradu, ale ta není obsažena v systému, proto se lokalita nemá kde nastavit. Testujeme příkazy, ale máme pouze přitopit v topení, ale systém neví, kde přitopit. Kvůli této situaci se systém optá, kde má přitopit. Strana 10
8. Algoritmy vyhledávající vazby v OWL 8.1. Algoritmus s pomocí slovníku 1. Nejprve si rozřežeme větu na slova (slovní spojení, dále jen slova) 2. Cílem je získat tři vazby: a) Zařízení slovo b) Funkce slovo c) Lokalita slovo 3. Každé slovo budeme následně samostatně testovat na každou ze tří vazeb 4. Potřebujeme získat tu nejkratší vazbu mezi slovem a vrcholem 5. Je jasné, že když bude slovo např. světlo, pak systém najde vazby do všech tří vrcholů, to nám ale nevadí a systém si ponechá vždy všechny tři vazby do daných vrcholů. Zařízení Funkce Lokalita Zapni světlo V kuchyni Všimněte si, že máme vždy jen jedinou vazbu mezi slovem a vrcholem, to nám vytváří podmínka, že cesta musí být nejkratší možná. 6. Dalším krokem algoritmu bude testovaní. My totiž pomocí slovníku dokážeme určit, jaké slovo může být obsaženo v daném vrcholu, proto nám musí zákonitě zůstat u každého slova pouze jediná vazba. Zařízení Funkce Lokalita Zapni světlo V kuchyni Nyní jsme dostali ze všech vazeb jen námi tři potřebné. Strana 11
8.2. Algoritmus bez pomocí slovníku 1. Nejprve si rozřežeme větu na slova (slovní spojení, dále jen slova) 2. Cílem je získat tři vazby: d) Zařízení slovo e) Funkce slovo f) Lokalita slovo 3. Každé slovo budeme následně samostatně testovat na každou ze tří vazeb 4. Nyní se algoritmus bude řídit podmínkami: a) Vazba jde po směru šipek v diagramu b) Vazba musí být nekratší možná c) Každé slovo má pouze jednu vazbu k vrcholu d) Pouze vrchol funkce může být obsažen ve více vazbách.(bereme v úvahu, že každá věta ovládá pouze jedno zařízení.) 5. Pokud tento algoritmus použijeme na celou větu, pak nám musí zůstat pouze tři vazby. 8.3. Algoritmus pro nalezení nejkratší cesty od kořene k dalšímu uzlu Získáme všechny vazby od kořenu po slovo (uzel v diagramu) a každou z těchto cest ohodnotíme. Ohodnocení bude probíhat tak, že spočítáme uzly (třídy), kterými cesta prochází. Následně vybereme tu cestu s nejnižším ohodnocením O. 9. Závěr Cílem našeho semestrálního projektu bylo navržení části a proniknutí do systému pro ovládání domácích spotřebičů zvukovou stopou. K tomuto řešení jsme si vybrali technologii OWL a software MyVoice (rozpoznávání zvuku) a progam Protégé pro modelování ontologie. Naše hlavní práce se nakonec soustředila především na návrh slovníku, návrh diagramů systému(owl) ontologii, příkazy, které je systém schopen rozpoznat, algoritmy pro vyhledávání vazeb v diagramech a scénáře (test celého průchodu). Všechny tyto části nás přivedly na další a další myšlenky a nápady, které bychom mohli do systému ještě přidat. Tyto myšlenky bychom chtěli rozvíjet a aplikovat v bakalářské práci, která by měla být navazujícím materiálem na tento projekt. 10. Zdroje [1] Internet: http://www.w3.org/tr/webont req/ [2] Internet: http://www.w3.org/tr/owl features/ [3] Internet: http://cs.wikipedia.org/wiki/resource_description_framework [4] Internet: http://www.semanticbible.com/blogos/images/2006/03/19/toplevel.jpg [5] Internet: http://www.w3schools.com/rdf/ [6] Fric, Plecháč: semestrální práce v rámci předmětu Y36TUR, LS2008, příloha/ plecht1_fricj1_dokumentace.pdf Strana 12