阅读“百度语音文档”

基本概念

语音识别(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)的取值。

阅读“百度语音文档”_第1张图片
image.png
阅读“百度语音文档”_第2张图片
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

常见时间段的开始和结束时间点定义如下表

阅读“百度语音文档”_第3张图片
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,
    }

你可能感兴趣的:(阅读“百度语音文档”)