iOS平台应用详解:《Siri:I,robot! Siri语音识别系统详解》 | iOS DevCamp
话题简介:Siri是苹果公司发布的广受关注的iOS平台应用,它不仅仅是一套语音识别系统,更重要的是其用户意图分析与智能识别机制。本讲座将深入分析Siri的技术原理,讲解其系统架构、语音识别系统、活跃本体、执行系统、服务系统以及输出系统等重要构成模块,使大家了解如何构造类似的智能应用。
讲师介绍:张俊林,中科院软件所博士、《这就是搜索引擎:核心技术详解》作者,现为新浪微博研发人员,从事自然语言处理、搜索技术、推荐系统以及机器学习方面的研发工作。
【幻灯片在线观看】*:
<iframe src="http://www.slideshare.net/slideshow/embed_code/13838172" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""> </iframe>
备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。
【幻灯片下载页面】: iOS DevCamp幻灯片下载:Siri:I,robot! Siri语音识别系统详解 | 新浪 张俊林 -来自CSDN下载频道(不需要积分,自由下载)
【幻灯片内容刚要】:
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
5. Siri初体验 5
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
9. (云+客户端+外部服务)架构! 9
10. Siri的功能粗粒度划分!• 多模态输入->文本表示• 文本表示->用户意图 – 深层NLP – 会话控制 – 任务控制• 用户意图->功能服务 – 服务管理• 功能服务->多模态输出 10
11. Siri整体架构图! 11
12. 大纲• Siri简介• Siri整体架构!• 输入系统!• 活跃本体!• 执行系统!• 服务系统!• 输出系统!• Siri的现在和未来! 12
13. Siri整体架构图-Where Are We Now! 13
14. Siri的输入系统!• 输入系统包含三个目的 – 支持多通道输入模式 – 进行早期消除歧义 – 尽可能引导用户到Siri能够提供的服务• 多模态输入 – 语音 – 文本输入 – 地理位置信息输入(GPS etc) – GUI选择界面 – 事件驱动(闹钟,事件提醒等主动触发通知事件) 14
15. Siri的输入系统! GUI 15
16. Siri的输入系统! 16
17. Siri的输入系统!• 语音识别 NO YES 17
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
21. Siri整体架构图-Where Are We Now! 21
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: – 常用语:whats happening – 被认为是“事件计划任务”以及“本地事件"类型 26
27. 词汇表!• 词汇表(Vocabulary Component) – 主要用来维护表层单词表述和深层语义概念之间的映射关系 27
28. 活跃本体(Active Ontology)! 28
29. 大纲• Siri简介• Siri整体架构!• 输入系统!• 活跃本体!• 执行系统!• 服务系统!• 输出系统!• Siri的现在和未来! 29
30. Siri整体架构图-Where Are We Now! 30
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
42. Siri整体架构图-Where Are We Now! 42
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
49. Siri整体架构图-Where Are We Now! 49
50. Siri输出子系统!• 从统⼀一的内部表示转换为多模态输出形式 – 语音对话 – 领域实体答案 – 餐馆名称地址 – 电影、商品等 – 领域服务结果 – 天气情况,航班等• 生成多模态组合的输出结果 – GUI,文本短信,邮件内容,语音,动画等• 个性化界面 50
51. 大纲• Siri简介• Siri整体架构!• 输入系统!• 活跃本体!• 执行系统!• 服务系统!• 输出系统!• Siri的现在和未来! 51
52. Siri的现在和未来!• 中文版本 – 中文版本效果远不如英文版; • 技术复杂性. • 对应的丰富中文服务API不够丰富• 垂直领域扩展• 服务类型扩展 – Siri会成为APP的入口么?类似于1999年的雅虎?• 扩展设备类型 – TV控制,车载控制 etc• 前途光明,任重道远 52
53. Thanks!! 53