ここにもXML
音声応答サービス
2004年3月号掲載記事
はじめまして。トッパン・フォームズ(株)の小野と申します。
皆様は電話による音声応答サービスをご利用になった経験はございますでしょうか。身近な例を挙げるとプリンター等の故障対応コールサービスやコンサート等のチケット予約サービスなどといったものがあります。本日はこのような音声応答サービスの開発のために生まれた言語、VoiceXMLをご紹介します。VoiceXMLについては先日W3Cより勧告案が公開されました。それによって今後はさらなる普及が期待されます。まずはじめに、VoiceXMLのサンプルコードを示します。
01:<?xml version="1.0"?>
02:<vxml xmlns="http://www.w3.org/2001/vxml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/vxml
http://www.w3.org/TR/voicexml20/vxml.xsd" version="2.0">
03:<form id="test">
04:<field name="seibetu">
05:<grammar src="seibetu.grammar#Seibetu"/>
06:<prompt>あなたの性別を教えて下さい。</prompt>
07:</field>
08:<filled namelist="seibetu">
09:<if cond="seibetu=='otoko'">
10:<prompt>あなたは男性ですね。</prompt>
11:<submit next="next1.asp" method="post" namelist="seibetu"/>
12:<elseif cond="seibetu=='onna'">
13:<prompt>あなたは女性ですね。</prompt>
14:<submit next="next2.asp" method="post" namelist="seibetu"/>
15:</if>
16:</filled>
17:</form>
18:</vxml>
VoiceXMLとは上記のようなマークアップ言語であり、通常.vxmlファイルとしてインターネット上のWebサーバに格納されています。この点は、WebにおけるHTMLファイルと全く同じです。異なるのは、WebのHTMLファイルがPC端末上のwebブラウザで実行されるのに対し.vxmlファイルは電話網とインターネットの接続点に配置された「音声ブラウザ」という装置(音声認識エンジン・音声合成エンジン・Webクライアント機能を備えている)上で実行される点です。言い換えれば、ユーザは常にこの「音声ブラウザ」を経由して.vxmlファイルにアクセスすることになります。実際に音声ブラウザに電話をかけ、上記.vxmlファイルを実行するとどうなるのでしょうか?
【1】「あなたの性別を教えて下さい。」という音声が聞こえる。
【2】この音声に応答して「だんせい」などとと発声すると、「あなたは男性ですね」という音声が返ってくる。
【3】引き続き、次の質問「あなたの年齢を教えてください」などの音声が聞こえる。
この流れをサンプルコード上で見てみましょう。
6行目の<prompt>はVoiceXMLの主な要素であり、ユーザへのガイダンス出力、また音声発話(入力)を求めるためのものです(【1】)。続く<filled>には、ユーザからの音声発話をシステムが受け付けた際の処理を記述することができます。このとき、音声ブラウザは、音声認識エンジンを使ってユーザの発話を認識するので、上記.vxmlファイルに加えて更に、音声認識エンジンのための辞書ファイル(ここでは、seibetu.grammar)が必要になります。
01:Seibetu[
02:[おとこ だんせい] {<seibetu "otoko">}
03:[おんな じょせい] {<seibetu "onna">}
04:]
こうすれば音声ブラウザは、音声認識エンジンと連携して、「だんせい」という発声に対してseibetuという変数にotokoという値を代入することができます。直ちに再びifブロック内の<prompt>を音声提示することになります(【2】)。また<submit>により値を別ファイルに渡すとともに次の対話に進むことができます(【3】).
W3Cから公開されている文章を読むと「VoiceXMLとはWebに基づく音声対話アプリケーションの効率的な開発と,効果的な音声対話コンテンツの提供を目的とした言語である。」と解釈する事が出来ます。その理由として、私は以下の利点があるからであると考えています。
【開発者にとっての利点】
・音声によるUI部分を、他の部分(ビジネスロジック等)と分離して開発可能
・HTMLライクなマークアップ言語なので技術習得が容易
【コンテンツ提供者にとっての利点】
・既存システムのDBを活用した音声による情報サービスが提供可能
・標準化に対応した実行環境であれば機種を選ばない
【エンドユーザにとっての利点】
・上記理由から、音声という情報アクセス手段を広く/安価に得ることができる
では、開発事例をご紹介しながら実際のVoiceXMLの使われ方、そしてそのメリットなどをご紹介したいと思います。
今回ご紹介するのはXMLコンソーシアム(*1)VoiceXML部会(*2)で進めている音声ポータル実証実験(*3)での開発事例です。この実証実験についてさらに詳細をお知りになりたい方は文末のリンク(*3)をご参照下さい。
具体的に開発したのは『電話を使った資料検索請求サービスの実験アプリケーション』です。ユーザは、電話からキーワードを話すことで資料を検索することができ、検索した資料をメールもしくは郵送で受け取ることができます。
このアプリケーションではVoiceXMLは、フロントエンド部分(MVCモデルで言うViewの部分)を担うよう実装しました。これは、VoiceXMLがユーザとシステムの間での入出力のやり取りのみを制御することを意味します。例を挙げるとJavaでいうJSPのような役割に相当します。(*4)
このように、VoiceXMLを使えばフロントエンドの部分とビジネスロジックの部分の処理を分けて構成する事が可能となります。なので、既存のWebプログラミング技術とVoiceXMLの記述方法さえ習得すれば、音声対話アプリケーションを比較的容易に開発する事ができるとともに、開発効率を大幅に向上する事ができます。
上記のような特徴から、VoiceXMLは既存のコールセンターのデータベースやWebサイトの情報、企業イントラネットなどの基幹システムに対しての音声入出力インターフェースを用いたアクセスを低コストで実現可能とします。具体的に今では、企業のキャンペーンサービスや、自治体などの情報提供サービスに適用されています。
また、今後はキーボードや携帯電話のキープッシュに不慣れな方をターゲットとしたサービスでの適用や、音声インターフェースの大きな利点の一つである「ながら使用(例:歩きながら・・等)」での利用をターゲットにしたアプリケーションの適用が検討されています。
さらに今後は、VoiceXMLの特性を生かしてWeb、e-mail、RFID、印刷媒体(DM)などのさまざまなメディアに音声による入出力インターフェースを融合し、それぞれのメディアの特性を最大限に活用したトータルソリューションサービスが世の中に普及していくことが期待されています。これはサービスを利用する様々なユーザの要望・状況に対応して最適な入出力手段をシステムが提示する事を可能にする事です。
最後に私はVoiceXMLが今後のユビキタス社会の実現への大きな担い手のひとつとなる可能性もあると考えています。
| (*1) | XMLコンソーシアム:日本における先進のインターネット・ビジネスソリューションの構築を推進するために、XML に関連する要素技術及び利用 技術の普及・啓蒙に取り組む非営利団体 |
|---|---|
| (*2) | VoiceXML部会:VoiceXMLを始めとする、音声応用に向けたXML 関連技術の普及促進、音声適用業務の開発及び利用促進に取り組む非営利団体 |
| (*3) | 音声ポータル実証実験:<http://61.197.224.146/wiki/> ↑上記リンク先に「"音声による情報提示"体験アンケート」についてのご協力のお願いがあります。是非ご参照下さい。 |
| (*4) | アプリケーションイメージ: http://61.197.224.146/app_image.jpg |