SlideShare a Scribd company logo
1 of 53
Download to read offline
iOS	
  DevCamp	
  
Produced	
  by	
  CSDN	
  
	
  
Website:	
  
h5p://devcamp.csdn.net	
  
Weibo:	
  
h5p://weibo.com/cmdnclub	
  
	
  
	
  




                               1
Siri: I, Robot !



                 张俊林
               2012.07.27

                            2
About me
•  中科院软件所     博士
•  《这就是搜索引擎:核心技术详解》作者
•  现任职新浪微博,从事语义分析,搜索,推荐系
   统,社交挖掘方面研发工作
•  微博:张俊林say http://www.weibo.com/
   malefactor




                                     3
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        4
Siri初体验




          5
Siri不是什么以及Siri是什么!

•  Siri不只是
  –    语音识别系统;
  –    持续自学习系统;
  –    上下文感知系统;
  –    传统的AI基础架构;
•  Siri是什么
  –  集成上述优点的服务导向的新型AI架构
  –  本质上是个通过多轮对话的用户意图识别系统
  –  集成了语音识别、自然语言处理、用户意图分析、任务控制系统
     等多种技术的综合AI框架



                                    6
Siri的血统与出身!

•  DARPA项目Contract numbers FA8750-07-
   D-0185/0004)
   –  Personalized Assistant That Learns Program(PAL);
   –  Personalized Assistant That Learns Program(CALO);
•  via SRI International’s Artificial Intelligence
   Center
•  超过40年的研究
•  2010年4月被苹果公司收购
•  集成进入Iphone 4S

                                                      7
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        8
(云+客户端+外部服务)架构!




                  9
Siri的功能粗粒度划分!

•  多模态输入->文本表示
•  文本表示->用户意图
 –  深层NLP
 –  会话控制
 –  任务控制
•  用户意图->功能服务
 –  服务管理
•  功能服务->多模态输出


                            10
Siri整体架构图!




             11
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        12
Siri整体架构图-Where Are We Now!




                              13
Siri的输入系统!

•  输入系统包含三个目的
 –  支持多通道输入模式
 –  进行早期消除歧义
 –  尽可能引导用户到Siri能够提供的服务
•  多模态输入
 –  语音
 –  文本输入
 –  地理位置信息输入(GPS etc)
 –  GUI选择界面
 –  事件驱动(闹钟,事件提醒等主动触发通知事件)


                             14
Siri的输入系统!




   GUI




             15
Siri的输入系统!




             16
Siri的输入系统!

•  语音识别




                    NO


              YES




                         17
Siri的输入系统!

•  语音识别系统
 –  购自Nuance通信公司
 –  为苹果公司的Siri作出了定制化改造
   •  语言模型
     –  自动判断多种可能的字符流,哪种更符合语言表达习惯




     –  Candidate1:P1(我 喜欢 苹果)=p(我)*p(喜欢|我)*p(苹果|喜欢)
        =0.35
     –  Candidate2:P2(我 稀饭 苹果) )=p(我)*p(稀饭|我)*p(苹果|稀饭)
        =0.05

                                                   18
Siri的输入系统!

•  语音识别系统
 –  语言模型的定制化改造
    •  商业实体信息
    •  用户个性化信息

 –  语法语义检查
     •  Candidate1:Italian food for lunch
     •  Candidate2:Italian shoes for lunch




                                             19
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        20
Siri整体架构图-Where Are We Now!




                              21
活跃本体(Active Ontology)!

•  Siri系统最核心部分,驱动调用大部分其他数据、
   模型和功能!
•  类似于人的记忆系统的“工作记忆”,提供当前分
   析内容相关激活的本体等信息的临时存储以及集
   成调用各种模块进行处理!
•  类似于人工智能领域的“黑板系统”




                             22
领域模型(Domain Model)!

•  是实际管理各个领域ontology的地方!
•  领域模型包括⼀一个领域内的概念,实体,关系,
   属性和实例
 –  维护领域本体信息
 –  单词分类到领域
 –  推理功能: local mexican food--->find restaurants with
    style=mexican
 –  组织领域有关服务地址,比如哪个网站提供餐馆评论
 –  语义转写




                                                        23
用户个性化模型!

•  包含两个子系统,用来对个性化建模
 –  短期记忆系统(short term)
 –  长期记忆系统(long term)
•  短期记忆系统
 –    最近用户和Siri的对话记录
 –    用户在GUI所做的选择:播放过哪些视频等
 –    最近用户发出的请求
 –    UI点击记录
 –    设备信息:时间,地理位置,光强,音强,动作




                              24
用户个性化模型!

•  长期记忆系统
 –    用户的个人信息(姓名,偏好,个人账户,居住地址等)
 –    记录:书签,clipping
 –    个人to-do list,闹钟,事件提醒等
 –    商业/娱乐实体信息:喜欢的商品等
 –    商品购买历史记录和想买列表,折扣和优惠信息
 –    订票订餐等历史事务
•  两个记忆系统的作用
 –  在从文本映射为语义或者意图的时候进行消除歧义
 –  增加亲和力(知道你个人信息,在交互时候增加亲切感)



                                  25
语言模式识别系统(language pattern
       recognizer system)!
•  对表层,语法层,习惯用语和成语等进行模式匹
   配的模块
  –    其实就是我们常说的模板系统;
  –    非代码形式,而是以模式定义形式存在,代码解析模式定义;
  –    内部采用正则表达式,状态机等实现.
  –    使用场合:引导用户输入,NLP解析,识别任务类型和对话类型
       等.
•  Examples:
  –  常用语:what's happening
  –  被认为是“事件计划任务”以及“本地事件"类型



                                       26
词汇表!

•  词汇表(Vocabulary Component)
  –  主要用来维护表层单词表述和深层语义概念之间的映射关系




                                  27
活跃本体(Active Ontology)!




                         28
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        29
Siri整体架构图-Where Are We Now!




                              30
语言解释器(language Interpreter)!

•  分析用户文本输入并做多层次解析
 –    使用了句法分析器;句法结构分析;
 –    使用了语义分析器:即将单词映射到ontology层级
 –    语法与语义消除歧义
 –    自动补全功能的语法与语义检查
 –    语音输入候选文本的语法与语义检查
•  领域实体数据库(Domain Entity Databases)!
 –  存储各个领域的实体的表单,比如餐馆名称,餐馆地点等
 –  领域实体的存储和查询管理支持
      •    商业领域
      •    娱乐领域(电影,视频,歌曲 etc)
      •    事件
      •    地理信息(城市,街道,国家等的位置信息)
                                     31
语言解释器(language Interpreter)!

           /




               /




                               32
         语言解释器工作流程
语言解释器(language Interpreter)!

•  例子
  –  Input: Who is playing this weekend at the filmore?(本周末
     谁会在filmore进行演出?)
  –  解析:
     •  上下文环境:时间地点
     •  单词/短语匹配
        –  Playing->事件场所 or 体育运动
        –  This weekend:确定具体日期
        –  Filmore:场所名称
     •  语义一致性
        –  Playing:场所时间 because “Filmore”

  –  解析结果:这是用户的一个问句查询,查询内容是一个当地事件(local
    event),时间是本周周末,如果候选事件的场地名称包含filmore,那么这就是满足
    用户需求的答案
                                                          33
对话流控制系统(Dialog Flow Model
        Component)!
•  对话流控制系统是在将用户的文本表示解析为内
   部用户意图之后发挥作用;
  –  即语言解释器将解析结果传递给对话流控制器
•  功能
  –  用于识别用户意图所属任务类型
    •  (想要干什么?比如要找⼀一家餐馆);
  –  对于确定的任务类型或者问题,给出意图的内部表示,判别需要
     哪些参数.
    •  ”给我找⼀一个附近的受欢迎的川菜馆“   参数:附近、受欢迎、川菜
    •  这些参数也被称作约束条件;
  –  根据还需要哪些约束条件以及用户的个性化信息(长期记忆以及
     短期记忆系统),决定下面应该引导用户说什么(套出需要的信
     息)
                                           34
对话流控制系统(Dialog Flow Model
      Component)!




             /




          对话控制系统运行流程图       35
对话流控制系统(Dialog Flow Model
      Component)!




          对话控制系统运行实例        36
任务流控制系统(Task Flow Model
       Component)!
•  任务流模型是指某种类型的任务(要解决的某类
   问题),由哪些步骤构成,步骤之间的依赖关系
   等;
 –  餐厅预约任务
     •  step1:先找到⼀一个饭馆
     •  step2:查看是否还有剩余空位
     •  step3:预订某个时间段的座位




                            37
任务流控制系统(Task Flow Model
       Component)!
•  ⼀一个通用任务模型+若干从通用任务中集成的领域
   任务 构成(类似于编程中的父类和子类关系);
•  通用任务模型
 –  从具体任务中抽象出的,与领域无关,最高抽象级别
    的任务模型
 –  有多种通用任务模型
 –  比如对于某个事务性(Transaction)通用任务
  •  首先确定需要事先收集哪些数据
  •  执行事务
  •  事务输出结果


                                 38
任务流控制系统(Task Flow Model
     Component)!
     “   ”




         “受限选择”通用任务模型     39
任务流控制系统(Task Flow Model
        Component)!
•  受限选择中的“语义转写”与“信息提示”
 –  Input: Chinese food in Menlo park
 –  解析结果:
    •  任务类型=受限选择
    •  领域类别=餐馆
    •  约束条件:
        –  地点=Menlo park,CA
        –  菜系=Chinese food

 –  如果没有找到相关服务
    •  语义转写: Sorry, I can’t find any Chinese food near Menlo park
    •  信息提示: you should try other cuisines or location.


                                                                    40
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        41
Siri整体架构图-Where Are We Now!




                              42
服务(Service)相关系统!

•  三个与服务相关模块;
 –  服务模块(service component)
 –  服务能力模型(service capability model)
 –  服务整合模块(service orchestration component)




                                              43
服务(Service)相关系统!

•  服务模块(service component)
  –  服务API信息描述
  –  包括三类
    •  外部Web服务API;
    •  本地应用API;
    •  内部API:LBS etc;
  –  例子:订餐相关服务
    •    根据指定的时间地点等约束条件可以返回满足条件的餐馆名称
    •    根据指定的餐馆名称可返回其评级信息
    •    根据指定的餐馆名称可返回其它用户的评论信息
    •    可以在地图上根据坐标进行定位
    •    可以对某个餐馆进行预订的功能

                                       44
服务(Service)相关系统!

•  服务能力模型(service capability model);
  –  服务的具体描述信息
  –  记录机读信息
    •  哪些服务能够回答什么样的查询
    •  哪些服务能进行什么样的事务
    •  服务暴露哪些接口参数等




                                       45
服务(Service)相关系统!

•  服务整合模块(service orchestration
   component);
  –  是核心的服务有关模块,调用另外两个服务模块提供
     内容记录机读信息
•  功能包括
  –  动态决定哪些服务能够满足用户请求
  –  动态地以⼀一定顺序组合多个服务
  –  动态的将任务参数转换为满足API格式要求
  –  动态监控服务是否可用,是否好用
  –  将多个服务最终结果整合后规范输出格式

                                  46
服务(Service)相关系统!

             外部          内部




                              APP




                  YES




                    NO




服务整合模块执行流程                          47
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        48
Siri整体架构图-Where Are We Now!




                              49
Siri输出子系统!

•  从统⼀一的内部表示转换为多模态输出形式
 –    语音对话
 –    领域实体答案
 –    餐馆名称地址
 –    电影、商品等
 –    领域服务结果
 –    天气情况,航班等


•  生成多模态组合的输出结果
 –  GUI,文本短信,邮件内容,语音,动画等
•  个性化界面

                           50
大纲
•    Siri简介
•    Siri整体架构!
•    输入系统!
•    活跃本体!
•    执行系统!
•    服务系统!
•    输出系统!
•    Siri的现在和未来!

                        51
Siri的现在和未来!

•  中文版本
 –  中文版本效果远不如英文版;
   •  技术复杂性.
   •  对应的丰富中文服务API不够丰富

•  垂直领域扩展
•  服务类型扩展
 –  Siri会成为APP的入口么?类似于1999年的雅虎?
•  扩展设备类型
 –  TV控制,车载控制 etc
•  前途光明,任重道远

                                  52
Thanks!!




           53

More Related Content

What's hot

Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮
moai kids
 
P2 Matrices Test
P2 Matrices TestP2 Matrices Test
P2 Matrices Test
guestcc333c
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
Takayuki Kyowa
 

What's hot (8)

PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮Javaにおけるデータシリアライズと圧縮
Javaにおけるデータシリアライズと圧縮
 
P2 Matrices Test
P2 Matrices TestP2 Matrices Test
P2 Matrices Test
 
Google Cloud Platform で実現するプロダクションレディ マイクロサービス
Google Cloud Platform で実現するプロダクションレディ マイクロサービスGoogle Cloud Platform で実現するプロダクションレディ マイクロサービス
Google Cloud Platform で実現するプロダクションレディ マイクロサービス
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
 
[PGConf.ASIA 2018]Deep Dive on Amazon Aurora with PostgreSQL Compatibility
[PGConf.ASIA 2018]Deep Dive on Amazon Aurora with PostgreSQL Compatibility[PGConf.ASIA 2018]Deep Dive on Amazon Aurora with PostgreSQL Compatibility
[PGConf.ASIA 2018]Deep Dive on Amazon Aurora with PostgreSQL Compatibility
 
Modul 3 matriks 2019
Modul 3 matriks 2019Modul 3 matriks 2019
Modul 3 matriks 2019
 
新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向
 

Similar to iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林

Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
kewuc
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
My own sweet home!
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
drewz lin
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
36Kr.com
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发
Trinea Trinea
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
pan weizeng
 
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用
建興 王
 
Simple Rule Agile China 2009
Simple Rule   Agile China 2009Simple Rule   Agile China 2009
Simple Rule Agile China 2009
JohnnLi
 
Mobile app design 2010
Mobile app design 2010Mobile app design 2010
Mobile app design 2010
Baidu
 

Similar to iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林 (20)

語法操作平臺操作流程
語法操作平臺操作流程語法操作平臺操作流程
語法操作平臺操作流程
 
Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作Geo science cafe 如何找到一份满意的工作
Geo science cafe 如何找到一份满意的工作
 
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统基于 Flink 和 AI Flow 的实时推荐系统
基于 Flink 和 AI Flow 的实时推荐系统
 
2020 11-27 Taiwan DDD Conference
2020 11-27 Taiwan DDD Conference2020 11-27 Taiwan DDD Conference
2020 11-27 Taiwan DDD Conference
 
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
42qu thrift1
42qu thrift142qu thrift1
42qu thrift1
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Appcan平台介绍
Appcan平台介绍Appcan平台介绍
Appcan平台介绍
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
新浪微博redis技术演化
新浪微博redis技术演化新浪微博redis技术演化
新浪微博redis技术演化
 
全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用全文搜尋引擎的進階實作與應用
全文搜尋引擎的進階實作與應用
 
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
【1110ROS社群開講】如何打造與人一起學習的機器檯燈_鄭凱文
 
Simple Rule Agile China 2009
Simple Rule   Agile China 2009Simple Rule   Agile China 2009
Simple Rule Agile China 2009
 
A brief introduction to Machine Learning
A brief introduction to Machine LearningA brief introduction to Machine Learning
A brief introduction to Machine Learning
 
Jira live demo 2017
Jira live demo 2017Jira live demo 2017
Jira live demo 2017
 
Mobile app design 2010
Mobile app design 2010Mobile app design 2010
Mobile app design 2010
 

More from imShining @DevCamp

More from imShining @DevCamp (16)

如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏如何创建更加灵活的App | 大众点评 屠毅敏
如何创建更加灵活的App | 大众点评 屠毅敏
 
Android在多屏幕、多设备上的适配 | 布丁 任斐
Android在多屏幕、多设备上的适配 | 布丁 任斐Android在多屏幕、多设备上的适配 | 布丁 任斐
Android在多屏幕、多设备上的适配 | 布丁 任斐
 
Android程序的编译,安装和运行 | 小米科技 汪文俊
Android程序的编译,安装和运行 | 小米科技 汪文俊Android程序的编译,安装和运行 | 小米科技 汪文俊
Android程序的编译,安装和运行 | 小米科技 汪文俊
 
和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂和Android源代码一起工作 | 海豚浏览器 胡继堂
和Android源代码一起工作 | 海豚浏览器 胡继堂
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
 
千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江千万级并发在线推送系统架构解析 | 个信互动 叶新江
千万级并发在线推送系统架构解析 | 个信互动 叶新江
 
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
发现和建立多设备之间的数据通信 | 豌豆荚实验室 孙桥
 
Android音频口数据通信开发 | 爱图腾 李鹏军
Android音频口数据通信开发 | 爱图腾 李鹏军Android音频口数据通信开发 | 爱图腾 李鹏军
Android音频口数据通信开发 | 爱图腾 李鹏军
 
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
凡客移动应用之Android + HTML5技术运用 | 凡客 汪健飞 徐金山
 
Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振 Android账户同步备份框架 | 盛大乐众ROM 郭振
Android账户同步备份框架 | 盛大乐众ROM 郭振
 
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》| 麻麻帮 陈剑飞
 
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林
 
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
在iOS平台上实现全功能视频处理 | 盛大微酷 赵志猛
 
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
逆向工程技术详解:解开IPA文件的灰沙 -- 通过静态分析工具了解IPA实现 | 友盟 张超 | iOS DevCamp
 
《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp
《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp
《Passbook实战详解》| 爱图腾 廉洁 | iOS DevCamp
 
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
从知乎 iPhone 端重构说开去:Web 为主的复杂社交产品的 iOS 端开发策略及实践
 

iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》| 新浪 张俊林

  • 1. iOS  DevCamp   Produced  by  CSDN     Website:   h5p://devcamp.csdn.net   Weibo:   h5p://weibo.com/cmdnclub       1
  • 2. Siri: I, Robot ! 张俊林 2012.07.27 2
  • 3. About me •  中科院软件所 博士 •  《这就是搜索引擎:核心技术详解》作者 •  现任职新浪微博,从事语义分析,搜索,推荐系 统,社交挖掘方面研发工作 •  微博:张俊林say http://www.weibo.com/ malefactor 3
  • 4. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 4
  • 6. Siri不是什么以及Siri是什么! •  Siri不只是 –  语音识别系统; –  持续自学习系统; –  上下文感知系统; –  传统的AI基础架构; •  Siri是什么 –  集成上述优点的服务导向的新型AI架构 –  本质上是个通过多轮对话的用户意图识别系统 –  集成了语音识别、自然语言处理、用户意图分析、任务控制系统 等多种技术的综合AI框架 6
  • 7. Siri的血统与出身! •  DARPA项目Contract numbers FA8750-07- D-0185/0004) –  Personalized Assistant That Learns Program(PAL); –  Personalized Assistant That Learns Program(CALO); •  via SRI International’s Artificial Intelligence Center •  超过40年的研究 •  2010年4月被苹果公司收购 •  集成进入Iphone 4S 7
  • 8. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 8
  • 10. Siri的功能粗粒度划分! •  多模态输入->文本表示 •  文本表示->用户意图 –  深层NLP –  会话控制 –  任务控制 •  用户意图->功能服务 –  服务管理 •  功能服务->多模态输出 10
  • 12. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 12
  • 14. Siri的输入系统! •  输入系统包含三个目的 –  支持多通道输入模式 –  进行早期消除歧义 –  尽可能引导用户到Siri能够提供的服务 •  多模态输入 –  语音 –  文本输入 –  地理位置信息输入(GPS etc) –  GUI选择界面 –  事件驱动(闹钟,事件提醒等主动触发通知事件) 14
  • 18. Siri的输入系统! •  语音识别系统 –  购自Nuance通信公司 –  为苹果公司的Siri作出了定制化改造 •  语言模型 –  自动判断多种可能的字符流,哪种更符合语言表达习惯 –  Candidate1:P1(我 喜欢 苹果)=p(我)*p(喜欢|我)*p(苹果|喜欢) =0.35 –  Candidate2:P2(我 稀饭 苹果) )=p(我)*p(稀饭|我)*p(苹果|稀饭) =0.05 18
  • 19. Siri的输入系统! •  语音识别系统 –  语言模型的定制化改造 •  商业实体信息 •  用户个性化信息 –  语法语义检查 •  Candidate1:Italian food for lunch •  Candidate2:Italian shoes for lunch 19
  • 20. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 20
  • 22. 活跃本体(Active Ontology)! •  Siri系统最核心部分,驱动调用大部分其他数据、 模型和功能! •  类似于人的记忆系统的“工作记忆”,提供当前分 析内容相关激活的本体等信息的临时存储以及集 成调用各种模块进行处理! •  类似于人工智能领域的“黑板系统” 22
  • 23. 领域模型(Domain Model)! •  是实际管理各个领域ontology的地方! •  领域模型包括⼀一个领域内的概念,实体,关系, 属性和实例 –  维护领域本体信息 –  单词分类到领域 –  推理功能: local mexican food--->find restaurants with style=mexican –  组织领域有关服务地址,比如哪个网站提供餐馆评论 –  语义转写 23
  • 24. 用户个性化模型! •  包含两个子系统,用来对个性化建模 –  短期记忆系统(short term) –  长期记忆系统(long term) •  短期记忆系统 –  最近用户和Siri的对话记录 –  用户在GUI所做的选择:播放过哪些视频等 –  最近用户发出的请求 –  UI点击记录 –  设备信息:时间,地理位置,光强,音强,动作 24
  • 25. 用户个性化模型! •  长期记忆系统 –  用户的个人信息(姓名,偏好,个人账户,居住地址等) –  记录:书签,clipping –  个人to-do list,闹钟,事件提醒等 –  商业/娱乐实体信息:喜欢的商品等 –  商品购买历史记录和想买列表,折扣和优惠信息 –  订票订餐等历史事务 •  两个记忆系统的作用 –  在从文本映射为语义或者意图的时候进行消除歧义 –  增加亲和力(知道你个人信息,在交互时候增加亲切感) 25
  • 26. 语言模式识别系统(language pattern recognizer system)! •  对表层,语法层,习惯用语和成语等进行模式匹 配的模块 –  其实就是我们常说的模板系统; –  非代码形式,而是以模式定义形式存在,代码解析模式定义; –  内部采用正则表达式,状态机等实现. –  使用场合:引导用户输入,NLP解析,识别任务类型和对话类型 等. •  Examples: –  常用语:what's happening –  被认为是“事件计划任务”以及“本地事件"类型 26
  • 27. 词汇表! •  词汇表(Vocabulary Component) –  主要用来维护表层单词表述和深层语义概念之间的映射关系 27
  • 29. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 29
  • 31. 语言解释器(language Interpreter)! •  分析用户文本输入并做多层次解析 –  使用了句法分析器;句法结构分析; –  使用了语义分析器:即将单词映射到ontology层级 –  语法与语义消除歧义 –  自动补全功能的语法与语义检查 –  语音输入候选文本的语法与语义检查 •  领域实体数据库(Domain Entity Databases)! –  存储各个领域的实体的表单,比如餐馆名称,餐馆地点等 –  领域实体的存储和查询管理支持 •  商业领域 •  娱乐领域(电影,视频,歌曲 etc) •  事件 •  地理信息(城市,街道,国家等的位置信息) 31
  • 32. 语言解释器(language Interpreter)! / / 32 语言解释器工作流程
  • 33. 语言解释器(language Interpreter)! •  例子 –  Input: Who is playing this weekend at the filmore?(本周末 谁会在filmore进行演出?) –  解析: •  上下文环境:时间地点 •  单词/短语匹配 –  Playing->事件场所 or 体育运动 –  This weekend:确定具体日期 –  Filmore:场所名称 •  语义一致性 –  Playing:场所时间 because “Filmore” –  解析结果:这是用户的一个问句查询,查询内容是一个当地事件(local event),时间是本周周末,如果候选事件的场地名称包含filmore,那么这就是满足 用户需求的答案 33
  • 34. 对话流控制系统(Dialog Flow Model Component)! •  对话流控制系统是在将用户的文本表示解析为内 部用户意图之后发挥作用; –  即语言解释器将解析结果传递给对话流控制器 •  功能 –  用于识别用户意图所属任务类型 •  (想要干什么?比如要找⼀一家餐馆); –  对于确定的任务类型或者问题,给出意图的内部表示,判别需要 哪些参数. •  ”给我找⼀一个附近的受欢迎的川菜馆“ 参数:附近、受欢迎、川菜 •  这些参数也被称作约束条件; –  根据还需要哪些约束条件以及用户的个性化信息(长期记忆以及 短期记忆系统),决定下面应该引导用户说什么(套出需要的信 息) 34
  • 35. 对话流控制系统(Dialog Flow Model Component)! / 对话控制系统运行流程图 35
  • 36. 对话流控制系统(Dialog Flow Model Component)! 对话控制系统运行实例 36
  • 37. 任务流控制系统(Task Flow Model Component)! •  任务流模型是指某种类型的任务(要解决的某类 问题),由哪些步骤构成,步骤之间的依赖关系 等; –  餐厅预约任务 •  step1:先找到⼀一个饭馆 •  step2:查看是否还有剩余空位 •  step3:预订某个时间段的座位 37
  • 38. 任务流控制系统(Task Flow Model Component)! •  ⼀一个通用任务模型+若干从通用任务中集成的领域 任务 构成(类似于编程中的父类和子类关系); •  通用任务模型 –  从具体任务中抽象出的,与领域无关,最高抽象级别 的任务模型 –  有多种通用任务模型 –  比如对于某个事务性(Transaction)通用任务 •  首先确定需要事先收集哪些数据 •  执行事务 •  事务输出结果 38
  • 39. 任务流控制系统(Task Flow Model Component)! “ ” “受限选择”通用任务模型 39
  • 40. 任务流控制系统(Task Flow Model Component)! •  受限选择中的“语义转写”与“信息提示” –  Input: Chinese food in Menlo park –  解析结果: •  任务类型=受限选择 •  领域类别=餐馆 •  约束条件: –  地点=Menlo park,CA –  菜系=Chinese food –  如果没有找到相关服务 •  语义转写: Sorry, I can’t find any Chinese food near Menlo park •  信息提示: you should try other cuisines or location. 40
  • 41. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 41
  • 43. 服务(Service)相关系统! •  三个与服务相关模块; –  服务模块(service component) –  服务能力模型(service capability model) –  服务整合模块(service orchestration component) 43
  • 44. 服务(Service)相关系统! •  服务模块(service component) –  服务API信息描述 –  包括三类 •  外部Web服务API; •  本地应用API; •  内部API:LBS etc; –  例子:订餐相关服务 •  根据指定的时间地点等约束条件可以返回满足条件的餐馆名称 •  根据指定的餐馆名称可返回其评级信息 •  根据指定的餐馆名称可返回其它用户的评论信息 •  可以在地图上根据坐标进行定位 •  可以对某个餐馆进行预订的功能 44
  • 45. 服务(Service)相关系统! •  服务能力模型(service capability model); –  服务的具体描述信息 –  记录机读信息 •  哪些服务能够回答什么样的查询 •  哪些服务能进行什么样的事务 •  服务暴露哪些接口参数等 45
  • 46. 服务(Service)相关系统! •  服务整合模块(service orchestration component); –  是核心的服务有关模块,调用另外两个服务模块提供 内容记录机读信息 •  功能包括 –  动态决定哪些服务能够满足用户请求 –  动态地以⼀一定顺序组合多个服务 –  动态的将任务参数转换为满足API格式要求 –  动态监控服务是否可用,是否好用 –  将多个服务最终结果整合后规范输出格式 46
  • 47. 服务(Service)相关系统! 外部 内部 APP YES NO 服务整合模块执行流程 47
  • 48. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 48
  • 50. Siri输出子系统! •  从统⼀一的内部表示转换为多模态输出形式 –  语音对话 –  领域实体答案 –  餐馆名称地址 –  电影、商品等 –  领域服务结果 –  天气情况,航班等 •  生成多模态组合的输出结果 –  GUI,文本短信,邮件内容,语音,动画等 •  个性化界面 50
  • 51. 大纲 •  Siri简介 •  Siri整体架构! •  输入系统! •  活跃本体! •  执行系统! •  服务系统! •  输出系统! •  Siri的现在和未来! 51
  • 52. Siri的现在和未来! •  中文版本 –  中文版本效果远不如英文版; •  技术复杂性. •  对应的丰富中文服务API不够丰富 •  垂直领域扩展 •  服务类型扩展 –  Siri会成为APP的入口么?类似于1999年的雅虎? •  扩展设备类型 –  TV控制,车载控制 etc •  前途光明,任重道远 52
  • 53. Thanks!! 53