Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní Dialogové systémy Luděk Bártek Fakulta informatiky Masarykova univerzita podzim 2023 Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní Obsah Q Implementace dialogových systémů Q Používané standardy Q Nástroje pro implementaci tvorbu dialogových rozhraní Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní Přístup k dialogovému rozhraní • Telefonní: 9 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 • 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 implementaci tvorbu dialogových rozhraní Přístup k dialogovému rozhraní • Textové/webové: • 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 implementaci 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. o Sémantická interpretace: • Atributy se sémantickou interpretací u bez kontextových gramatik. • Občas se používá keyword spotting. • Dialogový manažer: • logické programování o různá řešení pomocí procedurální programovacích jazyků • 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 implementaci 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 9 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 implementaci tvorbu dialogových rozhraní VoIP • 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). • Rada implementací • Liší se použitými standardy: • H.323 - na ústupu • SIP • firemní - Skinny (Cisco), HFA - Siemens. • Službami a signalizací: • podpora video hovorů, zasílání textových zpráv, ... • Více viz http://www.protocols.com/pbook/voip/ Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní SIP • Session Initiation Protocol (viz SIP RFCs and Drafts, resp. IETF, sbírka Internetových standardů na FI, ...) o 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 implementaci 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í: o 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 implementaci tvorbu dialogových rozhraní ace přes protokol SIP telefon SIP proxy SIP proxy telefon Alice Atlanta Biloxi Boba t 1 *—2očroir * 2Q(fOK ACK + 20Q~OK Zvoni ^-Zvednul «4-Zavěsil multimediální relace - 100 OK Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci 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ů. 9 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 implementaci 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). o 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 implementaci tvorbu dialogových rozhraní JSGF - Syntaxe • Gramatika se skládá z pravidel, které popisují co může být řečeno. • Syntaxe je case-sensitive. • Kódování znaků - Unicode. 9 Formát hlavičky: #JSGF version [char-encoding [locale]]; #JSGF VI.0; #JSGF VI.0 IS08859-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 implementaci tvorbu dialogových rozhraní JSGF - Syntaxe • 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 • - 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 implementaci 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. o import fullyQualifiedRuleName; 9 import fullGrammarName]\mport ; import ; o Deklarace gramatiky • grammar názevBalíku.názevGramatiky; 9 Tělo gramatiky • neterminál = pravidlo; = Jan | Jana I...; = ; • Více viz specifikace. Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní JSGF - ukázka #JSGF VI.0 #import cz.mesta.*; #import cz.hodiny.*; = Chci jet .| Chci jet z do Chci jet z do v ; = vlakem | autobusem; = ; = ; = ; Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní SRGS • Standard W3C Voice Browser Activity WG. 9 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 implementaci tvorbu dialogových rozhraní Sémantická interpretace promluvy • Většinou řešeno pomocí atributů v gramatice pro rozpoznávání řeči. o 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}; • 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 implementaci 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. • 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 implementaci tvorbu dialogových rozhraní Popis dialogových rozhraní • Popis ve vyšším programovacím jazyce: o prostředky logického programování (Prolog) • procedurální programovací jazyky (C/C++, Java, ...) - např. projekt AudiC (LSD Fl), o Proprietami řešení. • Otevřené standardy: • VoxML - předchůdce VoiceXML (2. polovina 90. let) • VoiceXML - součást W3C Voice Browser Activity • CalIXML - Aspect Prophecy • AIML - ALICE A.l. Foundation Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní Syntéza řeči • Tvorba promluvy: O Dialogový manažer zvolí rámec pro požadovanou výstupní promluvu. 0 Doplní se do ní hodnoty slotů. O Předá se řečovému syntetizéru. o Značkování prozodických jevů: o závislé na použitém TTS * Speech Synthesis Markup Language (SSML) - součást standardů W3C VoiceBrowser 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 implementaci tvorbu dialogových rozhraní Online nástroje pro implementaci dialogových rozhraní 9 Webové nástroje • AIM L - Pandora Bots, BotLibre • Aspect Prophecy • podporované standardy: CallXML, VoiceXML 2.0, SRGS, CCXML • Nimblevox IVR • placené řešení • podpované standardy: VoiceXML 2.1, Call Control XML 1.0 další viz např. seznamy na W3C VoiceBrowser Activity - W3C Speech Interface Implementations nebo na Wikipedii Luděk Bártek Dialogové systémy Implementace dialogových systémů Používané standardy Nástroje pro implementaci tvorbu dialogových rozhraní Desktopové nástroje implementaci tvorbu dialogových rozhraní • Trindikit • toolkit pro tvorbu dialogových rozhraní založený na logickém programovaní (Sicstus Prolog) - Center for Language Technology, University of Gothenburg. • Dnes již nevyvíjený CSLU Toolkit • vývojové prostředí pro tvorbu dialogových rozhraní • umožňuje snadnou tvorbu i multimodálních dialogových rozhraní • pro Win32 • Prophecy 16 • Pro tvorbu lze použít IDE na bázi platformy Eclipse - Aspect CXP • 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 implementaci 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: • J VoiceXML • PublicVoiceXML • ... • Další viz např. seznamy na W3C Voice Browser Activity nebo na Wikipedii. Luděk Bártek Dialogové systémy