Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Dialogové systémy Luděk Bártek Fakulta informatiky Masarykova univerzita podzim 2014 Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Q Implementace dialogových systémů Q Používané standardy O Nástroje pro tvorbu dialogových rozhraní Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Přístup k dialogovému rozhraní • Telefonní: • PSTN (Public Switched Telephone Network) - veřejná telefonní sít. • Nutnost digitalizace uživatelského vstupu a připojení počítače k PSTN: • voice-modem • ISDN modem o výstup lze již přímo zpracovat pomocí ASR. • VoIP - protokol pro přenos hlasu přes IP. • Většinou jako rozšíření ústředny o dialogový manažer (platformu). • Např. Asterisk + VoiceGlue, . . . • komunikace prostřednictvím VoIP protokolů • Možnost využití DTMF (Dual Tone Multi-Frequency). Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Přístup k dialogovému rozhraní • Textové: Odpadá nutnost digitalizace uživatelského vstupu. • Velmi vhodný pro ladění rozhraní: • není nutno řešit chyby ASR, ... • Lze využít i IM • Asterisk + XMPP (Jabber). Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Části dialogových systémů • Rozpoznávání řeči: • ASR - nejlépe s podporou rozpoznávání plynulé řeči • Pro zvýšení úspěšnosti jsou použity bezkontextové gramatiky -občas slouží jako základ i pro sémantickou interpretaci. • Lze částečně nahradit pomocí DTMF. • Sémantická interpretace: • Atributy se sémantickou interpretací u bezkontextových gramatik. • Občas se používá keyword spotting. • Dialogový manažer: • logické programování • různá řešení pomocí procedurální programovacích jazyků o proprietami řešení • otevřená řešení. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Části dialogových systémů • Generátor promluv: • pracuje s výstupem z dialogového manažeru • bývá součástí dialogového manažeru • generuje textovou verzi promluvy. • Hlasový syntetizér: • TTS. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní • Rodina protokolů pro přenos hlasu přes internet (IP sít). • Využívá se např. pro IP telefonii. • Na transportní vrstvě - UDP. • Na relační vrstvě - Real-Time Protocol (RTP). • Řada implementací • Liší se použitými standardy: • H.323 - na ústupu • SIP • firemní - Skinny (Cisco), HFA - Siemens, o Službami a signalizací: • podpora video hovorů, zasílání textových zpráv, ... • Více viz http://www.protocols.com/pbook/VoIP.htm Luděk Bártek Dialogové systémy s Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní • Session Initiation Protocol (viz SIP RFCs and Drafts, resp. IETF, sbírka Internetových standardů na Fl, ...) • Protokol na aplikační vrstvě. • Protokol určený pro přenos signalizace v internetové telefonii. • Na transportní vrstvě využívá UDP. • Vznikl jako reakce na H.323 - příliš komplexní (obtížně implementovatelný). • Je jednodušší. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní • Pro vytvoření a řízení multimediální relace zajištuje: • Lokalizaci účastníka (jednoznačná identifikace - uživatel, adresa SIP serveru). • Zjištění stavu účastníka - dostupný, obsazený, přesměrovaný. • Zjištění možností účastníka - použitelný kodek, max. přenosová rychlost, použitelnost video hovorů, ... • Navázání spojení: • využívá se protokol SDP popisující navázané spojení (Session Description Protocol) • vlastní hovor využívá protokol RTP (Real-Time Protocol). • Řízení probíhajícího spojení: • změny parametrů spojení v jeho průběhu • ukončení spojení. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní II rotokol SIP telefon Alice SIP proxy Atlanta SIP proxy Biloxi telefon Boba __jw|te__ ■*—Í85^"9^9 <--2ÓÓOK- *—Í8ÓŔiŕ!ší"Ér' * 20Ô~c>k~~ ack <-2óT5k multimediální relace bye 100 ok -■---► ■ Zvoní ■Zvednul • Zavěsil Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Podpora rozpoznávání řeči • Omezení domény možných vstupů. • Bezkontextové gramatiky popisující množinu možných vstupů. • Používané způsoby: • prostředky logického programování • různá proprietami řešení • otevřené standardy » JSGF • SRGS Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Java Speech Grammar Specification (JSGF) • Textový zápis gramatiky nezávislý na platformě a prodejci, sloužící pro podporu rozpoznávání řeči. • Určen pro použití při rozpoznávání řeči. • Používá styl a konvence styl a konvence jazyka Java. • Součást Java Speech API. • Aktuální verze 1.0 (říjen 1998). • Využit např. v rozpoznávací Sphinx4J, VoiceXML interpretru VoiceGlue, ... Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní • Gramatika se skládá z pravidel, které popisují co může být řečeno. • Syntaxe je case-sensitive. • Kódování znaků - Unicode. • Formát hlavičky: #JSGF version [char-encoding [locale]]; #JSGF VI.0; #JSGF VI.0 ISD8859-2; #JSGF VI.0 UTF-8 cs_CZ; Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní JSGF - Syntaxi • Názvy pravidel nesmí obsahovat bílé znaky. • Neterminální symboly: • , , • Terminálni symboly • víceslovní terminály a zvláštní symboly mohou být uzavřeny do uvozovek:" Nové Město na Moravě" "+" • Zvláštní pravidla • - pravidlo, které je automaticky použito, aniž by uživatel cokoliv řekl o - pravidlo, které nemůže být řečeno • Deklarace gramatiky: • grammar názevBalíku.názevGramatiky; Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní JSGF - syntaxe (pokračování) • Vkládání gramatik - umožňuje používat pravidla nebo gramatiky definované v jiném souboru. • import fullyQualifiedRuleName; • import fullGrammarName;\mport ; import ; • Deklarace gramatiky • grammar názevBalíku.názevGramatiky; » Tělo gramatiky < neterminál — pravidlo; = Jan I Jana I...; = ; • Více viz specifikace. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní JSGF VI.0 #import cz.města.*; #import cz.hodiny.*; = Chci jet .| Chci jet z do z do v ; = vlakem | autobusem; = ; = ; = ; Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní SRGS • Standard W3C Voice Browser Activity WG. • Aktuální verze 1.0 (březen 2004). • Definuje způsob zápisu pravidel a jejich odkazování. • Dva způsoby zápisu • XML • ABNF (Augmented BNF). • Více později při probírání VoiceXML Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Sémantická interpretace promluvy • Většinou řešeno pomocí atributů v gramatice pro rozpoznávání řeči. • Slouží k určení umístění a hodnoty významných částí uživatelské promluvy. • JSGF: • K pravidlu je přiřazena jeho sémantická interpretace. • Zapisuje se: {sémantická interpretace}; a Příklad: = {ano} I {ne}; = ano I jo I jasně; = ne I ani náhodou; Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Sémantická interpretace promluvy Pokračování • SRGS: • K pravidlu je přiřazena jeho sémantická interpretace. • Používá se standard Semantic Interpretation for Speech Recognition (SISR) • Sémantická interpretace může obsahovat výrazy v jazyce (ECMAScript). • Skriptovací jazyk standardizovaný organizací ECMA (European Computer Manufacturer Association). • Používá se pro skriptování na straně klienta ve webových stránkách. o Implementace - JavaScript, JScript, ActionScript. • Jednotlivé implementace přidávají nestandardní knihovny (práce s prohlížečem, ...) • Více později při probírání VoiceXML. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Popis dialogových rozhraní • Popis ve vyšším programovacím jazyce: • prostředky logického programování (Prolog) • procedurální programovací jazyky (C/C++, Java, ...) - např. projekt AudiC (LSD Fl), • Proprietami řešení. • Otevřené standardy: 9 VoxML - předchůdce VoiceXML (2. polovina 90. let) • VoiceXML - součást W3C Voice Browser Activity • CalIXML - Voxeo Prophecy Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Syntéza řeči Tvorba promluvy: O Dialogový manažer zvolí rámec pro požadovanou výstupní promluvu. O Doplní se do ní hodnoty slotů. Q Předá se řečovému syntetizéru. Značkování prozodických jevů: • závislé na použitém TTS • Speech Synthesis Markup Language (SSML) - součást standardů W3C Vo i ce Browser Activity • TTS musí obsahovat podporu pro tento standard. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Online nástroje pro tvorbu dialogových rozhraní • Webové nástroje • Nuance (BeVocal) Café • podporované standardy: VoiceXML 2.1, SRGS 1.0 • obsahuje sadu nástrojů pro ladění dialogových rozhraní • Telíme Studio • podporované standardy: VoiceXML 2.x, SRGS + SISR • Voxeo Prophecy • podporované standardy: CalIXML, VoiceXML 2.0, SRGS, CCXML • další viz např. seznamy na W3C VoiceBrowser Activity nebo na Wikipedii Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Desktopové nástroje pro tvorbu dialogových rozhraní • Trinidkit • toolkit pro tvorbu dialogových rozhraní založený na logickém programovaní (Sicstus Prolog) • CSLU Toolkit • vývojové prostředí pro tvorbu dialogových rozhraní • umožňuje snadnou tvorbu i multimodálních dialogových rozhraní • pro Win32 • Voxeo P rop hecy • on-line VoiceXML platforma - bezplatně max. 2 připojení k hostovanému rozhraní • možnost instalace serveru na vlastní počítač • podobné možnosti jako online verze Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro tvorbu dialogových rozhraní Desktopové nástroje pro tvorbu dialogových rozhraní • Textový editor, nejlépe se zvýrazněním syntaxe + (desktopová) VoiceXML platforma: » JVoiceXML « PublicVoiceXML • OptimTalk a . . . • Další viz např. seznamy na W3C Voice Browser Activity nebo na Wikipedii. Luděk Bártek Dialogové systémy