background image

Wojskowa Akademia Techniczna 

im. Jarosława Dąbrowskiego

 

 

 

 

L a b o r a t o r i u m  

S y s t e m y   D i a l o g o w e  

 
 
 
 
 
 

Prow adzący: dr i nż. Andrze j Wi śniewski 

 
 
 

Sprawozdanie z ćwiczenia laboratoryjnego 

VOXEO 

 
 
 
 
 
 
 
 
 
 
 

Wykonał: 
Kamil Piersa 
I7G2S1 
 
 
 
 

background image

1.  Architektura (schemat strukturalny) portalu głosowego - opis elementów i 

powiązań na bazie platformy głosowej (sporządzić rysunek). Opis działania portalu 
głosowego. 

 

 

Opis: 
 
Użytkownik  (dzwoniący)  łączy  się  z  serwerem  VoiceXML  który  zajmuje  się  interpretacją  dźwięku  (np.  TTS(Text-To-
Speech) – jest procesem syntezy mowy, który wydobywa informacje lingwistyczne, lub ASR – przekształcanie dźwięku w 
tekst).  Następnie  VXML  serwer  łączy  się  poprzez  najczęściej  łącze  internetowe  poprzez  port  http  i  interpretację  kodu 
napisanego w vxml do serwera aplikacji. Następnie do użytkownika, który wcześniej wysłał jakieś zapytanie głosowe (np. 
jaka jest obecna cena dolara) dostaje odpowiedź głosową od serwera. 

 

2.  Scharakteryzować możliwości tworzenia i uruchamiania aplikacji głosowych 

(dokumentów VXML) za pomocą narzędzi platformy głosowej Voxeo. 

 
W punkcie tym pokazana jest możliwość uruchomienia aplikacji głosowej na platformie Voxeo na 
przykładzie aplikacji, która była zadana na zajęciach laboratoryjnych. 
 
Pierwszym krokiem jaki wykonałem przy realizacji zadania była rejestracja na portalu 

www.voxeo.com

.  

Oraz pobranie platformy Prophecy w wersji 9.0 na system Windows. 
 

 

 
Pobranie platformy jest opcjonalne, używane jest wtedy, gdy użytkownik chce projektować aplikację na 
lokalnym komputerze stosując serwer na porcie lokalnym (localhost). Jednakże poniższą aplikację 
umieściłem na serwerze Voxeo i na nim wykonywałem poszczególne operacje. 
Kolejnym krokiem po zarejestrowaniu darmowego konta 30-dniowego zalogowałem się na serwer Voxeo.  
 

 

background image

Następnie w menu Account -> Files, Logs, Reports, dodałem na serwer Voxeo do katalogu root/www plik 
xml z kodem programu. 
 

 

 
 
W menu Account > Applications widać dodaną aplikacją o nazwie p2. 
 
 

 

 
 
Można także zobaczyć właściwości tej aplikacji: 
 
 

 

 
 
 
 
 

background image

W zakładce Call Methods można zobaczyć numery przez, które można dodzwonić się do dodanej aplikacji 
xml’owej.  
 
   

 

 
 
 
Voxeo umożliwia komunikację z aplikacją poprzez popularny komunikator głosowy IP - Skype. Aby to zrobić 
w oknie komunikatora należy wpisać odpowiedni numer wygenerowany przez Voxeo. 
 
 
 

 

 
 
 
 
 
 
 
 

background image

Jak widać, udało się połączyć z aplikacją głosową: 
 

 

 
 
 
 

3.  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. 

 
Tematem  aplikacji  jest  agencja  nieruchomości  w  Warszawie.  Klient  dzwoni  do  centrali  w  celu  złożenia 
ogłoszenia o sprzedaż (selling), kupno (buying), bądź wynajęcie mieszkania (renting). Jeśli wybrał jedno z 
powyższych kolejne pytanie od sekretarki było na temat lokalizacji mieszkania. Możliwości do wyboru były: 
w centrum miasta(downtown), bądź przedmieścia (suburbs). Po wyboru lokalizacji, dzwoniący pytany był o 
metraż mieszkania (30m

2

 bądź 50m

2

). Ostatnie pytanie było o cenę mieszkania za miesiąc (w setkach zł). 

Dostępne możliwości były jak następuje: czterysta (four, )piećset(five), sześćset(six) oraz siedemset (seven). 
Po  udzieleniu  odpowiedzi  odpowiedź  sekretarki  brzmiała:  „Dziękuję  za  korzystanie  z  usług  biura.  Nasz 
agent skontaktuje się z panem w przeciągu 2 dni. Do widzenia!”. 
 

background image

a)  Identyfikacja aplikacji (Schemat blokowy). 

 
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 

background image

b)  opracowanie i specyfikacja scenariusza dialogu 

 
Przykładowy Scenariusz: 
 

-  Thank you for calling the biuro of real estates in Warsaw. What service you want to choose?. You 

can choose buying , selling , renting . (Dziękuje za dodzwonienie się do biura nieruchomości w 

Warszawie. Jaką usługę chciał(a)by pan(i) wybrać? Do wyboru: kupno, sprzedaż, wynajem.) 

-  Buying (Kupno). 

-  You choosed buy apartment option. Which location do you choose? (Wybrałeś opcję: kupno 

mieszkania. Jaką lokalizację wybierasz?). 

-  You can choose: downtown, suburbs. (Możesz wybrać: centrum, przedmieścia). 

-  Downtown. (Centrum.) 

-  I'm sorry, I didn't get that. Can you repeat, please ? 

-  Downtown (Centrum). 

-  You choosed apartment located in downtown. What size do you choose? ( Wybrałeś mieszkanie 

zlokalizowane w centrum miasta. Jaki metraż wybierasz?) 

-  Available metres square are: thrity, fifty. (Dostępne metraże( w mkw): 30, 50) 

-  Thirty. (Trzydzieści.) 

-  You choosed thirty metre square apartment. What price do you choose ? (Wybrałeś 30metrowe 

mieszkanie. Jaką cene wybierasz?.) 

-  Available prices a month in hundreds zlotys are four, five, six, seven. (Dostępne ceny w setkach 

złotych to: cztery, pięć, sześć, siedem). 

-  Four. (Cztery.) 

-  You choosed four hundreds a month. Thanks for using our biuro. Our agent will contact you in two 

days. Goodbye! (Wybrałeś 400 za miesiąc. Dziękuję za korzystanie z usług biura. Nasz agent 

skontaktuje się z panem w przeciągu 2 dni. Do widzenia!) 

 
 
 
 

background image

c)  Opis dostępu użytkownika do aplikacji. 

 
Opis dostępu do aplikacji został opisany w i jest taki sam jak w pkt. 2. 
 

d)  Kod programu: 

 

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

I'm sorry, I didn't get that. Can you repeat, please ? 

 

<reprompt/> 

</nomatch> 
<noinput> 
 

I'm sorry, I can't hear you saying. Can you repeat, please ? 

 

<reprompt/> 

</noinput>  
 
 <form id="Salon"> 
 <property name="input" value="voice"/> 
  <field name="Usluga"> 
   <prompt> 
     Thank you for calling the biuro of real estates in Warsaw. What service you want to choose?. You can 
choose buying , selling , renting . 
   </prompt> 
 

 

<grammar mode="voice" root="Jakausluga"> 

              <rule id="Jakausluga" scope="public">  
               <one-of> 
 

 

 

 

 <item>buying</item> 

 

 

 

 

 <item>selling</item> 

 

 

 

 

 <item>renting</item>   

               </one-of> 
              </rule> 
         </grammar> 
 

 

  

 

 

 

<filled namelist="Usluga"> 

 

 

 

 

<if cond="Usluga == 'buying'"> 

 

 

 

 

 

 

<prompt>You choosed buy apartment option. Which location do you 

choose?</prompt> 
 

 

 

 

 

 

<goto next="#location"/> 

 

 

 

 

 

<elseif cond="Usluga == 'selling'"/> 

 

 

 

 

 

 

<prompt>You choosed sell apartment option. Which location do you 

choose?</prompt> 
 

 

 

 

 

 

<goto next="#location"/> 

 

 

 

 

 

 

 

<elseif cond="Usluga == 'renting'"/> 

 

 

 

 

 

 

<prompt>You choosed rent apartment option. Which location do you 

choose?</prompt> 
 

 

 

 

 

 

<goto next="#location"/> 

 

 

 

 

</if> 

 

 

 

</filled> 

  </field> 
 </form>  
 
 

<form id="location"> 

 

 

<nomatch> 

 

Sorry, I didn't get that. Please repeat. 

 

<reprompt/> 

</nomatch> 
<noinput> 
 

Sorry, I can't hear you. Please repeat. 

 

<reprompt/> 

</noinput>  
 

<property name="inputmodes" value="voice"/> 

      <field name="LocationChoose"> 
          <prompt> 
 

 

  You can choose: downtown, suburbs.  

          </prompt> 
 

 

   

 

 

  <grammar mode="voice" root="connection"> 

              <rule id="location" scope="public">  
               <one-of> 
                 <item>downtown</item> 
                 <item>suburbs</item> 
               </one-of> 
              </rule> 
          </grammar> 
 

 

   

 

 

   <filled> 

 

 

 

 

 

<if cond="LocationChoose == 'downtown'"> 

 

 

 

 

 

 

 

<prompt>You choosed apartment located in downtown. What 

size do you choose?.</prompt> 
 

 

 

 

 

 

 

<goto next="#Size"/> 

background image

 

 

 

 

 

 

<elseif cond="LocationChoose == 'suburbs'"/> 

 

 

 

 

 

 

 

<prompt>You choosed apartment located in suburbs. What 

size do you choose?.</prompt> 
 

 

 

 

 

 

 

<goto next="#Size"/> 

 

 

 

 

 

</if> 

          </filled> 
 

 </field> 

 

</form> 

 
 
 
 
 

<form id="Size"> 

 

 

<nomatch> 

 

Sorry, I didn't get that. Please repeat. 

 

<reprompt/> 

</nomatch> 
<noinput> 
 

Sorry, I can't hear you. Please repeat. 

 

<reprompt/> 

</noinput>  
 

<property name="inputmodes" value="voice"/> 

      <field name="SizeChoose"> 
          <prompt> 
 

 

  Available metres square are: thrity, fifty. 

          </prompt> 
 

 

   

 

 

  <grammar mode="voice" root="flatsize"> 

              <rule id="sizec" scope="public">  
               <one-of> 
                 <item>thirty</item> 
                 <item>fifty</item> 
               </one-of> 
              </rule> 
          </grammar> 
 

 

   

 

 

   <filled> 

 

 

 

 

 

<if cond="SizeChoose == 'thirty'"> 

 

 

 

 

 

 

 

<prompt>You choosed thirty metre square apartment. What 

price do you choose ?</prompt> 
 

 

 

 

 

 

 

<goto next="#Price"/> 

 

 

 

 

 

 

<elseif cond="SpeedChoose == 'fifty'"/> 

 

 

 

 

 

 

 

<prompt>You choosed fifty metre square apartment. What 

price do you choose ?</prompt> 
 

 

 

 

 

 

 

<goto next="#Price"/> 

 

 

 

 

 

</if> 

          </filled> 
 

 </field> 

 

</form> 

 
 
 

<form id="Price"> 

 

 

<nomatch> 

 

Sorry, I didn't get that. Please repeat. 

 

<reprompt/> 

</nomatch> 
<noinput> 
 

Sorry, I can't hear you. Please repeat. 

 

<reprompt/> 

</noinput>  
 

<property name="inputmodes" value="voice"/> 

      <field name="PriceChoose"> 
          <prompt> 
 

 

  Available prices a month in hundreds zloties are four, five, six, seven. 

          </prompt> 
 

 

   

 

 

  <grammar mode="voice" root="sub"> 

              <rule id="prices" scope="public">  
               <one-of> 
                 <item>four</item> 
                 <item>five</item> 
 

 

 

 

 <item>six</item> 

 

 

 

 

 <item>seven</item> 

               </one-of> 
              </rule> 
          </grammar> 
 

 

   

 

 

   <filled> 

 

 

 

 

 

<if cond="PriceChoose == 'four'"> 

 

 

 

 

 

 

 

<prompt>You choosed four hundreds a month. Thanks for 

using our biuro. Our agent will contact you in two days. Goodbye!</prompt> 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

<elseif cond="PriceChoose == 'five'"/> 

background image

 

 

 

 

 

 

 

<prompt>You choosed five hundreds a month. Thanks for 

using our biuro. Our agent will contact you in two days. Goodbye!</prompt> 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

<elseif cond="PriceChoose == 'six'"/> 

 

 

 

 

 

 

 

<prompt>You choosed sixhundreds a month. Thanks for using 

our biuro. Our agent will contact you in two days. Goodbye!</prompt> 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

<elseif cond="SubscriptionChoose == 'seven'"/> 

 

 

 

 

 

 

 

<prompt>You choosed seven hundreds a month. Thanks for 

using our biuro. Our agent will contact you in two days. Goodbye!</prompt> 
 

 

 

 

 

 

 

 

 

 

 

 

 

</if> 

          </filled> 
 

 </field> 

 

</form> 

  
</vxml> 
 
 

4.  Wnioski. 

 

Portal  Voxeo jest to portal aplikacji głosowych, które obsługują takie formaty plików jak .XML, w  którym 
można  tworzyć  np.  aplikacje  głosowe.  Jest  przydatny  przy  tworzeniu  np.  automatycznych  sekretarek 
wykorzystywanych  w  wielu  firmach.  Zwalnia  to  tym  samym  prawdziwe  osoby,  które  miałyby  siedzieć  na 
słuchawkach  i  obsługiwać  klientów  w  ten  sam  sposób  co  zrobi  to  aplikacja  komputerowa.  Można 
wykorzystać to w wielu programach np. takim jakim jest najpopularniejszy komunikator głosowy na świecie 
–  Skype.  Ułatwia  i  usprawnia  to  komunikację  klientów  z    wieloma  firmami,  tak  jak  funkcjonalność  do 
rejestracji  użytkownika,  złożenia  zamówienia  różnorodnych  usług,  czy  nawet  nagrania,  odsłuchania 
wiadomości,  historii,  organizowanie  spotkań  itp.  Przy  tej  okazji,  jeśli  dzwoniący  jest  z  innego  kraju  niż 
firma/usługa z jaką próbuje się połączyć nie musi płacić za połączenia telekomunikacyjne, gdyż telefonia IP 
jest  bezpłatna.  Podsumowując,  usprawnienia  jakie  przynosi  za  sobą  telefonia  IP  oraz  tym  samym  portal 
Voxeo są zaskakujące i przyszłościowe i być może będzie udoskonalana na większą skalę.