Č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
18.2.2009
Jiří Fric, Tomáš Plecháč
Obsah 1.
Zadání a cíle ..................................................................................................................................... 3
2.
Teorie ............................................................................................................................................... 3
3.
2.1.
Ontologie ................................................................................................................................. 3
2.2.
RDF .......................................................................................................................................... 4
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. 6.2. 7.
Finální diagram ........................................................................................................................ 8
Scénáře ............................................................................................................................................ 9 7.1.
Scénář č.1 ................................................................................................................................ 9
7.1.1. 7.2.
7.3.
TV .................................................................................................................................. 10
Scénář č.5 .............................................................................................................................. 10
7.5.1.
9.
Telefon ........................................................................................................................... 10
Scénář č.4 .............................................................................................................................. 10
7.4.1. 7.5.
Trouba ............................................................................................................................ 9
Scénář č.3 .............................................................................................................................. 10
7.3.1. 7.4.
Světlo .............................................................................................................................. 9
Scénář č.2 ................................................................................................................................ 9
7.2.1.
8.
První fáze (seznamování s prostředím) ........................................................................... 7
Topení ........................................................................................................................... 10
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
Závěr .............................................................................................................................................. 12
10. Zdroje ............................................................................................................................................. 12
Strana 2
18.2.2009
Jiří Fric, Tomáš Plecháč
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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át‐ objekt, 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]:
Jan Egil Refsnes http://www.w3schools.com
Kde http://www.w3schools.com/RDF je resource, author a homepage jsou property a Jan Egil Refsnes a http://www.w3schools.com property value. Jiná interpretace: „Karel Čapek je autorem díla Továrna na absolutno“. Reprezentace subjekt‐ predikát‐objekt je: díla Továrna na absolutno představuje subjekt , je autorem predikát Karel Čapek objekt.
Strana 4
18.2.2009
Jiří Fric, Tomáš Plecháč
Zapíšeme pomocí RDF dokumentu např. následovně:
<Work name="Tovarna_na_absolutno"> Karel Capek
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) 2) 3) 4) 5) 6)
Vámi zadaný spotřebič se nenachází v zadané lokalitě. Spotřebič je již aktivní. Vámi zadaný spotřebič nepodporuje danou funkci. Spotřebič je již neaktivní. Spotřebič neodpovídá, zkontrolujte správné zapojení. 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
18.2.2009
Jiří Fric, Tomáš Plecháč
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ě.
Rolety
Televize
(rozpoznání příkazů)
Upomínkový systém
Slovník
MyVoice
Topení
Jádro
Diagramy
Telefon
systému
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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. 2. 3. 4. 5.
Vypni – obr.d1 (výběr základní funkce) funkce ‐ základní ‐ zapnout telku – obr.d2 (slovník nám rozpozná televizi) dům – zařízení – elektrické zařízení ‐ televize v kuchyni – obr.d3 (Lokalita se nastavila na kuchyň) dům – místnost – kuchyň – moje kuchyň obr.d4 Pospojujeme systémem nalezené vazby 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
18.2.2009
Jiří Fric, Tomáš Plecháč
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
18.2.2009
Jiří Fric, Tomáš Plecháč
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. [1] [2] [3] [4] [5] [6]
Zdroje Internet: http://www.w3.org/TR/webont‐req/ Internet: http://www.w3.org/TR/owl‐features/ Internet: http://cs.wikipedia.org/wiki/Resource_Description_Framework Internet: http://www.semanticbible.com/blogos/images/2006/03/19/toplevel.jpg Internet: http://www.w3schools.com/RDF/ Fric, Plecháč: semestrální práce v rámci předmětu Y36TUR, LS2008, příloha/ plecht1_fricj1_dokumentace.pdf
Strana 12