9 はじめに

この文書では、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は入力フィールドである。ユーザは次の要素に進むために返答しなければならない。

List 9.1 対話例
C(computer):コーヒー、紅茶、ミルクのうちどれが良いですか?
H(human):オレンジジュース
C:理解できませんでした。
C:コーヒー、紅茶、ミルクのうちどれが良いですか?
H:紅茶
C:(drink2.asp に続く)