7openresty与语音交互-张顺.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7openresty与语音交互-张顺

对OpenResty的贡献: 1. feature: duplex cosocket - OpenResty v 2. bugfix: tcp_nodelay - OpenResty v 演示/视频 - 实时语音字幕 语音输入板 /x/page/f0155wqxlmz.html 第二部分 OpenResty组件在语音交互系统里 一些背景知识铺垫 人机交互方式的发展 1868年克里斯托夫·拉森·肖尔斯发明QWERTY键盘 1968年道格拉斯·恩格尔巴特发明鼠标 1971年SamHurst发明触摸传感器 2007年iPhone诞生, 人类进入智能机时代, 触摸成为 主流交互方式 语音、手势、眼睛、脑电波… 语音交互的工程技术现阶段还是比较 复杂的 数据流复杂 休眠状态 recorder aec wakeup 唤醒后本地识别 recorder aec vad local asr 唤醒后混合识别 recorder aec vad local asr cloud asr 多模块实时处理 recorder aec vad local asr cloud asr 1秒钟10帧音频 本地各组件实时率 0.1~0.5 识别延时300ms 交互延时1s 不同技术平台支持 Android iOS OpenWrt Linux Windows … 各种SDK 精通各种开发语言 熟悉各种技术栈 开发难度大 开发效率低 可移植性差 交互逻辑多份实现 ?比如在Android上 C写所有算法和交互逻辑 JNI绑定后提供android sdk 在android java层再做一些集成 C里面改个逻辑得重新编译so - 重新编译sdk - 重新编译apk - adb install - 运行调试 写的代码不能运行在其它平台上 怎样简单 — 抽象 来自DirectShow, ROS的启发 in data node in control 节点 out data out control 怎样简单 — 抽象 in data node in control out control out data 两种通信方式: * rpc - control command * message - pub-sub queue 怎样简单 - lua 整体框架用lua编写 跨平台 开发效率更高 用luajit执行效率有保障 怎样简单 - socket 跨平台 可移植性最好的进程间通信方案 各节点提供网络接口 不需要编程语言绑定 分布式 像服务端编程那样 怎样简单 - bus bus rpc + message queue a node(lua) b node(java) function a:onmessage(topic, …) print(topic, …) end busclient:subscribe(‘b.output’) busclient:call(‘/b/start’) public RPCResult onCall(url, byte[]... args) if url == ‘/b/start’ then busclient.publish(‘b.output’, ‘hello’) end end 实现 * * bus server bus client * busclient.lua * busclient.java * busclient.c * * * * bus server监听端口 bus client连接到server 每个node对应一个bus client bus client运行在独立的线程 * 有独立的事件循环 实现 * * 实现了兼容lua-nginx-module接口子集的运行时 * cosocket * timer * … 为什么不直接使用OpenResty? * 虽然stream-lua-nginx-module支持tcp server * 多线程多node与nginx单进程模型设计相背, 比如全局变量 代码复用 * * OpenResty * lua-resty-websocket * lua-resty-http * lua-resty-dns * … 公司内 * 基于OR的模块 * lua封装的c库 全栈? 出现了跨语音云服务开发和语音交互系统的优秀工程师 其它一些便利 开发效率提升

文档评论(0)

wujianz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档