この文書では、VoiceXML(the Voice eXtensible Markup Language)を紹介する。VoiceXMLは音を用いた対話を実現するために設計されており、合成音声、デジタル化された音、音声とDTMFキーによる入力の認識、入力音声の録音、電話による操作、および混合主導型の会話が利用可能である。VoiceXMLの主な目的はWebベースのシステム開発と情報提供において、相互作用的な音声対話アプリケーションの利用を促すことである。
以下にVoiceXMLの短い例を2つあげる。まずは有名な「Hello World(こんにちは)」である。
<?xml version="1.0" encoding="euc-jp"?> <vxml version="2.0"> <form> <block>こんにちは!</block> </form> </vxml>
訳注: encoding="euc-jp"はXMLファイルの文字コードを示す。EUC (Linuxなど)の場合は"euc-jp"を、Shift-JIS (Windows)の場合は"shift_jis"を指定する。省略時にはencoding="UTF-8"が指定されたと見なされる。
VoiceXML 1.0および2.0使用書の原文ではvxml要素は以下のように宣言されているが、以下ではGalatea DMで利用する表記を示す。
<?xml version="1.0"?> <vxml version="1.0">
トップレベルの要素は<vxml>である。これは、主として対話 (dialog)を構成要素とする。対話には、与えられた変数の値を得るためのやりとりを定義するフォーム(form)と、ユーザに選択肢を提示しその選択に従って別の対話に遷移するメニュー(menu)の2種類が存在する。この例の対話は1つのフォームからなっており、ユーザに「こんにちは!」という合成音声を返すblockが含まれている。そして後続の対話を指定していないため、これで対話は終了する。
次に飲物の選択をユーザに問い掛け、サーバスクリプトにそれを渡す例文を挙げる。
<?xml version="1.0"?> <vxml version="1.0"> <form> <field name="drink"> <prompt> コーヒー、紅茶、ミルクのうちどれが良いですか? </prompt> <grammar src="drink.gram" type="application/x-jsgf"/> </field> <block> <submit next="http://www.drink.example/drink2.asp"/> </block> </form> </vxml>
fieldは入力フィールドである。ユーザは次の要素に進むために返答しなければならない。
C(computer):コーヒー、紅茶、ミルクのうちどれが良いですか? H(human):オレンジジュース C:理解できませんでした。 C:コーヒー、紅茶、ミルクのうちどれが良いですか? H:紅茶 C:(drink2.asp に続く)