閱讀“百度語音文檔”

基本概念

語音識別(Automatic Speech Recognition,ASR):也被稱為自動語音識別,其目標是將人類的語音中的詞匯內容轉換為計算機可讀的輸入,例如按鍵、二進制編碼或者字符序列。

自然語言理解(Natural Language Understanding,NLU): 俗稱人機對話,人工智能的分支學科。研究用電子計算機模擬人的語言交際過程,使計算機能理解和運用人類社會的自然語言如漢語、英語等,實現人機之間的自然語言通信,以代替人的部分腦力勞動,包括查詢資料、解答問題、摘錄文獻、匯編資料以及一切有關自然語言信息的加工處理。

語音識別SDK離在線融合版(Baidu Voice Recognition Client V2, BDASRv2):文中簡稱為BDASRv2。BDASRv2是一個封裝了語音采集、語音預處理、云端識別、離線識別等功能的語音識別解決方案。使用BDASRv2可以快速在應用程序中集成語音識別功能。

BDVRClient是運行在Android 平臺的一體化語音識別解決方案,以JAR包 + SO庫的形式發布,BDVRClient支持下列功能:

?   語音識別控件:集成提示音、音量反饋動效整套交互的對話框控件,方便開發者快速集成;
?   基本功能:錄音,語音數據處理,端點檢測、網絡通訊和狀態通知,返回識別結果;
?   播放提示音:在錄音前后播放提示音,優化用戶體驗;
?   監聽語音能量:實時反饋用戶當前說話聲音能量強度;
?   語義理解:將語音識別成領域相關的語義結果。

語義理解

意圖表示協議描述語言
為了易于人閱讀,同時也方便機器解析和生成,意圖表示協議采用 json 語言進行描述,采用 gb18030 編碼。json 語言的基本概念:
屬性名/屬性值
即鍵值對(key-value)
數組
在 json 中是“[]”括起來的內容,數據結構為["value1","value2",...],取值方式和所有語言中一樣,使用索引獲取,屬性值的類型可以是數字、字符串、數組、對象。
對象
在 json 中表示為“{}”括起來的內容,數據結構為 {key1:value1,key2:value2,...}的鍵值對的結構。在面向對象的語言中,key 為對象的屬性,value 為對應的屬性值,所以很容易理解,取值方法為對象.key 獲取屬性值,這個屬性值的類型可以是數字、字符串、數組、對象幾種。
意圖表示協議
自然語言文本(以下簡稱 query)。query 的意圖表示由如下鍵值對和數組構成:
. raw_text:用戶的原始輸入文本
. parsed_text:經過分詞,糾錯,改寫處理后的文本
. version:協議版本號
. results:意圖表示數組
意圖表示數組中存放多個意圖表示對象。每個意圖表示對象含有領域、意圖、置信度三個鍵值對和一個意圖對象。
領域(domain):同一類型的數據或資源,以及圍繞數據或資源提供的服務稱為一個領域。領域數據一般是結構化的表格數據,有一個主鍵(主屬性);領域一般以名詞命名。如: 列車:圍繞車次數據的列車時刻查詢和預訂服務,主鍵是車次 天氣:圍繞天氣數據的查詢服務,主鍵是日期 電話:圍繞聯系人-號碼數據的電話撥打、通話記錄查詢服務,主鍵是電話號碼
意圖(intent):代表用戶對領域數據的操作,如查詢、查詢某一個屬性的值、預訂、撥打等。一般以動詞命名。
置信度(score):意圖表示的置信度,多個意圖表示對象按置信度降序排序。
意圖對象(object):描述意圖的數據(鍵值對的集合),也是實現意圖所需要的參數。
意圖表示以 json 語言描述,json 語言中“對象”指的是鍵值對的集合。

語義理解示例:
query:北京西站到無錫的高鐵

    {
     "raw_text": "北京西站到無錫的高鐵",
     "parsed_text": "北京 西站 到 無錫 的 高鐵",
     "results": [
     {
     "domain": "train",
     "intent": "query",
     "score": 1,
     "object": {
     "arrival_city": "無錫",
     "start_city": "北京",
     "start_station": "北京西站",
     "train_type": "高速動車"
     }
     }
     ]
    }    

領域取值

本表格詳細描述了領域(domain)的取值。

image.png
image.png

意圖取值

意圖和領域相關,不同領域下有多種意圖,我們將意圖抽樣為一般查詢(query)和具體屬性值的查詢(get)兩類,部分領域還有特殊的意圖。詳見第三節各領域意圖表示。
一般查詢是指用戶對某一個領域的通用查詢,不針對特定屬性,如“北京到上海的飛機”;具體屬性值的查詢(下文簡稱屬性查詢)是用戶針對一個領域的特定屬性進行查詢,如“ho1252 航班什么時候起飛”,用戶查詢的是航班 ho1252 的起飛時間屬性。

屬性值類型

基本數據類型,如 string、int、float 之外,還定義了時間(time)、日期(date)、折扣(discount)等屬性值類型。
在以上類型定義的基礎上,還定義了組合類型和范圍類型,如時間日期(date_time)、時間段(time_range)、日期段(date_range)、時間日期段(date_time_range)、金額范圍(amount_range)、折扣范圍(discount_range)等。

日期(date)

格式是:yyyy-mm-dd,4位阿拉伯數字代表年份,2位數字代表月份,2位數字代表日期。支持多種自然語言表述的日期到上述標準格式的歸一化解析。

?   一般日期或農歷日期。如果沒有年或月,則默認當年當月。示例:
?   2013年1月10號:2013-01-10
?   8 月 15:2013-08-15
?   農歷二月初一:2013-03-12
?   相對日期,示例:
?   明天:2013-09-26
?   下周一:2013-09-30
?   節日,示例:
?   春節:2013-02-10
?   明年春節:2014-01-31
?   父親節:2013-06-16

時間(time)

格式是:hh:mm:ss,24小時制,分別用2位數字代表時、分、秒。支持多種自然語言表述的時間到上述標準格式的歸一化解析。示例:

?   十點整:10:00:00
?   下午三點半:15:30:00

時間日期(date_time)

時間和日期的組合類型。示例:
query:明天早上八點

    {
     "date":"2013-09-26",
     "time":"08:00:00",
    }

日期段(date_range)
以逗號間隔的兩個日期表示日期段的開始和結束。示例:

?   明后天:2013-09-26,2013-09-27
?   下周末:2013-10-05,2013-10-06

時間段(time_range)
以逗號間隔的兩個時間表示時間段的開始和結束。如“上午”、“明天下午”等常見的時間段表述,起始和結束的時間點見表格 2-2 常見時間段的開始和結束時間點定義。示例:

?   下午:12:00:00,18:59:59
?   早上:04:00:00,11:59:59

常見時間段的開始和結束時間點定義如下表

image.png

時間日期段(date_time_range)

以兩個時間日期類型的值分別表示時間范圍和起始(begin)和結束(end)。示例:
query:明天下午 3 點半到后天早上 8 點

  {
     "begin":{
     "date":"2013-09-26",
     "time":"15:00:00"
     },
     "end":{
     "date":"2013-09-27",
     "time":"08:00:00"
     }
    }

query:中秋節假期

    {
     "begin":{
     "date":"2013-09-19",
    "time":"00:00:00"
     },
     "end":{
     "date":"2013-09-21",
     "time":"23:59:59"
    }
    }

query:明天晚上

    {
     "begin":{
     "date":"2013-09-26",
     "time":"17:00:00"
     },
     "end":{
     "date":"2013-09-26",
     "time":"23:59:59"
     }
    }

重復時間(repeat_time)
提醒、鬧鐘等設置需要用到:示例:
query:每天早上十點

    {
     "time":"10:00:00",
     "repeat":"00001111111",
    }

注意:repeat 是 11 個字符的字符串,從左到右分別是月份(01)日期(23)和星期(4~10)。對月份和日期位,非 0 值代表該月或日期進行提醒,對 7 個星期位,每位對應一天,值為 1 代表該天進行提醒。

query:每天中午十二點整

 {
     "time":"12:00:00",
     "repeat":"00001111111",
    }

query:每個月 11 號 12 點

{
     "time"::"12:00:00",
     "repeat":"00110000000",
    }

query:每年的元旦

{
     "repeat":"01010000000",
    }

金額范圍(amount_range)
以兩個浮點數代表金額范圍。示例:

    {
     "begin":100.00,
    "end":200.00
    }

query:300 元左右

    {
     "begin":240.00,
    "end":360.00
    }

query:200 元以下

    {
     "begin":0.00,
    "end":200.00
    }

query:300 元以上

    {
     "begin":300.00",
     "end":-1
    }

注意:-1 代表無窮大。

折扣(discount)
價格的折扣,如一折、八五折、半價等,解析成 0 到 1 之間的浮點數。示例:

?   三折:0.3
?   半價:0.5

折扣范圍(discount_range)
以兩個折扣類型的值分別表示折扣范圍的最小值(begin)和最大值(end)。示例:
query:三折到八五折:

    {
     "begin":0.3,
    "end":0.85,
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優秀的...
    笨鳥慢飛閱讀 5,597評論 0 4
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 前面的文章主要從理論的角度介紹了自然語言人機對話系統所可能涉及到的多個領域的經典模型和基礎知識。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 14,050評論 2 64
  • 轉眼已到異國他鄉,作業收到7份。外出地鐵上點評。 死磕軍團第一人!贊一個!從斷舍離開始引爆,內容豐富舒展,又體現了...
    陌上花開wen閱讀 906評論 0 0