• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 國內 >
     首頁(yè) > 新聞 > 國內 >

    MRCP學(xué)習筆記-語(yǔ)音識別資源的事件和headers詳解

    2018-07-23 16:24:06   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      在上一節的分享中,我們介紹了語(yǔ)音識別資源的六個(gè)標準的methods和五個(gè)語(yǔ)音注冊的methods。今天,我們繼續介紹語(yǔ)音識別資源中的三個(gè)事件,三十三個(gè)headers和十二個(gè)語(yǔ)音注冊的headers。
      1、在語(yǔ)音識別資源中,MRCP支持了三種事件,它們分別是START-OF-INPUT,RECOGNITION-COMPLETE和INTERPRETATION-COMPLETE。
      START-OF-INPUT事件是由語(yǔ)音識別資源側回復的事件消息,它通知MRCP客戶(hù)端資源服務(wù)器已經(jīng)收到了語(yǔ)音輸入或DTMF輸入。具體的輸入數據類(lèi)型通過(guò)消息體中的Input-Type來(lái)表示。大部分情況下,此事件用來(lái)支持MRCP客戶(hù)端檢測打斷或停止語(yǔ)音回放。這里讀者要注意,語(yǔ)音識別資源不會(huì )對熱詞識別模式生成此事件。具體的事件使用場(chǎng)景在上一講做已經(jīng)介紹,讀者可以查閱歷史文檔來(lái)進(jìn)一步學(xué)習。
      RECOGNITION-COMPLETE是語(yǔ)音識別資源生成的事件消息,它用來(lái)對MRCP客戶(hù)端說(shuō)明,識別處理已經(jīng)完成,并且通過(guò)消息體傳輸了識別結果。事件消息體中的Completion-Cause和可選的Completion-Reason頭用來(lái)表示完成識別的狀態(tài)。在前面的章節中,我們提供了完整的識別流程消息說(shuō)明,用戶(hù)可以查閱。這里,我們僅簡(jiǎn)單列出一個(gè)RECOGNITION-COMPLETE示例(服務(wù)器端->客戶(hù)端):
      
      這里,如果是成功的識別流程,返回的識別結果通過(guò)語(yǔ)音文件格式。
      INTERPRETATION-COMPLETE和前面提到的RECOGNITION-COMPLETE類(lèi)似,但是它表示的是解析過(guò)程完成(不是識別過(guò)程),并且傳輸了解析結果。我們在上一講中也提供了完整的示例流程,讀者可以查閱。這里,我們提供一個(gè)響應部分的具體的示例如下(服務(wù)器端->客戶(hù)端):
      2、現在,我們開(kāi)始介紹語(yǔ)音識別資源的headers。因為篇幅比較長(cháng),筆者盡可能對每個(gè)header做出解釋?zhuān)绻胁辉敿毜牡胤剑ㄗh讀者查看RFC標準。現在,我們介紹第一個(gè)header,也是RECOGNITION-COMPLETE事件消息中總是出現的header-Completion-Cause。因為,此頭涉及了失敗原因碼的完整詳解,所以,筆者專(zhuān)門(mén)把此header單獨拿出來(lái)做完整的介紹。它用來(lái)表示完成的具體原因,如果識別失敗的話(huà),它會(huì )支持相關(guān)的識別原因碼。注意,Completion-Cause也會(huì )出現在DEFINE-GRAMMAR的請求的對應響應消息中,它會(huì )說(shuō)明請求中訪(fǎng)問(wèn)結果或編譯的語(yǔ)法結果。具體的細節請看如下示例圖(原因碼,原因名稱(chēng)和具體解釋?zhuān)?/div>
      具體的語(yǔ)法示例:Completion-Cause: 001 no-match
      3、剛才,筆者介紹了事件消息中的第一大“頭”-Completion-Cause。現在我們列出其余的headers和具體的示例說(shuō)明。
    • Completion-Reason,它是可選的header,出現在Completion-Cause中,說(shuō)明請求結束的原因,可用來(lái)支持客戶(hù)端的日志消息。具體的示例如:Completion-Reason:Recursive grammars not supported。
    • Failed-URI,此頭用來(lái)表示攜帶的URL資源訪(fǎng)問(wèn)失敗。示例:Failed-URI:http://192.168.1.1/numbers.grxml。
    • Failed-URI-Cause,此頭配合Failed-URI使用,表示失敗碼。例如:Failed-URI-Cause:404 Not Found。
    • Recognition-Mode,此header用來(lái)表示識別的模式類(lèi)型,可支持normal或hotword模式。我們已經(jīng)在前面的章節中介紹過(guò)這兩種識別類(lèi)型,這里不再介紹。示例如:Recognition-Mode:hotword。
    • Input-Type,此header會(huì )出現在START-OF-INPUT的事件中,它用來(lái)表示檢測到的輸入類(lèi)型(DTMF或speech),其示例:Input-Type:speech。
    • Confidence-Threshold,此header用來(lái)設置一個(gè)安全閥值,設置最低的識別級別保證識別的成功率。如果識別結果攜帶的安全級別低于安全閥值,則返回一個(gè)Completion-Cause header,錯誤碼為001 no-match。其取值范圍在0.0–1.0之間。示例:Confidence-Threshold:0.5。
    • Sensitivity-Level,此header用來(lái)語(yǔ)音識別檢測的敏感度水平,對其背景噪音進(jìn)行過(guò)濾。敏感度比較低的話(huà),則說(shuō)明對其語(yǔ)音畢竟噪音不太敏感。此header通常是在per-RECOGNIZE請求設置。示例:Sensitivity-Level:0.65。
    • Speech-Vs-Accuracy,此header用來(lái)控制對性能和準確率的調整設置,其取值范圍從0.0-1.0之間。取值越高,說(shuō)明要求的準確性越高,但是消耗更多的CPU資源。此header通過(guò)per-RECOGNIZE 請求來(lái)進(jìn)行設定。示例:
    • Speed-Vs-Accuracy:0.35。
    • N-Best-List-Length,此header表示MRCP客戶(hù)端可以接收多個(gè)語(yǔ)音識別資源返回的識別結果,最大可以支持N個(gè)返回的可選識別結果。這里讀者要注意,不同的返回結果支持不同的語(yǔ)法路徑,只有安全級別大于安全閥值的才會(huì )返回到客戶(hù)端。語(yǔ)音設備資源可以返回低于N的結果,如果返回比較大的數值N的話(huà),需要語(yǔ)音識別資源增加其處理能力。這也非常容易理解的,它的取值會(huì )影響語(yǔ)音識別資源的性能。此header通過(guò)per-RECOGNIZE請求設置,默認(最小值)為1。示例:N-Best-List-Length:5。
    • No-Input-Timeout,此header是一個(gè)定時(shí)器,它用來(lái)檢測在一定時(shí)間內,識別流程開(kāi)始以后,系統沒(méi)有檢測到用戶(hù)的語(yǔ)音輸入或DTMF。如果No-Input-Timeout超時(shí),語(yǔ)音識別資源會(huì )生成一個(gè)RECOGNITION-COMPLETE事件,攜帶Completion-Cause,其值為:002 no-input-timeout。其時(shí)間取值以毫秒為單位,示例:No-Input-Timeout:3000。
    • Recognition-Timeout,此定時(shí)器是用來(lái)限定整個(gè)識別處理時(shí)間。其header也可用來(lái)防止背景噪音占用了語(yǔ)音識別資源而導致的識別時(shí)間延長(cháng)。這里要注意,在兩種識別模式下,返回的錯誤碼有所區別,讀者可以查閱RFC來(lái)做進(jìn)一步的研究。默認設置為10秒,以毫秒為單位,示例:Recognition-Timeout:7000。
    • Speech-Complete-Timeout,此header用來(lái)表示說(shuō)話(huà)人已經(jīng)停止說(shuō)話(huà),語(yǔ)音識別資源成功返回結果之間所必須消耗的時(shí)間。當然,如果此設置太短,則可能導致語(yǔ)句被打斷;如果太長(cháng)則會(huì )導致系統響應變慢。其取值以毫秒為單位,取值范圍從300到1000毫秒之間。示例:Speech-Complete-Timeout:500。
    • Speech-Incomplete-Timeout,此header和上面的Speech-Complete-Timeout的使用方式非常類(lèi)似,但是它使用的場(chǎng)景有所不同。有的情況下,語(yǔ)音之前的靜音或不正確的語(yǔ)法前綴無(wú)法全部匹配活動(dòng)的語(yǔ)法。如果觸發(fā)了此定時(shí)器的話(huà),語(yǔ)音識別資源會(huì )生成一個(gè)RECOGNITION-RESULT 事件,此事件攜帶Completion-Cause,語(yǔ)言碼設定的值為013 partial-match(部分匹配)。此header也可以使用在另外一種場(chǎng)景中,有可能說(shuō)話(huà)人語(yǔ)音郵件成功匹配了語(yǔ)音識別資源,但是說(shuō)話(huà)人可能呼吸停頓,想繼續說(shuō)的時(shí)候,仍然需要匹配相應的語(yǔ)音識別資源。通常情況下,此定時(shí)器設置的時(shí)長(cháng)會(huì )大于Speech-Complete-Timeout的時(shí)長(cháng),這樣,可以支持說(shuō)話(huà)人短暫的停頓。此取值以毫秒為單位,取值范圍從0到最大值。示例:Speech-Incomplete-Timeout:1000。
    • Hotword-Max-Duration,此header只能使用在hotword的模式下,用來(lái)限定需要識別的語(yǔ)句最大長(cháng)度。此header配合Hotword-Min-Duration來(lái)使用,防止識別的語(yǔ)句過(guò)長(cháng)或過(guò)短。示例:Hotword-Max-Duration:5000。
    • Hotword-Min-Duration,此header只能使用在hotword的模式下,用來(lái)限定需要識別的語(yǔ)句最小長(cháng)度。此header配合Hotword-Max-Duration來(lái)使用,防止識別的語(yǔ)句過(guò)長(cháng)或過(guò)短。示例:Hotword-Min-Duration:5000。
    • DTMF-Interdigit-Timeout,此header用來(lái)設定在語(yǔ)音識別生成結果之前,DTMF按鍵輸入之間的時(shí)間間隔。此header可能出現在RECOGNIZE,SET-PARAMS,或GET-PARAMS。它以毫秒為單位,默認是5000毫秒,示例:DTMF-Interdigit-Timeout:3000。
    • DTMF-Term-Timeout,此header和以上header類(lèi)似,但是它應用的場(chǎng)景是成功匹配語(yǔ)法以后,仍然需要進(jìn)一步的DTMF輸入流程。它用來(lái)支持長(cháng)數字序列的輸入和進(jìn)一步的輸入驗證的場(chǎng)景中。示例:DTMF-Term-Timeout:2000。
    • DTMF-Term-Char,此header用來(lái)設定某個(gè)特定字符來(lái)結束DTMF輸入。例如,大家經(jīng)常使用的“#”。我們按#來(lái)表示我們的DTMF結果輸入完成。示例:DTMF-Term-Char:#。
    • DTMF-Buffer-Time,此header用來(lái)表示表示DTMF類(lèi)型的大小,通過(guò)緩沖的方式保存。語(yǔ)音識別資源可以支持在RECOGNIZE請求之間的DTMF按鍵,并且通過(guò)緩沖來(lái)保存。當發(fā)起新的RECOGNIZE請求時(shí),首先使用緩沖中的數據內容進(jìn)行匹配識別,如果緩沖中的數據不能完全支持識別資源時(shí),用戶(hù)則需要輸入更多的數字按鍵來(lái)匹配活動(dòng)的語(yǔ)法。這里讀者要注意,因為平臺的不同,可能此header的設置也不同。示例:DTMF-Buffer-Time:10000。
    • Clear-DTMF-Buffer,此header用來(lái)清理緩沖中的DTMF數據。它通過(guò)RECOGNIZE請求來(lái)設置。默認設置為false。如果設置為true表示清理緩沖。示例:Clear-DTMF-Buffer:true。
    • Save-Waveform:此header用來(lái)表示是否保存識別的語(yǔ)音文件。如果保存,則此值設置為true,捕獲的語(yǔ)音流通過(guò)RECOGNITION-COMPLETE事件的Waveform-URI表示。MRCP客戶(hù)端可通過(guò)此URL獲取到從語(yǔ)音文件。默認值是false,示例:Save-Waveform:true。
    • Waveform-URI,此header用來(lái)支持MRCP客戶(hù)端通過(guò)此header的URL獲取或訪(fǎng)問(wèn)語(yǔ)音文件。此heade同時(shí)支持了size(以bytes為單位)和duration(毫秒)的取值。其示例是:Waveform-URI:;size=8000;duration=1000。
    • Input-Waveform-URI,此header用來(lái)為RECOGNITION提供一個(gè)語(yǔ)音文件而不是使用媒體會(huì )話(huà)來(lái)提供語(yǔ)音文件。此功能的目的是執行一個(gè)重新識別的流程,使用不同的語(yǔ)法和和以前捕捉的語(yǔ)音進(jìn)行對比來(lái)測試語(yǔ)法的覆蓋范圍。其示例:Input-Waveform-URI:http://10.0.0.1/utt01.wav。
    • Media-Type,此header表示語(yǔ)音文件支持的媒體類(lèi)型。其示例:Media-Type:audio/x-wav。
    • Start-Input-Timers,此header會(huì )出現在RECOGNIZE請求中,通知語(yǔ)音識別引擎是否啟動(dòng)No-Input-Timeout定時(shí)器。默認值為true。示例是:Start-Input-Timers:false。
    • Speech-Language,此header表示語(yǔ)音識別默認支持的語(yǔ)法語(yǔ)言。其示例:Speech-Language:de-CH。
    • Cancel-If-Queue,此header用來(lái)表示多個(gè)RECOGNIZE請求是有隊列支持。如果此值為true,則表示沒(méi)有使用隊列,IN-PROGRESSRECOGNIZE請求已被取消。已取消的識別請求會(huì )帶一個(gè)RECOGNITION-COMPLETE事件,這個(gè)事件的消息體的header帶Completion-Cause,設置的值為011 cancelled。如果是false,則表示RECOGNIZE請求會(huì )加入到隊列中。此header沒(méi)有默認值,示例為:Cancel-If-Queue:true。
    • New-Audio-Channel,此header通過(guò)RECOGNIZE來(lái)設定,如果是true,則表示對語(yǔ)音資源來(lái)說(shuō),從此刻開(kāi)始,從一個(gè)新的通道中收到了語(yǔ)音流。通常情況下,語(yǔ)音識別資源會(huì )解析為一個(gè)新的請求,重新設置終端的算法,因此會(huì )丟棄任何已執行的通道。此功能非常有用,它可使用已存在的會(huì )話(huà)重用在一個(gè)新的電話(huà)呼叫的環(huán)境中。默認值為false,示例為:New-Audio-Channel:true。
    • Ver-Buffer-Utterance,此header可以通過(guò)RECOGNIZE請求中設置,如果設置為true,則表示語(yǔ)音識別資源可以使用緩沖中的可用的語(yǔ)音數據,此語(yǔ)音數據可用于后期說(shuō)話(huà)人驗證引擎環(huán)境。當然,這里一定要注意,說(shuō)話(huà)人驗證資源一定要和識別請求共享一個(gè)會(huì )話(huà)。其示例是:Ver-Buffer-Utterance:true。
    • Early-No-Match,此header用來(lái)表示語(yǔ)音識別引擎是否執行語(yǔ)法的早期匹配。它可以無(wú)需等待終端提示完成語(yǔ)音輸入然后開(kāi)始識別的流程。語(yǔ)音識別引擎如果不支持早期匹配的話(huà),可能會(huì )忽略此header值。默認值是false。其語(yǔ)法示例為:Early-No-Match:true。
    • Interpret-Text,此header用來(lái)支持INTERPRET請求,指示需要解析的文本。INTERPRET請求中攜帶了text/plain消息。其示例為:Interpret-Text:text@example.com。
    • Recognizer-Context-Block,此header用來(lái)通過(guò)GET-PARAMS取值或通過(guò)SET-PARAMS來(lái)設置語(yǔ)音識別的內容數據段。每個(gè)識別引擎平臺的內容數據段都是完全不同的,包括了會(huì )話(huà),終端設置等相關(guān)數據。其示例為:Recognizer-Context-Block:data@vendor-x.com。
      4、語(yǔ)音注冊的headers包括了十二個(gè)headers。
      Enroll-Utterance用來(lái)表示短語(yǔ)是否被注冊,是通過(guò)RECOGNIZE請求中設定。如果RECOGNIZE請求中設置了Enroll-Utterance為true的話(huà),它僅能支持注冊會(huì )話(huà)。其示例為:Enroll-Utterance:true。
    • Num-Min-Consistent-Pronunciations,此header表示從用戶(hù)側獲得的最少連續的發(fā)音短語(yǔ)。此短語(yǔ)會(huì )成為注冊的短語(yǔ),最后接納為個(gè)人的語(yǔ)法。此header可以通過(guò)per-START-PHRASE-ENROLLMENT請求或SET-PARAMS來(lái)設置,其示例為:Num-Min-Consistent-Pronunciations:1。
    • Consistency-Threshold,此header應用在語(yǔ)法注冊的過(guò)程中,用來(lái)表示前面注冊短語(yǔ)的發(fā)音和當前短語(yǔ)的相似性。此值越高,說(shuō)明介于其句子和短語(yǔ)發(fā)音匹配非常接近。其語(yǔ)法示例為:Consistency-Threshold:0.75。
    • Clash-Threshold,此header用來(lái)衡量語(yǔ)句短語(yǔ)和當前個(gè)人語(yǔ)法中的短語(yǔ)的相似度或接近程度。例如:兩個(gè)不同的拼寫(xiě)但是它們的發(fā)音困難非常相似:
      “John Smith”和“Jon Smits”。這樣就會(huì )導致識別資源發(fā)現他們的不同。較小的取值會(huì )降低已檢測到的差異的數量。取值范圍從0到1,其語(yǔ)法示例:Consistency-Threshold:0.75 。
    • Personal-Grammar-URI,其header表示此URL是一個(gè)個(gè)人的語(yǔ)法。它會(huì )出現在START-PHRASE-ENROLLMENT,MODIFY-PHRASE,或DELETE-PHRASE的請求中。其語(yǔ)法示例為:Personal-Grammar-URI:http://example.com/enroll/user1.dat。
    • Phrase-ID,此header表示的一個(gè)短語(yǔ)ID確認消息。在START-PHRASE-ENROLLMENT,MODIFY-PHRASE或者DELETE-PHRASE的請求中使用,表明其特別的ID號,對此ID進(jìn)行相應的處理。其語(yǔ)法示例為:Phrase-ID:name_joe_bloggs。
    • New-Phrase-ID,此header應用在MODIFY-PHRASE請求中,用來(lái)表示對目前存在的ID聲明一個(gè)新的短語(yǔ)ID。其語(yǔ)法示例為:New-Phrase-ID:name_joe_bloggs_02。
    • Phrase-NL,此header用來(lái)表示注冊語(yǔ)法相應的自然語(yǔ)言或語(yǔ)義解析。當短語(yǔ)識別以后,返回的解析文本結果。其語(yǔ)法示例為:Phrase-NL:item01。
    • Weight,此header表示一個(gè)短語(yǔ)發(fā)生的似然程度。從概念上來(lái)說(shuō),這個(gè)權重值和SRGS語(yǔ)法中的item屬性weight類(lèi)似。此header可能出現在START-PHRASE-ENROLLMENT請求中來(lái)設定一個(gè)注冊語(yǔ)法的權重,也可能出現在MODIFY-PHRASE的請求中來(lái)修改權重值。其語(yǔ)法示例為:Weight:2.0。
    • Save-Best-Waveform,此header設置為true的話(huà),用來(lái)支持客戶(hù)端要求語(yǔ)音識別資源在注冊會(huì )話(huà)的生命周期內保存捕捉的語(yǔ)音數據,此數據是最佳的重復短語(yǔ)。語(yǔ)音識別資源必須對識別語(yǔ)音進(jìn)行錄制,并且通過(guò)URL來(lái)返回到客戶(hù)端,在END-PHRASE-ENROLLMENT中攜帶一個(gè)Waveform-URI表示語(yǔ)音URL路徑。如果沒(méi)有錄制成功或發(fā)送錯誤的話(huà),語(yǔ)音識別資源必須返回一個(gè)空的URL。
    • Confusable-Phrases-URI,此header會(huì )出現在RECOGNIZE的請求中用來(lái)表示一個(gè)語(yǔ)法URL,這個(gè)URL中的短語(yǔ)可能沒(méi)有注冊或無(wú)效的短語(yǔ)。無(wú)法注冊的短語(yǔ)也可能是一個(gè)命令短語(yǔ),所以不能注冊。其語(yǔ)法示例為:Confusable-Phrase-URI:file://c:\data\commands.dat。
    • Abort-Phrase-Enrollment,此header會(huì )出現在END-PHRASE-ENROLLMENT的請求中。如果其值設置為true,則表示語(yǔ)音識別資源會(huì )終止正在被注冊的短語(yǔ)。其語(yǔ)法示例為:Abort-Phrase-Enrollment:true。
      5、在今天的分享中,我們完整地介紹了語(yǔ)音識別資源中的三個(gè)事件,三十三個(gè)headers和十二個(gè)語(yǔ)音注冊的headers。針對每一個(gè)header,筆者給出了具體的解釋?zhuān)褂米⒁馐马椇鸵恍┍匾恼Z(yǔ)法示例。筆者相信,筆者的解釋也可能出現偏差,雖然完全覆蓋了語(yǔ)音識別資源的所有headers,但這些分享也不一定完全能夠滿(mǎn)足讀者學(xué)習的需要,讀者仍然需要在使用過(guò)程中不斷測試加深對這些header的學(xué)習。到此為止,筆者已經(jīng)完整介紹了語(yǔ)音識別資源所有相關(guān)的methods,事件和headers。
      



      unimrcp-MRCP協(xié)議學(xué)習分享,QQ群號:208136295
      關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的行業(yè)分享
      freepbx 技術(shù)論壇:www.ippbx.org.cn
      Asterisk, freepbx技術(shù)文檔: www.freepbx.org.cn
      歐米(Omni)智能客服解決方案
      融合通信商業(yè)解決方案,協(xié)同解決方案首選產(chǎn)品:www.hiastar.com

    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 德令哈市| 红原县| 革吉县| 厦门市| 清新县| 年辖:市辖区| 杭锦后旗| 龙南县| 西和县| 内江市| 永城市| 南靖县| 广元市| 邯郸市| 固阳县| 镇江市| 婺源县| 锡林浩特市| 九龙县| 玉门市| 紫阳县| 安多县| 元朗区| 堆龙德庆县| 宝兴县| 瑞金市| 全椒县| 二连浩特市| 南郑县| 衡南县| 苍南县| 武清区| 崇州市| 冀州市| 绥芬河市| 图木舒克市| 顺平县| 新乡县| 嘉义县| 灵山县| 威远县| http://444 http://444 http://444 http://444 http://444 http://444