• <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 評論 :: 0 Trackbacks
            第三章??User Input(Grammars)
            ?
            第一節 Speech Grammars ?
            ?
            ????<grammar>元素用于提供一個語音語法:
            ??????·該語法指定了一系列要匹配的短語,用戶可能說出這些短語用于執行一個操作或提供一些信息。
            ??????·對于一個要匹配的短語,該語法返回一個相應的語義解釋。返回的可以是一個簡單的值(例如一個字符串),一組成對的屬性――值(例如年、月、日),或一個嵌套的對象(對于復雜的請求)。
            ????<grammar>元素適用于滿足上述要求的任意的語法格式。VoiceXML平臺必須至少支持一種通用的格式,即W3C SRGS的XML格式。VoiceXML平臺應該支持W3C SRGS的ABNF格式。VoiceXML平臺可以選擇支持SRGS以外的語法格式。例如,平臺可能借助<grammar>元素對PCDATA的支持來嵌入一個專有的語法,或使用src或type屬性引用一個外部的語法。
            ????VoiceXML平臺必須是一個合格的XML格式的語法處理器,如W3C SRGS中定義的。雖然這樣使得平臺要處理文檔中定義的一個或多個“xml:lang”屬性,但是并不要求平臺必須是多語言的。當遇到一種不支持的語言時,平臺要拋出error.unsupported.language事件,該事件在它的"_message"變量中指定了這種不支持的語言。
            ????SRGS的XML格式的元素
            ????下面是在W3C SRGS的XML格式中定義的元素,它們在VoiceXML2.0中是可用的。本文檔沒有重復定義這些元素,請參考W3C SRGS中的定義和例子。
            元素 作用 章節鏈接
            <grammar> XML格式語法的根元素。 4.
            <meta> 等價于HTTP元內容的頭部聲明。 4.11.1
            <metadata> XML元數據內容的頭部聲明。 4.11.2
            <lexicon> 發音詞典的頭部聲明。 4.10
            <rule> 定義一條語法展開規則。 3.
            <token> 定義一個可作為輸入的詞或其他實體。 2.1
            <ruleref> 引用一條本地或外部定義的規則。 2.2
            <item> 定義一個可選的、重復的或可能的展開項。 2.3
            <one-of> 定義一組可供選擇的規則展開項。 2.4
            <example> 包含在一個規則定義中的元素,該元素提供了一個匹配該規則的輸入的例子。 3.3
            <tag> 定義一個任意的字符串,該字符串可作為該展開規則的語義解釋。 2.6
            表27:SRGS(XML 格式)的元素
            ?
            一、Inline Grammars
            ????<grammar>元素可用于指定一個聯機語法或外部語法。聯機語法由<grammar>元素的內容指定,它定義了一個完整的語法:
                  <grammar type="media-type" mode="voice">
                     inline speech grammar
                  </grammar>
            ????在這種情況下,有必要把內容封裝在XML的CDATA段中。對于聯機語法,<grammar>元素的type屬性指定了一個媒體類型,該媒體類型控制著<grammar>元素內容的解釋。
            ????下面是一個聯機語法的例子,是W3C SRGS的XML格式的:
                  <grammar mode="voice" xml:lang="en-US" version="1.0" root="command">
                     <!-- Command is an action on an object -->
                     <!-- e.g. "open a window" -->
                     <rule id="command" scope="public">
                       <ruleref uri="#action"/> <ruleref uri="#object"/>
                     </rule>
            										
                     <rule id="action">
                       <one-of>
                         <item> open </item>
                         <item> close </item>
                         <item> delete </item>
                         <item> move </item>
                       </one-of>
                     </rule>
            										
                     <rule id="object">
                       <item repeat="0-1">
                       <one-of> <item> the </item> <item> a </item> </one-of>
                       <one-of>
                         <item> window </item>
                         <item> file </item>
                         <item> menu </item>
                       </one-of>
                     </rule>
                  </grammar>
            ????下面這個語法和上面的效果是一樣的,不過它是W3C SRGS的ABNF格式的。因為VoiceXML平臺不是必須支持這種格式的,所以這種格式的語法可移植性比較差。
                  <grammar mode="voice" type="application/srgs">
                     #ABNF 1.0;
                     language en-US;
                     mode voice;
                     root $command;
                       public $command = $action $object;
                       $action = open | close | delete | move;
                       $object = [the | a] (window | file | menu);
                  </grammar>
            ?
            二、External Grammars
            ????外部語法是由form的<grammar>元素指定的。
                  <grammar src="URI" type="media-type"/>
            ????在這種情況下,屬性type是可選的,因為如果沒有指定該屬性,解釋器環境會試圖動態的確定它的類型(例如,使用服務器特定的媒體類型,文件擴展名或內容自檢)。
            ????如果指定了src屬性,且有一個聯機語法作為該<grammar>元素的內容,則拋出error.badfetch事件。
            ????下面的例子引用了一個W3C SRGS的XML格式的外部語法。
                  <grammar type="application/srgs+xml" src="http://www.grammar.example.com/date.grxml"/>
            ????下面的例子引用了一個W3C SRGS的ABNF格式的外部語法。和上面的例子的效果是一樣的。
                  <grammar type="application/srgs" src="http://www.grammar.example.com/date.gram"/>
            ?
            三、Grammar Weight
            ????<grammar>元素的weight屬性指定了該語法的權重。
                  <grammar weight="0.6" src="form.grxml" type="application/srgs+xml"/>
            ????<grammar>元素,包括<link>、<field>和<form>元素中的,都有這個屬性,語法可以是聯機語法、外部語法或內置語法。
            ????屬性weight遵循W3C SRGS中關于weight的定義。屬性weight的值是一個簡單的沒有指數的正的浮點數。合法的格式有“n”,“n.”,“.n” 和“n.n”,其中n是一位或多位數字的序列。
            ????在語音識別的搜索范圍內,weight是影響語法被選中的可能性的一個因素。Weight屬性的值為1.0時相當于沒有指定weight屬性。Weight屬性值大于1.0時,該語法被選中的可能性就比較大。反之,weight屬性值小于1.0時,可能性就比較小。如果沒有指定該屬性,則所有激活的語法的可能性一樣。
                   <link event="help">
                     <grammar weight="0.5" mode="voice" version="1.0" root="help">
                       <rule id="help" scope="public">
                         <item repeat="0-1">Please</item> help
                       </rule>
                     </grammar>
                   </link>
            										
                   <form>
                      <grammar src="form.grxml" type="application/srgs+xml"/>
                      <field name="expireDate">
                         <grammar weight="1.2" src="http://www.example.org/grammar/date"/>
                      </field>
                   </form>
            ????在上面的例子中,weight的語義等同于下面的XML語法:
                   <grammar root="r1" type="application/srgs+xml">
                      <rule id="r1">
                       <one-of>
                         <item weight="0.5"> <ruleref uri="#help"/> </item>
                         <item weight="1.0"> <ruleref uri="form.grxml"/> </item>
                         <item weight="1.2"> <ruleref uri="http://www.example.org/grammar/date"/> </item>
                       </one-of>
                     </rule>
            										
                     <rule id="help">
                       <item repeat="0-1">Please</item> help
                     </rule>
                   </grammar>
            ????隱式的語法,如<option>元素中的,不支持weight。如果需要用weight屬性,請使用<grammar>元素代替隱式語法控制weight。
            ????語法的weight屬性值只影響語法的處理,不會直接影響到語法結果的后期處理,包括當用戶的輸入匹配了多個激活的語法時的語法優先權(見3.1.4節)。
            ????Weight屬性對DTMF語法沒有影響(見3.1.2節)。在<grammar>元素中,如果屬性mode為dtmf時,則該<grammar>元素指定的weight屬性被忽略。
                  <!-- weight will be ignored -->
                  <grammar mode="dtmf" weight="0.3" src="http://www.example.org/dtmf/number"/>
            ????恰當的weight值是很難確定的。猜測的weight值對于提高識別的性能沒有任何幫助。有效的weight值是通過對自然語言和特定平臺上的原始數據長期研究得到的。此外,語法的weight是依賴于平臺的。注意,不同的ASR引擎對于相同的weight值可能有不同的理解。因此,在一個特定平臺上工作得好好的weight值在其他的平臺上可能會得到不同的結果。
            ?
            四、Grammar Element
            ????<grammar>元素從W3C SRGS繼承的屬性:
            version 它定義了語法的版本號。
            xml:lang 該語法的語言標識符(例如,“fr-CA”表示 加拿大法語)。如果缺省,將從文檔中繼承。
            mode 其值為voice或dtmf。說明該語法是匹配語音的或是匹配 DTMF 的輸入。
            root 定義該語法的根規則。
            tag-format 定義該語法中所有的<tag>元素的內容格式。
            xml:base 定義一個基本URI,用于解析該語法中的相對URI。該屬性的優先權高于<vxml>元素中的相應屬性。如果缺省,則從文檔中繼承。
            表28:<grammar>元素從SRGS中繼承的屬性
            ????上述屬性的用法和解釋由以下幾個方面決定:
            ??????1、SRGS的XML格式的聯機語法:由SRGS決定。SRGS規定屬性version是必須的,且它的值為"1.0";屬性root是必須的,且它的值確定了要激活哪一條規則;其他的屬性是可選的。
            ??????2、SRGS的ABNF格式的聯機語法:平臺必須忽略上述任何指定的屬性。
            ??????3、SRGS的XML和ABNF格式的外部語法:平臺必須忽略上述任何指定的屬性。
            ??????4、所有其他的語法類型:任何指定的屬性的用法和解釋是依賴于平臺的。
            ????<grammar>元素中VoiceXML2.0增加的屬性:
            src 指定一個URI。如果引用一個外部語法,該屬性指定了該語法的位置和該語法中的一個規則名(可選的)。該URI被作為一個規則引用來解釋,詳見SRGS的2.2節。但是,并不是所有的規則引用的形式都被VoiceXML允許。規則引用的能力將在后面詳細描述。
            scope 值為“document”或“dialog”。如果為“document”,則該語法在當前文檔(和相關的應用葉文檔)所有的dialog中都是激活的。如果值為“dialog”,則該語法只在該form中激活。如果缺省,則該語法的作用域由它的父元素決定。關于語法作用域和優先權的描述見3.1.3節。
            type 該語法的媒體類型。該屬性值的優先權高于其他可能存在的媒體類型(例如HTTP或RTSP交換中的“Content-type”,或文件擴展名)。如果該屬性缺省,解釋器環境將試圖動態的確定它的媒體類型(例如,使用服務器特定的媒體類型、文件擴展名或內容自檢)。如果語法的內容包含在該元素中,且沒有指定該屬性,就假定該媒體類型為一個XML語法。 如果該語法源沒有包含選定媒體類型的正確的內容,當使用該語法時,拋出一個錯誤W3C的XML格式語法暫定的媒體類型為“application/srgs+xml”,ABNF格式語法暫定的媒體類型為“application/srgs”。
            weight 指定該語法的weight。見3.1.1.3節。
            fetchhint 見6.1節。默認為grammarfetchhint property。
            fetchtimeout 見6.1節。默認為fetchtimeout property。
            maxage 見6.1節。默認為grammarmaxage property。
            maxstale 見6.1節。默認為grammarmaxstale property。
            表29:<grammar>元素中VoiceXML2.0增加的屬性
            ??????必須指定屬性src或一個聯機語法(不是指定兩個),否則會拋出一個error.badfetch事件。
            ????VoiceXML 2.0也擴展可<grammar>元素,允許在PCDATA中嵌入各種格式的語法,包括W3C SRGS的XML格式。
            ????當引用一個外部語法時,src屬性值為一個URI,它指定了該語法的位置。URI可以帶一個段,指定規則名。SRGS的2.2節定義了規則引用的幾種形式。下面是VoiceXML中<grammar>元素允許的形式。
            ??????· 在外部語法中引用一個規則:src屬性的值是一個絕對或相對的URI,該URI帶有一個段,它執行一個外部語法的相應規則。這種形式的規則引用遵循SRGS 2.2節中的定義。如果該URI不能被獲取,或該規則名不存在,或該規則名在指定的語法中不是一個public(可激活的)規則,則拋出error.badfetch。
            ??????· 引用外部語法的根規則:src屬性的值是一個絕對或相對的URI,它引用了一個外部語法,但是沒有指定一個規則名。這種形式隱式的引用了該語法的根規則,正如SRGS 2.2節中的定義。如果該URI不能被獲取,或如果該語法不能被它得root引用(見SRGS的4.7節),則拋出一個error.badfetch事件。
            ??????· 引用本地語法:只包含段的URI是不被允許的(見SRGS2.2.1中的定義)。如果src屬性的值為一個段, 拋出一個error.semantic事件。
            ??????· 引用特殊的規則:雖然聯機語法可以引用SRGF的特殊規則(NULL,VOID,GARBAGE),但是VoiceXML并不支持<grammar>元素引用特殊的規則(見SRGS的2.2.3節)。因為沒有任何句法支持這種形式,因此也不會產生任何錯誤。

            第二節 DTMF Grammars ?
            ?
            ????<grammar>元素也可以用來提供DTMF語法。
            ??????·它指定了一組按鍵,用戶可以使用這些按鍵執行一個操作或提供一些信息。
            ??????·對于匹配的DTMF輸入,它可以返回一個相應的語義解釋。返回的可以是一個簡單的值(例如一個字符串),一組成對的屬性――值(例如年、月、日),或一個嵌套的對象(對于復雜的請求)。
            ????VoiceXML平臺必須支持XML格式的DTMF語法,以提高程序的可移植性,如SRGS中的附錄D定義的。
            ????<grammar>元素的mode屬性用于區分DTMF語法和語音語法。<grammar>元素的xml:lang屬性在DTMF語法的處理中無效的。在其他的方面,對DTMF語法和語音語法的處理都是一樣的,包括定義聯機語法,或引用外部語法。對于處理媒體類型,作用域和獲取也是一樣的。
            ????下面是一個簡單的XML格式的DTMF聯機語法,它只接受按鍵“1 2 3”或“#”。
                  <grammar mode="dtmf" version="1.0" root="root">
                     <rule id="root" scope="public">
                       <one-of>
                         <item>  1 2 3 </item>
                         <item> # </item>
                       </one-of>
                     </rule>
                  </grammar>
            ?
            第三節 Scope of Grammars ?
            ?
            ????input item的語法的作用域為包含該input item的元素。即只有該input item在FIA的選定階段被選定時,它包含的語法才會被激活。包含在input item中的<grammar>不能指定scope屬性,否則拋出error.badfetch事件。
            ????<link>元素中的語法的作用域為包含該<link>元素的元素。因此,如果該<link>元素是在應用根文檔中,則該語法在該應用所有加載的文檔中都是激活的。包含在<link>元素中的<grammar>不能指定scope屬性,否則拋出error.badfetch事件。
            ????<form>元素的語法的作用域為dialog。因此只有用戶在該form中時,語法才是激活的。如果此時<grammar>元素的scope屬性值為document,則當用戶在該文檔中時,該語法也是激活的。如果<grammar>元素的scope屬性值為document,且該文檔為應用根文檔,則無論用戶在該應用加載的哪一個文檔中,這些語法都是激活的。有兩種方式可以使form中的語法的作用域為document:一種是指定<form>元素的scope屬性為document,另一種是指定<grammar>元素的scope屬性為document。如果兩個元素都指定了scope屬性,則以<grammar>元素中指定的為準。
            ????<menu>元素中的語法默認作用域為dialog,只有用戶在該<menu>元素中,它的語法才被激活。但是也可以指定這些語法的作用域為document,使它們在整個文檔中都是激活的。如果該文檔是應用根文檔,則語法在該應用所有加載的文檔中都是激活的。在<choice>元素中的<grammar>元素不能指定它的scope屬性,否則拋出一個error.badfetch事件。
            ????有時候,form可能需要一些語法在整個文檔中都激活,而另一些語法只有在該form中激活,這樣做的目的是最大限度的減少語法疊交的問題。如果<grammar>元素的scope屬性值和form的scope屬性值不同,應該單獨指定自己的scope屬性值。
                  <?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 scope="document">
                       <grammar type="application/srgs">
                          #ABNF 1.0;
                          language en-gb;
                          mode voice;
                          root $command;
                          public $command = one | two | three;
                      </grammar>
                      <grammar type="application/srgs" scope="dialog">
                          #ABNF 1.0;
                          language en-gb;
                          mode voice;
                          root $command2;
                          public $command2 = four | five | six;
                      </grammar>
                    </form>
                  </vxml>
            ?
            第四節 Activation of Grammars ?
            ?
            ????當解釋器訪問一個input item,等待輸入的時候,以下的語法被激活:
            ??????·該input item的語法,包括該input item包含的<link>元素中的語法。
            ??????·該form的語法,包括該form包含的<link>元素中的語法
            ??????·該文檔包含的<link>元素中的語法,及該文檔的<menu>元素和<form>元素中scope屬性為document的<grammar>元素的語法。
            ??????·該應用根文檔包含的<link>元素中的語法,及該應用根文檔的<menu>元素和<form>元素中scope屬性為document的<grammar>元素的語法。
            ??????·平臺定義的默認事件處理的語法,例如help、exit和cancel。
            ????如果一個輸入匹配了多個激活的語法,則語法的優先權按照上面定義的順序。如果一個輸入匹配了多個激活的同一優先權的語法,則語法的優先權由文檔順序決定。當平臺期待一個輸入卻沒有任何語法激活時,平臺必須拋出一個error.semantic事件,該事件在所執行的元素的環境中拋出。menu中的語法激活機制和form中的一樣(見2.2.1節)。
            ????如果form item的modal屬性為true,則在等待輸入的時候,除了該form item的語法外,其他的語法都是失效的。如果該輸入匹配了另外一個form或menu中的語法,而不是當前form或menu,則控制交給那個被匹配的語法所在的form或menu,且當前form或menu中的數據丟失。
            ????Inputmodes property不會影響語法的激活,例如,如果inputmodes property要求輸入只能是voice時,DTMF語法也會被激活,只是不能被匹配。

            第五節 Semantic Interpretation of Input ?
            ?
            ????SRGS定義了一個<tag>元素,它包含的內容可作為語音語法或DTMF語法的語義解釋(見SRGS的2.6節)。
            ????SISR(The Semantic Interpretation for Speech Recognition specification)為<tag>元素描述了一個句法和語義,并說明了怎樣使用被匹配的規則中<tag>元素的內容來計算用戶輸入的語義解釋。有關于把語義解釋映射到VoiceXML中的描述見3.1.6節。

            第六節 Mapping Semantic Interpretation Results to VoiceXML forms ?
            ?
            ????SRGS語法返回的語義解釋必須映射到一個或多個VoiceXML ECMAScript變量中。映射form級別和field級別的語義解釋的方法有少許不同,不同之處見下一節。使用推薦的NLSML(Natural Language Semantics Markup Language)或SISR類似ECMAScipt的輸出的語義解釋格式對本次討論沒有任何影響。為了本次討論方便,我們假定識別器返回的實際的識別結果在application.lastresult$.interpretation中被完整的映射成類似ECMAScript格式(見5.1.5節)。
            ????有可能語法被匹配了,但沒有返回一個語義解釋。在這種情況下,平臺將使用該短語的原始文本串作為語義結果。否則,就認為該語義解釋由一個簡單的值組成來處理。
            ????每個input item都由一個相應的slot名(只可能出現在<field>元素中),用于提取完整的語義解釋中大的相應部分。如果有指定slot屬性的話,slot名就是該slot屬性的值。否則slot名為該input item的name屬性的值。如果name和slot屬性都沒有指定,則該slot名為undefined。
            ????Slot名用于在FIA的處理階段確定一個input item是否被匹配了。當該slot名和語義結果頂層的屬性一樣時,或slot名用于選定一個子屬性時,即為該input item匹配。語義結果中值為undefined(ECMAScript的undefined)的屬性即為不匹配。同樣的值為undefined的slot名也為不匹配。3,1,6,3節給出了例子。
            ????下一小節談論的是form級別和field級別的結果的映射。也簡要的討論了其他的問題。如NL語義到ECMAScript的映射,ASR結果到VoiceXML的跳轉的信息,語義結果和VoiceXML中匹配出錯的處理。
            ?
            一、Mapping form-level results
            ????form級別的語法產生一個form級別的語義結果,該結果可以同時填充多個input item。用戶的輸入匹配了一個激活的form級別的語法,這種情況隨時都可以出現,不管是在<initial>元素中,還是在一個input item中。
            ????設想一下“I would like a coca cola and three large pizzas with pepperoni and mushrooms.”這個句子的語義結果。該語義解釋結果的結構如下,并被copy到application.lastresult$.interpretation中:
                  {
                    drink: "coke"
                    pizza: {
                         number: "3"
                         size: "large"
                         topping: [
                                 "pepperoni"
                                 "mushrooms"
                              ]
                         }
                  }
            ????下表說明了來自form級別的語法的結果在該form中怎樣被賦給各個<field>元素。注意,所有能被該解釋填充的input item是同時被填充的。Input item變量原來的值將被覆蓋。這些input item將在FIA的處理階段由<field>元素處理(見2.4節和附錄C)。
            VoiceXML field Assigned ECMAScript value Explanation
            1、<field name="drink"/> "coke" 結果的頂層屬性默認的賦給一個<field>元素,該<field>元素的name屬性和該結果的頂層屬性相匹配。
            2、<field name="..." slot="drink"/> "coke" 如果指定了slot屬性,則他代替name屬性去選定該結果的屬性。
            3、<field name="pizza"/> --or--
            <field name="..." slot="pizza"/>
            {number: "3", size: "large", topping: ["pepperoni", "mushroom"]} 上面的例子選擇了一個單純的值,<field>的name和slot屬性也可以用同樣的方法選定一個ECMAScript對象變量。然而,在應用中必須要處理檢查該對象的組成,這顯然不是VoiceXML FFA(form-filling algorithm)的優勢。在FFA中,語義結果中沒有指定slot的,將不會自動的被提示。在服務器能夠處理結構化對象的情況下,這是沒有問題的。換句話說,使用下面描述的方法,對應用來說會更好。
            4、<field name="..." slot="pizza.number"/>
            <field name="..." slot="pizza.size"/>
            "3"
            "large"
            Slot用于選定該結果的一個子屬性。這種方法把該結果分配到幾個<field>元素中。
            5、<field name="..." slot="pizza.topping"/> ["pepperoni", "mushroom"] 被選定的屬性可以是一個復合的對象。
            表30:Form-level Grammar Assignments
            ????這些例子可以用以下幾條規則來解釋,這些規則是直接由VoiceXML1.0的name和slot屬性擴展得到的,且與之兼容。
            ??????1、<field>的slot屬性是一個非常受限制的ECMAScript表達式,它選定結果中的某部分賦給該元素。除了能夠選定結果的頂層元素外,該屬性也能使用由點隔開的元素/屬性名選定嵌套結構中任意級的屬性。如使用“pizza.number”和“order.pizza.topping”。注意,如果幾個<field>元素的slot屬性值一樣的話,一個特定的slot值有可能填充多個<field>元素。
            ??????2、如果在結果中,以一個<field>元素的slot(或name)屬性命名的那一部分沒有一個給定的值,則不改變該field item的值。
            ?
            二、Mapping a field-level result
            ????在一個input item中指定的語法產生一個field級別的語義解釋結果,該結果只可以填充包含該語法的input item。這些語法只有在FIA訪問該input item時才是激活的。這很有用。例如在引導型的dialog中,每個input item會單獨的給用戶播放提示語。
            ????Field級別的語義解釋結果以下面的方式填充相應的input item:
            ??????1、如果該語義解釋是一個簡單的結果,則直接賦給該input item變量。
            ??????2、如果該語義解釋是一個結構化的結果,且該slot名和該結果的一個屬性匹配,則將該屬性的值賦給相應的input item變量。
            ??????3、在其他的情況下,整個語義解釋的結果都賦給相應的input item變量。
            ????這個處理過程允許input item從語義解釋結果中提取一個特定的屬性。和<filled>元素集合使用可以取得更好的控制效果。
                   <field name="getdate">
                     <prompt>On what date would you like to fly?</prompt>
            										
                     <grammar src="http://server.example.com/date.grxml"/> 
                     <!-- this grammar always returns an object containing
                         string values for the properties day, month, and year -->
            										
                      <filled>
                        <assign name="getdate.datestring" expr="getdate.year + getdate.month + getdate.day"/>
                      </filled>
                   </field>
            ?
            三、Additional examples
            ????一個匹配的slot名允許input item提取語義解釋中相應的部分。
                  application.lastresult$.interpretation =
                  { drink: { size: 'large', liquid: 'coke' }
                     pizza: { number: '3', size: 'large', topping: ['pepperoni', 'mushroom' ] }
                     sidedish: undefined
                  }
            ????下表再次說明了當slot名匹配了結果中的一個屬性時的定義:
            slot name match or not?
            undefined does not match
            drink matches; top level property
            pizza matches; top level property
            sidedish does not match; no defined value
            size does not match; not a top-level property
            pizza.size matches; sub-property
            pizza.liquid does not match
            表31:Slot Name Matching
            ????下面的例子用于比較form級別和field級別的結果的行為:
                  <?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 id="exampleForm">
                       <grammar src="formlevel.grxml"/>
                         <initial> Say something. </initial>
            										
                        <field name="x">
                          <grammar src="fieldx.grxml"/>
                        </field>
            										
                        <field name="z" slot="y">
                          <grammar src="fieldz.grxml"/>
                        </field>
                    </form>
                  </vxml>
            ????在這個例子中定義了兩個input item變量,“x”和“z”,相應的slot名分別為“x”和“y”。下表描述的是,根據被識別的語法和返回的語義結果給這些變量賦值。ValueX表示屬性x相應的結果值,可以是結構化的對象,也可以是簡單的值。
            application. lastresult$. interpretation form-level result
            (formlevel.grxml)
            field-level result in field x
            (fieldx.grxml)
            field-level result in field z
            (fieldz.grxml)
            = 'hello' no assignment; cycle FIA x = 'hello' z = 'hello'
            = { x: valueX } x = valueX x = valueX z = { x: valueX }
            = { y: valueY } z = valueY x = { y: valueY } z = valueY
            = { z: valueZ } no assignment; cycle FIA x = { z: valueZ } z = { z: valueZ }
            = { x: valueX, y: valueY, z: valueZ } x = valueX
            z = valueY
            x = valueX z = valueY
            = { a: valueA,b: valueB } no assignment; cycle FIA x = { a: valueA,b: valueB } z = { a: valueA,b: valueB }
            表32:Variable Assignments Depending on Grammar and Semantic Result
            ????在form級別,簡單的結果,像字符串‘hello’,不能匹配任何input item;結構化對象給所有slot名能匹配的input item變量賦值。在field級別,簡單的結果總是賦給相應的input item變量;在結構化對象中,如果存在和該input item的slot名匹配的屬性,則把該對象中匹配的屬性值賦給相應的input item,否則把整個語義解釋結果賦給該input item。
            ?
            四、Additional issues
            ????1、把NL語義映射到ECMAScript:如果使用NLSML,,需要定義NLSML表示法到ECMAScipt 對象的映射。由于這兩種表示法有相近的嵌套結構,映射起來還算簡單。NL語義技術規范詳細的討論了如何映射。
            ????2、把ASR的語義結果轉換到VoiceXML:當所有相關的語義求值完畢,W3C ASR語法的語義標識符就是元素的rule屬性值。另外,根規則(和所有的non-terminals一樣)有一個相應的"text"變量,該變量包含了由non-terminal控制的utterance中的一組token。在把ASR結果轉換到VoiceXML中的過程中,VoiceXML平臺不僅要根據root屬性值填充VoiceXML中相應的field,還要填充這些field的影子變量。該field的影子變量name$.utterance和ASR根規則的text變量的值應該要一樣。平臺還要根據ASR平臺提供的信息實例化影子變量name$.confidence的值,同時根據所處理的DTMF或語音語法實例化影子變量name$.inputmode的值。除了平臺用于設置整個utterance解釋的confidence的application.lastresult$.confidence外,最后平臺還有把上面提到的那些信息填充到application.lastresult$(見5.1.5節。特別的,“application.lastresult$.utterance”,“application.lastresult$.inputmode”和 “application.lastresult$.interpretation”)。
            ????3、語義結果和VoiceXML field之間的不配對:語義結果到VoiceXML的映射取決于ASR語法和VoiceXML標記之間嚴格的配對。由于當前的框架協議不能保證語法和相應的VoiceXML dialog之間的一致性,因此,開發者的疏忽可能導致出現不配對。由于這些不配對的情況和某些正確的情況很難分辨,信息一致性的檢查就顯得格外重要。不配對的一些例子:
            ??????·語義結果中包含了額外的信息,使得VoiceXML沒有相應的field與之配對。開發者的疏忽或使用的語法比VoiceXML應用要求的語法包含更對的信息,都可能出現這種不配對。這些額外的信息將被忽略。
            ??????·語義結果中沒有提供VoiceXML應用期望的信息。開發者的疏忽或因用戶的輸入太簡單而沒法提供一個值給某個特定的slot,都可能出現不配對。在這種情況下,FIA繼續執行,沒有提供的值將單獨由用戶提供。如果問題是由于開發者的疏忽引起的,且該語法實際上不能識別出正確的結果,FIA將繼續讓用戶提供該丟失的值,直到達到平臺和應用規定的失敗次數。
            ??????·最后,VoiceXML和ASR的語義結果中都提供了配對的信息,但是兩者的格式不一致。例如ASR語法可能提供的是一個結構化的對象,而VoiceXML中期望的卻是一個字符串。在這種情況下,平臺的行為取決于對該結果的處理。例如,該結構化的對象可能被提交給服務器端的腳本,轉換成一個字符串。這樣,平臺的行為就取決于服務器端的腳本。
            ????為了解決這些潛在的問題,委員會這在考慮各種方法以確保語法和VoiceXML的一致性。
            posted on 2006-09-16 22:25 鐵觀音 閱讀(989) 評論(0)  編輯 收藏 引用 所屬分類: VoiceXML2.0規范
            亚洲精品白浆高清久久久久久| 秋霞久久国产精品电影院| 国产精品久久久香蕉| 色婷婷综合久久久久中文字幕| 久久久精品国产免大香伊| 亚洲精品白浆高清久久久久久| 国产产无码乱码精品久久鸭| 91精品国产色综久久 | 色综合久久天天综合| 国产精品免费久久久久影院| 欧美大战日韩91综合一区婷婷久久青草| 伊人久久大香线蕉综合网站| 久久人人爽人人爽人人AV| 国产精品久久久久久一区二区三区| 国产精品综合久久第一页| 亚洲日本va午夜中文字幕久久 | 久久国产一区二区| 久久精品亚洲男人的天堂| 久久精品国产亚洲AV忘忧草18| 久久精品国产亚洲AV大全| 成人国内精品久久久久影院VR| 久久青青色综合| 久久精品国产99国产电影网 | 久久亚洲精品无码播放| 亚洲精品无码专区久久久| 伊人丁香狠狠色综合久久| 国产69精品久久久久久人妻精品| 91精品国产综合久久婷婷| 亚洲国产婷婷香蕉久久久久久| 国产午夜精品理论片久久影视 | 91精品无码久久久久久五月天| 99久久99久久精品国产片果冻| 青草影院天堂男人久久| 蜜桃麻豆WWW久久囤产精品| 夜夜亚洲天天久久| 伊人久久大香线蕉综合Av| 久久久久综合中文字幕| 久久91精品国产91久久小草| 7777精品伊人久久久大香线蕉| 91精品国产高清久久久久久国产嫩草 | 国产精品久久久久久五月尺|