i9g1s1 wozniak lab5 sd

background image

1

WOJSKOWA AKADEMIA TECHNICZNA

im. Jarosława Dąbrowskiego






SYSTEMY DIALOGOWE

SPRAWOZDANIE Z ĆWICZENIA nr 5

Temat:

Portal głosowy.

Zasady języka VXML – prosta aplikacja głosowa.


Wykonał: plut. pchor. Radosław WOŹNIAK

Grupa: I9G1S1



background image

2

1.

TREŚĆ ZADANIA

1.

Sporządzić schemat strukturalny (elementy i powiązania - rysunek)
oraz o

pisać działanie portalu głosowego.

2.

Zaprojektować prostą aplikację głosową (temat aplikacji wybiera
student):

a) identyfikacja aplikacji (

przykładowe dialogi);

b) opracowanie modelu (scenariusza) dialogu w postaci

schematu blokowego;

c)

opis dostępu użytkownika do aplikacji.

2. Utworzenie aplikacji w postaci dokumentu VXML:

a)

opatrzyć komentarzem wszystkie jej znaczniki.

b) testowanie (iteracyjne) w celu udoskonalenia interfejsu.


Zadania szcze

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

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 nie
rozpozna jego wypowiedzi.


Przykładowe tematy aplikacji głosowych:

składanie i obsługa zamówień

zawiadomienie o wypadkach

budzenie telefoniczne

śledzenie lotów

głosowy dostęp do poczty głosowej

wybieranie głosowe połączenia telefonicznego

gaze

ty audio (podawanie wiadomości)

opowiadanie bajek

wypełnianie formularza

przelicznik waluty






background image

3

2. WYNIKI


Zad.1.

Portal głosowy jest to system, który pozwala użytkownikom na dostęp do

informacji znajdujących się w sieci Internet poprzez telefon. Używa do tego

technologii rozpoznawania mowy oraz tzw. „text to speech" (TTS) w celu

dostosowania interfejsu użytkownika do możliwości nawigacji po stronach portalu

głosowego przez telefon używając komend głosowych. Ideą portali głosowych jest

więc umożliwienie użytkownikom dostępu do zasobów internetowych poprzez

telefon.

Rys.1. Schemat strukturalny portalu głosowego (rysunek zapożyczony ze strony

studio.tellme.com).

Platforma głosowa jest tutaj widoczna jako brama łącząca sieć telefoniczną z

Internetem. Rozwijanie portalu głosowego w oparciu o język VXML jest analogiczne i

zgodne z technikami wytwarzania tradycyjnych serwisów opartych o język HTML.

Warto jednak zauważyć, że obsługa klienta za pomocą portalu głosowego narzuca

zupełnie inne podejście do interfejsu użytkownika, zmieniają się wymagania

narzucone

na

interfejs oraz problemy z jakimi styka się projektant.

Przeglądarka głosowa jako kluczowy komponent omawianej architektury różni

się w sposób znaczący od serwisów opartych o platformę IVR. Przeglądarka głosowa

przechwytuje dialog między użytkownikiem, a następnie pobiera konkretne dane z

repozytorium serwisu. Serwerem aplikacji może być dowolny serwer tego typu.

Rodzaj bazy danych również zależy od preferencji osoby projektującej serwis.

background image

4

ZAD.2 i 3.

W celu realizacji zadania zaprojektować prostą aplikację głosową

odpowiedzialną za składanie i obsługę zamówień w pizzerii. Jest to uproszczona

aplikacja, klient ma do wyboru 5 z góry ustalonych rodzajów pizz, 4 ustalone

rozmiary. W celu dalszego kontaktu i oddzwonienia klient jest proszony o podanie lub

wpisanie swojego numeru telefonu. W trakcie rozmowy, jeśli komunikator nie

zrozumie lun nie usłyszy pytania, informuje o tym fakcie i ponawia swoje zapytanie.

Klient ma na końcu możliwość odsłuchania swojego zamówienia i potwierdzenia go

oraz jeśli chce może zamówić kolejną pizze. Zadanie zrealizowałem w języku

angielskim.

Przykładowe dialogi:

Podkreślenie – to pytania aplikacji.

o Kursywa

– to odpowiedź potencjalnego klienta.

Dialog nr.1 - bezproblemowy

 Welcome to the Hot Pizza Service! What kind of pizza would you like to order?

We have peperoni, margerita, havana, winter and hothothot!

o peperoni

 Do you want a small, medium, large or a XXL pizza?

o Small

 Please say or enter your phone number.

o 123 123 123

 Do you want to have a Small pizza peperoni? And you number is

123 123 123?

o Yes

 Your pizza will be delivered in 30 minutes.Thanks for your order. Do you want

to order more pizza?

o No

 Thanks for your calling!


background image

5

Dialog nr.2

– z drobnymi pomyłkami klienta, takimi jak nie odpowiednie słowa lub

milczenie

 Welcome to the Hot Pizza Service! What kind of pizza would you like to order?

We have peperoni, margerita, havana, winter and hothothot!

o I do not know?

 I did not recognize that pizza. Please try again. What kind of pizza would you

like to order? We have peperoni, margerita, havana, winter and hothothot!

o winter

 Do you want a small, medium, large or a XXL pizza?

o

(…silence…)

 I did not hear anything. Please try again. Do you want a small, medium, large

or a XXL pizza?

o Small

 Please say or enter your phone number.

o I do not remember!

 Incorect phone number. Please try again. Please say or enter your phone

number.

o 123 123 123

 Do you want to have a Small pizza winter? And you number is 123 123 123?

o Yes

 Your pizza will be delivered in 30 minutes.Thanks for your order. Do you want

to order more pizza?

o No

 Thanks for your calling!


Dialog nr.3

– klient rozmyśla się co do swojego wyboru i wybiera inną pizze.

 Welcome to the Hot Pizza Service! What kind of pizza would you like to order?

We have peperoni, margerita, havana, winter and hothothot!

o peperoni

 Do you want a small, medium, large or a XXL pizza?

o Small

 Please say or enter your phone number.

o 123 123 123

background image

6

 Do you want to have a Small pizza peperoni? And you number is

123 123 123?

o No

 Your order has been cancelled. Do you want to order more pizza?

o Yes

 Welcome to the Hot Pizza Service! What kind of pizza would you like to order?

We have peperoni, margerita, havana, winter and hothothot!

o peperoni

 Do you want a small, medium, large or a XXL pizza?

o Small

 Please say or enter your phone number.

o 123 123 123

 Do you want to have a Small pizza peperoni? And you number is

123 123 123?

o Yes

 Your pizza will be delivered in 30 minutes.Thanks for your order. Do you want

to order more pizza?

o No

 Thanks for your calling!


Przykładowe dialogi odzwierciedlają tylko kilka przypadków komunikacji pomiędzy

klientem a aplikacją. Na podstawie schematu (rys.2.) można stworzyć znacznie
więcej dialogów.
















background image

7


Rys.2. Model dialogu w postaci schematu blokowego.


Schemat blokowy odzwierciedla m.in. przykładowe dialogi zaprezentowane

wcześniej, a także na jego podstawie zaimplementowałem aplikacje w vxml.


background image

8

<?xml version="1.0" encoding="UTF-8"?> <!-- zgodnosc wezsji xml i kodowanie znakow -->
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" xml:lang="en-US"> <!-- zgodnosc wersji vxml oraz jezyk -->
<form id="powitanie"> <!-- formatka, w programie wykorzystalem tylko jeden formularz-->

<property name="bargein" value="false"/> <!-- aplikacja nie przerwie swojej wypowiedzi, na skutek pytania klienta --

>

<block> <!--tag block nie wymaga interakcji z klientem -->

<prompt bargein="false"> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Welcome to the Hot Pizza Service!
</prompt>

</block>

<field name="rodzaj"> <!-- ten tag powoduje przyjmowanie info od klienta-->
<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

What kind of pizza would you like to order? We have peperoni, margerita, havana, winter and hothothot!
</prompt>

<grammar mode="voice" root="rodzajepizzy"> <!--

definiuje odpowiedzi, które interpreter

przyjmie dla tego pola.-->

<rule id="rodzajepizzy" scope="public">

<one-of> <!-- wybor jednej opcji-itema ponizej-->

<item>peperoni</item>

<item>margerita</item>

<item>havana</item>

<item>winter</item>

<item>hothothot</item>

</one-of>

</rule>

</grammar>

<nomatch> <!-- gdy nie rozpozna syg wej-->

I did not recognize that pizza. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</nomatch>

<noinput> <!--

gdy nei odbierze żadnego syg wej -->

I did not hear anything. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</noinput>

</field>

<field name="rozmiar">

<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Do you want a small, medium, large or a XXL pizza?
</prompt>

<grammar mode="voice" root="rozmiarpizzy"> <!--

definiuje odpowiedzi, które interpreter

przyjmie dla tego pola.-->

<rule id="rozmiarpizzy" scope="public">

<one-of>

<item>small</item>

<item>medium</item>

<item>large</item>

<item>XXL</item>

</one-of>

</rule>

</grammar>

<nomatch>

I did not recognize your answer. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</nomatch>

<noinput>

I did not hear anything. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</noinput>

</field>

<field name="telefon" type="phone">

<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Please say or enter your phone number.

</prompt>

<nomatch>

Incorect phone number. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</nomatch>

<noinput>

I did not hear anything. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</noinput>

</field>


<field name="potwierdzenie">

background image

9

<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Do you want to have a <value expr="rozmiar"/> pizza <value expr="rodzaj"/>?

And you number is <value expr="telefon"/>?

</prompt>

<grammar mode="voice" root="potwierdz"> <!--

definiuje odpowiedzi, które interpreter przyjmie

dla tego pola.-->

<rule id="potwierdz" scope="public">

<one-of>

<item>yes</item>

<item>no</item>

</one-of>

</rule>

</grammar>

<nomatch>

I did not recognize your answer. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</nomatch>

<noinput>

I did not hear anything. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</noinput>

<filled>

<if cond="potwierdzenie == 'yes'"> <!-- warunek if - jesli spelniony to wykonuje-->

<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Your pizza will be delivered in 30 minutes.

Thanks for your order.

</prompt>

<else/> <!--jesli if nie spelniony to to sie wykonuje -->

<prompt> <!-- interpreter odczyta tek

st i prześle go do użytkownika-->

Your order has been cancelled.

</prompt>

</if>

</filled>

</field>

<field name="jeszczeraz">

<prompt> <!--

interpreter odczyta tekst i prześle go do użytkownika-->

Do you want to order more pizza?
</prompt>

<grammar mode="voice" root="jeszcze"> <!--

definiuje odpowiedzi, które interpreter przyjmie dla

tego pola.-->

<rule id="jeszcze" scope="public">

<one-of>

<item>yes</item>

<item>no</item>

</one-of>

</rule>

</grammar>

<nomatch>

I did not recognize your answer. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</nomatch>

<noinput>

I did not hear anything. Please try again.

<reprompt/> <!--

spowoduje powtórzenie prompta -->

</noinput>

<filled>

<if cond="jeszczeraz == 'yes'">

<clear/>

<goto next="#powitanie"/> <!-- przejscie do poczatku formularza z

id=powitanie -->

<else/>

<prompt> <!-- interpreter odczyt

a tekst i prześle go do użytkownika-->

Thanks for your calling!

</prompt>

</if>

</filled>

</field>

</form> <!--zakonczenie formularza -->
</vxml> <!-- zamkniecie kodu vxml -->

Rys.3. Listing kodu aplikacji głosowej w vxml. (jest dołączony do sprawozdania w

pliku vxml z komentarzami i bez).

background image

10

Rys.4. Zrzut ekranu potwierdzający dodanie aplikacji do portalu VOXEO.

Rys.5. Zrzut ekranu z danymi kontaktowymi do aplikacji.




background image

11

Rys.6. Zrzut ekranu potwierdzający nawiązanie połączenia z aplikacją głosową.

W celu uruchomienia aplikacji głosowej zarejestrowałem i zalogowałem się na

stronie:

https://evolution.voxeo.com/

.

Wykorzystałem zakładkę ACCOUNT ->

Application Manager

, uzupełniłem wymagane pola zgodnie z zaleceniami

prowadzącego i utworzyłem aplikację. Dostęp do aplikacji można uzyskać dzięki

numerowi skype

, widoczny na zrzutach ekranów (rys.5 i 6).

3.

WNIOSKI i SPOSTRZEŻENIA.

Zadanie zostało zrealizowane w całości, udało się zaprojektować,

zaimplementować i wykonać aplikacje głosową. Zadanie dotyczy obsługi klienta

zamawiającego pizze. Jest to znacznie okrojona i uproszczona aplikacja. Klient ma

do wyboru rodzaje pizz i ich rozmiary, jeżeli wykorzysta inne słowo niż podane,

background image

12

pyta

nie zostanie mu przeczytane jeszcze raz. Także przy podawaniu numeru

telefonu jeśli się pomyli. Przy każdym odczekiwaniu na odpowiedz klienta, w

przypadku jego braku zostanie powtórzone pytanie. Klient pod konie konwersacji

odsłuchuje swojego zamówienia i ma możliwość jego potwierdzenia lub odrzucenia.

Na koniec klient może zorzyc zamówienie na nowa pizze lub zakończyć rozmowę

Pytania zostały skonstruowane tak aby klient miał możliwość usłyszenia

możliwości odpowiedzi (oprócz pytań oczekujących tylko odp. tak lub nie). Sytuacje

kiedy klient odpowie inaczej niż komunikator tego oczekuje, usłyszy ponownie

pytanie.

Aplikacje głosowe mogą znacznie ułatwić i przyspieszyć zdobywanie

informacji, zamawianie różnych produktów lub usług przez interesantów. Mogą

zautomatyzować i zmniejszyć koszty ponoszone przez firmy wykorzystujące

telemarketing, czy call centra. Niestety m

oże to wiązać się z utratą pracy przez

pewna liczbę osób.


Wyszukiwarka

Podobne podstrony:
i9g1s1 wozniak lab5 sd id 20877 Nieznany
i9g1s1 wozniak lab4 sd
i9g1s1 wozniak lab3 sd
i9g1s1 wozniak lab4 sd
lab5 prezentacja
Bezpieczenstwo w sieci SD
020806 WPK Wozniakid 3955
C lab5
lab5 Proxy
ZG lab5 6 id 589867 Nieznany
ZwUE lab5
Lab5 Analiza sygnalu mowy Lab5 Nieznany
Podstawy Robotyki lab5
Architekrura SystemAlw Lab5 (1) Nieznany
Lab5
Lab5, poch1
Tematy ćwiczeń - SD, WAT, SEMESTR V, systemy dialogowe
Pytania Ania Woźnialis i Wojtek Zduńczyk, gik, semestr 7, seminarium, Seminarium
Soczysta pierś z kurczaka po włosku by sd

więcej podobnych podstron