Michał Wroński vxml sprawozdanie

16
WOJSKOWA AKADEMIA TECHNICZNA im. Jarosława Dąbrowskiego WYDZIAŁ CYBERNETYKI SYSTEMY INTERAKTYWNE I DIALOGOWE Temat: Standard VXML i portale głosowe. Zasady języka VXML – prosta aplikacja Autor: Prowadzący:

Transcript of Michał Wroński vxml sprawozdanie

Page 1: Michał Wroński vxml sprawozdanie

WOJSKOWA AKADEMIA TECHNICZNAim. Jarosława Dąbrowskiego

WYDZIAŁ CYBERNETYKI

SYSTEMY INTERAKTYWNE I DIALOGOWE

Temat:Standard VXML i portale głosowe.

Zasady języka VXML – prosta aplikacja

Autor: Prowadzący:

sierż. pchor. Michał WROŃSKI dr inż. Andrzej WIŚNIEWSKI

Page 2: Michał Wroński vxml sprawozdanie

Sprawozdanie składa się z dwóch części. Pierwsza dotyczy standardu VXML ora portali głosowych.Druga część zasad języka VXML oraz utworzenia w tym języku prostej aplikacji.

Pierwsza część zadania, które należało wykonać, składała się z następujących etapów:

1. Dokonania przeszukania Internetu w celu odnalezienia portali głosowych

udostępniających:

możliwość osadzania, edytowania i testowania aplikacji głosowych;

narzędzia do tworzenia aplikacji głosowych w standardzie VXML;

podręczniki, inne materiały (przykładowe aplikacje) do programowania

w standardzie VXML;

możliwość wykorzystania w dydaktyce.

2. Sporządzenia schematu strukturalnego portalu głosowego – opisania jego

elementów i powiązań (wykonać rysunek).

3. Opisania działania portalu głosowego.

Wyszukania w Internecie przykładowej aplikacji głosowej napisanej w standardzie VXML. Opatrzyć komentarzem wszystkie jej znaczniki.

Ad. 1. Wybranym przeze mnie serwisem jest serwis vailsys.com.

Portal ten spełnia wszystkie wymagania zawarte w punkcie 1. zadania, to jest udostępnia:

- możliwość osadzania, edytowania i testowania aplikacji głosowych- narzędzia do tworzenia aplikacji głosowych w standardzie VXML- podręczniki, inne materiały (przykładowe aplikacje) do programowania w standardzie VXML- możliwość wykorzystania w dydaktyce

Page 3: Michał Wroński vxml sprawozdanie

Portal głosowy Vail oferuje szereg platform głosowych oraz opcji hostingu, wspierając osadzanie aplikacji głosowych bez ponoszenia dodatkowych kosztów na drogie oprogramowanie do tworzenia aplikacji głosowych.

Portal ten udostępnia następujące narzędzia i możliwości:

Hosting platform głosowych:

Oprogramowanie SIP ze wsparciem VoiceXML/CCXML, Microsoft.Net, interfejsami kodu zarządzanego

Serwer sprzętowy Redundancja danych oraz dostosowanie portal pod względem położenia

geograficznego Jednoczesny dostęp dla wielu dostawców Całodobowe wsparcie techniczne, 7 dni w tygodniu Portal klienta Vail Raporty online Dedykowane zarządzanie kontem Porozumienie o świadczeniu usług z 99,9% dostawców

Dodatkowe usługi:

Serwisy głosowe: bezpłatne, lokalne, długodystansowe, międzynarodowe, VoIP

Rozpoznanie mowy od firm Nuance i Microsoft Integracja CTI oraz ICM/R z Cisco, Genesys i Avaya

Page 4: Michał Wroński vxml sprawozdanie

Serwis nagrywania rozmów Raporty specyfiki aplikacji Dostęp do VoIP poprzez usługę Whistler Dedykowane środowisko hostingu

Ad. 2.

Schemat ilustrujący wsparcie dla platform SIP:

Struktura portalu ma następującą postać:

Page 5: Michał Wroński vxml sprawozdanie

Schemat strukturalny portalu głosowego przedstawia się następująco:

- Zdefiniowanie wymagań

- Projekt interfejsu użytkownika

- Rozwój IVR APP

- Etap wytworzenia

- Testowanie aplikacji

- Rozmieszczenia produkcji

- Wsparcia aplikacji

- Udoskonalania aplikacji

Ad. 3.

Zdefiniowanie wymagań składa się ze zgromadzenia wymagań biznesowych, wymogów rozmówcy, wymagania aplikacji

Projekt interfejsu użytkownika – zawiera projekty dialogów, audio/persona, iteracyjnego projektowania użytkowania, oprogramowanie do tworzenia aplikacji

Page 6: Michał Wroński vxml sprawozdanie

Rozwój aplikacji – składają się na niego produkcje audio, oprogramowanie wspomagające rozpoznawanie mowy oraz interpretowanie gramatyki

Testowanie aplikacji – składa się na nie testowanie wszelkich komponentów programowych, w tym testowanie dialogu, rozpoznawania mowy, działania awaryjnego, ładowania danych, długowieczności systemu

Rozmieszczenie produkcji – ma zapewnić odpowiednią jakość przeprowadzanych rozmów pod względem wymagań biznesowych

Wsparcie i udoskonalanie aplikacji –ich zadaniem jest utrzymywanie i zapewnianie ciągłej poprawy rozwiązań oraz dostosowywanie ich do potrzeb biznesowych

Po zarejestrowaniu się na portalu głosowym uzyskujemy dostęp do szeregu oferowanych przez niego usług. Jeśli chodzi o hosting aplikacji VXML, to:

- Vail umożliwia tworzenie profesjonalnych aplikacji na potrzeby biznesowe

- istnieje możliwość konwersji aplikacji napisanych w innych językach na aplikacje VXML/CCXML za pomocą szeregu dostępnych rozwiązań programowych oraz emulatorów

- Istnieje możliwość umieszczania aplikacji w formacie Microsoft OCF Speech

Portal Vail jest profesjonalnym dostawcą usług, przede wszystkim jeśli chodzi o udostępnianie i wsparcie w zakresie tworzenia i prowadzenia wysokiej jakości portali głosowych. Korzystanie z zaawansowanych usług portalu jest odpłatne, natomiast rejestracji może dokonać każdy za darmo.

Po zarejestrowaniu się użytkownik może, wykorzystując wsparcie techniczne Vail umieścić na serwerze własną aplikację głosową dostosowaną do własnych potrzeb, a następnie wszyscy zasinteresowani mogą łączyć się z portalem poprzez usługi telefonii internetowej oraz komórkowej.

Ad. 4.

Przedstawię teraz pokrótce przykładową aplikację VXML wraz z omówieniem poszczególnych znaczników:

//Rozpoczęcie programu

Page 7: Michał Wroński vxml sprawozdanie

<?xml version="1.0" encoding="ISO-8859-1"?><vxml version="2.0" lang="en"><form>

// nazwa pola – w tym wypadku “city”<field name="city"> // Tekst pomiędzy znacznikami <prompt> oznacza pytanie, na które należy odpowiedzieć („Dokąd chcemy jechać?”)<prompt>Where do you want to travel to?</prompt>// Tekst między znacznikami <option> oznacza możliwe do wyboru opcje.// Wybór zostanie przypisany do pola „city”<option>Edinburgh</option><option>New York</option><option>London</option><option>Paris</option><option>Stockholm</option>// Koniec sentencji dotyczącej wyboru wartości dla pola “city”</field>

// nazwa pola – w tym wypadku „travellers”. Type oznacza typ pola// „numer” oznacza pole liczbowe<field name="travellers" type="number">// Pytanie: “Jak wielu jest podróżujących do (tutaj pada nazwa wybranego przez nas miasta)?”<prompt>How many are travelling to <value expr="city"/>?</prompt></field>// Treść zawarta między znacznikami <block> komendy, które zostaną wykonane sekwencyjnie, są używane do prezentowania użytkownikowi informacji<block><submit next="http://localhost/handler" namelist="city travellers"/></block>

</form></vxml>// Zakończenie programu

Część druga sprawozdania dotyczy standardu VXML oraz utworzenia w tym języku prostej aplikacji głosowej.

ZADANIE1. Opis prostej aplikacji głosowej – o temacie aplikacji decyduje student:

a) identyfikacja aplikacji: założenia;b) opracowanie i specyfikacja scenariusza dialogu;c) opis dostępu użytkownika do aplikacji.

2. Utworzenie aplikacji w postaci dokumentu VXML:a) testowanie (iteracyjne) w celu udoskonalenia interfejsu.

Zadania szczegółowe dotyczące projektowania aplikacji głosowych:

Page 8: Michał Wroński vxml sprawozdanie

1) określenie wiadomości podpowiadanych w celu wydobycie informacji od użytkownika;

2) sformułowanie gramatyki opisującej słowa i frazy, które rozmówca może wypowiedzieć w odpowiedzi na podpowiedź (prompt);

3) opisanie sposobu radzenia sobie w przypadku wystąpienia błędów (ang. error handler), aby pomóc rozmówcy rozwiązać problemy, które pojawią się, gdy urządzenie rozpoznawania mowy błędnie rozpozna jego wypowiedź.

Przykładowe aplikacje VXML: obsługa zamówień, zawiadomienie o wypadkach, budzenie telefoniczne, śledzenie lotów, głosowy dostęp do poczty głosowej, wybieranie głosowe, gazety audio (podawanie wiadomości), zamawianie usług, opowiadanie bajek,

Tematem tego zadania było wykonanie prostej aplikacji głosowej. Zadanie to zrealizowałem wykorzystując język VXML. Czynności, które moja aplikacja realizuje to opowiadanie bajek lub poezji.

Aplikacja umożliwia wysłuchanie fragmentu „Hamleta” Szekspira, fragmentu „Kopciuszka”, bądź obu utworów.

Pomimo tak bardzo ograniczonej funkcjonalności, istnieje wiele możliwości dialogu, które można przeprowadzać z systemem. Jest to zasługą zastosowania przemiennej inicjatywy oraz sformułowania odpowiedniej gramatyki, w celu zrozumienia w miarę swobodnej i naturalnej wypowiedzi nadawcy.

Po wybraniu utworu, który mamy zamiar wysłuchać, system przechodzi do poddialogu realizującego czytanie zadanego utworu.

Przykładowy scenariusz dialogu użytkownika z systemem:

S: Witaj. Czego chciałbyś dziś wysłuchać? Szekspira, bajki czy obu?

U: Sienkiewicza

S: Nie zrozumiałem. Spróbuj ponownie.

Page 9: Michał Wroński vxml sprawozdanie

U: Chciałbym wysłuchać Szekspira

S: Wybrałeś Szkspira.

S: Jesteś pewny, że chcesz wysłuchać Szekspira?

U: Tak.

S: Za chwilę wysłuchasz fragmentu „Hamleta” Szekspira. Proszę zaczekać.

S: Szekspir.

S: „Być albo nie być…”.

Przedstawię poniżej schemat blokowy aplikacji:

Page 10: Michał Wroński vxml sprawozdanie

Wiadomość inicjująca

Pytanie o wybór interesującego nas utworu

SzekspirBajka (Inne)

Szekspir i bajkaBajka i Szekspir

Przejście do poddialogu i odczytanie fragmentu

Szekspira

Przejście do poddialogu i odczytanie fragmentu

„Kopciuszka”

Zakończenie aplikacji

Prośba o ponowną próbę

Prośba o potwierdzenie

wyboru

Tak Nie

Spróbuj później

Prośba o potwierdzenie

wyboru

Prośba o potwierdzenie

wyboru

Tak Nie Tak Nie

Przejście do poddialogu i odczytanie fragmentu

obu utworów

Page 11: Michał Wroński vxml sprawozdanie

Aplikacja rozpoczyna się od wiadomości inicjującej:

<initial>

<prompt>

What would you like to listen to? Sheakspire, fairytale or both?

</prompt>

</initial>

Następnie użytkownik dokonuje wyboru w oparciu o następującą gramatykę, opartą na przemiennej inicjatywie:

<form> <grammar type="application/x-nuance-gsl"> <![CDATA[ Request ( ?[ (i'd like) (tell me) ] Bajka ?and ?Bajka ?please ) Bajka ( ?the [ sheakspire { <sheakspire true> } fairytale { <fairytale true> } ] ) ]]> </grammar>

Użytkownik ma możliwość sformułowania pełnego zdania z wykorzystaniem zwrotów I’d like to, tell me, please w określonych miejscach tego zdania. Może także wybrać jedną lub dwie możliwości wypowiadając nazwy odpowiednich utworów. Wówczas po wybraniu jednego z warunków program przechodzi do kolejnego formularza, w celu potwierdzenia chęci wysłuchania danego utworu

<field name="sheakspire" type="boolean"> </field> <field name="fairytale" type="boolean"> </field>

Page 12: Michał Wroński vxml sprawozdanie

<filled mode="any"> <if cond="sheakspire">

<if cond="fairytale"> <prompt> You chose both. Please Wait a while. </prompt> <goto next="#ShFt1" /> </if>

</if>

<if cond="sheakspire"> <prompt> You chose the sheakspire poem. Wait a while. </prompt> <goto next="#Sh1" /> </if>

<if cond="fairytale"> <prompt >You chose the fairytale. Wait a minute. </prompt> <goto next="#Ft1" /> </if> <clear/>

</filled>Po wykonaniu tego użytkownik przechodzi do kolejnego formularza, w którym musi potwierdzić swój wybór. Jeśli użytkownik źle odpowie na pytanie lub nie powie nic, program prosi o ponowienie (podanie) odpowiedzi. Są za to odpowiedzialne klauzule:<nomatch> Please repeat. <reprompt/></nomatch>

<noinput> Please answer the question. <reprompt/></noinput>Po potwierdzeniu wyboru użytkownik przechodzi do odpowiedniego poddialogu, gdzie wysłuchuje fragmentu utworu:

<?xml version="1.0" encoding="utf-8" ?><vxml version = "2.1" >

<form id="sheakspire"><block><prompt>To be, or not to be: that is the question:

Page 13: Michał Wroński vxml sprawozdanie

Whether 'tis nobler in the mind to sufferThe slings and arrows of outrageous fortune,Or to take arms against a sea of troubles,And by opposing end them?</prompt></block></form></vxml>

Wnioski:Wykonana przez mnie aplikacja głosowa służy raczej do zobrazowania możliwości jakie niosą ze sobą portale głosowe niż do rzeczywistego wykorzystania. Wykonując takie ćwiczenie można dojść do wniosku, że wykonanie aplikacji głosowej symulującej dialog, nawet uproszczony, nie jest zadaniem prostym.