• <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協(xié)議學(xué)習筆記-語(yǔ)音識別資源的概括和全部Methods

    2018-07-20 14:05:48   作者:james.zhu   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      介紹媒體資源中另外一個(gè)非常重要的核心內容-語(yǔ)音識別資源的請求,在后續的章節中介紹事件和一些相關(guān)頭的使用方式。
      MRCP語(yǔ)音識別資源針對語(yǔ)音數據和DTMF事件進(jìn)行分析,然后通過(guò)媒體會(huì )話(huà)來(lái)進(jìn)行傳輸,最后返回文本形式的處理結果。MRCP協(xié)議將語(yǔ)音識別資源的類(lèi)型分成兩種:dtmfrecog和speechrecog。前者只能支持DTMF的識別,因此語(yǔ)法也僅限于DTMF語(yǔ)法的支持;后者則支持語(yǔ)音流數據的識別和DTMF識別,因此其語(yǔ)法支持語(yǔ)音語(yǔ)法和DTMF語(yǔ)法兩種。另外,在今天的講座中,我們會(huì )涉及其語(yǔ)法的使用方式(SRGS和NLSML),我們在以前的章節中對這些語(yǔ)法也做過(guò)一些介紹,讀者可以查閱歷史文檔掌握這些必要的知識。
      1、在前面的部分我們已經(jīng)提到,dtmfrecog僅提供對DTMF事件的支持,因此它可以歸并到speechrecog中。dtmfrecog提供了speechrecog的功能所支持的一部分功能子集,支持了DTMF輸入和相應的DTMF語(yǔ)法。DTMF數字值則是通過(guò)RTP事件或DTMF tone分析獲得。語(yǔ)音識別資源可以在以下其中一種模式下工作:
    1. normal mode recognition
    2. hotword mode recognition
      normal mode recognition 顧名思義是一種正常工作模式,它支持的是一種正常工作的模式,可以匹配整個(gè)語(yǔ)音句子或DTMF字符,然后和語(yǔ)法進(jìn)行對比,返回RECOGNITION-COMPLETE,這個(gè)事件包含成功或失敗的狀態(tài)消息(,例如,001 no-match,無(wú)輸入匹配)。Hot word mode recognition工作的模式有所不同,它僅對一些熱詞感興趣,會(huì )查詢(xún)一些短語(yǔ)和DTMF的排序,并且忽略不匹配的部分。如果MRCP客戶(hù)端取消了識別請求,或者No-Input-Timeout或Recognition-Timeout定時(shí)器超時(shí)的話(huà),它僅完成成功匹配的語(yǔ)法。因此,熱詞模式結束時(shí)從來(lái)不會(huì )返回Completion-Cause碼 001 no-match。熱詞模式可以使用在很多的場(chǎng)景中。簡(jiǎn)單的例子就是電話(huà)轉接或我們在電銷(xiāo)場(chǎng)景中的價(jià)格或者地址等關(guān)鍵詞的處理。如果在監聽(tīng)時(shí),聽(tīng)到說(shuō)話(huà)人需要返回主語(yǔ)音導航菜單時(shí),我們可以立即返回主菜單。如果在電銷(xiāo)場(chǎng)景中,我們聽(tīng)到客戶(hù)提到價(jià)格時(shí),我們可以打斷然后查詢(xún)相關(guān)的價(jià)格,然后返回價(jià)格數據。另外,語(yǔ)音識別資源還可以支持第三種的工作模式,那就是基于文本的"interpretation" 模式。文本語(yǔ)句通過(guò)控制會(huì )話(huà)(不是媒體會(huì )話(huà))發(fā)送到語(yǔ)音識別資源,通過(guò)語(yǔ)法匹配,然后返回識別結果并且攜帶語(yǔ)義解析。此功能可以支持很多場(chǎng)景,例如,它可以支持創(chuàng )建一個(gè)基于文本的工具來(lái)測試語(yǔ)法的覆蓋情況和修正語(yǔ)義解析的語(yǔ)法標簽。
      語(yǔ)音識別資源可以支持六個(gè)請求消息和三個(gè)事件消息。Voice enrolment 又進(jìn)一步增加了五個(gè)請求方法來(lái)支持創(chuàng )建和管理注冊的語(yǔ)法。
      語(yǔ)音識別資源支持的methods 消息:
      另外五個(gè)注冊的語(yǔ)音語(yǔ)法methods:
      三個(gè)事件消息:
      語(yǔ)音識別資源的狀態(tài)機圖例:
      音識別狀態(tài)機是由MRCP客戶(hù)端來(lái)發(fā)起請求,媒體資源端則會(huì )生成返回事件消息。以上示例是一個(gè)非常簡(jiǎn)單的狀態(tài)機使用場(chǎng)景,它對注冊語(yǔ)法進(jìn)行訓練處理。這里的起始會(huì )話(huà)和結束會(huì )話(huà)不會(huì )改變資源的狀態(tài)。通過(guò)RECOGNIZE 觸發(fā)觸發(fā)事件后,狀態(tài)機中每個(gè)被捕捉的句子的結果狀態(tài)會(huì )從空閑狀態(tài)切換到正在識別狀態(tài),當觸發(fā) RECOGNITION-COMPLETE事件時(shí),則又返回到空閑狀態(tài)。
      語(yǔ)音識別資源支持了標準的頭值和更多對語(yǔ)法注冊支持的頭值。標準的headers參數設置(三十三個(gè)headers):
      支持語(yǔ)法注冊的headers(支持十二個(gè)enrollment-header ):
      2、筆者在上面的部分重點(diǎn)概括介紹了語(yǔ)音識別資源的請求方法,事件和一些相關(guān)的headers。現在我們開(kāi)始介紹語(yǔ)音識別資源具體的請求方式。RECOGNIZE是我們第一個(gè)介紹的請求方式。
      簡(jiǎn)單來(lái)說(shuō),RECOGNIZE請求是啟動(dòng)識別流程,緊接著(zhù)為輸入的語(yǔ)音流進(jìn)行匹配,然后設定匹配的詞語(yǔ)的語(yǔ)法。識別結果會(huì )包含在RECOGNITION-COMPLETE 的事件中。Hotword發(fā)識別模式會(huì )在Recognition-Mode頭值中進(jìn)行設置。默認設置是normal模式。RECOGNIZE請求中可以包含一些頭值來(lái)調整相關(guān)的請求,這些可調整的請求頭包括語(yǔ)言,安全閥值,和定時(shí)器設置等。
      語(yǔ)音識別資源可以支持對RECOGNIZE 請求進(jìn)行隊列管理,也可以進(jìn)行單獨運行而不進(jìn)入隊列中。具體的操作上通過(guò)Cancel-If-Queue 頭的設置來(lái)進(jìn)行設置。因為Cancel-If-Queue牽扯了多種處理狀態(tài),流程處理的響應都完全不同,我們這里不做過(guò)多解釋。用戶(hù)可以參考RFC標準做進(jìn)一步的了解。
      MRCP協(xié)議根據不同的normal或hotword識別模式的不同,定義了不同的定時(shí)器來(lái)控制識別處理。normal 識別模式的定時(shí)器設置:
      hotwords 識別的定時(shí)器設置:
      現在,讓我們看一下RECOGNIZE  請求的圖例:
      相應的消息流程如下:  
           
      3、DEFINE-GRAMMAR method是請求語(yǔ)音識別資源訪(fǎng)問(wèn)消息體中語(yǔ)法進(jìn)行訪(fǎng)問(wèn),提取和編譯。MRCP客戶(hù)端不一定需要發(fā)起DEFINE-GRAMMAR 請求執行識別,相反的,它可以給客戶(hù)端提供一個(gè)選擇來(lái)準備處理比較大的語(yǔ)法文件。DEFINE-GRAMMAR請求的響應消息總是攜帶COMPLETE的響應。成功的響應消息返回200 Success和一個(gè)頭消息000 success。如果返回錯誤的話(huà),則會(huì )收到407 Method 或 Operation Failed,并且攜帶Completion-Cause 頭。以下是一個(gè)DEFINE-GRAMMAR 的示例:
      相應的響應消息流程如下:
     
     
     
      4、START-INPUT-TIMERS 是對定時(shí)器設置的請求方式。在MRCP v1的版本中這個(gè)method稱(chēng)之為RECOGNITION-START-TIMERS。 默認環(huán)境下,當識別資源啟動(dòng)以后,No-Input-Timeout 定時(shí)器就會(huì )自動(dòng)啟動(dòng),如果在超時(shí)之前,沒(méi)有檢測到任何的輸入的話(huà),識別就會(huì )結束,并且返回RECOGNITION-COMPLETE消息,消息中攜帶Completion-Cause,此值設置為002 no input-timeout。以下示例是一個(gè)START-INPUT-TIMERS的請求示例:
     
      START-INPUT-TIMERS 具體的消息處理流程如下:
     
        
      5、當識別請求成功完成后,識別結果會(huì )通過(guò)RECOGNITION-COMPLETE事件中的消息體返回到客戶(hù)端,并且識別引擎進(jìn)入到已識別狀態(tài)。返回結果可依賴(lài)于識別參數設置,例如安全閥值和N-Best-Length-List等。這里,我們可以使用GET-RESULT method來(lái)對進(jìn)入識別狀態(tài)的結果重新計算,或通過(guò)GET-RESULT 請求,根據識別設置參數返回相應的結果。例如,MRCP客戶(hù)端可以發(fā)起一個(gè)GET-RESULT 請求,設置了較低的安全閥值(Confidence-Threshold )和較高的N-Best-List-Length 來(lái)獲得一個(gè)假設值。以下是一個(gè)GET-RESULT的圖例:
      GET-RESULT相應的消息流程如下:


      6、STOP method可以支持對IN-PROGRESS 狀態(tài)(活動(dòng)的狀態(tài))或PENDING(隊列中的)請求執行停止。如果在STOP請求中忽略了Active-Request-Id-List 頭的話(huà),說(shuō)明活動(dòng)狀態(tài)的請求已經(jīng)停止,在隊列中的識別請求已經(jīng)被移除。如果STOP請求成功結束了一個(gè)或多個(gè)活動(dòng)的識別請求或隊列中的識別請求,返回到客戶(hù)端的響應消息是200 Success,并且包含一個(gè)Active-Request-Id-List 頭,這個(gè)頭值中包含了停止的請求ID列表。注意,這里服務(wù)器端也不會(huì )發(fā)送RECOGNITION-COMPLETE 事件。如果沒(méi)有結束的識別請求,同樣,客戶(hù)端也會(huì )收到200 Success,但是會(huì )忽略掉Active-Request-Id-List 頭。有時(shí),我們可以在STOP method的Active-Request-Id-List 頭中指定一個(gè)請求ID來(lái)停止這個(gè)識別請求,這個(gè)識別請求可能是在當前IN-PROGRESS狀態(tài)或PENDING隊列中的識別請求。如果當前活動(dòng)的識別請求被停止后,則可以處理下一個(gè)在PENDING隊列中請求。以下是一個(gè)STOP 示例圖:
      以下是相應的消息流程:
     
      7、INTERPRET method 的使用方式和RECOGNIZE 的method 非常相似,不同之處在于,RECOGNIZE是支持語(yǔ)音輸入的,但是這里的輸入是完全基于文本格式的形式,通過(guò)Interpret-Text 頭來(lái)設定這個(gè)文本格式。其返回的解析結果包含在INTERPRETATION-COMPLETE的事件消息體中。這里,讀者一定要注意,不像RECONGIZE method,它的請求不能支持隊列設置。如果有一個(gè)INTERPRET在處理狀態(tài)時(shí),再次發(fā)起另外一個(gè)INTERPRET會(huì )導致返回一個(gè)402 Method not valid in this state。所以,讀者一定要注意此method的使用方式。以下是一個(gè)INTERPRET的圖例:
      INTERPRET的消息處理流程如下: 
      8、在本部分的介紹中,筆者將介紹關(guān)于Voice enrolment 的幾個(gè)method方式。
      這里,我們首先介紹一下START-PHRASE-ENROLLMENT。
      START-PHRASE-ENROLLMENT 的目的是支持MRCP客戶(hù)端啟動(dòng)一個(gè)注冊會(huì )話(huà)(這里,翻譯成enrolment session,也可能有其他作者的翻譯名稱(chēng))。注冊會(huì )話(huà)的功能在于對每個(gè)獨立的說(shuō)話(huà)人添加一個(gè)特別的短語(yǔ),形成一個(gè)個(gè)人的語(yǔ)法。在注冊會(huì )話(huà)的生命周期內,MRCP客戶(hù)端會(huì )調用RECOGNIZE 請求,并且攜帶了Enroll-Utterance,這里,此頭值設置為true。每一次對RECOGINE調用都會(huì )捕捉單個(gè)的短語(yǔ)例句,并且執行注冊流程,最后以NLSML的文件格式通過(guò)RECOGNITION-COMPLETE進(jìn)行傳輸。一般情況下,識別資源需要重復多次來(lái)訓練短語(yǔ)。MRCP 客戶(hù)端通過(guò)調用END-PHRASE-ENROLLMENT來(lái)結束此注冊會(huì )話(huà)。如果要配置一個(gè)注冊會(huì )話(huà),在START-PHRASE-ENROLLMENT的請求中需要設定多個(gè)頭域。這些頭域包括Personal-Grammar-URI(獨立說(shuō)話(huà)人的個(gè)人語(yǔ)法設置),Phrase-ID(短語(yǔ)唯一的ID)和Phrase-NL(短語(yǔ)支持的自然語(yǔ)言或語(yǔ)義結果)。以下圖例說(shuō)明了START-PHRASE-ENROLLMENT的流程:
      以下是相應的消息流程: 
     

      第二個(gè)介紹的請求是ENROLLMENT-ROLLBACK。MRCP客戶(hù)端發(fā)起一個(gè)ENROLLMENT-ROLLBACK 請求回滾到上一個(gè)請求。此功能可以對句中不適合部分進(jìn)行處理排除。這里要求丟棄上一次RECOGNIZE請求中捕獲的語(yǔ)音。以下是一個(gè)ENROLLMENT-ROLLBACK圖例:
      具體的消息流程如下:
      F1(client→speechrecog):
      MRCP/2.0 83 ENROLLMENT-ROLLBACK 70000
      Channel-Identifier:23af1e13@speechrecog
      F2(speechrecog→client):
      MRCP/2.0 76 70000 200 COMPLETE
      Channel-Identifier:23af1e13@speechrecog
      這里,我們繼續討論第三個(gè)請求方式。END-PHRASE-ENROLLMENT是由MRCP客戶(hù)端發(fā)起,用來(lái)結束注冊會(huì )話(huà)的一個(gè)method,可以對接受的注冊短語(yǔ)進(jìn)行確認或丟棄短語(yǔ)。這個(gè)method通常是識別資源返回的RECOGNITION-COMPLETE事件中包含NLSML,并且攜帶了 重復數量設置,然后MRCP客戶(hù)端發(fā)起END-PHRASE-ENROLLMENT來(lái)結束注冊會(huì )話(huà)。如果要中斷短語(yǔ)注冊的話(huà),在END-PHRASE-ENROLLMENT的請求中設置Abort-Phrase-Enrollment置為true。如果在START-PHRASE-ENROLLMENT請求中出現了Save-Best-Waveform 頭,并且此頭設置為true,那么在返回的END-PHRASE-ENROLLMENT事件中會(huì )包含一個(gè)Waveform-URI來(lái)表示一個(gè)經(jīng)過(guò)訓練的短語(yǔ)錄音存放路徑。這些文件可以支持MRCP客戶(hù)端選擇類(lèi)型,用戶(hù)可以根據相應的個(gè)人的語(yǔ)法讀出短語(yǔ)。因為END-PHRASE-ENROLLMENT 的消息流程也比較簡(jiǎn)單,我們這里不再做過(guò)多解釋?zhuān)脩?hù)可以參考說(shuō)明的例子來(lái)學(xué)習。
      修改短語(yǔ)是第四個(gè)請求方式。MODIFY-PHRASE用來(lái)支持對個(gè)人語(yǔ)法中已注冊的短語(yǔ)中的某些參數屬性進(jìn)行修改。可修改的屬性包括:Phrase-ID,Phrase-NL,和Weight。可修改的短語(yǔ)通過(guò)其Phrase-ID來(lái)確認它的唯一性,通過(guò)頭域值設置修改Phrase-NL或Weight。如果是ID被修改的話(huà),客戶(hù)端會(huì )生成一個(gè)新的New-Phrase-ID頭來(lái)表示這是新的短語(yǔ)ID。以下圖例表示了MODIFY-PHRASE 流程:
      具體的MODIFY-PHRASE消息流程如下:
      F1(client→speechrecog):
      MRCP/2.0 133 MODIFY-PHRASE 90000
      Channel-Identifier:23af1e13@speechrecog
      Phrase-ID:Name01
      New-Phrase-ID:Name03
      Weight:0.5
      F2(speechrecog→client):
      MRCP/2.0 76 90000 200 COMPLETE
      Channel-Identifier:23af1e13@speechrecog
      刪除短語(yǔ)是第五個(gè)請求方式。DELETE-PHRASE method是客戶(hù)端用來(lái)從個(gè)人語(yǔ)法中刪除一個(gè)短語(yǔ)ID,通過(guò)Phrase-ID來(lái)表示,個(gè)人語(yǔ)法的設定通過(guò)Personal-Grammar-URI來(lái)表示。以下是一個(gè)刪除短語(yǔ)的圖例:
      其具體的刪除短語(yǔ)的消息流程如下:
      F1(client→speechrecog):
      MRCP/2.0 162 DELETE-PHRASE100000
      Channel-Identifier:23af1e13@speechrecog
      Personal-Grammar-URI:http://enrolledgrammars/user01gram02.dat
      Phrase-ID:Name01
      F2(speechrecog→client):
      MRCP/2.0 77 100000 200 COMPLETE
      Channel-Identifier:23af1e13@speechrecog
      回顧本章節的內容,我們首先介紹了語(yǔ)音識別資源的請求處理方式,事件和headers,并且列出了它們的使用方式和屬性設置。然后,筆者重點(diǎn)介紹了語(yǔ)音識別資源的六大methods和語(yǔ)法注冊時(shí)使用的五個(gè)methods。因為篇幅的關(guān)系,筆者把語(yǔ)法注冊的methods 歸納在一個(gè)話(huà)題中,以便方便讀者能夠結合這些相關(guān)的method充分了解注冊語(yǔ)法的這些請求處理方式。筆者相信,通過(guò)本章節關(guān)于語(yǔ)音識別資源的請求處理的概念介紹結合圖例和消息流程,讀者會(huì )進(jìn)一步了解語(yǔ)音識別的消息流程處理。
      在下一個(gè)章節中,我們重點(diǎn)介紹語(yǔ)音識別資源中的事件和相關(guān)的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
      參考:
      https://tools.ietf.org/html/rfc6787
     

    【免責聲明】本文僅代表作者本人觀(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