Voice Browsers - Dokuz Eylül Üniversitesi
Transkript
Voice Browsers - Dokuz Eylül Üniversitesi
Sesli Đnternet Gezgini Voice Browser ÖZET Sesli Đnternet Gezgini (SĐG), Đnternet sayfalarına erişim için en temel iletişim araçlarından birisi olan sesi kullanan internet gezginidir. SĐG’ler ile internet sayfalarına herhangi bir telefon aracılığı ile erişilebilir, ayrıca görme özürlü kişilere internette gezinme olanağı sağlanabilir veya dahası araba kullanırken bile internette gezinti yapılmasını sağlayabilir. Bu çalışmada, öncelikle SĐG’lerinin temel özellikleri ve gereksinimleri incelenmiş, daha sonra Türkçe konuşabilen ve anlayabilen bir SĐG tasarlanarak, geliştirilmiştir. Geliştirilen gezgin VoiceXML tabanlıdır ve VoiceXML dokümanlarını yorumlayabilmektedir. Buna ek olarak, bir veritabanından verilerin XML biçiminde alındığı ve sunum biçiminin de XSL ile verildiği çok katmanlı mimariler için gerekli olan XSLT modülüne de sahiptir. Geliştirilen SĐG örnek olarak hazırlanmış olan bir haber portalı üzerinde denenmiştir. Elde edilen sonuçlar ve sistemin diğer özellikleri de ayrıntılı olarak sunulmuştur. ÖZGEÇMĐŞ ABSTRACT Oğuz Kaan ĐÇER 1978 yılında Đzmir’de doğdu. Đzmir Atatürk Lisesinde lise eğitimini tamamladıktan sonra Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği bölümünden lisans derecesi aldı. Halen özel bir şirkette görev yapmaktadır. Hülya ÇETĐN 1979 yılında Đzmir’de doğdu. Đzmir Kız Lisesinde lise eğitimini tamamladıktan sonra Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği bölümünden lisans derecesi aldı. Adil ALPKOÇAK 1965 yılında Aydın’da doğdu. Hacettepe Üniversitesinden lisans, Ege Üniversitesi Bilgisayar Mühendisliği bölümünden yüksek lisans ve doktora dereceleri aldı. Halen Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği Bölümünde öğretim üyesi olarak çalışmaktadır. Voice Browsers are Internet browsers allowing people to interact with Web sites via spoken commands and listening to prerecorded and synthetic speech. This will allow any telephone to be used to access Web-based services and will be a boon to people with visual impairments or needing Web access while keeping theirs hands and eyes free for other things. In this study, we first investigated the basic characteristics and requirements for Voice Browsers and developed a voice browser (SĐG) capable to speak and understand basic Turkish voice commands. SĐG is VoiceXML based and can interpret VoiceXML documents. Additionally, it also has an XSLT module for on-the-fly production of VoiceXML document in a multi-layer architecture, where data is in XML format and the presentation requirements are given in XSL. The system is tested for an example news portal and the results and architectural details are also presented. 1. GĐRĐŞ Ses, çocukluktan beri öğrendiğimiz konuşma ve dinleme yeteneklerini aktif hale getiren en doğal, kişiler arası iletişim aracıdır. Bu önemli iletişim aracının Đnternette kullanılması ise Sesli Đnternet Gezgini (SĐG) ile sağlanabilir. Bu konuda çeşitli kuruluşlar tarafından çalışmalar yürütülmekte, standartlar oluşturulmakta ve ilk ürünler sunulmaya başlanmıştır. SĐG, her şeyden önce Đnternet sayfalarına erişim için bilgisayara olan gereksinimi ortadan kaldırabileceği için, Đnternete erişimi daha da yaygınlaştıracağı açıktır. Gelecekte SĐG ile Đnternet sayfalarına herhangi bir telefon aracılığı ile erişilebilmesi sağlanırsa, bu şekilde bilgisayar olmadan da bir çok kişinin ve özellikle görme özürlü kişilerin Đnternette gezinme olanağı olacaktır. VoxML; AT&T ve Lucent Technologies ise PML adını verdikleri dilleri önermişlerdir. IBM ise bu amaçla gerçekleştirdiği çalışmalarda SpeechML adını verdiği dili geliştirmiştir. Bütün bu çalışmalardan elde edilen sonuçlar, World Wide Web Consortium (W3C) tarafından 1999 Ağustosunda birleştirilmiş ve VoiceXML adı verilen yeni bir standart ortaya konulmuştur. VoiceXML, Đnternet sayfalarının sadece işitsel amaçlı çalışmalarda kullanılması amacıyla geliştirilmiştir ve bu nedenle resim, grafik gibi görsel malzemeleri içermez [2]. Bu çalışmada VoiceXML 1.0 standardı esas alınarak XML ve XSL tabanlı Sesli Đnternet Gezgini tasarlanmış ve geliştirilmiştir. Sistemin genel mimarisi ve temel bileşenleri ikinci bölümde anlatılmıştır. Üçüncü bölümde ise gerçekleştrilen uygulama hakkında bilgiler sunulmuş ve bazı örnekler verilerek açıklanmıştır. Son bölümde ise, W3C 2001 VoiceXML 2.0 Mart 2000 VoiceXML 1.0 VoiceXML Forum Ağustos 1999 VoiceXML 0.9 IBM Speech Markup Language Motorola VoxML AT&T PML 1995 Lucent Technologies PML AT&T Bell Lab. PML/TelephoneWebNB Şekil 1: VoiceXML standartının tarihsel gelişimi. Günümüzde kullanılan Đnternet sayfaları, HTML tabanlıdır. HTML tabanlı Đnternet sayfaları resimler, grafikler ve bunlara benzer görsel malzeme içerdiği için Đnternette gezinti yapan kişileri ekran karşısına bağlamaktadır. Bu durum görme engelli kişilerin Đnternet kullanımını kısıtlamakta veya olanksız hale getirmektedir. Bu amaçla geçmişte birçok kuruluş önemli çalışmalar yapmıştır. Şekil 1’de bu çalışmaların tarihsel süreci göstermektedir. HTML’den başka bir işaret dili geliştirmek amacıyla ilk olarak 1995 yılında AT&T Bell laboratuvarlarında çalışmalara başlanmıştır. Ardından Lucent Technologies ve Motorola da benzeri çalışmalar yapmışlardır. Motorola, çalışmaları sonucunda elde edilen sonuçlar ve yakın gelecekte yapılması planlanan çalışmalar üzerinde durulmuştur. 2. SESLĐ ĐNTERNET GEZGĐNĐ Bu çalışma kapsamında geliştirilen Sesli Đnternet Gezgini (SĐG), XML tabanlı bir veritabanı ile entegre olarak çalışabilen ve mevcut verilerin XSL ile formatlanarak VoiceXML 1.0 formatına dönüştürüldüğü, çok katmanlı, Türkçe konuşabilen ve Türkçe komutları anlayabilen bir Đnternet gezginidir. SĐG hakkında ayrıntılı açıklamalar aşağıdaki bölümlerde sunulmuştur. 2.1 Genel Mimari SĐG’in genel mimarisi Şekil 2’de görülmektedir. Veritabanı saklanan veriler, kendisine Web sunucusundan gelen istek doğrultusunda sorgulanarak, sonuçları XML biçiminde Web sunucusuna iletilir. Kullanıcı SĐG kullanarak ilgili web sitesine bağlantıyı kurarak ilgili sayfa ile ilgili isteğini Web sunucusuna bildirir. Web sunucusu, ASP ile hazırlanan Đnternet sayfasına ODBC aracılığı ile Veritabanı sunucusuna bağlanır. Veritabanı sunucusu, kendinden istenen sorguyu işletir ve sonucu XML biçiminde [3] Web sunucusuna iletir. Oluşturulan XML belgesi ve ilgili XSL dosyası Web sunucusu tarafından SĐG istemcisine gönderilir. SĐG istemcisi içerisindeki Web işlemcisi gelen XML ve XSL dosyaları SigXSLT modülüne gönderir. SigXSLT alınan XML ve XSL dosyalarını VoiceXML haline dönüştürdükten sonra, oluşan VoiceXML dosyasını VoiceXML yorumlayıcısına iletir. Son olarak da VoiceXML yorumlayıcısı, kendine gelen VoiceXML biçimindeki veriyi sesli olarak kullanıcısına iletir. Bu genel işleyişte gösterildiği gibi, kullanıcı sadece duyduğu ses yardımıyla bağlandığı Đnternet sitesinde dolaşabilmesi sağlanmış olur. Her bağlanılan yeni köprüde yukarıdaki işlemler tekrar edilir. Kullanıcının Đnternet sayfalarına bağlanabilmek ve sayfalar üzerinde komut işletebilmek için sesli komutlar ya da kendisi için özel hazırlanmış tuş takımını kullanabilir. 2.2 SigXSLT XSL (eXtensible Stylesheet Language), herhangi bir XML dokümanında saklanan verinin kullanıcıya ne şekilde sunulacağını tanımlanmak için tarasarlanmış, yüksek seviyeli bir dildir. Bu işlem, CSS (Cascading Style Sheets) yardımıyla da yapılabilmektedir. Ancak XSL CSS’ye ek olarak sıralama, tekrarlama, döngüler kurma, sorgulama gibi birçok ek programlama yeteneğine de sahiptir. [4] XSLT (eXtensible Stylesheet Language Transformations), bir XML dokümanını ilgili XSL ile birleştirerek yeni bir XML dokümanı oluşturulmasını sağlayan bir dönüştürücüdür [5]. XSL ve XML dokümanları, bir XSLT modülünün girdileridir. Çıktısı ise HTML’den VoiceXML’e kadar birçok biçimde olabilir. Çıktı biçimi XSL yardımıyla belirlenir. Bu çalışma kapsamında SigXSLT adı verilen bir dönüştürücü geliştirilmiştir. Diğer XSL dönüştürücülerinde de olduğu gibi, SigXSLT de XML ve XSL dokümanlarını girdi olarak kabul eder ve VoiceXML biçiminde çıktı üretir. Üretilen VoiceXML, yine SĐG istemcisinin bir diğer temel bileşeni olan VoiceXML yorumlayıcı tarafından sesli çıktı haline dönüştürülerek kullanıcıya sunulur. Sesli çıktı sağlandıktan sonra kullanıcı ile SĐG arasındaki iletişim başlamış olur. SĐG, bu aşamadan sonra kullanıcıdan gelen sesli komutları ya da kullanıcının elindeki özel tuş takımından gelen komutları yerine getirir. Veri ile verinin sunumu birbirinden ayıran XML ve XSL dökümanların dönüştürücüsü XSLT uygulamalarının birçok kuruluş tarafından yapılmış örnekleri mevcuttur. W3C (World Wide Web Consortium) tarafından sürüm 1 [5] ve sürüm 1.1 ismi verilen iki adet XSLT önermesini duyurulmuştur. Microsoft tarafından da MSXML ismi verilen XSLT uygulamaları geliştirilmiştir. Geliştirilen XSLT uygulamalarını Microsoft tarafından kendi programlarında kullanmıştır. Microsoft Internet Explorer 5.0 MSXML sürüm 2 içermektedir. MSXML.NET ise henüz geliştirilme aşamasındadır. Tablo-1’de karşılaştırmalı olarak SigXSLT’nin ve diğer XSLT uygulamalarının yorumlayabildiği XSL elemanları gösterilmiştir. SĐG istemcisi SigXSLT Web Đşlemcisi XSL VoiceXML VoiceXML Yorumlayıcısı Ses Sentezleme Sesli Çıktı Web Sunucusu XML Veritabanı Sunucusu ODBC Web isteği XML & XSL ASP & XSL Ses Tanımlama Sesli Girdi Özel Klavye Girdisi Şekil 2: SĐG Mimarisi Veri Veritabanı Tablo 1: XSL Elemanları ve destekleyen XSLT Uygulamaları XSL elemanları msxml:script xsl:apply-imports xsl:applytemplates xsl:attribute xsl:attribute-set xsl:call-template xsl:choose xsl:comment xsl:copy xsl:copy-of xsl:decimal-format xsl:document xsl:element xsl:fallback xsl:for-each xsl:if xsl:import xsl:include xsl:key xsl:message xsl:namespacealias xsl:number xsl:otherwise xsl:output xsl:param xsl:preservespace xsl:processinginstruction xsl:sort xsl:strip-space xsl:stylesheet xsl:template xsl:text xsl:transform xsl:value-of xsl:variable xsl:when xsl:with-param uygulamalarıyla birlikte de kullanılabilmektedir. Bu çalışma ise Şekil 3’de görüldüğü gibi daha çok Đnternet uygulamalarına yöneliktir. SIG w3c1 w3c1.1 msxml2 msxml3 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X SigXSLT, Tablo-1’de belirtildiği gibi XSL elementlerinin büyük bir kısmını destekleyebilmektedir. Ancak desteklenen XSL elementlerinin bir kısmına ait bazı özellikler şu an desteklenememektedir. Yakın gelecekte tamamlanması planlanmıştır. Mevcut SigXSLT örnek olarak tasarlanan Đnternet sayfalarında hiçbir eksiklik olmaksızın ilgili VoiceXML üretimini gerçekleştirebilmektedir. 2.3 VoiceXML Yorumlayıcı VoiceXML (Voice eXtensible Markup Language) bir işaret dilidir. Ses aracılığı ile Đnternetteki bilgilere erişmeyi sağlamak amacıyla geliştirilmiştir. SĐG, bu amaca yönelik olarak geliştirilen VoiceXML dilini kullanmaktadır. Sesli Đnternet Gezginleri telefon Internet Gezgini Çoklu Ortam HTML Script Voice XML Ses Dilbilgis Sesli Đnternet Gezgini Web Sunucusu Şekil 3: Sesli Đnternet Gezgini Bu çalışmada VoiceXML dilini yorumlamak amacıyla VoiceXML Yorumlayıcısı adı verilen bir modül geliştirilmiştir. VoiceXML Yorumlayıcısı, VoiceXML haline çevrilmiş veriye anlam yükler. • • • • • Hangi cümlelerin vurgulu söylenmesi gerektiği, Kullanıcıdan ne zaman yanıt bekleneceği, Kullanıcının verdiği yanıtlara göre nerelere yönlendirileceği, Kullanıcıdan yanıt vermediğinde neler yapılması gerektiği, Kullanıcı yanlış yanıt verdiğinde neler yapılması gerektiği, Ve benzeri anlamları bu yorumlayıcı modül yükler. Konu ile ilgili örnekler üçüncü bölümde verilmiştir. Bu çalışmada VoiceXML yorumlayıcımız telefon uygulamaları gerektiren Subdialog, Disconnect, Transfer, Dtmf gibi VoiceXML elemanlarını desteklemez. Çünkü çalışmamızın bugünkü yapısı ile telefon uygulamalarına destek vermemektedir. Ayrıca Euler 2.0 Ses Sentezleyicisi sesle ilgili değişikliklere izin vermediği için Grammar, Pros, Sayas elemanlar da desteklenememektedir. Bunların yanısıra Script, Object, Param gibi HTML tabanlı elemanlar da desteklenmemektedir. 3. UYGULAMA SĐG projesi Microsoft Visual Basic 6.0 ile gerçekleştirilmiştir. SĐG içindeki Euler TTS Version 2.0, Microsoft Speech API Version 4.0 gibi diğer bileşenler kendileri ile ilgili dökümanların yardımıyla çalışmaya eklenmiştir. SigXSLT ve VoiceXML Yorumlayıcısı ise Visual Basic ile yazılmıştır. XML ve XSL dökumanlarının VoiceXML haline getirilmesini sağlayan SigXSLT modülü de Visual Ses Basic ile yazılmıştır. SĐG projesinde kullanılan veritabanı sunucusu Microsoft Windows 2000 işletim sistemi altında kurulmuş Microsoft Internet Information Sunucusudur. Kullanılan veritabanı yönetim sistemi ise yine Microsoft Windows 2000 işletim sistemi altında çalışan Microsoft SQLServer 7.0’dir. Veritabanından gelen kayıtların XML formatına çevirilmesi ise proje kapsamında geliştirilen ve Web sunucusunda bulunan bir program aracılığıyla yapılır. VoiceXML Yorumlayıcısı gelen VoiceXML verisini Euler TTS Version 2.0 bileşenine göderir ve bu şekilde, içerik sese çevrilmiş olur. VoiceXML Yorumlayıcı, Microsoft Speech API Version 4.0 bileşeni yardımıyla gelen sesleri metne ve komuta dönüştürür. 3.1 Örnek Uygulama Projeye gelen girdiler ve dönüştükleri çıktılar aşağıdaki örnekler yardımıyla incelenebilir. Aşağıdaki örnek uygulama sesli bir haber sitesine aittir. Kullanıcı bu siteye ait Đnternet adresini yazdıktan sonra, • ASP, Web sunucusunun ODBC ayarları aracılığı ile veri tabanı sunucusuna bağlanır. • Veritabanında tutulan veriler Tablo-2’deki şekilde XML [1] haline çevrilir. SĐG istemcisi, XML içerisinden kendisi için gerekli olan XSL dökümanını tanımlayıp Web sunucusundan ilgili XSL dökümanı ister. SigXSLT gelen XML ve XSL’i Tablo-4’deki şekilde VoiceXML biçimine dönüştürür. • • Tablo 2: XML biçimdeki veriler <?xml version="1.0" encoding="ISO8859-1" ?> <?xml-stylesheet type="text/xsl" href="news.xsl" ?> <DAILYNEWS> <NEWS> <DATE>6/26/01</DATE> <TIME>9:52:00 AM</TIME> <CATEGORY>Siyaset</CATEGORY> <TITLE>Ankara’da Anayasa satranci </TITLE> <ABSTRACT>Eski ve yeni ana .....</ABSTRACT> <TEXT>Anayasa Mahkemesi FP hakkinda... </TEXT> <SOURCE>NTV-MSNBC</SOURCE> </NEWS> ... </DAILYNEWS> Tablo 3: Örnek XSL <?xml version='1.0' encoding='ISO8859-1' ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <meta name="Haber Sitesi" content="Sesli Basın Yayın"/> <form id="continue"> <field name="secenek"> <prompt>Siyaset, Ekonomi, Özet haberler</prompt> <noinput>Yanıt veriniz</noinput> <filled> <if cond="secenek == 'siyaset'"/> <goto next="#siyaset"/> <elseif cond="secenek == 'ekonomi'"/> <goto next="#ekonomi"/> <else/> <goto next="#ozet"/> </if> </filled> </field> </form> ... ... <form id="ozet"> <prompt>Şimdi Özet Haberleri Sunuyoruz...</prompt> <xsl:for-each select="DAILYNEWS/NEWS"> <prompt><emp>Gün</emp></prompt> <prompt> <xsl:value-of select="DATE"/> </prompt> <prompt><emp>Başlık</emp></prompt> <prompt> <xsl:value-of select="TITLE"/> </prompt> <prompt><emp>Özet</emp></prompt> <prompt> <xsl:value-of select="ABSTRACT"/> </prompt> <prompt>Özet sonu.</prompt> </xsl:for-each> <goto next="#exit"/> </form> ... ... <form id="exit"> <prompt>Sesli Basın Yayın iyi günler diler.</prompt> </form> </xsl:template> </xsl:stylesheet> Tablo 4: VoiceXML standardına dönüştürülmüş veri <?xml version='1.0' encoding='ISO8859-1' ?> <vxml version="1.0"> <meta name="Haber Sitesi" content="Sesli Basın Yayın"/> <form id="continue"> <field name="secenek"> <prompt>Siyaset, Ekonomi, Özet haberler</prompt> <noinput>Yanıt veriniz</noinput> <filled> <if cond="secenek == 'siyaset'"/> <goto next="#siyaset"/> <elseif cond="secenek == 'ekonomi'"/> <goto next="#ekonomi"/> <else/> <goto next="#ozet"/> </if> </filled> </field> </form> ... ... <form id="ozet"> <prompt> Şimdi Özet Haberleri Sunuyoruz...</prompt> <prompt><emp>Gün</emp></prompt> <prompt>6/26/01</prompt> <prompt><emp>Başlık</emp></prompt> <prompt>Ankara’da Anayasa satranci</prompt> <prompt><emp>özet</emp></prompt> <prompt>Eski ve yeni ana muhalefet...</prompt> <prompt>Özet sonu.</prompt> SĐG projesi kısa vadede hedeflediği amaçlara ulaşmıştır. Đzmir Körler Okulu ile planlanan ortak bir çalışmada SĐG’in, okul öğrencileri tarafından denenmesi için yapılan çalışmalar devam etmektedir. SĐG projesinde yapılacak hala birçok fikir mevcut ve zamanla aşağıda bir kısmı verilen fikirler de uygulanarak bu projeyi daha da kullanılabilir kılmak hedeflenmektedir. • • • Daha anlaşılabilir ses sentezleme bileşeni kullanarak daha kolay anlaşılabilecek bir Türkçe ses üretebilmek ve verilen komutların daha iyi anlayabilmesinin sağlanması, SigXSLT ve VoiceXML yorumlayıcıların performansını artırarak SĐG’i daha geniş kitlelere ulaştırabilmek. Arayüzde yapılacak değişiklik ve eklemelerle SĐG’i telefonlara taşımak ve bu yolla hemen her yerde insanların Đnternete çok daha kolay erişimlerini sağlamak. 5. KAYNAKLAR [1] B. Marchall, XML by Example, Louis Porter Jr., USA, 2000 [2] VoiceXML Forum, VoiceXML 1.0 Reference, World Wide Web Consortium, 7 March 2000 [3] W3C Recommendation, Extensible Markup Language (XML) 1.0 (Second Edition), World Wide Web Consortium, 6 October 2000, Available at http://www.w3.org/TR/2000/REC-xml20001006 [4] W3C Candidate Recommendation, Extensible Stylesheet Language (XSL) Version 1.0, World Wide Web Consortium, 21 November. 2000, Available at http://www.w3.org/TR/2000/CR-xsl20001121 [5] W3C Recommendation, XSL ransformations (XSLT) Version 1.0, World Wide Web Consortium, 16 November 1999, Available at http://www.w3.org/TR/1999/REC-xslt19991116 ... ... <goto next="#exit"/> </form> ... ... <form id="exit"> <prompt>Sesli Basın Yayın iyi günler diler.</prompt> </form> </vxml> 4. SONUÇ Bu projenin amacı, Đnternet kullanırken insanların ellerini ve gözlerini özgür bırakabilmektir. SĐG ilk VoiceXML tabanlı Türkçe sesli Đnternet gezginidir. Proje içinde bu projeye özel bir XSLT yazılmıştır. Bu XSLT VoiceXML çıktısı vermektedir. VoiceXML çıktıyı okuyabilmek için bir ses sentezleme bileşeni ile kullanıcının vereceği sesli komutları algılayabilmek için bir ses anlama bileşeni bütünleşik olarak kullanılmaya çalışıldı. SĐG temel olarak Türkçe’yi destekleyecek şekilde tasarlanmıştır; ancak kullanılan ses sentezleme bileşeni değiştirilerek SĐG’i başka herhangi bir dili kullanıyor hale getirmek mümkündür. Yine SĐG’in bir bileşeni olan ses anlama bileşeni değiştirerek SĐG’i daha anlayabilir kılmak mümkündür.
Benzer belgeler
UML ile Modellenen Coğrafi Verilerin XSLT - CEUR
çalıştığı teknolojilerden birisi Anlamsal Web’dir. Anlamsal Web, kısaca web tabanlı
bilginin bilgisayarlar tarafından anlaşılır, paylaşılır ve çıkarsama yapılabilir hale
getirilmesini amaçlayan met...