• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            鐵觀音

            C++編程寶典

               ::  ::  ::  ::  :: 管理 ::
              1 隨筆 :: 19 文章 :: 0 評(píng)論 :: 0 Trackbacks
            附??錄 [第一章][前一章][后一章]
            ?
            附錄 A Glossary of Terms 附錄 B ??附錄 C??附錄 D??附錄 E??附錄 F
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            active grammar
            ????當(dāng)前激活的語(yǔ)音或DTMF語(yǔ)法。它是相對(duì)于當(dāng)前正在執(zhí)行的元素和當(dāng)前定義語(yǔ)法的元素的作用域的。
            ?
            application
            ????一些VoiceXML文檔的集合,這些文檔的application屬性值相同。
            ?
            ASR
            ????自動(dòng)語(yǔ)音識(shí)別。
            ?
            author
            ????VoiceXML文檔的作者。
            ?
            catch element
            ????<catch>元素或它的一些縮寫(xiě)形式包含的代碼塊。一些默認(rèn)的catch element由VoiceXML解釋器定義。
            ?
            control item
            ????即form item,其目的要么是包含一個(gè)程序邏輯塊(如<block>元素),要么是允許混合主動(dòng)式dialog播放提示語(yǔ)(如<initial>元素)。
            ?
            CSS W3C Cascading Style Sheet specification.
            ????見(jiàn)CSS2。
            ?
            dialog
            ????在VoiceXML文檔中指定的和用戶的一個(gè)交互。Dialog包括form和menu兩種。
            ?
            DTMF(Dual Tone Multi-Frequency)
            ????按鍵式或以按鈕操作的撥號(hào)。在電話鍵盤(pán)上按一個(gè)按鍵產(chǎn)生一個(gè)聲音,該聲音由兩種音調(diào)組成,一種是高頻的,另一種是低頻的。
            ?
            ECMAScript
            ????Javascript的一個(gè)標(biāo)準(zhǔn)版本,由歐洲計(jì)算機(jī)廠商協(xié)會(huì)(European Computer Manufacturer's Association)提出。見(jiàn)ECMASCRIPT。
            ?
            event
            ????由執(zhí)行平臺(tái)、VoiceXML解釋器環(huán)境、VoiceXML解釋器或VoiceXML代碼拋出的一個(gè)標(biāo)志信息。事件包括異常(語(yǔ)義錯(cuò)誤)、正常錯(cuò)誤(用戶沒(méi)有說(shuō)出可以識(shí)別的內(nèi)容)、正常事件(用戶退出)和用戶定義的事件。
            ?
            executable content
            ????出現(xiàn)在<block>,<filled>元素和事件處理中的程序邏輯。
            ?
            form
            ????計(jì)算機(jī)用一種非常靈活的方式和用戶交互的dialog。用戶和計(jì)算機(jī)都有主動(dòng)性。
            ?
            FIA (Form Interpretation Algorithm)
            ????在VoiceXML解釋器中執(zhí)行的算法。VoiceXML解釋器用于驅(qū)動(dòng)用戶和VoiceXML的form或menu之間的交互。見(jiàn)2.1.6節(jié)和附錄C。
            ?
            form item
            ????<form>元素的子元素,在執(zhí)行該form期間,它們可以被訪問(wèn),包括的元素有:<initial>,<block>,<field>,<record>,<object>,<subdialog>和<transfer>元素。
            ?
            form item variable
            ????在一個(gè)form中和每個(gè)form item相關(guān)的一個(gè)變量,該被顯式或隱式的定義。如果該form item變量為undefined,則解釋算法將訪問(wèn)該form item,并讓它跟用戶交互。
            ?
            implementation platform
            ????有必要的軟件和/或硬件來(lái)支持VoiceXML定義的交互類型的一臺(tái)計(jì)算機(jī)。
            ?
            input item
            ????即一個(gè)form item,用于輸入一個(gè)input item變量。Input item包括<field>,<record>,<object>,<subdialog>和<transfer>元素。
            ?
            language identifier
            ????語(yǔ)言標(biāo)識(shí)符用于標(biāo)注一種特定的人類語(yǔ)言。根據(jù)XML技術(shù)規(guī)范中的語(yǔ)言標(biāo)識(shí),合法的語(yǔ)言標(biāo)識(shí)符應(yīng)該為RFC3066的一個(gè)代碼。語(yǔ)言代碼在RFC3066中是必須的,而國(guó)家代碼或其他的子標(biāo)簽代碼在FRC3066中則是可選的。
            ?
            link
            ????一組語(yǔ)法,當(dāng)匹配用戶輸入時(shí),要么跳轉(zhuǎn)到一個(gè)新的dialog或文檔,要么在當(dāng)前的form item中拋出一個(gè)事件。
            ?
            menu
            ????一個(gè)dialog,它給用戶提供了一組選項(xiàng),并執(zhí)行被選中的選項(xiàng)的操作。
            ?
            mixed initiative
            ????一種人機(jī)交互,計(jì)算機(jī)和人都具有主動(dòng)性,都可以決定下一步要做的。
            ?
            JSGF
            ????Java API Speech Grammar Format,一種被提議的語(yǔ)音語(yǔ)法標(biāo)準(zhǔn)。見(jiàn)JSGF。
            ?
            object
            ????依賴于平臺(tái)的一種功能,它有一個(gè)接口讓VoiceXML調(diào)用。
            ?
            request
            ????數(shù)據(jù)的收集,包括:指定文檔服務(wù)器的URI,要處理的一組名稱――值的數(shù)據(jù)對(duì)(可選的),和處理的方法(可選的)。
            ?
            script
            ????用客戶端腳本語(yǔ)言(特別是ECMAScript)編寫(xiě)的一個(gè)邏輯段,該語(yǔ)言必須是任何VoiceXML解釋器所支持的語(yǔ)言。
            ?
            session
            ????用戶和執(zhí)行平臺(tái)之間的一個(gè)連接,例如用電話呼入一個(gè)語(yǔ)音應(yīng)答系統(tǒng)。一個(gè)session可以包含多個(gè)VoiceXML文檔的解釋。
            ?
            SRGS(Speech Recognition Grammar Specification)
            ????一個(gè)跟環(huán)境無(wú)關(guān)的語(yǔ)音識(shí)別語(yǔ)法的標(biāo)準(zhǔn)版本,是由W3C語(yǔ)音瀏覽器項(xiàng)目組開(kāi)發(fā)的。在SRGS中有ABNF和XML格式。
            ?
            SSML(Speech Synthesis Markup Language)
            ????語(yǔ)音合成的標(biāo)準(zhǔn)版本,W3C語(yǔ)音瀏覽器項(xiàng)目組正在開(kāi)發(fā)的。
            ?
            subdialog
            ????當(dāng)前dialog調(diào)用的一個(gè)VoiceXML diaolog(或文檔),類似于函數(shù)調(diào)用。
            ?
            tapered prompts
            ????用于提供不同的信息給用戶的一組提示語(yǔ)。提示語(yǔ)可以越來(lái)越簡(jiǎn)潔(如<field>元素中的提示語(yǔ)),也可以越來(lái)越詳細(xì)(如幫助的提示語(yǔ))。
            ?
            throw
            ????用于拋出事件的元素。
            ?
            TTS
            ????文本語(yǔ)音轉(zhuǎn)換,即語(yǔ)音合成。
            ?
            user
            ????和執(zhí)行平臺(tái)交互的人,它受VoiceXML解釋器的控制。
            ?
            URI
            ????統(tǒng)一資源指示器。
            ?
            URL
            ????統(tǒng)一資源定位器。
            ?
            VoiceXML document
            ????遵循VoiceXML技術(shù)規(guī)范的XML文檔。
            ?
            VoiceXML interpreter
            ????一個(gè)計(jì)算機(jī)程序,用于解釋VoiceXML文檔,以控制執(zhí)行平臺(tái)引導(dǎo)與用戶之間的交互。
            ?
            VoiceXML interpreter context
            ????一個(gè)計(jì)算機(jī)程序,它使用VoiceXML解釋器來(lái)解釋VoiceXML文檔,它也可以獨(dú)立于VoiceXML解釋器和執(zhí)行平臺(tái)進(jìn)行交互。
            ?
            W3C
            ????國(guó)際互聯(lián)網(wǎng)聯(lián)盟http://www.w3c.org/。

            附錄 B VoiceXML Document Type Definition 附錄 A ??附錄 C??附錄 D??附錄 E??附錄 F
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????VoiceXML的DTD位于http://www.w3.org/TR/voicexml20/vxml.dtd。
            ????<metadata>元素能夠包含其他的XML命名空間的元素,但是由于DTD的限制,VoiceXML的DTD不能正確的表達(dá)這一點(diǎn)。
            ????注意, SRGS和SSML的DTD中有更改的元素都包含在VoiceXML的DTD中了。
            ?
            附錄 C Form Interpretation Algorithm 附錄 A ??附錄 B??附錄 D??附錄 E??附錄 F
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????Form解釋算法(FIA)用于驅(qū)動(dòng)用戶和VoiceXML的form或menu之間的交互。Menu可看作是一個(gè)form,該form包含了一個(gè)簡(jiǎn)單的field,它的語(yǔ)法和<filled>操作由<menu>元素中的<choice>元素組成。
            ????FIA必須要處理的有:
            ??????·form的初始化;
            ??????·播放提示語(yǔ),包括分級(jí)提示的提示語(yǔ)計(jì)數(shù)器的管理;
            ??????·在form和form item級(jí)別的語(yǔ)法的激活和失效;
            ??????·和一個(gè)utterance一起進(jìn)入一個(gè)form,該utterance在用戶訪問(wèn)另一個(gè)form或menu時(shí),匹配了該form中作用域?yàn)閐ocument的一個(gè)語(yǔ)法;
            ??????·因用戶匹配了另一個(gè)form或menu或link中的作用域?yàn)閐ocument的語(yǔ)法而離開(kāi)一個(gè)form;
            ??????·處理一個(gè)utterance填充多個(gè)field的情況,包括執(zhí)行相應(yīng)的<filled>操作;
            ??????·選定下一個(gè)要訪問(wèn)的form item,并處理該form item;
            ??????·選擇正確的<catch>元素處理當(dāng)前的form item拋出的事件。
            ????首先,我們要定義在FIA中使用的一些術(shù)語(yǔ)和數(shù)據(jù)結(jié)構(gòu):
            ?
            active grammar set
            ????在VoiceXML解釋器環(huán)境的輸入收集操作期間激活的一組語(yǔ)法。
            ?
            utterance
            ????用戶所說(shuō)的或所鍵入的內(nèi)容的總和,包括被匹配的特定的語(yǔ)法,和由一個(gè)解釋結(jié)構(gòu)組成的語(yǔ)義結(jié)果,如果沒(méi)有語(yǔ)義解釋,則使用輸入的原始文本(見(jiàn)3.1.6節(jié))。例如,當(dāng)語(yǔ)法123被匹配時(shí),相應(yīng)的語(yǔ)義解釋可能為{drink: "coke" pizza: {number: "3" size: "large"}}。
            ?
            execute
            ????執(zhí)行可執(zhí)行的內(nèi)容,可以是<block>元素,一個(gè)<filled>操作,或一組<filled>操作。如果在執(zhí)行期間拋出了一個(gè)事件,則退出正在執(zhí)行的可執(zhí)行內(nèi)容。然后執(zhí)行正確的事件處理,它可以讓控制在FIA主循環(huán)的下一次循環(huán)時(shí)回到原來(lái)的form item中,也可以讓控制跳轉(zhuǎn)到該form以外的地方。如果執(zhí)行了<goto>元素,則立即進(jìn)行跳轉(zhuǎn),剩下的可執(zhí)行內(nèi)容將不再被執(zhí)行。
            ?
            ????下面是一個(gè)FIA的概念模型。FIA可以不帶任何初始的utterance開(kāi)始,也可以帶著由另一個(gè)dialog傳進(jìn)來(lái)的utterance開(kāi)始:
                  //
                  //   Initialization Phase
                 //
            										
                 foreach ( <var>, <script> and form item, in document order )
                    if ( the element is a <var> )
                      Declare the variable, initializing it to the value of
                      the "expr" attribute, if any, or else to undefined.
                    else if ( the element is a <script> )
                      Evaluate the contents of the script if inlined or else
                      from the location specified by the "src" attribute.
                    else if ( the element is a form item )
                      Create a variable from the "name" attribute, if any, or
                      else generate an internal name.  Assign to this variable
                      the value of the "expr" attribute, if any, or else undefined.
                      foreach ( input item and <initial> element )
                         Declare a prompt counter and set it to 1.
            										
                  if ( user entered this form by speaking to its
                        grammar while in a different form)
                  {
                     Enter the main loop below, but start in
                     the process phase, not the select phase:
                     we already have a collection to process.
                  }
            										
                  //
                  //   
            Main Loop: select next form item and execute it.
                  //
            										
                  while ( true )
                  {
                       //
                       //   
            Select Phase: choose a form item to visit.
                       //
            										
                      if ( the last main loop iteration ended with a <goto nextitem> )
                          Select that next form item.
                      else if (there is a form item with an unsatisfied guard condition )
                          Select the first such form item in document order.
                      else
                          Do an <exit/> -- the form is full and specified no transition.
            										
                       //
                       //   
            Collect Phase: execute the selected form item.
                       //
                      //   Queue up prompts for the form item.
            										
                      unless ( the last loop iteration ended with
                                 a catch that had no <reprompt>, 
                                 and the active dialog was not changed )
                      {
                               Select the appropriate prompts for an input item or <initial>.
                               Queue the selected prompts for play prior to the next collect operation.
            										
                               Increment an input item’s or <initial>'s prompt counter.
                       }
            										
                        // Activate grammars for the form item.
            										
                       if ( the form item is modal )
                           Set the active grammar set to the form item grammars,
                           if any. (Note that some form items, e.g. <block>,
                           cannot have any grammars).
                       else
                           Set the active grammar set to the form item
                           grammars and any grammars scoped to the form,
                           the current document, and the application root document.
            										
                       // Execute the form item.
            										
                       if ( a <field> was selected )
                            Collect an utterance or an event from the user.
                       else if ( a <record> was chosen )
                            Collect an utterance (with a name/value pair
                            for the recorded bytes) or event from the user.
                       else if ( an <object> was chosen )
                            Execute the object, setting the <object>' s
                            form item variable to the returned ECMAScript value.
                      else if ( a <subdialog> was chosen )
                            Execute the subdialog, setting the <subdialog>' s
                            form item variable to the returned ECMAScript value.
                      else if ( a <transfer> was chosen )
                            Do the transfer, and (if wait is true) set the
                            <transfer> form item variable to the returned
                            result status indicator.
                      else if ( an <initial> was chosen )
                            Collect an utterance or an event from the user.
                      else if ( a <block> was chosen )
                      {
                            Set the block' s form item variable to a defined value.
            										
                            Execute the block' s executable context.
                      }
            										
                      //
                      //  Process Phase: process the resulting utterance or event.
                      //
            										
                      Assign the utterance and other information about the last
                      recognition to application.lastresult$.
                            // Must have an utterance
                      if ( the utterance matched a grammar belonging to a <link> )
                            If the link specifies an "next" or "expr" attribute,
                            transition to that location.  Else if the link specifies an
                            "event" or "eventexpr" attribute, generate that event.
            										
                     else if ( the utterance matched a grammar belonging to a <choice> )
                           If the choice specifies an "next" or "expr" attribute,
                           transition to that location.  Else if the choice specifies
                           an "event" or "eventexpr" attribute, generate that event.
            										
                     else if ( the utterance matched a grammar from outside the current
                               <form> or <menu> )
                     {
                           Transition to that <form>  or <menu> , carrying the utterance to the new FIA.
                     }
            										
                     //  Process an utterance spoken to a grammar from this form.
                     //  First copy utterance result property values into corresponding
                     //  form item variables.
            										
                     Clear all "just_filled" flags.
            										
                     if ( the grammar is scoped to the field-level ) {
                        // This grammar must be enclosed in an input item.  The input item
                        //  has an associated ECMAScript variable (referred to here as the input
                        //  item variable) and slot name.
                        if ( the result is not a structure )
                           Copy the result into the input item variable.
                        elseif ( a top-level property in the result matches the slot name
                                   or the slot name is a dot-separated path matching a
                                   subproperty in the result )
                           Copy the value of that property into the input item variable.
                         else
                           Copy the entire result into the input item variable.
                         Set this input item's "just_filled" flag.
                     }
                     else {
                           foreach ( property in the user' s utterance )
                           {
                              if ( the property matches an input item' s slot name )
                               {
                                  Copy the value of that property into the input item' s form item variable.
            										
                                  Set the input item' s "just_filled" flag.
                               }
                            }
                       }
            										
                    //  Set all <initial> form item variables if any input items are filled.
            										
                     if ( any input item variable is set as a result of the user utterance )
                        Set all <initial> form item variables to true.
            										
                     // Next execute any <filled> actions triggered by this utterance.
            										
                     foreach ( <filled> action in document order )
                     {
                        // Determine the input item variables the <filled> applies to.
            										
                         N = the <filled>' s "namelist" attribute.
            										
                        if ( N equals "" )
                         {
                             if ( the <filled> is a child of an input item )
                                N = the input item’s form item variable name.
                             else if ( the <filled> is a child of a form )
                                N = the form item variable names of all the input items in that form.
                         }
            										
                         // Is the <filled> triggered?
            										
                         if ( any input item variable in the set N was "just_filled"
                                AND  (  the <filled> mode is "all"
                                            AND all variables in N are filled
                                            OR the <filled> mode is "any"
                                            AND any variables in N are filled) )
                             Execute the <filled> action.
            										
                        If an event is thrown during the execution of a <filled>,
                           event handler selection starts in the scope of the <filled>,
                        which could be an input item or the form itself.
                     }
                     // If no input item is filled, just continue.
                 }
            ????在FIA的執(zhí)行期間,幾個(gè)地方都可以產(chǎn)生事件,根據(jù)激活的不同階段,這些事件被分別處理。
            ????在選定一個(gè)form item之前(也就是在初始化和選定階段),事件是在dialog級(jí)別產(chǎn)生的。FIA定位相應(yīng)的事件處理并執(zhí)行它。如果<catch>元素最終沒(méi)有跳轉(zhuǎn)到一個(gè)dialog,則FIA的執(zhí)行結(jié)束。
            ????類似的,在選定一個(gè)form item之后(也就是在收集和處理階段),事件通常是在form item級(jí)別產(chǎn)生的。這里有一個(gè)例外:由dialog級(jí)別的<filled>元素觸發(fā)的事件是在dialog級(jí)別產(chǎn)生的。FIA定位相應(yīng)的事件處理,并執(zhí)行它。如果<catch>元素最終沒(méi)有跳轉(zhuǎn)到一個(gè)dialog,則當(dāng)前FIA的循環(huán)結(jié)束,并重新進(jìn)入選定階段。

            附錄 D Timing Properties 附錄 A ??附錄 B??附錄 C??附錄 E??附錄 F
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????VoiceXML定義了幾個(gè)時(shí)間的property,這幾個(gè)peoperty一起用于控制和用戶之間的交互。下面的圖表描述了這些時(shí)間參數(shù)工作的方式。在這些圖表中,等待DTMF輸入或語(yǔ)音輸入的起始點(diǎn)都是在最后一個(gè)提示語(yǔ)播放結(jié)束的時(shí)候。
            ?
            一、DTMF Grammars
            ????DTMF語(yǔ)法使用的property,如timeout, interdigittimeout, termtimeout和termchar在6.3.3節(jié)有詳細(xì)的描述。下面的圖表顯示了這些property的作用。
            ????timeout, No Input Provided
            ????當(dāng)用戶沒(méi)有輸入DTMF按鍵時(shí),timeout用于確定何時(shí)拋出<noinput>事件。一旦輸入了第一個(gè)DTMF按鍵,該參數(shù)就不再起作用了。
            圖12:Timing diagram for timeout when no input provided.
            ????interdigittimeout, Grammar is Not Ready to Terminate
            ????在圖表13中,當(dāng)沒(méi)有一個(gè)DTMF語(yǔ)法被識(shí)別,且用戶不再輸入DTMF按鍵時(shí),interdigittimeout用于確定何時(shí)拋出<nomatch>事件。
            圖13:Timing diagram for interdigittimeout, grammar is not ready to terminate.
            ????interdigittimeout, Grammar is Ready to Terminate
            ????下面的例子顯示了當(dāng)用戶不在輸入DTMF按鍵時(shí),DTMF語(yǔ)法何時(shí)可以結(jié)束,或繼續(xù)接受DTMF輸入。
            圖14:Timing diagram for interdigittimeout, grammar is ready to terminate.
            ????termchar and interdigittimeout, Grammar Can Terminate
            ????在下面的例子中,termchar為非空,且用戶在沒(méi)有到達(dá)interdigittimeout的時(shí)長(zhǎng)前輸入了termchar的字符,用于表示DTMF輸入已經(jīng)結(jié)束。輸入的termchar的字符不包括在被識(shí)別的值中。
            圖15:Timing diagram for termchar and interdigittimeout, grammar can terminate.
            ????termchar Empty When Grammar Must Terminate
            ????在下面的例子中,最后一個(gè)DTMF按鍵的輸入使語(yǔ)法結(jié)束,此時(shí)語(yǔ)法不再接受用戶的任何DTMF輸入。由于termchar為空,不允許輸入任何結(jié)束符,因此,識(shí)別結(jié)束,且返回識(shí)別結(jié)果。
            圖16:Timing diagram for termchar empty when grammar must terminate.
            ????termchar Non-Empty and termtimeout When Grammar Must Terminate
            ????在上面的例子中,最后一個(gè)DTMF按鍵的輸入使語(yǔ)法結(jié)束,此時(shí)語(yǔ)法不再接受用戶的任何DTMF輸入。如果termchar為非空,則用戶可以繼續(xù)輸入DTMF按鍵。如果用戶在termtimeout的時(shí)長(zhǎng)內(nèi)沒(méi)有繼續(xù)輸入DTMF按鍵,則識(shí)別結(jié)束,并返回識(shí)別結(jié)果。如果termtimeout值為0s(默認(rèn)值),則在用戶輸入語(yǔ)法允許的最后一個(gè)DTMF按鍵后立即返回識(shí)別結(jié)果,而不再等待輸入termchar。注意,只有當(dāng)語(yǔ)法不允許有額外的輸入時(shí)才使用termtimeout,否則使用interdigittimeout。
            圖17:Timing diagram for termchar non-empty and termtimeout when grammar must terminate.
            ????termchar Non-Empty and termtimeout When Grammar Must Terminate
            ????在下面的例子中,最后一個(gè)DTMF按鍵的輸入使語(yǔ)法結(jié)束,此時(shí)語(yǔ)法不再接受用戶的任何DTMF輸入。由于termchar非空,用戶在termtimeout的時(shí)長(zhǎng)內(nèi)輸入了termchar的字符后,返回了識(shí)別結(jié)果(termchar的字符不包括在內(nèi))。
            圖18:Timing diagram for termchar non-empty when grammar must terminate.
            ????Invalid DTMF Input
            ????當(dāng)?shù)却谝换蛄硗獾腄TMF,當(dāng)用戶輸入完成后,三種不同的timeout可以判斷用戶的輸入是否已經(jīng)完成。如果沒(méi)有任何的DTMF輸入,則使用timeout property;如果輸入了一些DTMF按鍵,但是可以輸入額外的DTMF時(shí),則使用interdigittimeout;如果不允許輸入額外的DTMF時(shí),則使用termtimeout。在每種情況下,用戶都可以輸入當(dāng)前激活的語(yǔ)法不允許的DTMF,但是會(huì)導(dǎo)致所收集到的DTMF的字符串不合法。額外的DTMF按鍵將被收集,除非用戶輸入termchar的字符,或超過(guò)interdigittimeout的時(shí)長(zhǎng),此時(shí)會(huì)產(chǎn)生一個(gè)nomatch事件。
            ?
            二、Speech Grammars
            ????語(yǔ)音語(yǔ)法使用的property,如timeout,completetimeout,和incompletetimeout在6.3.2節(jié)和 6.3.4節(jié)有詳細(xì)的描述。下面的圖表展示了這些peoperty的作用。
            ????timeout When No Speech Provided
            ????在下面的例子中,當(dāng)用戶沒(méi)有輸入語(yǔ)音時(shí),timeout用于確定何時(shí)拋出一個(gè)noinput事件。
            圖19:Timing diagram for timeout when no speech provided.
            ????completetimeout With Speech Grammar Recognized
            ????在下面的例子中,用戶輸入了語(yǔ)音,且被語(yǔ)音語(yǔ)法識(shí)別。當(dāng)靜音的時(shí)間超過(guò)了completetimeout的時(shí)長(zhǎng)后,返回了識(shí)別結(jié)果。
            圖20:Timing diagram for completetimeout with speech grammar recognized.
            ????incompletetimeout with Speech Grammar Unrecognized
            ????在下面的例子中,用戶輸入了語(yǔ)音,且沒(méi)有被語(yǔ)音語(yǔ)法識(shí)別,但是用戶輸入的是一個(gè)合法的utterance的前綴。在靜音的時(shí)間超過(guò)incompletetimeout的時(shí)長(zhǎng)后,拋出了一個(gè)nomatch事件。
            圖21:Timing diagram for incompletetimeout with speech grammar unrecognized.

            附錄 E Audio File Formats 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 F
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????VoiceXML要求平臺(tái)支持的播放和錄音的音頻格式如下:
            音頻格式 媒體類型
            Raw(headerless)8kHz 8-bit mono mu-law [PCM] single channel. (G.711) audio/basic(from [RFC1521])
            Raw(headerless)8kHz 8 bit mono A-law [PCM] single channel. (G.711) audio/x-alaw-basic
            WAV (RIFF header)8kHz 8-bit mono mu-law [PCM] single channel. audio/x-wav
            WAV(RIFF header)8kHz 8-bit mono A-law [PCM] single channel. audio/x-wav
            表63:Audio Formats Which Platforms Must Support
            ????‘a(chǎn)udio/basic’ mime type通常使用‘a(chǎn)u’頭格式和無(wú)頭的8-bit 8Khz mu-law的格式。如果該mime type用于錄音,則必須使用mu-law格式。為了能夠播放‘a(chǎn)udio/basic’ mime type,平臺(tái)必須支持mu-law格式,也可以支持‘a(chǎn)u’格式。
            ?
            附錄 F Conformance 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 G ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????這一節(jié)是標(biāo)準(zhǔn)化的。
            ?
            一、Conforming VoiceXML Document
            ????一個(gè)合格的VoiceXML文檔(Conforming VoiceXML document)是一個(gè)格式規(guī)范的XML文檔。這樣的文檔必須遵循下面所列出的標(biāo)準(zhǔn):
            ??????1、該文檔必須符合VoiceXML Schema(附錄O)中所規(guī)定的約束。
            ??????2、該文檔的根元素必須是<vxml>元素。
            ??????3、<vxml>元素必須包含“version”屬性,且屬性值為“2.0”。
            ??????4、<vxml>元素必須使用“xmlns”屬性指定VoiceXML的命名空間,值為http://www.w3.org/2001/vxml。
            ??????5、我們推薦,<vxml>元素也要包含“xmlns:xsi”和 “xsi:schemaLocation”屬性,表明VoiceXML命名空間的schema的位置。如果指定了“xsi:schemaLocation”屬性,則必須包含VoiceXML Schema的一個(gè)引用:
                  xsi:schemaLocation="http://www.w3.org/2001/vxml
                    http://www.w3.org/TR/voicexml20/vxml.xsd"
            ??????6、在根元素之前可以有一個(gè)DOCTYPE的聲明。如果有DOCTYPE的聲明的話,聲明中包含的public標(biāo)識(shí)符必須使用正是的公共標(biāo)識(shí)符(Formal Public Identifier)引用VoiceXML的DTD(見(jiàn)附錄B)。
                  <!DOCTYPE vxml 
                         PUBLIC "-//W3C//DTD VOICEXML 2.0//EN"
                         "http://www.w3.org/TR/voicexml20/vxml.dtd">
            ????系統(tǒng)的標(biāo)識(shí)符可以適當(dāng)?shù)母摹?/td>
            ????DTD的子集一定不能用于覆蓋VoiceXML DTD中的任何參數(shù)實(shí)體。
            ????下面的例子是一個(gè)合格的VoiceXML文檔:
                  <?xml version="1.0" encoding="UTF-8"?>
            										
                  <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                         xsi:schemaLocation="http://www.w3.org/2001/vxml
                           http://www.w3.org/TR/voicexml20/vxml.xsd">
            										
                    <form>
                       <block>hello</block>
                    </form>
            										
                  </vxml>
            ????注意,在這個(gè)例子中,文檔中包含了“xmlns:xsi”和“xsi:schemaLocation”屬性,就像是一個(gè)XML聲明一樣。像上面這樣的XML聲明并不是在所有的XML文檔中都是必須的。但是我們強(qiáng)烈鼓勵(lì)VoiceXML文檔的作者在他們的文檔中使用XML聲明。如果文檔的字符編碼方式不是默認(rèn)的UTF-8或UTF-16,且更高級(jí)的協(xié)議也沒(méi)有指定一種編碼方式,則必須有上述的聲明。
            ????VoiceXML語(yǔ)言或這些合格文檔的標(biāo)準(zhǔn)在VoiceXML文檔的任何方面都沒(méi)有指定數(shù)量上的限制。元素和字符數(shù)據(jù)的數(shù)量沒(méi)有最大值,屬性值中的字符的長(zhǎng)度也沒(méi)有最大值。
            ?
            二、Using VoiceXML with other namespaces
            ????VoiceXML的命名空間可以和其他的XML命名空間一起使用,雖然這樣的文檔不是如上面定義的那種嚴(yán)格的合格VoiceXML文檔。在將來(lái),W3C將會(huì)提供解決包含多個(gè)命名空間的文檔的一致性的方法。
            ?
            三、Conforming VoiceXML Processors
            ????VoiceXML處理器用于解析和處理合格的VoiceXML文檔。
            ????在合格的VoiceXML處理器中,XML解析器必須能夠解析和處理在XML和XMLNAMES中定義的格式規(guī)范的XML結(jié)構(gòu)。我們不要求合格的VoiceXML處理器使用確認(rèn)解析器(validating parser)。
            ????除了該文檔描述的一些差別以外,合格的VoiceXML處理器必須是一個(gè)合格的SSML處理器和XML語(yǔ)法處理器。如果在處理一個(gè)語(yǔ)法文檔時(shí)檢測(cè)到一個(gè)句法錯(cuò)誤,則必須拋出一個(gè)“error.badfetch”事件。
            ????一個(gè)合格的VoiceXML處理器必須支持該文檔所描述的、所有的VoiceXML元素的句法和語(yǔ)義。因此,當(dāng)處理一個(gè)合格的VoiceXML文檔時(shí),對(duì)于任何一個(gè)VoiceXML支持的元素,它一定不能拋出一個(gè)‘error.unsupported.<element>’事件。
            ????如果一個(gè)合格的VoiceXML文檔中有非VoiceXML元素,或有一些只在VoiceXML的早期版本中定義的屬性,或有在非VoiceXML的命名空間上定義的屬性,或有一些不能處理的屬性,則當(dāng)一個(gè)合格的VoiceXML處理器碰到這些情況時(shí),必須拋出一個(gè)“error.badfetch”事件。
            ????當(dāng)合格的VoiceXML處理器碰到一個(gè)文檔,該文檔的根元素指定的命名空間不是VoiceXML而是其他的命名空間,此時(shí)VoiceXML處理器要怎樣處理還沒(méi)有明確。
            ????然而,對(duì)于VoiceXML處理器相關(guān)的性能特征卻沒(méi)有什么合格不合格的要求。

            附錄 G Internationalization 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 H??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????VoiceXML是XML的一個(gè)應(yīng)用,因此它支持UNICODE。UNICODE定義了一套標(biāo)準(zhǔn)的通用的字符集。
            ????另外,VoiceXML通過(guò)“xml:lang”屬性提供了對(duì)輸入和輸出語(yǔ)言的精確控制。它能方便的:
            ??????·指定輸入和輸出的語(yǔ)言以覆蓋VoiceXML處理器的默認(rèn)語(yǔ)言;
            ??????·產(chǎn)生多種語(yǔ)言的輸出;
            ??????·用相應(yīng)的語(yǔ)言解釋用戶的輸入,即使輸入和輸出不是同一種語(yǔ)言。

            附錄 H Accessibility 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 I??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????語(yǔ)音是VoiceXML應(yīng)用中的主要組成部分,但VoiceXML應(yīng)用中不是只有語(yǔ)音。然而,在大多數(shù)的環(huán)境中和對(duì)于與VoiceXML應(yīng)用交互的大多數(shù)用戶來(lái)說(shuō),聽(tīng)和說(shuō)講是最廣泛應(yīng)用的技術(shù),有些用戶可能由于暫時(shí)(或永久的)情況不能夠聽(tīng)和/或說(shuō)。不能聽(tīng)或說(shuō)的的用戶,特別是那些聽(tīng)力或說(shuō)話有缺陷的,他們可以通過(guò)其他的途徑和VoiceXML應(yīng)用進(jìn)行交互:
            ??????1、聽(tīng)力有缺陷的用戶可以在顯示終端上看文本,或者(如果他們同時(shí)也不夠看的話)通過(guò)觸覺(jué)識(shí)別盲文。為了支持那些給語(yǔ)言和/或聽(tīng)力有缺陷的用戶使用的特殊的設(shè)備,開(kāi)發(fā)者應(yīng)該在<audio>標(biāo)記內(nèi)提供和相應(yīng)的音頻的內(nèi)容相同的文本。例如:
                  <audio src="greetings.wav">Greetings</audio>
            ????在這個(gè)例子中,正常情況下會(huì)播放greetings.wav這個(gè)音頻。然而,如果VoiceXML解釋器環(huán)境檢測(cè)到用戶正在通過(guò)顯示終端,或通過(guò)觸摸輸出的盲文和VoiceXMl應(yīng)用進(jìn)行交互,則相應(yīng)的文本"Greetings"會(huì)顯示在顯示終端或輸出到盲文設(shè)備。
            ??????2、語(yǔ)音有障礙的用戶可以通過(guò)輸入編碼的序列與VoiceXMl應(yīng)用交互,該編碼序列在傳給VoiceXML平臺(tái)之前會(huì)被轉(zhuǎn)換成文本。這種轉(zhuǎn)換可能是由連接在電話上的一種特殊的硬件裝置完成,該硬件把用戶的按鍵(例如傳統(tǒng)的標(biāo)準(zhǔn)鍵盤(pán))轉(zhuǎn)化成文本。也可能是由軟件來(lái)完成,該軟件把12鍵的電話鍵盤(pán)的DTMF序列轉(zhuǎn)換成文本。
            ????對(duì)于打算使用W3C技術(shù)的用戶來(lái)說(shuō),提供多種途徑用于信息交互和用戶輸入是W3C的主要工作。在合適的時(shí)候,下面的這些由W3C 的WAI(Web Accessibility Initiative)可達(dá)性指導(dǎo)方針也會(huì)應(yīng)用到VoiceXML中:
            ??????·WAI-WEBCONTENT(Web Content Accessibility Guidelines 1.0)詳細(xì)解釋了怎樣讓有各種缺陷的人可以容易的進(jìn)入一個(gè)網(wǎng)站。
            ??????·ATAGIO(Authoring Tool Accessibility Guidelines 1.0)。面向軟件開(kāi)發(fā)者的,它說(shuō)明了怎樣使各種創(chuàng)作工具(authoring tools)支持獲取web內(nèi)容的產(chǎn)品,也說(shuō)明了怎樣使軟件本身也是可獲取的。
            ??????·UAAGIO(User Agent Accessibility Guidelines 1.0)。面向軟件開(kāi)發(fā)者的,它說(shuō)明了怎樣制作可獲取的瀏覽器,多媒體播放器和與它們接口的相關(guān)技術(shù)。
            ??????·XAG(XML Accessibility Guidelines)。它是基于XML應(yīng)用的,面向開(kāi)發(fā)者的。它說(shuō)明了怎樣確保基于XML的應(yīng)用支持可獲取性。
            ????讓有缺陷的人可以進(jìn)入VoiceXML應(yīng)用的其他原則如下:
            ??????·重新使用具有高度可用性的導(dǎo)航結(jié)構(gòu),例如ANSI/NISO Z39.86-2002 Digital Talking book Standard,http://www.loc.gov/nls/z3986/的導(dǎo)航技術(shù)。
            ??????·在每個(gè)可能產(chǎn)生事件的元素中都指定<catch>元素,包括有故障弱化或恢復(fù)的功能。
            ??????·讓用戶可以控制時(shí)間的長(zhǎng)度(在timeout之前),合成語(yǔ)音的語(yǔ)速,或其他的一些可以增加(或減少)應(yīng)答(或完成輸入)的時(shí)間的變量,特別是當(dāng)VoiceXML解釋器環(huán)境已經(jīng)檢測(cè)到用戶正在使用聽(tīng)/說(shuō)的輔助設(shè)備時(shí)。這對(duì)于那些有缺陷的用戶特別有用。
            ??????·告訴用戶模式是可選的,這樣用戶就可以另一種方式獲得相同的服務(wù),包括轉(zhuǎn)接到人工臺(tái)和文本電話服務(wù)等,或通過(guò)互聯(lián)網(wǎng)獲得同樣的信息。

            附錄 I Privacy 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 J??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????在VoiceXML的后繼版本可能會(huì)制定一些標(biāo)準(zhǔn),通過(guò)這些標(biāo)準(zhǔn),VoiceXML處理器可以保護(hù)用戶的私有數(shù)據(jù)。
            ?

            附錄 J 與VoiceXML1.0的不同之處 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 K
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????以下是VoiceXML1.0和VoiceXML2.0之間的不同之處[VOICEXML-1.0(http://www.w3.org/TR/voicexml20/#re_VOICEXML-1.0)]。
            ????VoiceXML1.0開(kāi)發(fā)者也許要特別注意VoiceXML2.0與VoiceXML1.0之間的區(qū)別。這些區(qū)別在Obsolet ElementsIncompatibly Modified Elements章節(jié)中有詳細(xì)的說(shuō)明。
            New Elements
            ????·<log>用來(lái)記錄debug信息(5.3.13)。
            ????·<metadata>作為一種用schema來(lái)指定metedata信息的方法(6.2,6.2.2)。
            Obsolete Elements
            ????·<dtmf>被帶有“mode=dtmf”屬性的<grammar>元素所取代(3.1.2)。
            ????·<emp>、<div>、<pros>和<sayas>JSML元素已經(jīng)被語(yǔ)音合成標(biāo)記語(yǔ)言[SSML]所取代(4.1.1)。
            Incompatibly Modified Elements
            ????·在<vxml>元素中,“l(fā)ang”已變?yōu)椤皒ml:lang”(1.5.1)。
            ????·在<vxml>元素中,增加必須的xmlns屬性。
            ????·在<vxml>元素中,用“xml:base”屬性取代“base”屬性(1.5.1)。
            ????·如果平臺(tái)不支持一個(gè)指定的對(duì)象,拋出error.unsupported.objectname。對(duì)于不支持的對(duì)象類型,error.unsupported.format不拋出(2.1.2.1,2.3.5,5.2.6)。
            ????·當(dāng)說(shuō)出域的值時(shí),一個(gè)域的值不表示一個(gè)隱含的<say-as>類,一個(gè)清晰的<say-as>必須用到。(2.1.4,附錄P)。
            ????·在<menu>和<choice>中增加“accept”屬性(2.2)。
            ????·如果<menu>的dtmf屬性設(shè)為真,而且指定“*”、“#”、“0”之外的DTMF值,error.badfetch(以前是error.semantic)拋出。
            ????·去除訪問(wèn)內(nèi)置資源如語(yǔ)法所需的支持,“builtin”當(dāng)做訪問(wèn)資源特定平臺(tái)的URI(2.3.1.2,附錄P)。
            ????·在<option>元素中增加“accept”屬性,在生成語(yǔ)法時(shí),修改“choice phrase”的描述(2.3.1.3,2.2)。
            ????·從<subdialog>元素中去掉了“modal”屬性。
            ????·從<object>元素中,去掉“fetchaudio”屬性。
            ????·去掉了用<value>去播放一個(gè)錄音的能力,只有<audio>元素可以用來(lái)播放錄音(2.3.6,4.1.3,4.1.4)。
            ????·在<transfer>元素的dest屬性中,用“tel”格式來(lái)取代“phone”URI格式。
            ????·去掉了在field和form中<filled>元素的同一性(2.4)。
            ????·用語(yǔ)音合成標(biāo)記語(yǔ)言[SSML]中的定義來(lái)取代<choice>、<prompt>、<enumerate>和<audio>中的TTS內(nèi)容。
            ????·在<audio>,如果語(yǔ)音文件不能播放,而且元素的內(nèi)容是空,將不播放語(yǔ)音,并且沒(méi)有錯(cuò)誤事件拋出(4.1.3)
            ????·從<value>元素中去掉“class”、“mode”和“recsrc”屬性(4.1.4)。
            ????·改變標(biāo)準(zhǔn)session變量“session.uui”成“session.telephone.uui”,增加新的通用的session變量“session.connection.protocol.name”和“session.connection.aai”,它們將提供這些或更多的信息(5.1.4)。
            ????·用session.connection來(lái)取代session.telephone變量。Session.connection不是協(xié)議指定的,但更具擴(kuò)展性。相應(yīng)的錯(cuò)誤名字也有所改變。(5.1.4)。
            ????·在<submit>元素的namelist中的ECMAScript對(duì)象現(xiàn)在沒(méi)有定義,但保留作未來(lái)的定義。應(yīng)用程序開(kāi)發(fā)者也許會(huì)清晰地object的屬性,而不是object自身(5.3.8)。
            ????·去除“caching”屬性(6.1)。
            ????·增加“maxage”和“maxstale”屬性(6.1)。
            ????·從fetchint屬性中去掉“stream”(6.1.1,6.3.5)。
            ????·從fetching屬性中去除“caching”(6.3.5)。
            ????·特定平臺(tái)的全局命令語(yǔ)法是可選的(6.3.6)。
            Modified Elements
            ????·平臺(tái)也許會(huì)在field和utterance level confidence之間有些微差別。Field$confidence和application.lastresult$.confidence也許有所不同(2.3.1,3.1.6.4,5.1.5,6.3.2)。
            ????·<subdialog>元素增加了“srcexpr”屬性(2.3.4)。
            ????·<record>元素增加了“maxtime”和“dest”影子變量(2.3.6)。
            ????·<transfer>元素增加了“transferaudio”屬性;為bridge transfer增加“maxtimedisconnect”和“unknown”值,并增加了更多的error.connection事件(2.3.7)。
            ????·<transfer>增加“aai”和“aaiexpr”屬性,這樣<transfer>元素可以傳遞數(shù)據(jù)(2.3.7)。
            ????·<link>元素增加“dtmf”屬性(2.5)。
            ????·W3C Speech Recognition Grammar Specification[SRGS]的XML Form必須在<grammar>中支持(3.1)。
            ????·<prompt>元素中增加“xml:lang”屬性(4.1)。
            ????·<prompt>元素中增加可以是“speech”和“hotword”值的“bargeintype”屬性(4.1)。
            ????·<audio>元素增加“expr”屬性(4.1.3)。
            ????·增加描述最后識(shí)別結(jié)果的應(yīng)用程序變量“application.lastresult$”,包含n-best(5.1.5)。
            ????·元素<throw>、<choice>、<link>和<return>增加“event”、“eventexpr”、“message”和“messageexpr”屬性(5.2.1)。
            ????·<catch>增加“_event”變量(5.2.2)。
            ????·<catch>元素不再允許用一個(gè)空串值去指定事件屬性(5.2.4)。
            ????·增加“error.badfetch.http.nnn”作為預(yù)定義的錯(cuò)誤類型(5.2.6)。
            ????·增加“error.badfetch.protocol.<response code>”作為預(yù)定義的錯(cuò)誤類型(5.2.6)。
            ????·增加“maxspeechtimeout”事件(5.2.6)。
            ????·增加“error.unsupported.language”預(yù)定義錯(cuò)誤類型(5.3.6)。
            ????·<submit>元素用“enctype”來(lái)提供“multipart/form-data”值(5.3.8)。
            ????·<script>可以出現(xiàn)在<form>元素中(5.3.12)。
            ????·不能從URI中提取fetchaudio不再產(chǎn)生badfetch事件;而是不再播放語(yǔ)音文件。(6.1.1)。
            ????·HTTP是強(qiáng)制性的(6.1.4)。
            ????·增加“maxspeechtimeout”屬性(6.3.2)。
            ????·平臺(tái)對(duì)“completetimeout”屬性的支持是可選的。然而,不支持此屬性的平臺(tái)必須用completetimeout的最大值和incompletetimeout值來(lái)作為incompletetimeout的值,而且必須證明它(6.3.2)。
            ????·增加“bargeintype”屬性(6.3.4)。
            ????·對(duì)fetch增加“fetchaudiodelay”和“fetchaudiominimum”屬性(6.3.5)。
            ????·增加“maxnbest”session屬性(6.3.6)。
            ????·增加“universals”屬性(缺省值為“none”)(6.3.6)。
            ????·為fetching屬性增加缺省值。對(duì)fetching的屬性是“maxage”和“maxstale”,這兩屬性同樣適用于<choice>、<subdialog>、<object>、<link>、<grammar>、<audio>、<goto>、<submit>和<script>。
            說(shuō)明
            ????·說(shuō)明語(yǔ)法結(jié)果是怎樣映射到VoiceXML的,包括如下部分:接受輸入的“input items”的概念;為了匹配form_level語(yǔ)法,只有input items可以被填充;field_level的語(yǔ)法不能填充input items,但可以填充當(dāng)前的field。<object>元素可填充并可以觸發(fā)filled動(dòng)作;為語(yǔ)義映射和在lastresult$上的效應(yīng)、影子變量和在FIA中的處理過(guò)程增加設(shè)計(jì)原則(1.2.4,2.1.4,2.1.5,2.1.6.2.3,2.2,2.3.1,2.3.1.3,2.3.5,2.3.6,2.3.7.2,2.4,2.5,3.1.1,3.1.6,3.1.6.1,3.1.6.2,3.1.6.3,3.1.6.4,附錄C)。
            ????·如果沒(méi)有輸入輸出語(yǔ)音資源,必須拋出error.noresource事件(1.2.5,5.2.6)。
            ????·根文檔葉文檔之間的定義和轉(zhuǎn)接(1.5.2)。
            ????·引用應(yīng)用程序根文檔和它的語(yǔ)法(1.5.2)。
            ????·當(dāng)一個(gè)子對(duì)話框以唯一fragment identifier調(diào)用時(shí),根和葉文檔沒(méi)有改變,這些文檔用來(lái)初始化根和葉的關(guān)聯(lián)關(guān)系(1.5.2)。
            ????·在根到根的轉(zhuǎn)換中,當(dāng)前和目標(biāo)應(yīng)用程序有同樣的名字時(shí),根關(guān)聯(lián)關(guān)系的初始化是由緩存策略決定的。(1.5.2)。
            ????·URI的說(shuō)明,特別是fragment identifiers,與RFC2396相關(guān)(1.5.2,2.3.4,5.3.7,5.3.8,6.1.1)。
            ????·根文檔是怎樣在多文檔應(yīng)用程序中處理的說(shuō)明和用根文檔的好處(1.5.2)。
            ????·用<goto>元素,<subdialog>把控制轉(zhuǎn)向別一個(gè)<subdialog>和另一個(gè)對(duì)話框(1.5.3)。
            ????·當(dāng)在解釋和用戶之間不再有聯(lián)接時(shí),增加區(qū)域描寫(xiě)最終處理狀態(tài)。在<catch>元素中取消最終處理描述(1.5.4,5.2.2)。
            ????·在Form中指定的語(yǔ)法優(yōu)先于<Form>元素中的缺省語(yǔ)法(2.1)。
            ????·當(dāng)運(yùn)行不支持的<object>實(shí)例時(shí)的行為(2.1.2.1,2.3.5)。
            ????·如果平臺(tái)不支持指定的<object>元素,error.unsupported.object.objectname拋出(2.1.2)。
            ????·在field中的多重提示不必有count屬性。在field中的一個(gè)或多個(gè)語(yǔ)音提示根據(jù)4.1.6中的提示選擇算法依次播放(2.1.4)。
            ????·在form item中的<goto nextitem>的效果(2.1.5)。
            ????·當(dāng)用<goto nextitem>元素時(shí),變量、條件和計(jì)數(shù)沒(méi)有重設(shè)(2.1.5)。
            ????·mixed initiative對(duì)話需要form級(jí)的語(yǔ)法,對(duì)mixed initiative對(duì)話有許多開(kāi)發(fā)風(fēng)格,包括在<field>元素中用<initial>和cond屬性(2.1.5)。
            ????·在collect phase中,帶有語(yǔ)音播放的<transfer>、<subdialog>、<object>元素的行為(2.1.6)。
            ????·在FIA處理過(guò)程和<filled>元素中的事件句柄選擇(2.1.6.2)。
            ????·在FIA的select和collect phase,如果發(fā)生錯(cuò)誤,會(huì)拋出一個(gè)事件,F(xiàn)IA將直接進(jìn)入process phase(2.1.6.2,2.1.6.2.1,2.1.6.2.3)。
            ????·當(dāng)一個(gè)錯(cuò)誤拋出,后續(xù)的執(zhí)行元素并沒(méi)有執(zhí)行。如果沒(méi)有清晰的轉(zhuǎn)接控制,隱含的<exit>將執(zhí)行(2.1.6.2.1,5.3)。
            ????·引起運(yùn)行中斷的列舉的執(zhí)行關(guān)聯(lián)元素(2.1.6.2.3)。
            ????·<reprompt>元素不能中止FIA(2.1.6.2.3)。
            ????·說(shuō)明互斥孤立屬性和子內(nèi)容的規(guī)定和行為(2.2,2.3.4,2.3.7,2.5,3.1.1.4,4.1.3,5.2.1,5.3.7,5.3.8,5.3.9,5.3.10,5.3.12,6.4)。
            ????·在<menu>中,如果dtmf="true"但<choice>已經(jīng)明顯地指定不是“0”、“*”、“#”的DTMF,這是一個(gè)語(yǔ)法錯(cuò)誤。如果有多于9個(gè)choice而沒(méi)有指定dtmf,這樣就沒(méi)dtmf就不會(huì)自動(dòng)地賦值(就沒(méi)有dtmf輸入可以匹配choice),但不會(huì)產(chǎn)生錯(cuò)誤(2.2.3)。
            ????·<enumerate>元素的使用(2.2.4,2.3.1)。
            ????·<grammar>覆蓋在<choice>中自動(dòng)產(chǎn)生的語(yǔ)法(2.2.2)。
            ????·<choice>用expr求值URI,以便轉(zhuǎn)向相應(yīng)的文檔(2.2.2)。
            ????·<choice>事件句柄沒(méi)有控制轉(zhuǎn)向,引起menu重執(zhí)行(2.2.2)。
            ????·在<choice>、<option>、<link>DTMF屬性中指定的DTMF序列等同于簡(jiǎn)單的DTMF語(yǔ)法,在此,DTMF屬性適用于序列的識(shí)別,然而不象語(yǔ)法,空格在DTMF序列里是可選的(2.3.1.3,2.5)。
            ????·在<menu>、<choice>中,大致的語(yǔ)法生成規(guī)范(2.2.5)。
            ????·如果form item沒(méi)有填充,而且其cond屬性沒(méi)有指定,或者其值為true,它被運(yùn)行(2.3,2.3.1)。
            ????·在form中,form item的名字必須是唯一的。在<script>元素中聲明的變量聲明在包含<script>元素的范圍中(2.3.1,5.3.12)。
            ????·重組整個(gè)form item以便澄清特征適用于哪上form item。這也表明了<initial> form item也包含<property>和<catch>元素(2.3)。
            ????·在轉(zhuǎn)換到boolean后,求出“cond”的表達(dá)式。這影響在form item<field>、<block>、<initial>、<subdialog>、<object>、<record>和<transfer>(2.3);<prompt>(4.1)和<catch>(5.2.2)中的“cond”屬性。
            ????·影子變量是可寫(xiě)的而且可以被應(yīng)用程序修改。改變“application.lastresult$”以便其是可寫(xiě)而且可被應(yīng)用程序修改(2.3,5.15)。
            ????·當(dāng)DTMF屬性定義后,給field變量賦值(2.3.1)。
            ????·form item變量必須遵循ECMAScript變量的命名規(guī)范(2.3.1,5.1)。
            ????·如果一個(gè)指定的<field> builtin類型不被平臺(tái)支持,將拋出一個(gè)error.unsupported.builtin事件,如果一個(gè)平臺(tái)支持builtin類型,它必須在指定的語(yǔ)言中支持所有的builtin類型(2.3.1,5.2.6,附錄P)。
            ????·用帶有“builtin:”URI scheme的DTMF和speech語(yǔ)法(2.3.1.2)。
            ????·當(dāng)在<option>中沒(méi)有指定“value”或CDATA時(shí),輸入DTMF時(shí),串返回(2.3.1.3)。
            ????·<option>和<grammar>可以并發(fā)地在<field>中指定語(yǔ)法(2.3.1.3)。
            ????·當(dāng)訪問(wèn)<initial>時(shí),通常的語(yǔ)法范圍規(guī)則有效;在特殊情況下,沒(méi)有field語(yǔ)法被激活(2.3.3)。
            ????·一個(gè)Form允許多重的<initial>元素,在運(yùn)行中它是怎樣被選擇的(2.3.3,附錄 C)。
            ????·在<subdialog>中的變量范圍(2.3.4)。
            ????·<subdialog>的關(guān)聯(lián)是獨(dú)立于它的呼叫關(guān)聯(lián)的(變量實(shí)例是不能共享的),但是它的關(guān)聯(lián)是符合語(yǔ)法、事件、和變量的通常范圍規(guī)則(2.3.4)。
            ????·如果沒(méi)有指定相應(yīng)的<param>,在<subdialog>中,用“expr”屬性設(shè)置變量(2.3.4)。
            ????·子對(duì)話框的執(zhí)行關(guān)聯(lián)的描述(2.3.4)。
            ????·說(shuō)明<return>怎樣傳遞<subdialog>中的數(shù)據(jù)到調(diào)用它的對(duì)話框(2.3.4,5.3.10)。
            ????·子對(duì)話框中的變量以名字和在文檔的次序上匹配參數(shù),參數(shù)值在<param>元素的關(guān)聯(lián)關(guān)系上求值(2.3.4)。
            ????·當(dāng)一個(gè)無(wú)效的轉(zhuǎn)接發(fā)生在<subdialog>、<goto>、<submit>中,error.badfetch錯(cuò)誤拋出,在轉(zhuǎn)接過(guò)程中錯(cuò)誤在此處理的區(qū)域是依賴于平臺(tái)的(2.3.4,5.3.7,5.3.8)。
            ????·沒(méi)有<return>的<subdialog>繼續(xù)運(yùn)行,直到它遇到一個(gè)<exit>或直到?jīng)]有符合條件的form item讓FIA去選擇(等于一個(gè)<exit>)(2.3.4)。
            ????·一個(gè)獨(dú)立查詢串不是一個(gè)有效的URI:沒(méi)有特別的處理,因此需要在<subdialog>和<goto>中指定的轉(zhuǎn)接URI(2.3.4)。
            ????·<object>元素自己可以斷定它接受的參數(shù)名字或值是不有效。如果這樣,一個(gè)錯(cuò)誤拋出(它也許是一個(gè)標(biāo)準(zhǔn)錯(cuò)誤或者是一個(gè)特定對(duì)象錯(cuò)誤)(2.3.5)。
            ????·在錄音過(guò)程中用戶掛機(jī)正常中止錄音。先于掛機(jī)錄下來(lái)的數(shù)據(jù)可以返回到服務(wù)器(2.3.6)。
            ????·在錄音過(guò)程中的語(yǔ)法解釋(2.3.6)。
            ????·在<record>中的field變量是對(duì)錄下來(lái)的語(yǔ)音文件的引用,當(dāng)傳遞錄下來(lái)的數(shù)據(jù)到服務(wù)器,<submit>元素的“enctype”應(yīng)該設(shè)為“multipart/form-data”(2.3.6,5.3.8)。
            ????·當(dāng)<record>的dtmfterm屬性設(shè)為false,DTMF輸入接收,行為的說(shuō)明(2.3.6)。
            ????·在得到語(yǔ)音數(shù)據(jù)時(shí),錄音開(kāi)始時(shí)的說(shuō)明和錄音中止時(shí)的行為(2.3.6)。
            ????·<record>變量是怎樣執(zhí)行的隨平臺(tái)而有所不同。(雖然所有的平臺(tái)必須支持在<audio>和<submit>中指定的行為)(2.3.6)。
            ????·缺省時(shí),<record>的finalsilence和maxtime屬性等于平臺(tái)指定的值(2.3.6)。
            ????·語(yǔ)音和DTMF中止的<transfer>返回near_end_disconnect狀態(tài)(2.3.7)。
            ????·在<transfer>元素中的“dest”屬性的值(2.3.7)。
            ????·<transfer>元素form item變量對(duì)于blind transfer是沒(méi)有定義的(undefined)(2.3.7)。
            ????·<transfer>的修改包括:當(dāng)平臺(tái)不能處理“dest”或“destexpr”URI的錯(cuò)誤事件。當(dāng) blind transfer發(fā)生時(shí),平臺(tái)馬上掛斷的說(shuō)明。如果平臺(tái)不能執(zhí)行blind或bridge transfer事件拋出的規(guī)定。(雖然有些錯(cuò)誤條件也許會(huì)報(bào)告)對(duì)blind transfer來(lái)講,聯(lián)接狀態(tài)不能得到的陳述。對(duì)blind transfer來(lái)講,transferaudio被忽略。在bridged transfer之中和之前的語(yǔ)音播放,包括這些情形,在聯(lián)接建立前transferaudio結(jié)束;在開(kāi)始transfer前,隊(duì)列中的語(yǔ)音開(kāi)始播放,等待輸入和播放語(yǔ)音時(shí)序的陳述。增加name$.inputmode和name$utterance影子變量。在轉(zhuǎn)接過(guò)程中,平臺(tái)支持等待輸入是可選的。(2.3.7,5.2.6)。
            ????·在bridged <transfer>元素中,在外呼期間,bargetype是固定為“hotword”(2.3.7)
            ????·在呼叫轉(zhuǎn)移或者試圖呼叫轉(zhuǎn)移時(shí),如果主叫掛機(jī),<transfer>變量和影子變量沒(méi)有設(shè)置。如果一個(gè)呼叫先于應(yīng)答被主叫用語(yǔ)音或DTMF中斷,duration影子變量置為零(2.3.7.2.2)。
            ????·<transfer>的utterance影子變量設(shè)為DTMF結(jié)果,如果轉(zhuǎn)接被DTMF輸入中止(2.3.7.2.2)。
            ????·在bridge transfer中,在聯(lián)結(jié)建立之前,主叫通過(guò)DTMF或語(yǔ)音命令強(qiáng)迫被叫掛機(jī)的地址狀態(tài)(2.3.7.2.2)。
            ????·<link>有零和更多的語(yǔ)法(2.5)。
            ????·<link>元素拋出的事件在激活的區(qū)域中是由最有資格的<catch>元素處理的(2.5)。
            ????·<link>元素可以是<field>和<initial> form item的child(2.5)。
            ????·包含<link>有“scope”屬性的元素,在<link>語(yǔ)法的范圍內(nèi)沒(méi)有任何效果(2.5)。
            ????·在<link>中,其內(nèi)容(如:<grammar>)的任何URI被求值。在激活的對(duì)話區(qū)域和上下文中,其屬性中的URI和ECMAScript表達(dá)式被求值(2.5)。
            ????·在<grammar>元素中的“xml:lang”屬性在平臺(tái)上不必有多語(yǔ)言的支持(3.1)。
            ????·不支持的語(yǔ)法語(yǔ)言產(chǎn)生error.unsupported.language事件(3.1.1)。
            ????·不支持的語(yǔ)言可以表明在<throw>元素message 變量中(3.1.1)。
            ????·在數(shù)字表達(dá)式中一個(gè)串的數(shù)字結(jié)果(ECMAScript將自動(dòng)地變換成數(shù)字);串不能有前導(dǎo)零(3.1.1)。
            ????·除了XML的SRGS的XML格式,對(duì)于inline語(yǔ)法格式SRGS <grammar>元素在VoiceXML 2.0被擴(kuò)展以允許PCDATA(3.1.1,3.1.1.4)。
            ????·隱含的語(yǔ)法(如option)不支持weight(3.1.1.3)。
            ????·在<grammar>中的type屬性優(yōu)先于其它可能的media類型;如果指定了,與語(yǔ)法的類型沖突,一個(gè)錯(cuò)誤將拋出(3.1.1.2,3.1.1.4)。
            ????·<grammar>屬性的應(yīng)用和解釋從SRGS中繼承(version、xml:lang、mode、root、tag-format、xml:base),在線XML SRGS語(yǔ)法遵從SRGS中的行為。對(duì)于在線ABNF SRGS語(yǔ)法以及外部的ABNF和XML SRGS語(yǔ)法,必須忽略這些屬性。對(duì)所有其它的語(yǔ)法類型,這些屬性的解釋和應(yīng)用是依賴于平臺(tái)的(3.1.1.4)。
            ????·在SRGS語(yǔ)法的root rule中,不必是public rule(3.1.1.4)。
            ????·在form_level和field_level之間的差別(3.1.6,3.1.6.1,3.6.1.2)。
            ????·<grammar>元素的“mode”屬性與grammar mode沖突(3.1.1.4)。
            ????·“slot”可以在任意的嵌套級(jí)別上用圓點(diǎn)分隔選擇屬性,去掉寓意排列的索引表達(dá)式(如“pzza.toppings[3]”)文本是支持的(3.1.6.1)排列的DTMF和語(yǔ)音語(yǔ)法描述;DTMF語(yǔ)法可以返回一組屬性對(duì)和一個(gè)串值(3.1.2)。
            ????·匹配的form_level語(yǔ)法在input item可以覆蓋存在的值,這些<filled>以Section 2.4和附錄 C(3.1.6.1)所描寫(xiě)的方式處理(3.1.6.1)。
            ????·排列的DTMF和語(yǔ)音語(yǔ)法描述;DTMF語(yǔ)法可以返回一組屬性對(duì)和一個(gè)串值(3.1.2)。
            ????·如果一個(gè)文檔包含一個(gè)指定范圍的語(yǔ)法,在<link>或者在菜單<choice>中,此語(yǔ)法包含一field,error.badfetch拋出(3.1.3)。
            ????·當(dāng)<form>和<menu>等待輸入時(shí),如果沒(méi)有語(yǔ)法激活,error.semantic事件拋出(3.1.4)。
            ????·inputmodes屬性不影響語(yǔ)法的激活(3.1.4,6.3.6)。
            ????·在<grammar>元素內(nèi)正在運(yùn)行的語(yǔ)義附件(3.1.5)。
            ????·<prompt>的“bargein”和“bargeintype”屬性的缺省值是由“bargein”和“bargeintype”決定的(4.1)。
            ????·時(shí)間是一個(gè)非負(fù)的數(shù)值,其后須有ms或s。下列屬性以時(shí)間作為它們的值:<prompt>-timeout;<transfer>-maxtime(NB:現(xiàn)在缺省是“0s”),connecttimeout;<record>-maxtime,finalsilence。下列屬性有時(shí)間值:fetchtimeout、completetimeout、incompletetimeout、maxspeechtimeout、interdigttimeout、termtimeout、timeout、fetchaudiodelay、fetchaudiominimum、fetchtimeout(4.1,2.3.6,2.3.7,6.1.1,6.3)。
            ????·如果文本中包含語(yǔ)音合成標(biāo)志,應(yīng)將之放在<prompt></prompt>對(duì)之間(4.1.2)。
            ????·在<prompt>中的“xml:lang”屬性不需要多語(yǔ)言的支持(4.1.1)。
            ????·不支持的合成語(yǔ)言產(chǎn)生error.unsupported.language事件(4.1.1)。
            ????·在<audio>元素中的可選內(nèi)容(4.1.3)。
            ????·當(dāng)<audio>的“expr”的值是ECMAScript的undefined,元素的內(nèi)容忽略。如果它等于一個(gè)無(wú)效的URI,或者格式不支持,等等,將激活回調(diào)策略(4.1.3)。
            ????·在<audio>中,平臺(tái)優(yōu)化stream audio(4.1.3)。
            ????·在<prompt>元素之外的單獨(dú)的<value>元素是合法的(4.1.4)。
            ????·在<audio>中的expr的簡(jiǎn)單求值,以便它不被特別對(duì)待;可以用CDATA來(lái)處理一引起特別的XML字符。它不會(huì)當(dāng)做SSML文檔或一個(gè)文檔片斷來(lái)對(duì)待(4.1.4)。
            ????·當(dāng)<prompt>元素的“bargein”是false,DTMF輸入緩沖區(qū)被刪除(4.1.5)。
            ????·在一組語(yǔ)音提示中bargein出現(xiàn)時(shí)的行為(4.1.5)。
            ????·當(dāng)prompt的“bargein”屬性是false,當(dāng)提示語(yǔ)音播放輸入沒(méi)有緩存(任何已經(jīng)緩存的DTMF被拋棄)(4.1.5)。
            ????·<prompt>的“bargeintype”屬性應(yīng)用于DTMF輸入以及語(yǔ)音輸入(4.1.5.1)。
            ????·在Form的<initial>元素中,支持語(yǔ)音提示的計(jì)數(shù)(4.1.6)。
            ????·每個(gè)<prompt>有它自己的timeout值,當(dāng)語(yǔ)音提示排隊(duì),在缺省情況下,<prompt>的timeout屬性等于timeout property(4.1.7)。
            ????·在語(yǔ)音隊(duì)列和input collection之間的關(guān)系(4.1.8)。
            ????·與轉(zhuǎn)接執(zhí)行無(wú)關(guān)的異步事件(如disconnect)是可緩存的,它一直緩存到拋出前的等待狀態(tài)(4.1.8)。
            ????·說(shuō)明解釋器和FIA之間的映射;語(yǔ)法的激活、并發(fā)等待伴有語(yǔ)音播放的輸入的出現(xiàn)(4.1.8)。
            ????·當(dāng)prompt的bargein屬性是false,輸入沒(méi)有收集,在轉(zhuǎn)接狀態(tài)下緩存的DTMF如4.1.5中所描述的一樣被刪除(4.1.8)。
            ????·VoiceXML和ECMAScript變量是同樣的變量空間的一部分;在ECMAScript中申明的變量可以直接用在VoiceXML中(5.1)。
            ????·VoiceXML變量名,包括域名,必須符合ECMAScript規(guī)則;在申明的變量名中不能包含一個(gè)點(diǎn);在field名字中,“a.b”是非法的(5.1)。
            ????·VoiceXML變量和變量區(qū)域必須符合ECMAScript區(qū)域鏈;作為結(jié)果,對(duì)一個(gè)沒(méi)有聲明的變量的引用產(chǎn)生error.semantic錯(cuò)誤。(5.1.1,5.1.2)。
            ????·變量的范圍(5.1.2)。
            ????·在應(yīng)用程序根文檔下的應(yīng)用程序和文檔的變量范圍(5.1.2)。
            ????·只有一些cond操作符需要轉(zhuǎn)義(5.1.3)。
            ????·沒(méi)有指定根、帶有變量X的文檔,這個(gè)變量可以用application.x和document.x引用(5.1.3)。
            ????·說(shuō)明“application.lastresult$”是一個(gè)ECMAScript數(shù)組(5.1.5)。
            ????·lastresult應(yīng)用程序變量的持續(xù)性說(shuō)明(5.1.5)。
            ????·lastresult以confidence和語(yǔ)法的區(qū)域排序(5.1.5,2.3.1,3.1.4)。
            ????·當(dāng)DTMF語(yǔ)法匹配,application.lastresult$的解釋變量包含匹配的數(shù)字串(5.1.5)。
            ????·對(duì)激活文檔的相對(duì)URL的求值(5.2)。
            ????·catch 元素用最深層(事件在此激發(fā),但catch不在此定義)的元素屬性。(5.2)。
            ????·當(dāng)事件拋出后,VoiceXML通常不指定(5.2.1)。
            ????·VoiceXML事件的處理通常符合XML和DOM2事件處理的模式(5.2,5.2.2,5.2.4)。
            ????·當(dāng)有同樣的或有同樣前綴的名字事件出現(xiàn)時(shí),與<catch>相關(guān)的事件計(jì)數(shù)是遞增的,這影響到5.2.4部分的有正確計(jì)數(shù)的catch句柄的選擇(5.2.2)。
            ????·<catch>的“event”和“count”屬性的定義(5.2.2)。
            ????·當(dāng)用戶掛機(jī)時(shí)在<catch>中沒(méi)有內(nèi)在的限制(5.2.2)。
            ????·<catch>的事件必須是串“.”,它表示所有的事件將被捕獲(5.2.2)。
            ????·沒(méi)有指定的事件屬性的<catch>等于帶有event="."的<catch>(5.2.2,5.2.4)。
            ????·“as if by copy”catch inheritance(5.2,5.2.4)。
            ????·catch元素選擇算法(5.2.4)。
            ????·用前綴匹配作為符號(hào)匹配,而不是字符串匹配(5.2.4)。
            ????·“error.badfetch”預(yù)定義的錯(cuò)誤類型(5.2.6)。
            ????·直到文檔準(zhǔn)備運(yùn)行,error.badfetch拋出。變量初始化是不是執(zhí)行的一部分依賴于平臺(tái)(5.2.6)。
            ????·“error.badfetch”事件拋出的情形說(shuō)明,一個(gè)相似的瀏覽器也許拋出其名字是擴(kuò)展的預(yù)定義事件(5.2.6)。
            ????·應(yīng)用程序和平臺(tái)指定的事件類型應(yīng)該用反轉(zhuǎn)的Internet域名習(xí)慣以防名字的沖突(5.2.6)。
            ????·HTTPS不象HTTP一樣是同樣的協(xié)議(5.2.6)。
            ????·在SESSION的第一個(gè)文檔中出現(xiàn)的錯(cuò)誤,在裝載文檔、進(jìn)入FIA前,錯(cuò)誤出現(xiàn)時(shí)以特定平臺(tái)的方法處理(5.2.6)。
            ????·不將“divide by 0”作為一個(gè)run_time錯(cuò)誤,但它拋出error.semantic錯(cuò)誤(ECMAScript不報(bào)告一個(gè)錯(cuò)誤)(5.2.6)。
            ????·在大多數(shù)情況下,事件error.noauthorization被拋出的情況多于連接失敗(5.2.6)。
            ????·error.unsuport.element事件只在VoiceXML 2.0元素中拋出(5.2.6)。
            ????·如果試圖賦值給一個(gè)沒(méi)有聲明的變量,error.semantic事件拋出。ECMAScript對(duì)象,如:o.foo,可以直接賦值,如果試圖去聲明它們,將產(chǎn)生一個(gè)error.semantic事件(5.3.2)。
            ????·<clear>的namelist也許指定變量而不是form item變量,它們可以被重設(shè)置(5.3.3)。
            ????·在catch元素中的<reprompt>的效果(5.3.6)。
            ????·<reprompt>元素在有<goto>元素的<catch>中的行為(5.3.6)。
            ????·當(dāng)它們以<submit>、<return>、<goto>結(jié)束,在執(zhí)行<catch>元素后,F(xiàn)IA執(zhí)行通常的語(yǔ)音隊(duì)列(5.3.6,附錄 C)。
            ????·在<catch>外面,<reprompt>沒(méi)有任何效果(5.3.6)。
            ????·在文檔變量中的<goto>的URI的效果(5.3.7)。
            ????·在Form item轉(zhuǎn)換時(shí),<goto>所出現(xiàn)的錯(cuò)誤,這些錯(cuò)誤事件在對(duì)話的范圍里被處理(5.3.7)。
            ????·在<goto>中,如果nextitem和expritem引用一個(gè)不存在的form item,一個(gè)error.badfetch事件被拋出(5.3.7)。
            ????·在VoiceXML或ECMAScript中聲明的變量可以被提交(5.3.8)。
            ????·在一些情況下,<submit>可以被中間緩存滿足(5.3.8)。
            ????·<exit>不能拋出一個(gè)“exit”事件(5.3.9)。
            ????·<exit>的“expr”屬性的值是一個(gè)ECMAScript表達(dá)式(5.3.9)。
            ????·沒(méi)有<script>的“type”屬性(5.3.12)。
            ????·<script>與<var>元素和<form>元素中的form item變量一起求值(5.3.12)。
            ????·在<script>元素中的“charset”的定義(5.3.12)。
            ????·<log>的處理是依賴平臺(tái)的(5.3.13)。
            ????·預(yù)取的修改(6.1)。
            ????·“fetchint”屬性的效果(6.1.1)。
            ????·緩存策略的選取(6.1.2)。
            ????·緩存遵循HTTP 1.1的緩存糾正規(guī)則(6.1.2)。
            ????·沒(méi)有標(biāo)志機(jī)制去控制應(yīng)用程序根文檔(6.1.2.1)。
            ????·<meta>的第一個(gè)類型是由屬性名字和內(nèi)容表達(dá),第二個(gè)類型是由http-equiv和內(nèi)容表達(dá)(6.2.1)。
            ????·當(dāng)<property>元素的不同的值在同一級(jí)別上被指定,在文檔次序上的最后一個(gè)有效。
            ????·屬性可以在field input items但不是在control items上設(shè)置(6.3)。
            ????·平臺(tái)指定的屬性的格式(6.3.1)。
            ????·語(yǔ)音合成屬性“completetimeout”和“incompletetimeout”的定義(6.3.2)。
            ????·傳向<subdialog>元素的參數(shù)值永遠(yuǎn)是數(shù)據(jù)(6.4)。
            ????·時(shí)間指定值的定義(6.5)。
            ????·數(shù)字格式用在CSS2中,ASR屬性confidencelevel、sensitivity和speedvsacurracy的值也是這種格式(6.5,6.3.2)。
            ????·在<var>中限制域名和名字屬性,在<goto>中限制nextitem屬性到NMTOKEN;擴(kuò)展<assign>中的名字屬性如NMTOKEN,但也允許“$”(對(duì)于影子變量的同值);限制在<filled>中的namelist屬性到NMTOKENS;擴(kuò)展<exit>、<submit>、<clear>和<return>的namelist屬性如NMTOKENS,但允許“$”(附錄 B,附錄 O)。
            ????·限制<choice>的內(nèi)容模式到PCDAT和<grammar>元素;<emumerate>不能出現(xiàn)在另一個(gè)<enumerate>元素里(附錄 B,附錄 O,2.2.4)。
            ????·(不象schema)DTD不能正確地表達(dá),<metadata>元素可以從其它XML名字空間包含元素(附錄 B)。
            ????·FIA說(shuō)明,application.lastresult$在每一次成功的識(shí)別后賦值(附錄 C)。
            ????·FIA說(shuō)明,在當(dāng)前form和menu里的匹配<link>語(yǔ)法,在當(dāng)前form和menu之外的匹配菜單<choice>語(yǔ)法(附錄 C)。
            ????·FIA規(guī)定,活動(dòng)語(yǔ)法的收集不包括<subdialog>鏈的語(yǔ)法(附錄 C)。
            ????·FIA初始化期間,<script>和form item元素的初始化(附錄 C)。
            ????·在FIA執(zhí)行期間,事件也許在數(shù)點(diǎn)上產(chǎn)生,它們是怎樣處理的取決于FIA的激活部分(附錄 C)。
            ????·在FIA的collect phase,只有從input item和<initial>的語(yǔ)音提示被選擇,它們的提示計(jì)數(shù)不增加。當(dāng)form item執(zhí)行時(shí),在<block>中的語(yǔ)音提示排序開(kāi)始(附錄 C)。
            ????·對(duì)各種DTMF輸入的timeout的使用(附錄 D)。
            ????·如果不能處理非標(biāo)準(zhǔn)VoiceXML元素和屬性,它必須拋出error.badfetch錯(cuò)誤(附錄 F)。
            ????·記錄在內(nèi)置應(yīng)用的解釋和希望的平臺(tái)的依賴性(附錄 P)。
            ????·內(nèi)置DTMF和語(yǔ)音語(yǔ)法的參數(shù)化(附錄 P)。
            ????·相反的參數(shù)到內(nèi)置數(shù)據(jù)的處理(附錄 P)。
            ????·從內(nèi)置類型“number”返回的結(jié)果值(附錄 P)。
            ????·如果不說(shuō)的話,貨幣碼不指定(附錄 P)。
            ????·只有數(shù)字和boolean語(yǔ)法可以參數(shù)化(附錄 P)。
            ????·用<say-as>表達(dá)內(nèi)置值的描寫(xiě)(附錄 P)。
            ????·在<field>中帶有指定內(nèi)置類型語(yǔ)音和DTMF<grammar>元素。
            Miscellaneous
            ????·用XML編碼屬性、推薦的schema屬性和轉(zhuǎn)義的非法XML字符(<、>、&等)更新例子。
            ????·用試驗(yàn)性的media type(如:“application/srgs+xml”)傳遞到IETF。
            ????·增加描寫(xiě)VoiceXML的初始化和它是怎樣與其它工作相關(guān)連的部分(1)。
            ????·為<audio>、<record>指定一組需要的語(yǔ)音格式(1.2.4)。
            ????·關(guān)于語(yǔ)音和DTMF語(yǔ)法、語(yǔ)音、TTS、錄音和Tansfer支持(1.2.5)。
            ????·平臺(tái)應(yīng)該用User_Agent HTTP header來(lái)鑒別它們自身(1.2.5)。
            ????·內(nèi)置類型和基礎(chǔ)語(yǔ)法是提供信息的而不是標(biāo)準(zhǔn)化的(2.3.1,2.3.1.1,2.3.1.2,附錄P)。
            ????·匹配SRGS 1.0規(guī)范的更新部分(3)。
            ????·語(yǔ)義解釋器怎樣映射到form變量的描述(3.1.6)。
            ????·匹配SSML 1.0更新的部分(4)。
            ????·保留變量名字空間“_$”作內(nèi)部應(yīng)用(5.1)。
            ????·帶有“session”、“application”、“document”、“dialog”名字的變量和form items不鼓勵(lì)使用(5.1.2)。
            ????·metadata信息在<metadata>中而不是在<meta>中表達(dá),用<meta>取除推薦的metadata信息。用RDF schema和Dubin Core屬性增加推薦的metadata信息(6.2)。
            ????·當(dāng)解釋器遇到不能處理的屬性時(shí),改變一致性行為。它不能拋出error.unsupport.property,必須忽略屬性(6.3.1)。
            ????·DTD更多用于提供信息而不是標(biāo)準(zhǔn)化(附錄 B)。
            ????·一組需要的語(yǔ)音格式(附錄 E)。
            ????·例如用“audio/x-wav”不代替“audio/wav”,當(dāng)正式地用IETF登記時(shí),增加媒體類型將被采納的記錄 (附錄 E)。
            ????·修改符合VoiceXML處理器的定義,包含需要支持在文檔中描寫(xiě)的所有元素的語(yǔ)法和語(yǔ)義(附錄 F)。
            ????·符合文檔部分引用格式而不是DTD限制(附錄 F)。
            ????·符合DTD是提供信息的,而schema是標(biāo)準(zhǔn)化的。一個(gè)符合的文檔必須在根元素中指定VoiceXML名字空間。Version="2.0"屬性也必須寫(xiě)明,應(yīng)提供“xsi:schemaLocation”來(lái)指明VoiceXML schema的位置。DOCTYPE的聲明是任選的。當(dāng)遇到?jīng)]有VoiceXML指定根元素時(shí),文檔時(shí)處理器的行為是沒(méi)有定義的(附錄 F)。
            ????·修改VoiceXML可以表達(dá)可訪問(wèn)性的需要和論點(diǎn)描述(附錄 H)。
            ????·可重用的附錄(附錄 K)。
            ????·增加引用附錄(附錄 M)。
            ????·增加描述VoiceXML媒體類型和帶有包含致電IETF備忘錄來(lái)登記VoiceXML媒體類型的文件附錄(附錄 N)。
            ????·VoiceXML標(biāo)準(zhǔn)化定義,在語(yǔ)法和合成規(guī)范中,從部分schema中,用兩個(gè)其它的schema來(lái)改編定義(附錄 O)。
            ????·用XML Spy4.4,XSV(June 2002 version)和Xerces 2(Java和C++版本)驗(yàn)證schema(附錄 O)。
            ????·為VoiceXML 2.0增加完整的Schema鏈接(附錄 O)。

            附錄 K 重用性 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 L ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            一、可重用的對(duì)話成分
            ????定義:一個(gè)應(yīng)用程序包的片斷可以被任何應(yīng)用程序和其它可重用的對(duì)話框組件調(diào)用。一個(gè)可重用的對(duì)話框組件(RDC)封裝了與訪問(wèn)者交互的代碼。
            ????可重用的對(duì)話框組件提供了pre_packaged的“out-of-box”功能,此功能可以讓開(kāi)發(fā)者去快速地用所提供的標(biāo)準(zhǔn)的缺省的設(shè)置和行為去建立應(yīng)用程序。他們將開(kāi)發(fā)人員從繁重而錯(cuò)綜復(fù)雜的開(kāi)發(fā)任務(wù)(如創(chuàng)建一個(gè)穩(wěn)定的語(yǔ)音對(duì)話框、信任分?jǐn)?shù)解釋器、錯(cuò)誤恢復(fù)機(jī)制、提示等等)中解脫出來(lái)。如果有必要提供應(yīng)用程序指定的提示、詞匯、重試設(shè)置等等,上述的行為可以由開(kāi)發(fā)人員定制。
            ????在此VoiceXML版本中,只有<subdialog>和<object>是可重用組件。這些組件與在應(yīng)用程序中調(diào)用子過(guò)程相同的方式被調(diào)用。這些組件用一組定義得很好的參數(shù)配置,它們以一種相對(duì)有所限制的方式與調(diào)用者交互,在調(diào)用結(jié)束后,組件會(huì)返回一個(gè)定義得很好的結(jié)果,并控制返回到組件被調(diào)用點(diǎn)。這對(duì)模塊化的重用性有著重要的意義,而且特別容易使用。在<subdialog>和<object>這兩種組件中,只有<subdialog>是VoiceXML的固有功能。從另一個(gè)角度來(lái)講,<object>也許可以提供更高級(jí)、重用性更好的功能,而這些功能是標(biāo)準(zhǔn)中所沒(méi)有的。
            ?
            二、模板和例子
            ????雖然可重用的對(duì)話框組件有上面描述的模塊化、重用性和易于使用等優(yōu)點(diǎn)。這些組件的缺點(diǎn)是它們必須非常小心地設(shè)計(jì)。有時(shí)還會(huì)出現(xiàn)下面的情況,盡管你非常小心地去設(shè)計(jì)了,應(yīng)用程序開(kāi)發(fā)者仍會(huì)遇到組件不能很方便地配置以便處理應(yīng)用設(shè)備的情況。另外,當(dāng)組件與調(diào)用者之間的交互使得組件設(shè)計(jì)者可能去創(chuàng)建一個(gè)組件,這個(gè)組件可以工作在一個(gè)全異的環(huán)境中。它也可能使得用戶的與組件的交互看起來(lái)與應(yīng)用程序的其它部分分離。
            ????在這種情形下,應(yīng)用程序開(kāi)發(fā)者也許希望以例子和模板的方式重用VoiceXML源代碼。這些代碼可以非常容易地用來(lái)集成到一個(gè)特定的應(yīng)用程序中。
            ????這些模板和例子可以被分離的VoiceXML代碼創(chuàng)建,然后可以分發(fā)而應(yīng)用到其它應(yīng)用程序中。這種形式的可重用性允許用戶拷貝VoiceXML代碼在必要時(shí)去修改它。
            ????VoiceXML通過(guò)保持在Form元素之間的分離促進(jìn)了這種形式的可重用性。就這點(diǎn)來(lái)講,VoiceXML和[HTML]是相同的。一個(gè)HTML表可以從一個(gè)HTML頁(yè)面拷貝到另一個(gè),因?yàn)楸砜梢圆还芩那昂箧溄佣@示出來(lái)。
            ????雖然參數(shù)化、模塊化和可維護(hù)性可以被這種方式犧牲,但是它有簡(jiǎn)單、快速和不尋常的可定制性。

            附錄 L Acknowledgements 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 K ??附錄 M??附錄 N??附錄 O??附錄 P
            ?
            ????此W3C規(guī)范基于VoiceXML 1.0,VoiceXML 1.0是2000年5月由Voice Forum制定的。 VoiceXML Forum的作家有:IBM的Linda Boyer;Lucent Technologies的Peter Danielsen;Motorola的Jim Ferrans;AT&T的Gerald Karam;Motorola的David Ladd;IBM的Bruce Lucas;Lucent Technologies的Kenneth Rehor。
            ????參與此版本寫(xiě)作的有W3C Voice Browser Working Group的成員。下列人員對(duì)此規(guī)范作出了特別的貢獻(xiàn)。
            ?????? ·Nuance Communications的Dan Burnett
            ?????? ·Unisys的Deborah Dahl
            ?????? ·Lucent的Peter Danielsen
            ?????? ·Cisco的Martin Dragomirecky
            ?????? ·Motorola的Jim Ferrans
            ?????? ·SpeechWorks International的Andrew Hunt
            ?????? ·AT&T的Gerald Karam
            ?????? ·Dynamicsoft的Dave Ladd
            ?????? ·Sun Microsystems的Paul Lamere
            ?????? ·IBM的Bruce Lucas
            ?????? ·PipeBeach的Scott McGlashan
            ?????? ·General Magic的Mitsuru Oshima
            ?????? ·Tellme的Brad Porter
            ?????? ·Nuance Communications的Ken Rehor
            ?????? ·Tellme的Steph Tryphonas
            ????VoiceXML工作組還將感謝Dave Raggett和Jim Larson在管理上所給予的無(wú)價(jià)的支持。

            附錄 M 參考 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 K ??附錄 L??附錄 N??附錄 O??附錄 P
            ?
            一、標(biāo)準(zhǔn)化參考
            [CSS2]
            ????"Cascading Style Sheets,level 2,CSS2 Specification",Bos et al.W3C Recommendation,May 1998.
            ????請(qǐng)參照:http://www.w3c.org/TR/REC-CSS2/
            [ECMASCRIPT]
            ????"Standard ECMA-262 ECMAScript Language Specification", Standard ECMA-262, December 1999.
            ????請(qǐng)參照:http://www.ecma.ch/ecma1/STAND/ECMA-262.asp
            [RFC1521]
            ????"MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies", IETF RFC 1521, 1993.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc1521.txt
            [RFC2396]
            ????"Uniform Resource Identifiers (URI): Generic Syntax", IETF RFC 2396, 1998.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc2396.txt
            [RFC2616]
            ????"Hypertext Transfer Protocol -- HTTP/1.1", IETF RFC 2616, 1999.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc2616.txt
            [RFC2806]
            ????"URLs for Telephone Calls", IETF RFC 2806, 2000.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc2806.txt
            [RFC3066]
            ????"Tags for the Identification of Languages", IETF RFC 3066, 2001.
            ????Note that [XML] adopted RFC3066 through an errata as of 2001-02-22. RFC3066 obsoletes [RFC1766].
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc3066.txt
            [SSML]
            ????"Speech Synthesis Markup Language Version 1.0". Burnett, Walker and Hunt. W3C Working Draft, December 2002.
            ????請(qǐng)參照:http://www.w3.org/TR/2002/WD-speech-synthesis-20021202/
            [SRGS]
            ????"Speech Recognition Grammar Specification Version 1.0". Hunt and McGlashan. W3C Candidate Recommendation, June 2002.
            ????請(qǐng)參照:http://www.w3.org/TR/2002/CR-speech-grammar-20020626/
            [UNICODE]
            ????"The Unicode Standard". The Unicode Consortium.
            ????請(qǐng)參照:http://www.unicode.org/unicode/standard/standard.aspl
            [XML]
            ????"Extensible Markup Language (XML) 1.0". Bray et al. W3C Recommendation.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/REC-xml-20001006
            [XML-BASE]
            ????"XML Base", J. Marsh, editor, W3C Recommendation, June 2001.
            ????請(qǐng)參照:http://www.w3.org/TR/2001/REC-xmlbase-20010627/
            [XMLNAMES]
            ????"Namespaces in XML". Bray et al. W3C Recommendation, January 1999.
            ????請(qǐng)參照:http://www.w3.org/TR/1999/REC-xml-names-19990114/
            ?
            二、Informative References
            [ATAGIO]
            ????"Authoring Tool Accessibility Guidelines 1.0", Treviranus et al. W3C Recommendation, Feburary 2000.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/REC-ATAG10-20000203/
            [DC]
            ????"Dublin Core Metadata Initiative", a Simple Content Description Model for Electronic Resources.
            ????請(qǐng)參照:http://purl.org/DC/
            [HTML]
            ????"HTML 4.01 Specification", Dave Raggett et al. W3C Recommendation, December 1999.
            ????請(qǐng)參照:http://www.w3.org/TR/1999/REC-html401-19991224/
            [IANA]
            ????"IANA Character Sets", IANA.
            ????請(qǐng)參照:http://www.iana.org/assignments/character-sets
            [ISO4217]
            ????"ISO 4217:2001 Codes for the representation of currencies and funds", ISO, 2001.
            ????請(qǐng)參照:http://www.iso.ch/
            [JSAPI]
            ????"Java Speech API", Sun Microsystems, Inc.
            ????請(qǐng)參照:http://www.javasoft.com/products/java-media/speech/index.aspl
            [JSGF]
            ????"JSpeech Grammar Format", Andrew Hunt, W3C Note, June 2000.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/NOTE-jsgf-20000605/
            [NLSML]
            ????"Natural Language Semantics Markup Language for the Speech Interface Framework", Deborah A. Dahl. W3C Working Draft, November 2000.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/WD-nl-spec-20001120/
            [RDF-SYNTAX]
            ????"Resource Description Framework (RDF) Model and Syntax Specification", Ora Lassila and Ralph R. Swick. W3C Recommendation, February 1999.
            ????請(qǐng)參照:http://www.w3.org/TR/REC-rdf-syntax/
            [RDF-SCHEMA]
            ????"Resource Description Framework (RDF) Schema Specification 1.0", Dan Brickley and R.V. Guha. W3C Candidate Recommendation, March 2000.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/CR-rdf-schema-20000327/
            [RFC1766]
            ????"Tags for the Identification of Languages", IETF RFC 1766, 1995.
            ????Note that [XML] adopted RFC3066 through an errata as of 2001-02-22. [RFC3066] obsoletes RFC1766.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc1766.txt
            [RFC2119]
            ????"Key words for use in RFCs to Indicate Requirement Levels", IETF RFC 2119, 1997.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc2119.txt
            [RFC2361]
            ????"WAVE and AVI Codec Registries", IETF RFC 2361, 1998.
            ????請(qǐng)參照:http://www.ietf.org/rfc/rfc2361.txt
            [SISR]
            ????"Semantic Interpretation for Speech Recognition", Luc Van Tichelen. W3C Working Draft, November 2001.
            ????請(qǐng)參照:http://www.w3.org/TR/2001/WD-semantic-interpretation-20011116/
            [UAAGIO]
            ????"User Agent Accessibility Guidelines 1.0", Jacobs et al. W3C Proposed Recommendation, October 2002.
            ????請(qǐng)參照:http://www.w3.org/TR/2002/PR-UAAG10-20021016/
            [VOICEXML-1.0]
            ????"Voice eXtensible Markup Language 1.0", Boyer et al, W3C Note, May 2000.
            ????請(qǐng)參照:http://www.w3.org/TR/2000/NOTE-voicexml-20000505/
            [WAI-WEBCONTENT]
            ????"Web Content Accessibility Guidelines 1.0", Chisholm et al. W3C Recommendation, May 1999.
            ????請(qǐng)參照:http://www.w3.org/TR/WAI-WEBCONTENT/
            [XAG]
            ????"XML Accessibility Guidelines", Dardailler et al. W3C Working Draft, October 2002.
            ????請(qǐng)參照:http://www.w3.org/TR/xag.aspl

            附錄 N 媒體類型和文件后綴 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 K ??附錄 L??附錄 M??附錄 O??附錄 P
            ?
            ????W3C Voice Browser Working Group已經(jīng)應(yīng)用IETF為VoiceXML登記一個(gè)媒體類型(http://www.ietf.org/internet-drafts/draft-tryphonas-voicexml-media-reg-00.txt),要求的媒體類型為application/voicexml/+xml。
            ????W3C Voice Browser Working Group已經(jīng)采納用“.vxml”作為VoiceXML文檔的文件名后綴。

            附錄 O Schema 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 K ??附錄 L??附錄 M??附錄 N??附錄 P
            ?
            ????這部分是標(biāo)準(zhǔn)化的。
            ????VoiceXML Schema位于http://www.w3.org/TR/voicexml20/vxml.xsd
            ????VoiceXML schema依賴于定義于VoiceXML名字空間的其它schema。
            ??????·grammar-adapter.xsd:用于VoiceXML名字空間數(shù)據(jù)類型的定義。
            ??????·synthesis-adapter.xsd:用于VoiceXML schema中的屬性和屬性組。
            ??????·vxml-grammar-restriction.xsd:此schema參照Speech Recognition Grammar Specification 1.0[SRGS]和限制嵌入在VoiceXML名字空間的一些定義。
            ??????·vxml-grammar-extension.xsd:此schema參照vxml-grammar-restriction.xsd以及為VoiceXML擴(kuò)展一些定義。
            ??????·vxml-synthesis-restriction.xsd:此schema參照Speech Synthesis Markup Language 1.0[SSML]非名字空間的schema,擴(kuò)展和限制一些嵌入在VoiceXML名字空間的定義。
            ??????·vxml-synthesis-extension.xsd:此schema參照vxml-synthesis-restriction.xsd和擴(kuò)展一些VoiceXML的定義。
            ????VoiceXML 2.0中的完整Speech Interface Framwork schema可以從下面網(wǎng)頁(yè)得到:http://www.w3.org/TR/voicexml20/vxml-schema.zip
            ?
            附錄 P 內(nèi)置語(yǔ)法類型 附錄 A ??附錄 B??附錄 C??附錄 D??附錄 E
            ? 附錄 F ??附錄 G??附錄 H??附錄 I??附錄 J
            ? 附錄 K ??附錄 L??附錄 M??附錄 N??附錄 O
            ?
            ????在章節(jié)2.3.1中的<field>屬性用來(lái)為某個(gè)基本類型指定內(nèi)置語(yǔ)法的。平臺(tái)對(duì)基本內(nèi)置語(yǔ)法的支持是可選的。如果一個(gè)平臺(tái)確實(shí)支持內(nèi)置類型,它必須盡可能地遵照本附錄中的描述。此規(guī)范中的后一個(gè)版本也許會(huì)提供一個(gè)機(jī)制,映射基本內(nèi)置語(yǔ)法到特定的應(yīng)用程序語(yǔ)法。
            ????每個(gè)內(nèi)置類型有一個(gè)對(duì)返回值格式的約定,它是獨(dú)立于語(yǔ)言和執(zhí)行的。內(nèi)置域的返回類型是除Boolean域類型之外的串。要訪問(wèn)實(shí)際的識(shí)別結(jié)果,作者可以訪問(wèn)影子變量name$.utterance。做為選擇,開(kāi)發(fā)者可以訪問(wèn)application.lastresult$,在此,application.lastresult$.interpretation與application.lastresult$.uttrance同樣的串值。
            ????內(nèi)置類型以VoiceXML應(yīng)用程序開(kāi)發(fā)人員可以假定一些用戶輸入的持續(xù)性來(lái)定義。這允許幫助信息和其它提示獨(dú)立于平臺(tái)。例如,boolean類型的語(yǔ)法應(yīng)該在最低限度上允許用英語(yǔ)來(lái)回答“yes”和"“no”。但是可以增加其它選擇,如“yeah”和“nope”。
            ????當(dāng)一個(gè)應(yīng)用程序需要超過(guò)內(nèi)置類型的行為時(shí),就應(yīng)該用清晰的域語(yǔ)法。下面是這樣一些情況,應(yīng)用程序必須提供一個(gè)清晰的域語(yǔ)法,以便保證有著持續(xù)用戶界面的應(yīng)用程序的強(qiáng)移植性。
            ??????·一個(gè)平臺(tái)是不需要去執(zhí)行一種語(yǔ)法,它可以接受所有可能的、能被內(nèi)置語(yǔ)法返回的值。例如,貨幣內(nèi)置語(yǔ)法定義了一種返回值,其格式可以容納很大范圍的貨幣值[ISO4217]。平臺(tái)不必支持包括任何世界貨幣的語(yǔ)音輸入,因?yàn)樗鼤?huì)消極地影響識(shí)別的精確度。相似的,數(shù)值內(nèi)置語(yǔ)法可以返回正的或負(fù)的浮點(diǎn)數(shù),但是語(yǔ)法不必支持所有可能說(shuō)出來(lái)的浮點(diǎn)數(shù)。
            ??????·內(nèi)置語(yǔ)法也限制了處理沒(méi)有指定的語(yǔ)音輸入的能力。例如,“20 peso”不能解決指定的[ISO4217]貨幣碼,因?yàn)椤皃eso”是許多國(guó)家的貨幣名字。在這種情況下,平臺(tái)根據(jù)語(yǔ)言也許會(huì)返回一個(gè)指定的貨幣碼,或消去貨幣碼。
            ????所有的內(nèi)置類型必須支持語(yǔ)音和DTMF輸入。
            ????對(duì)于每一種內(nèi)置類型,一組可以接受的語(yǔ)音輸入是依賴于平臺(tái)的,而且隨語(yǔ)言而變化。內(nèi)置類型返回的值可以用<say-as>元素讀出。VoiceXML通過(guò)增加對(duì)應(yīng)于每個(gè)內(nèi)置類型的“type”值,在[SSML]中擴(kuò)展<say-as>。這些值取“vxml:<type>”的形式,其中type是內(nèi)置類型。內(nèi)置類型的精確表現(xiàn)是隨平臺(tái)和語(yǔ)言而變化的。
            ????內(nèi)置類型是:
            boolean 輸入包括適于現(xiàn)今語(yǔ)言中肯定和否定的詞句。DTMF1是肯定的,2是否定定的。對(duì)肯定來(lái)講,其結(jié)果是ECMAScript的true,對(duì)否定來(lái)講是false。值將作為“true”和“false”串發(fā)送。如果field的值后來(lái)用在帶有“vxml:boolean”類型的<say-as>中,它將作為適于當(dāng)前語(yǔ)句的肯定和否定的詞句。
            date 指定日期的有效語(yǔ)音輸入,包括月天和年。DTMF輸入是:四個(gè)數(shù)字表達(dá)年,后面的兩個(gè)數(shù)字表達(dá)月,兩個(gè)數(shù)字表達(dá)天。結(jié)果是yyyymmdd格式的固定日期串,如20000704。如果年沒(méi)有指定,yyyy是以這樣的格式返回的“????”;如果月沒(méi)有指定,mm用“??”返回。如果天沒(méi)有指定,天以“??”的格式返回。如果“vxml:date”類型的值用在<say-as>中,它將按照當(dāng)前指定的語(yǔ)言說(shuō)出。
            digits 有效的語(yǔ)音和DTMF輸入包括一個(gè)或多個(gè)數(shù)字,0到9。其結(jié)果是一個(gè)數(shù)字串。如果結(jié)果以“vxml:digits”的類型用在<say-as>中,它將以適于當(dāng)前語(yǔ)言的數(shù)字序列說(shuō)出。一個(gè)用戶可以說(shuō)出“two on two seven”,但不是“twenty one hundred and twenty-seven”。一個(gè)平臺(tái)也許支持這樣的結(jié)構(gòu)“two double-five eight”。
            currency 有效的語(yǔ)音輸入包括指定貨幣數(shù)量的詞句。對(duì)于DTMF輸入,“*”鍵作為小數(shù)點(diǎn),其結(jié)果將是UUUmm.nn格式的串。在這里,根據(jù)ISO標(biāo)準(zhǔn)4217[ISO4217]UUU是三個(gè)字符的貨幣標(biāo)志。如果貨幣不能被用戶說(shuō)出,如果貨幣不能可靠地決定(是“dollar”還是“peso”?),如果field是帶有“vxml:currency”類型用在<say-as>中的,它將被作為下貨幣數(shù)量用當(dāng)前的語(yǔ)言說(shuō)出。
            number 數(shù)字的語(yǔ)音輸入,如“one hundred twenty-three”,或“five point three”。用“*”表示小數(shù)點(diǎn)的有效的正數(shù)DTMF輸入,結(jié)果是一個(gè)從0到9的串。也許還包含小數(shù)點(diǎn)(“.”)和加號(hào)、減號(hào)。當(dāng)用在數(shù)字表達(dá)式中時(shí),ECMAScript自動(dòng)地將結(jié)果串轉(zhuǎn)換成數(shù)值。結(jié)果不能有前導(dǎo)零(如果有的話,ECMAScript會(huì)將它解釋成八進(jìn)制)。如果帶有“vxml:number”類型的field用在<say-as>中,它將用適于當(dāng)前語(yǔ)言的數(shù)字說(shuō)出。
            phone 有效的語(yǔ)音輸入包括指定電話號(hào)碼的句子。DTMF星號(hào)“*”代表“x”,其結(jié)果是一個(gè)串,它包含由一串?dāng)?shù)字和可選地包含字符“x”來(lái)表示帶有分機(jī)的電話號(hào)碼。對(duì)北美來(lái)講,這個(gè)電話號(hào)碼可能是“8005551234x789”。如果帶有“vxml:phone”類型的field用在<say-as>中,它將作為電話號(hào)碼用當(dāng)前的語(yǔ)言說(shuō)出。
            time 用來(lái)指定時(shí)間的有效語(yǔ)音輸入,包括時(shí)和分。其結(jié)果是hhmmx格式的五字符串。X是“a”或“p”,“a”代表AM,“p”代表PM。H用24制式的時(shí)鐘表示time,“?”表示模糊time。輸入可以用DTMF。因?yàn)闆](méi)有DTMF的約定來(lái)達(dá)AM/PM,所以時(shí)間的輸入往往以“h”、“?”結(jié)束。如果帶有“vxml:time”類型的field用在<say-as>中,它將用適用于當(dāng)前語(yǔ)言的時(shí)間說(shuō)出。
            表64:內(nèi)置類型
            ????一個(gè)帶有內(nèi)置語(yǔ)法類型的<field>元素的例子:
                  <field name="lo_fat_meal" type="boolean">
                    <prompt>
                       Do you want a low fat meal on this flight?
                    </prompt>
                    <help>
                       Low fat means less than 10 grams of fat, and under 250 calories.
                   </help>
                    <filled>
                      <prompt>
                         I heard <emphasis><say-as interpret-as="vxml:boolean">
                        <value expr="lo_fat_meal"/></say-as></emphasis>.
                      </prompt>
                   </filled>
                  </field>
            ????在這個(gè)例子中,boolean類型表示輸入是各種true和false形式。給field實(shí)際賦值可能是true或false。它將用合適的肯定和否定方式讀出。
            ????在下一個(gè)例子中,數(shù)字表示輸入可能是語(yǔ)音輸入或是鍵盤(pán)數(shù)字。結(jié)果保存為串,用“vxml:digits”的<say-as>類型表達(dá)為數(shù)字。也就是念作“one-two-three”而不是“one hundred twenty-three”。<filled>元素檢查field是否有12個(gè)數(shù)字。如果沒(méi)有,用戶便會(huì)聽(tīng)到錯(cuò)誤信息。
                  <field name="ticket_num" type="digits">
                    <prompt>
                       Read the 12 digit number from your ticket.
                    </prompt>
                    <help>The 12 digit number is to the lower left.</help>
                    <filled>
                      <if cond="ticket_num.length != 12">
                        <prompt>
                           Sorry, I didn't hear exactly 12 digits.
                        </prompt>
                        <assign name="ticket_num" expr="undefined"/>
                      <else/>
                        <prompt>
                           I heard <say-as interpret-as="vxml:digits">
                           value expr="ticket_num"/></say-as>
                        </prompt>
                      </if>
                   </filled>
                  </field>
            ????內(nèi)置boolean和內(nèi)置數(shù)字語(yǔ)法可以參數(shù)化。這可以清晰地用“builtin:”URI格式引用內(nèi)置語(yǔ)法。用一個(gè)URI-style的查詢語(yǔ)法,在<grammar>元素中具有type?param=value格式的src屬性,或在field中的type屬性。
                  <grammar src="builtin:dtmf/boolean?y=7;n=9"/>
            										
                  <field type="boolean?y=7;n=9">
                    <prompt>
                       If this is correct say yes or press seven, if not, say no or press nine.
                    </prompt>
                   </field>
            										
                    <field type="digits?minlength=3;maxlength=5">
                      <prompt>Please enter your passcode</prompt>
                   </field>
                  </field>
            ????在此,<grammar>元素參數(shù)化內(nèi)置DTMF語(yǔ)法。第一個(gè)<field>參數(shù)化內(nèi)置DTMF語(yǔ)法(語(yǔ)音語(yǔ)法將象通常一樣激活),第二個(gè)<field>參數(shù)化內(nèi)置的DTMF和語(yǔ)音語(yǔ)法。沒(méi)有給指定語(yǔ)法類型定義的參數(shù)將被忽略。如:“builtin:grammar/Boolean?y=7”。
            ????digits和boolean語(yǔ)法可以參數(shù)化如下:
            Digits?minlength=n 具有至少n位數(shù)字的串,應(yīng)用于語(yǔ)音和DTMF語(yǔ)法。如果minlength與length或maxlength屬性沖突,error.badfetch事件將拋出。
            Digits?maxlength=n 一個(gè)串最多有n位數(shù),應(yīng)用于語(yǔ)音和DTMF語(yǔ)法,如果maxlength與length或minlength屬性沖突,error.badfetch事件將拋出。
            Digits?length=n 一個(gè)有n位數(shù)的串,應(yīng)用于語(yǔ)音和DTMF輸入,如果length與minlength或maxlength沖突,error.badfetch事件拋出。
            Boolean?y=d 一個(gè)語(yǔ)法,它視d鍵為肯定,它只適用于DTMF語(yǔ)法。
            Boolean?n=d 一個(gè)語(yǔ)法,它視d鍵為否定,它只適用于DTMF語(yǔ)法。
            表65:digits和boolean語(yǔ)法的參數(shù)化
            ????記住,可以指定多于一個(gè)語(yǔ)法,它們之間用“;”分隔,上面有這樣的例子。在<grammar>元素中,src屬性URI象上面所指示的一樣,必須以builtin:grammar或builtin:dtmf開(kāi)頭,象上面所表示的一樣。當(dāng)<grammar>元素的mode屬性設(shè)為“DTMF”,而且用在<field>中,它將覆蓋缺省的DTMF語(yǔ)法。
            posted on 2006-09-16 23:07 鐵觀音 閱讀(3262) 評(píng)論(0)  編輯 收藏 引用 所屬分類: VoiceXML2.0規(guī)范
            国产亚州精品女人久久久久久 | 粉嫩小泬无遮挡久久久久久| 99久久精品国产一区二区| 亚洲国产精品无码久久久蜜芽| 亚洲欧美日韩精品久久亚洲区| 久久国产成人精品国产成人亚洲| 麻豆精品久久久一区二区| 精品午夜久久福利大片| 91久久九九无码成人网站| 伊人久久综在合线亚洲2019| 99久久精品国产一区二区蜜芽| 国产精品免费久久久久影院| 热99re久久国超精品首页| 久久久精品日本一区二区三区| 久久伊人中文无码| 久久亚洲精品无码aⅴ大香| 国内精品久久久久影院老司 | 五月丁香综合激情六月久久| 欧美精品久久久久久久自慰| 久久久精品人妻一区二区三区四| 99久久精品影院老鸭窝| 伊人久久大香线蕉精品| 无码8090精品久久一区| 久久天堂AV综合合色蜜桃网| 久久综合九色综合欧美狠狠| 久久亚洲精品无码观看不卡| 精品一二三区久久aaa片| 久久久婷婷五月亚洲97号色| 狠狠色伊人久久精品综合网| 精品久久久久久久久免费影院| 国产99精品久久| 青青草原综合久久大伊人导航 | 亚洲性久久久影院| 精品久久久噜噜噜久久久| 久久久久久久亚洲精品| 久久人人爽人人爽人人片AV不| 久久综合久久综合久久| 久久综合亚洲色一区二区三区| 香蕉久久一区二区不卡无毒影院| 2020久久精品亚洲热综合一本| 亚洲一区中文字幕久久|