この文書では、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 に続く)