25 プロパティ

<property>要素はプロパティの値をセットする。プロパティは認識プロセス、タイムアウト、キャッシングポリシーなどのようなプラットフォームの振る舞いに影響する値をセットするために使用される。

プロパティは全てのアプリケーション、<vxml>レベルの全てのドキュメント、<form>または<menu>での特定の対話、または特定のフォーム項目間で定義されるかもしれない。プロパティはそれらの親要素と、親のすべての後続要素に適用する。低レベルなプロパティは、より高レベルなプロパティに上書きされる。アプリケーションルートドキュメント内で指定されたプロパティは、アプリケーション内の全てのドキュメントのプロパティにデフォルト数値を渡す。

単一のドキュメント内で指定されたプロパティは、アプリケーションルートドキュメント内でプロパティ値を上書きされる。

<property>要素は、timeoutやbargeinのような要素属性によりデフォルト数値の指定に用いられる。例えば、特定のform内の全てのpromptにおいてbargeinを無効にするためには次のように指定する:

 
     <form id="no_bargein_form">
       <property name="bargein" value="false"/>
       <block>
         <prompt> この導入プロンプトに割り込むことはできません。 </prompt>
         <prompt> このプロンプトもできません。 </prompt>
         <prompt bargein="true">
           しかし <emp>can</emp> へ割り込むことができます。
        </prompt>
       </block>
       ....
     </form>
 

プロパティはまた、プラットフォーム指定データとセッティングを指定するためにも使われる。例えば、特定のドキュメントによるそれぞれの録音以前に1秒の無音を追加するためのプラットフォーム指定プロパティをセットする:

 
     <?xml version="1.0"?>
     <vxml version="1.0">
<property name="example.acme.endpointing.record_init_silence" value="1s"/>
       ... 録音された対話はここに来ます ...
 

汎用音声認識プロパティはJava Speech APIに従っている。(http://www.javasoft.com/products/java-media/speech/index.html参照):

confidencelevel 音声認識信頼度、0.0から1.0の間の浮動小数点数。処理内のエンジンの信頼がこの境界より下がるとき、結果は退けられる。(nomatchイベントが投げ掛けられる)0.0の数値の意味は、認識に必要とされる最低の信頼であり、1.0は最大の信頼を要求している。デフォルト値は0.5である。
sensitivity 敏感度のセット。1.0は無音入力に対し高感度であることを意味する。0.0はノイズにあまり反応しないことを意味する。デフォルトは0.5。
speedvsaccuracy 早さと正確さのバランスの要求を指定するヒント。0.0は最速の認識を示し、1.0は最高の正確さを意味する。デフォルトは0.5。
completetimeout アクティブな文法が合致されるときに使う会話のタイムアウト値。デフォルトはプラットフォーム依存。付録F参照
incompletetimeout アクティブな文法が合致されたときに使う、会話のタイムアウト。デフォルトはプラットフォーム依存。付録F参照

いくつかの汎用プロパティはDTMF文法認識に適する。

interdigittimeout DTMF入力を認識するときに使う数字入力タイムアウト値。デフォルトはプラットフォーム依存である。付録F参照
termtimeout DTMF入力を認識するときに使う終端タイムアウト。デフォルト値は"0s"である。付録F参照
termchar DTMF入力認識用の終端DTMF文字。デフォルト値は"#"。付録F参照

これらのプロパティは重要なプラットフォームpromptをあて、サイクルを収集する。

bargein bargein属性はpromptのために使われる。これがtrue(デフォルト)にセットされているとbarge-inを許している。
timeout プラットフォームにより投げ掛けられるnoinputイベントの後の時間。デフォルト値はプラットフォーム依存。付録F参照

これらのプロパティは新しいドキュメントとリソースのフェッチングに適する。

caching フェッチングのときキャッシュを決して保管しないsafeか、キャッシュを常に保管するfast。デフォルトはfast。
audiofetchhint プリフェッチされた音声により対話処理を最適化すべきかをプラットフォームに指示する。可能な値は、必要になるまで決してフェッチされず、必要になったときのみ音声がフェッチされるsafe;プリフェッチを許可するがプラットフォームに強要はしないprefetch;音声フェッチのストリームを許すstreamのどれかである。デフォルトはprefetch。This tells the platform whether or not it can attempt to optimize dialog interpretation by pre-fetching audio. The value is either safe to say that audio is only fetched when it is needed, never before; prefetch to permit, but not require the platform to pre-fetch the audio; or stream to allow it to stream the audio fetches. The default value is prefetch.
documentfetchhint ドキュメントがpre-fetchされるかどうかをプラットフォームに教える。値はsafe(デフォルト)かprefetch。
grammarfetchhint 文法がpre-fetchされるかどうかをプラットフォームに教える。値はprefetch(デフォルト)またはsafe。
objectfetchhint <object>用のURIコンテンツがpre-fetchされるかどうかをプラットフォームに教える。値はprefetch(デフォルト)か、safe。
scriptfetchhint スクリプトがpre-fetchされるかどうかを教える。値はprefetch(デフォルト)か、safe。
fetchaudio ドキュメントがフェッチされているのを待つ間に再生するための音声のURI。デフォルトは音声を再生しない。音声、文法、object、script用のfetchaudioプロパティはない。
fetchtimeout フェッチのタイムアウト。デフォルト値は、プラットフォーム依存。

このプロパティは使用するための入力の形態を決定する。

inputmodes 可能な入力モード:dtmfとvoice。両方のモードがサポートされているプラットフォーム上では、inputmodesのデフォルトは"dtmf voice"である。DTMFが不可能にするには"voice"にセットする。これは雑音の多い環境で音声認識を切るために存在する。他は、DTMFであることを常に期待される入力を切ることにより音声認識リソースを保存するために存在する。

最後の例はこれらの複数のレベルで使用されるプロパティを示す。

     <?xml version="1.0">
     <vxml version="1.0">
         <!-- ページのデフォルト特性をセットする -->
         <property name="caching" value="safe"/>
         <property name="audiofetchhint" value="safe"/>
         <property name="confidence" value="0.75"/>

       <form>

         <!-- このフォームのデフォルトは優先される -->
         <property name="confidence" value="0.5"/>
         <property name="bargein" value="false">
         <grammar src="address_book.gram" type="application/x-jsgf"/>

         <block>
          <prompt> ようこそ音声アドレス帳へ。 </prompt>
         </block>

         <initial>
          <!-- デフォルトの時間切れが優先される -->
          <property name="timeout" value="5s"/>
          <prompt> 誰に電話したいですか? </prompt>
         </initial>

         <field name="person">
          <prompt>
           電話したい人の名前を言ってください。
          </prompt>
         </field>

         <field name="location">
          <prompt>
           電話したい人の住所を言ってください。
          </prompt>
         </field>

         <field name="confirm" type="boolean">
          <!-- Use actual utterances to playback recognized words,
               rather than returned slot values -->
          <prompt>
            <value expr="location$.utterance"/>の
            <value expr="person$.utterance"/> に電話すると言いました。
            これでよろしいですか?
          </prompt>
          <filled>
            <if cond="confirm">
              <submit next="http://www.messagecentral.example/voice
                              /make_call" namelist="person location" />
            </if>
            <clear/>
          </filled>
         </field>
       </form>
     </vxml>