前端视角解密双十一晚会的魔术节目

简介:        有幸被邀请在23号的云栖社区大会上做了个前端相关的主题分享,分享的主题是——《前端视角解密双十一晚会的魔术节目》。        其实在今年8月份的云栖大会上,阿里云宣布推出人工智能ET,引起了业内的广泛关注。而在双十一晚会上,为了能够引出

       有幸被邀请在23号的云栖社区大会上做了个前端相关的主题分享,分享的主题是——《前端视角解密双十一晚会的魔术节目》。

       其实在今年8月份的云栖大会上,阿里云宣布推出人工智能ET,引起了业内的广泛关注。而在双十一晚会上,为了能够引出马总及后面的节目,ET也参与表演了一个魔术。

       在视频中大家会发现,ET有一段时间的停顿,没有很快地进行回话。是什么原因导致了这样一个情况发生。答案在最后揭晓。

       下面让我们来看一下前端在整个工程中我们都做了哪些事情,来保障整个双十一节目的一个顺利进行。这一张是双十一当晚,ET的整个架构图。

1.png

       这张图里可以看到所有的东西可以说都是由我们小组的前端同学在cover,包括整个的架构以及同电视台各个部门间的一个对接。我们不仅要进行页面的开发,还要保障整个节目的效果以及稳定性。为了保障整个的稳定性,我们在前后端的中间加入了一个数据的传输层,采用了创建多路webworker,然后每条worker同时创建websocket的方式,来保证数据在传输的过程中不会出现意外。即便有一个连接挂了,或者一个线程挂了,也会有备用的线程去保障这个传输。数据传输层的结构图如下:

2.png

       当然每个worker里也有非常复杂的流程,如果两个线程同时都去进行数据的传输,那必然就会造成一个资源的浪费及数据的冗余的问题。所以我们做了一个前端的分布式设计,两段式提交。来实现多线程的一个协同。

3.png

       除了数据的传输,在这个传输的通道上,传输的数据的大小及质量都是我们需要去保障的。主要包含了如下几块:

  1. 语音采集( 引入MediaStreamRecorder来实现语音采集,解决浏览器兼容性及降级问题 )
  2. 语音降噪
  3. 语音压缩( 对音频进行三段式的压缩,最后将采样率从44Khz压缩到14Khz。即保证了清晰度,也更接近后端的接收标准,不影响语音解析 )

       上面讲到的这些东西都是软件层面的。如果中间硬件出问题了,我们该怎么办呢。因为当时这个节目,如果按照时间来算成本的话,浙江卫视在黄金时间5分钟的一个广告价格大约是5000万左右。所以在整个的节目过程中我们是绝对不允许失败的。所以我们当时做了很多的预案( 大家可以参照上面的ET架构图来理解 )。

  1. 图像识别功能挂了 -> 使用一个猫的图片来替换人脸
  2. 后台语音服务挂了 -> 隐藏ET的实时翻译字幕条
  3. 控制台机器挂了 -> 通过前端机预设的一套键盘指令保证节目继续进行
  4. 前端机也挂了 -> 这个...我们也想了办法,找了个配音演员在后台模拟ET的声音继续节目的表演

       不只是前端!可以看到前端在整个事件中发挥的一个作用,不仅仅是工程的开发,我们还承担了大多数稳定性保障的工作,还需要关注到各种软件硬件的对接,输入输出的格式和质量。以及在直播过程中要去关注的一些保底的方案,及和电视台对接的方案。大家看到的东西可能只是我们前端在中间付出的冰山一角。

最后该来揭秘,为什么et在节目过程中会有一段失误。这并不是我们的服务挂了,这个锅应该是华少来背。因为主持人在台上的时候不止跟et有对话。跟观众跟参加魔术的美女都有对话。为了能知道哪些话是对et说的。我们采用了一个简单粗暴的办法。加入关键词,当对话中有这个关键词的时候,et才会去进行人机对话。但是在当时的对话里。华少不仅忘了词,还把关键词也忘了。导致了et没能进行正常的人机对话。那么大家来猜猜这个关键词是什么吧~

目录
相关文章
|
3月前
|
前端开发 UED CDN
从前端工程师的视角看待用户体验优化
在当今互联网高度竞争的时代,用户体验优化已经成为各个企业追求的目标之一。作为前端工程师,我们不仅要关注页面的美观和交互设计,更要深入了解用户行为和需求,从而为用户提供更好的体验。
|
4月前
|
前端开发 JavaScript Java
从前端开发的视角来搭建本地java开发环境
从前端开发的视角来搭建本地 java 开发环境,其实主要也就 java 环境、maven 包管理工具、IntelliJ IDEA 开发工具这3个方面,对应前端中的 nodejs 环境、npm 包管理工具、vscode 开发工具。
40 1
|
设计模式 XML 数据可视化
降低前端业务复杂度新视角:状态机范式
无论做业务需求还是做平台需求的同学,随着需求的不断迭代,通常都会出现逻辑复杂、状态混乱的现象,维护和新增功能的成本也变的十分巨大,苦不堪言。下图用需求、业务代码、测试代码做对比:
262 0
降低前端业务复杂度新视角:状态机范式
|
前端开发 人机交互 UED
浅谈前端视角下的用户体验
浅谈前端视角下的用户体验
1231 0
浅谈前端视角下的用户体验
|
Web App开发 监控 程序员
从前端程序员的视角看小程序的稳定性保障
当我们谈业务稳定性的时候,通常是指后端工程师从架构的角度来看的,例如限流和降级、流量调度、业务开关、容量压测等,但监控也是整个业务稳定性建设中不可或缺的一环,例如对业务和前端的监控,以保证出现问题的时候,可以第一时间找到根因所在。
3732 1
|
人工智能 前端开发 语音技术
前端视角解密双十一晚会的魔术节目
在云栖社区举办的云栖计算之旅第3期——前端专场沙龙中,阿里云数加资深前端工程师王朗从前端的视角为大家解密了双十一晚会的魔术节目。在分享中,他从软硬件两个角度出发详细讲解了ET的工作原理。
3095 0
|
9月前
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
98 0
|
9月前
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-地图单线程配置
前端学习笔记202305学习笔记第二十三天-地图单线程配置
67 0
前端学习笔记202305学习笔记第二十三天-地图单线程配置
|
9月前
|
前端开发 API
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-react-redux的工作流程
55 0
|
9月前
|
前端开发
前端学习笔记202306学习笔记第五十一天-工厂模式4
前端学习笔记202306学习笔记第五十一天-工厂模式
34 0