XML技術
HOME  >  XML技術  >  探検 XMLボキャブラリの世界 第18回

探検 XMLボキャブラリの世界 第18回

第18回:音声対話のボキャブラリ ~VoiceXML,CCXML,SCXML~

2008年5月26日 更新
著者:岸 和孝(JAGAT客員研究員)

全文については,Printers Circle(2007年12月号)をご覧ください。

▼図1 共通スタイルで指定した文書の例

<?xml version="1.0"?>
<vxml version="2.0">
  <form>
    <field name="内容">
      <prompt>どの内容をマークアップしますか?</prompt>
      <grammar type="text/gsl"> [ (数式) (楽譜) (分子構造)] </grammar>
    </field>
  </form>

</vxml>

▼図1-2 HTMLによるフォーム

<html>
  <body>
  <form method="POST" action="http://www.jagat.or.jp/sgml/query.cgi">
    <p>どの内容をマークアップしますか?</p>
      <input type="radio" name="内容" value="数式">
      <input type="radio" name="内容" value="楽譜">
      <input type="radio" name="内容" value="分子構造">
    </form>
  </body>

</html>

▼図3-1 CCXMLの記述(dialog.vxmlを呼び出すdialog.ccxml)

<?xml version="1.0"?>
<ccxml version="1.0" xmlns="http://www.w3.org/2002/09/ccxml">
  <!-- 状態変数の宣言 -->
  <var name="Var" expr="'init'"/>                  <!-- 状態を初期状態とする -->
  <eventprocessor statevariable="Var">             <!-- イベント処理 -->
    <!-- 初期状態で警報があった場合 -->
    <transition state="init" event="connection.alerting">
      <accept/>                                    <!-- システムへ接続する -->
    </transition>
    <!-- 初期状態で接続された場合 -->
    <transition state="init" event="connection.connected">
      <log expr="'開始する。'"/>
      <dialogstart src="'dialog.vxml'"/>           <!-- 音声対話を開始する -->
      <assign name="Var" expr="'dialogActive'" />  <!-- 状態を対話中とする -->
    </transition>
    <!-- 対話中状態で対話が終了した場合 -->
    <transition state="dialogActive" event="dialog.exit">
      <log expr="'「' + event$.values.input + '」という返答があった。'" />
      <exit/>                                      <!-- 終了する -->
    </transition>
    <!-- 切断された場合 -->
    <transition event="connection.disconnected">
      <exit/>                                      <!-- 終了する -->
    </transition>
    <!-- エラーが発生した場合 -->
    <transition event="error.*" >
      <log expr="'「' + event$.reason + '」という問題が生じた。'"/>
      <exit/>                                     <!-- 終了する -->
    </transition>
  </eventprocessor>

</ccxml>

▼図3-2 VoiceXMLの記述(dialog.ccxmlから呼び出されるdialog.vxml)

<?xml version="1.0"?>
<vxml xmlns="http://www.w3.org/2001/vxml" version="2.0">
  <form id="Form">
    <field name="input" type="digits">
      <prompt>番号を言ってください。</prompt>
      <filled><exit namelist="input"/></filled>
    </field>
  </form>

</vxml>
社団法人日本印刷技術協会(JAGAT)
PrintersCircle PrintersCircle 2007年12月号より転載
探検 XMLボキャブラリの世界

▲このページのTOPへ

  • XMLとは?IT初心者でもすぐわかるXML超入門
  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド