語音識別方法及系統的制作方法
【專利摘要】本發明公開了一種語音識別方法及系統,該方法包括:獲取用戶發送的語音信息;將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別引擎和本地識別引擎分別對所述語音信息進行識別;如果先接收到所述云端識別引擎返回的云端識別結果,則輸出所述云端識別結果;如果先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限,則輸出所述本地識別結果。利用本發明,可以在網絡不好或沒有網絡的情況下也能夠為用戶提供可靠的語音識別結果。
【專利說明】語音識別方法及系統【技術領域】
[0001]本發明涉及語音識別【技術領域】,具體涉及一種語音識別方法及系統。
【背景技術】
[0002]隨著計算機科學與技術的日益發展,語音識別技術已經逐漸成熟。并被廣泛用于手機、電視、車載等領域。以車載為例,由于人在開車時不能方便地用手操作界面,使得語音識別作為一種相對便捷的交互方式,使車載能夠提供更多的功能。現有技術中,語音識別的模式通常為:接收用戶的語音信息,與云端語音識別服務器建立連接,發送語音信息至服務器,由服務器對該信息進行識別,再返回識別結果至客戶端。但移動設備上不一定有穩定的網絡連接,在這種情況下云端返回可能經歷較大的延遲,降低用戶體驗,甚至沒有網絡,導致云端識別根本不可用。
【發明內容】
[0003]本發明提供一種語音識別方法及系統,可以在網絡不好或沒有網絡的情況下也能夠為用戶提供可靠的語音識別結果。
[0004]為此,本發明提供如下技術方案:
[0005]一種語音識別方法,包括:
[0006]獲取用戶發送的語音信息;
[0007]將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別弓I擎和本地識別弓I擎分別對所述語音信息進行識別;
[0008]如果先接收到所述云 端識別引擎返回的云端識別結果,則輸出所述云端識別結果;
[0009]如果先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限,則輸出所述本地識別結果。
[0010]優選地,所述方法還包括:
[0011]如果所述置信度在所述置信度區間內,則依次在設定的等待時長內降低所述置信度區間上限;
[0012]如果在所述等待時長內接收到所述云端識別引擎返回的云端識別結果,則輸出所述云端識別結果;
[0013]如果在所述等待時長內未接收到所述云端識別引擎返回的云端識別結果,并且所述本地識別結果對應的置信度大于降低后的置信度區間上限,則輸出所述本地識別結果。
[0014]優選地,每次的等待時長相同或不同。
[0015]優選地,所述方法還包括:
[0016]如果降低所述置信度區間上限的次數超過設定的次數閾值后,所述本地識別結果對應的置信度仍然小于降低后的置信度區間下限,并且仍未收到所述云端識別結果,則向用戶返回識別失敗信息。[0017]優選地,所述方法還包括:
[0018]如果先接收到所述本地識別結果,并且所述本地識別結果對應的置信度小于設定的置信度區間下限,則丟棄所述本地識別結果,繼續等待所述云端識別引擎返回云端識別結果;
[0019]如果等待時間超過設定的阻塞時長,則向用戶返回識別失敗信息。
[0020]優選地,所述方法還包括:
[0021]接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。
[0022]一種語音識別系統,包括:
[0023]語音信息獲取單元,用于獲取用戶發送的語音信息;
[0024]發送單元,用于將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別弓I擎和本地識別弓I擎分別對所述語音信息進行識別;
[0025]接收單元,用于接收所述云端識別引擎返回的云端識別結果以及所述本地識別引擎的本地識別結果;
[0026]輸出單元,用于在所述接收單元先接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在所述接收單元先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限時,輸出所述本地識別結
果O
[0027]優選地,所述系統還包括:
[0028]置信度調整單元,用于在所述置信度在所述置信度區間內時,依次在設定的等待時長內降低所述置信度區間上限;
[0029]所述輸出單元,還用于在所述等待時長內所述接收單元接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在所述等待時長內所述接收單元未接收到所述云端識別引擎返回的云端識別結果,并且所述本地識別結果對應的置信度大于降低后的置信度區間上限時,輸出所述本地識別結果。
[0030]優選地,所述系統還包括:
[0031]統計單元,用于統計所述置信度調整單元降低所述置信度區間上限的次數;
[0032]所述輸出單元,還用于在所述次數超過設定的次數閾值后,如果本地識別結果對應的置信度仍然小于降低后的置信度區間下限,并且仍未收到所述云端識別結果,則向用戶返回識別失敗信息。
[0033]優選地,所述接收單元,還用于在先接收到所述本地識別結果,并且所述本地識別結果對應的置信度小于設定的置信度區間下限時,丟棄所述本地識別結果,繼續等待所述云端識別引擎返回云端識別結果;并在等待時間超過設定的阻塞時長后,向用戶返回識別失敗息。
[0034]優選地,所述系統還包括:
[0035]觸發單元,用于在接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。
[0036]本發明實施例提供的語音識別方法及系統,將本地識別與云端識別相結合,在接收到用戶發送的語音信息后,將所述語音信息分別發送給云端識別引擎和本地識別引擎進行識別。并且在先接收到云端識別引擎返回的云端識別結果時,直接輸出云端識別結果。如果先接收到本地識別引擎的本地識別結果,且本地識別結果對應的置信度大于設定的置信度區間上限時,則輸出本地識別結果。并且堅持云端識別結果優于本地識別結果,如果云端識別能在本地識別提供一個相對準確的識別結果之前返回結果,則采用云端識別結果。從而可以在沒有網絡接入時完成利用本地識別引擎來完成無須網絡的本地功能,如打電話、發短信、聽音樂等等。
[0037]進一步地,如果先接收到的本地識別結果的置信度較低,在設置的置信度區間內,則通過不斷地降低本地識別的置信度門限,直到有一個合格的輸出或識別失敗。
[0038]由于本發明實施例提供的方案將本地識別與云端識別相結合,可以保證在網絡不好或沒有網絡的情況下盡可能地提供可靠的語音識別結果。
【專利附圖】
【附圖說明】
[0039]為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據這些附圖獲得其他的附圖。
[0040]圖1是本發明實施例語音識別方法的一種流程圖;
[0041]圖2是本發明實施例語音識別方法的另一種流程圖;
[0042]圖3是本發明實施例語音識別系統的一種結構示意圖;
[0043]圖4是本發明實施例語音識別系統的另一種結構示意圖。
【具體實施方式】
[0044]為了使本【技術領域】的人員更好地理解本發明實施例的方案,下面結合附圖和實施方式對本發明實施例作進一步的詳細說明。
[0045]本發明實施例提供一種語音識別方法及系統,結合云端識別和本地識別,可以在沒有網絡接入時完成利用本地識別引擎來完成無須網絡的本地功能,如打電話、發短信、聽音樂等等。也可以根據網絡連接的延遲時間動態降低對本地引擎結果的要求。
[0046]如圖1所示,是本發明實施例語音識別方法的一種流程圖,包括以下步驟:
[0047]步驟101,獲取用戶發送的語音信息。
[0048]步驟102,將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別弓I擎和本地識別弓I擎分別對所述語音信息進行識別。
[0049]具體地,可以用錄音模塊記錄用戶發送的語音信息。記錄下來的語音信息可以直接發送給云端識別引擎和本地識別引擎;也可以先用語音檢測模塊過濾出有效的信息起止點,然后再發送給云端識別弓I擎和本地識別引擎。
[0050]步驟103,如果先接收到所述云端識別引擎返回的云端識別結果,則輸出所述云端識別結果。
[0051]因為云端的服務器識別引擎性能強大,識別結果有較高的置信度,因此在優先接收到云端識別結果后,可以直接輸出該識別結果。
[0052]步驟104,如果先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限,則輸出所述本地識別結果。
[0053]由于在網絡環境不好的情況下,云端的識別結果可能有相當大的延遲。此時,獲取此語音信息所對應的本地識別結果和該結果的置信度值,如果該置信度值大于系統設置的置信度門限,說明該識別結果是完全可用的,因此輸出本地識別結果,無需再等待云端識別結果。
[0054]可見,本發明實施例提供的語音識別方法,將本地識別與云端識別相結合,根據云端識別結果和本地識別結果返回的先后、以及優先返回的本地識別結果的置信度來決定選用的識加結果。并始終堅持云端的結果優于本地,如果云端識別能在本地識別提供一個相對準確的識別之前返回結果,就采用云端的結果。
[0055]為了進一步解決網絡延遲或網絡不可用情況下也能夠得到具有一定準確率的語音識別結果,本發明語音識別方法另一實施例還可以根據當前的網絡狀況動態調整本地識別的置信度門限,在最短的延遲時間輸出最好的結果。
[0056]如圖2所示,是本發明實施例語音識別方法的另一種流程圖,包括以下步驟:
[0057]圖2中的步驟201至步驟203與圖1中的步驟101至步驟103相同,在此不再贅述。
[0058]步驟204,如果先接收到本地識別引擎的本地識別結果,則獲取本地識別結果對應
的置信度。
[0059]另外,在步驟204中,需要根據本地識別結果的置信度確定后續的處理操作,保證在最短的延遲時間內輸出最好的結果。具體地,如果置信度小于設定的置信度區間下限,則執行步驟205 ;如果置信度在設定的置信度區間內,則執行步驟208 ;如果置信度大于設定的置信度區間上限,則執行步驟213。
[0060]步驟205,丟棄本地識別結果,繼續等待云端識別引擎返回云端識別結果。
[0061]步驟206,判斷等待時間是否超過設定的阻塞時長;如果是,則執行步驟207 ;否則
繼續等待。
[0062]步驟207,向用戶返回識別失敗信息。
[0063]步驟208,依次在設定的等待時長內降低所述置信度區間上限。
[0064]步驟209,判斷在所述等待時長內是否接收到云端識別結果。如果是,則執行步驟210 ;否則,執行步驟211。
[0065]步驟210,輸出云端識別結果。
[0066]步驟211,判斷本地識別結果對應的置信度是否大于當前降低后的置信度區間上限。如果是,則執行步驟213 ;否則,執行步驟212。
[0067]步驟212,判斷降低所述置信度區間上限的次數是否超過設定的次數閾值(比如可以是次數閾值可以為I至3等)。如果是,則執行步驟207 ;否則,返回步驟208。
[0068]步驟213,輸出本地識別結果。
[0069]需要說明的是,上述步驟208中提到的等待時長是降低置信度區間上限的時間間隔,比如可以是2-5秒等,而且每次降低置信度區間上限的時間間隔可以相同,也可以不同。而上述步驟206中提到的等待時間與上述等待時長是兩個不同的概念,所述等待時間是指等待接收到云端識別結果的時間,其起點可以是將所述語音信息分別發送給云端識別引擎和本地識別引擎開始計時,也可以是從丟棄本地識別結果后開始計時,對此本發明實施例不做限定。
[0070]另外,在實際應用中,在每次降低所述置信度區間上限后的一定時間內未接收到云端識別結果,而本地識別結果對應的置信度也不能滿足要求的情況下,也可以不去判斷降低所述置信度區間上限的次數是否超過設定的次數閾值,而是判斷等待的時間是否超過限定的等待時間,如果超過,則向用戶返回識別失敗信息,以防止等待時間過長,影響用戶體驗。
[0071]由于云端具有強大的服務器處理能力和海量的語音數據比對,識別結果置信度高,而本地識別無須網絡支持,有很高的識別速度和很廣的適用范圍,尤其適用一些無穩定網絡連接的移動設備上。因此,本發明實施例的語音識別方法將本地識別與云端識別相結合,兼顧兩者各自的優點,在獲取到用戶發送的語音信息后,將其同時發送給云端識別引擎和本地識別引擎進行識別。如果云端識別能在本地識別提供一個相對準確的識別之前返回結果,則采用云端識別結果。否則,不斷地降低本地識別的置信度門限,直到有一個合格的輸出或識別失敗,因此可以保證在網絡不好或沒有網絡的情況下盡可能的提供可靠的語音識別結果。
[0072]本發明實施例的語音識別方法,通過簡單高效的本地識別引擎來滿足網絡不通時對本地命令的識別,另外,由于對云端和本地識別結果的取舍策略可以降低識別的延遲時間,可以根據當前的網絡狀況動態地調整本地識別的置信度門限,從而保證在最短的延遲時間輸出最好的結果。
[0073]另外,需要說明的是,在實際應用中,可以在接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。比如,所述語音識別請求可以在用戶按下語音識別鍵時發送,或者向用戶提供語音喚醒功能,在后臺一直開啟錄音,在識別到特定關鍵字時發送。
[0074]對于本地識別引擎對特定關鍵字的識別可以采用一些常規的識別方法,比如,本地識別引擎讀取事先定義好的語法文件,該文件定義了語音識別所支持的命令詞的集合,而相同作用命令詞的集合都存在詞典里,本地識別引擎可以高效存取。本地識別引擎通過語法文件生成一個識別網絡,本地識別引擎提取輸入語音的特征信息并在識別網絡上進行路徑匹配,最終凡是用戶說出這個語法文件定義范圍內的任意一句話,均可以被系統識別,從而識出所述特定關鍵字。
[0075]當然,對云端識別引擎及本地識別引擎具體采用哪種語音識別技術,本發明實施例不做限定,尤其是對本地識別引擎,可以根據具體應用場景需要來選擇,都不會影響本發明所能達到的上述效果。
[0076]相應地,本發明實施例還提供一種語音識別系統,如圖3所示,是該系統的一種結構示意圖。
[0077]在該實施例中,所述系統包括:
[0078]語音信息獲取單元301,用于獲取用戶發送的語音信息。
[0079]發送單元302,用于將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別弓I擎和本地識別弓I擎分別對所述語音信息進行識別。
[0080]接收單元303,用于接收所述云端識別引擎返回的云端識別結果以及所述本地識別引擎的本地識別結果。
[0081]輸出單元304,用于在接收單元303先接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在接收單元303先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限時,輸出所述本地識別結果。
[0082]本發明實施例提供的語音識別系統,將本地識別與云端識別相結合,根據云端識別結果和本地識別結果返回的先后、以及優先返回的本地識別結果的置信度來決定選用的識加結果。并始終堅持云端的結果優于本地,如果云端識別能在本地識別提供一個相對準確的識別之前返回結果,就采用云端的結果。
[0083]為了進一步解決網絡延遲或網絡不可用情況下也能夠得到具有一定準確率的語音識別結果,本發明語音識別系統另一實施例還可以根據當前的網絡狀況動態調整本地識別的置信度門限,在最短的延遲時間輸出最好的結果。
[0084]如圖4所示,是本發明語音識別系統另一實施例的結構示意圖。
[0085]與圖3所示實施例不同的是,在該實施例中,所述系統還包括:
[0086]置信度調整單元401,用于在所述置信度在所述置信度區間內時,依次在設定的等待時長內降低所述置信度區間上限。
[0087]相應地,在該實施例中,所述輸出單元304還用于在所述等待時長內接收單元303接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在所述等待時長內接收單元303未接收到所述云端識別引擎返回的云端識別結果,并且所述本地識別結果對應的置信度大于降低后的置信度區間上限時,輸出所述本地識別結果。
[0088]另外,為了防止等待識別結果輸出的時間過長,影響用戶體驗,如圖4所示,該系統還可進一步包括:統計單元402,用于統計所述置信度調整單元401降低所述置信度區間上限的次數。
[0089]相應地,輸出單元304還可用于在所述統計單元401統計的次數超過設定的次數閾值后,如果本地識別結果對應的置信度仍然小于降低后的置信度區間下限,并且仍未收到所述云端識別結果,則向用戶返回識別失敗信息。
[0090]為了保證輸出的本地識別結果的準確率,在上述圖3和圖4所示實施例中,所述的接收單元303還可用于在先接收到所述本地識別結果,并且所述本地識別結果對應的置信度小于設定的置信度區間下限時,丟棄所述本地識別結果,繼續等待所述云端識別引擎返回云端識別結果;并在等待時間超過設定的阻塞時長后,向用戶返回識別失敗信息。當然,在實際應用中,也可以由接收單元303將上述情況通知輸出單元304,而由輸出單元304向用戶返回識別失敗信息。
[0091]另外,云端識別引擎和本地識別引擎的開啟可以有不同的方式,比如,在上述各實施例中,所述系統還可包括觸發單元(未圖示),用于在接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。所述語音識別請求可以在用戶按下語音識別鍵時發送,或者向用戶提供語音喚醒功能,在后臺一直開啟錄音,在識別到特定關鍵字時發送。
[0092]對于本地識別引擎對特定關鍵字的識別可以采用一些常規的識別方法,比如,本地識別引擎讀取事先定義好的語法文件,該文件定義了語音識別所支持的命令詞的集合,而相同作用命令詞的集合都存在詞典里,本地識別引擎可以高效存取。本地識別引擎通過語法文件生成一個識別網絡,本地識別引擎提取輸入語音的特征信息并在識別網絡上進行路徑匹配,最終凡是用戶說出這個語法文件定義范圍內的任意一句話,均可以被系統識別,從而識出所述特定關鍵字。[0093]當然,對云端識別引擎及本地識別引擎具體采用哪種語音識別技術,本發明實施例不做限定,尤其是對本地識別引擎,可以根據具體應用場景需要來選擇,都不會影響本發明所能達到的上述效果。
[0094]通過上述描述可見,本發明實施例的語音識別系統,通過簡單高效的本地識別引擎來滿足網絡不通時對本地命令的識別,另外,由于對云端和本地識別結果的取舍策略可以降低識別的延遲時間,可以根據當前的網絡狀況動態地調整本地識別的置信度門限,從而保證在最短的延遲時間輸出最好的結果。
[0095]本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。
[0096]需要說明的是,以上所描述的系統實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解并實施。
[0097]以上對本發明實施例進行了詳細介紹,本文中應用了【具體實施方式】對本發明進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及設備;同時,對于本領域的一般技術人員,依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
【權利要求】
1.一種語音識別方法,其特征在于,包括: 獲取用戶發送的語音信息; 將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別引擎和本地識別弓I擎分別對所述語音信息進行識別; 如果先接收到所述云端識別引擎返回的云端識別結果,則輸出所述云端識別結果; 如果先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限,則輸出所述本地識別結果。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 如果所述置信度在所述置信度區間內,則依次在設定的等待時長內降低所述置信度區間上限; 如果在所述等待時長內接收到所述云端識別引擎返回的云端識別結果,則輸出所述云端識別結果; 如果在所述等待時長內未接收到所述云端識別引擎返回的云端識別結果,并且所述本地識別結果對應的置信度大于降低后的置信度區間上限,則輸出所述本地識別結果。
3.根據權利要求2所述的方法,其特征在于,每次的等待時長相同或不同。
4.根據權利要求2所述的方法,其特征在于,所述方法還包括: 如果降低所述置信度區間上限的`次數超過設定的次數閾值后,所述本地識別結果對應的置信度仍然小于降低后的置信度區間下限,并且仍未收到所述云端識別結果,則向用戶返回識別失敗信息。
5.根據權利要求2所述的方法,其特征在于,所述方法還包括: 如果先接收到所述本地識別結果,并且所述本地識別結果對應的置信度小于設定的置信度區間下限,則丟棄所述本地識別結果,繼續等待所述云端識別引擎返回云端識別結果; 如果等待時間超過設定的阻塞時長,則向用戶返回識別失敗信息。
6.根據權利要求1至5任一項所述的方法,其特征在于,所述方法還包括: 接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。
7.一種語音識別系統,其特征在于,包括: 語音信息獲取單元,用于獲取用戶發送的語音信息; 發送單元,用于將所述語音信息分別發送給云端識別引擎和本地識別引擎,以使所述云端識別弓I擎和本地識別弓I擎分別對所述語音信息進行識別; 接收單元,用于接收所述云端識別引擎返回的云端識別結果以及所述本地識別引擎的本地識別結果; 輸出單元,用于在所述接收單元先接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在所述接收單元先接收到所述本地識別引擎的本地識別結果,并且所述本地識別結果對應的置信度大于設定的置信度區間上限時,輸出所述本地識別結果O
8.根據權利要求7所述的系統,其特征在于,所述系統還包括: 置信度調整單元,用于在所述置信度在所述置信度區間內時,依次在設定的等待時長內降低所述置信度區間上限;所述輸出單元,還用于在所述等待時長內所述接收單元接收到所述云端識別引擎返回的云端識別結果時,輸出所述云端識別結果;在所述等待時長內所述接收單元未接收到所述云端識別引擎返回的云端識別結果,并且所述本地識別結果對應的置信度大于降低后的置信度區間上限時,輸出所述本地識別結果。
9.根據權利要求8所述的系統,其特征在于,所述系統還包括: 統計單元,用于統計所述置信度調整單元降低所述置信度區間上限的次數; 所述輸出單元,還用于在所述次數超過設定的次數閾值后,如果本地識別結果對應的置信度仍然小于降低后的置信度區間下限,并且仍未收到所述云端識別結果,則向用戶返回識別失敗信息。
10.根據權利要求8所述的系統,其特征在于, 所述接收單元,還用于在先接收到所述本地識別結果,并且所述本地識別結果對應的置信度小于設定的置信度區間下限時,丟棄所述本地識別結果,繼續等待所述云端識別引擎返回云端識別結果;并在等待時間超過設定的阻塞時長后,向用戶返回識別失敗信息。
11.根據權利要求7至10任一項所述的系統,其特征在于,所述系統還包括: 觸發單元,用于在接收到用戶發送的語音識別請求后,開啟云端識別引擎和本地識別引擎。.
【文檔編號】G10L15/30GK103440867SQ201310335050
【公開日】2013年12月11日 申請日期:2013年8月2日 優先權日:2013年8月2日
【發明者】朱國正, 任嚴佳 申請人:安徽科大訊飛信息科技股份有限公司