专栏首页云加头条如何在腾讯云上搭建一个PPT自动播放的服务器
原创

如何在腾讯云上搭建一个PPT自动播放的服务器

作者:宋秋萌

先描述一下我们产品的效果,你可以借助任何一个远程终端来讲解你的 PPT (一个手机、麦克风等),我们的系统会根据你讲解的内容帮助你自动播放 PPT ,解决播放 PPT 的麻烦。

一.服务端代码实现

先放上我们的系统架构图

我们的服务器分成了两层来实现这项功能。

第一层是数据处理层

具体模块:

1.持久化模块(数据库)

我们选择的是用 mongoDB 数据库进行持久化操作。这个模块的主要功能是对每个 PPT 的信息进行记录,比如用户预先输入的每一页 PPT 的翻页提示语。每一个 PPT 都被是一个 document ,同意放置在 userinfo collection 里面(命名比较随意。)。其中, document 的前面几条分别记录了用户的 ID,PPT 的信息等,后面则是记录每一页用户的翻页提示。即用户在当前页面说道这句话的时候,系统会下达翻页指令。

2.语义识别模块

这个模块是用来将用户发来的 string 类型进行识别,转化成 PC 客户端可以理解的 PPT 指令。

由于在网上关于语义匹配的多是整个文章的语义匹配,或文章与一句话的匹配程度,而我们这个工程需要的是两个较短的句子的匹配,且比赛时间有限,所以我们只能自己在已有的较复杂的算法模型上自行改进,创造出了了一个简化版矩阵相乘的算法。具体实现思路如下:

首先,拿到用户演讲内容的字符串和用户设置的翻页关键句字符串,例如,用户演讲内容为:“接下来我们介绍屈原的文学成就”;用户设置的关键句为:“屈原的文学成就”。

然后分词模块开始工作,讲两句分别分词放在不同的Vector中:

V1:{"接下来","我们","介绍","屈原","的","文学","成就"}

V2:{"屈原","的","文学","成就"}

而且我们会调用开源 API 得到每个词的词性,匹配时根据词性设置权重。

对于 V1 中每个词,分别去匹配 V2 中的词,若是名词且匹配住,则 V1 中那个词的的位置设置为1,动词匹配成功会将权重设置为0.9。若匹配不成功则为名词为0.1,动词为0.15。其他词性的词也这样处理但权重不同,具体权重按具体情况分析,这样就可以得到一个矩阵。{0.4,0.1,0.15,1,0.8,1,1},这样就可以算出来一个相似度约为0.635,设置一个阈值,具体情况根据实际而定,若相似度大于阈值,则匹配成功,返回翻页指令。

对于轻微口音导致语音识别不准确,我们会和转成拼音的相似度进行综合。

3.PPT 指令调度模块

这个模块用来综合调度语意模块识别出来的 PPT 指令。这个模块实现的核心是一个 map 集合,它以用户的 ID 为 key,指令集合为 value ,来储存用户已经发送而未被 PPT 客户端执行的 PPT 指令,并且通过一个接口提供指令的 CURD 操作。

考虑到网络的原因,用户发出的指令可能无法及时被客户端获取,所以我们在这里使用了一个 queue 来储存用户的指令。当网络拥堵或者用户发送的指令过多的时候指令会被临时储存,并等待PPT客户端周期性的访问取出。

第二层是服务接口层

1.PPT 客户端

考虑到 Java 平台的广泛性,我们的 PPT 客户端也选择采用 Java swing 来实现。所以,服务端使用 Java 平台的 rmi 框架来为PPT客户端提供服务接口。具体结构包括获取 PPT 指令、注册服务、绑定 PPT 翻页提示语等,具体的实现细节则会交由第一层模块。

2.语音录入端(智能手机)

当时因为设备的限制,我们决定采用智能手机作为语音的录入设备。

考虑到 iOS 系统不支持 Java 语言,我们没有使用 rmi 框架来提供服务,而是提供了更为适用的 tcp 接口。

这个接口会不断接收客户端识别并发来的 string 类型的用户语音,并交由语义识别模块来进行语意识别,并将结果交给 PPT 指令调度模块。

这样,一个调度 PPT 自动播放的服务端就可以搭建完毕了。

二.服务器部署

这里我们采用了腾讯云服务器作为服务器的运行平台(腾讯云推出的1元学生服务器,简单易用)。

首先在镜像市场上购买带有 Java 开发环境的 Linus 系统(牛人可以自己配置),再将写好的系统打包成 jar 文件(记得添加程序入口)。

将程序上传后通过 ssh 客户端启动程序就 OK 了(最好能设置能一个服务,并设置成自启动,方法请百度)。

三.客户端实现简介

PPT 客户端我们主要使用的 robot 相关类来控制 PPT 的播放,并通过 shell 脚本来实现视屏播放等功能。

语音识别端则是通过讯飞语音系统来识别用户说出的话,并上传到服务端进行处理。

这样,一个远程自动播放 PPT 的系统就搭建完毕了,大家在演讲分享的时候就再也不同站在电脑前来播放 PPT 啦。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 精彩大放送 | 腾讯云:容器架构向无服务架构的演进

    随着容器技术在企业的大量应用与普及,越来越多的技术实践和应用场景成为用户更为关注的地方。随着企业和开发者的需求,在开发应用层面研究和发展势头也越加迅猛,如何让用...

    云加社区
  • 构建一站式机器学习服务平台,腾讯云为AI实现更多可能

    5月24日,以“无界数据 无限智能”为主题的腾讯“云+未来”峰会AI大数据分论坛在广州拉开帷幕。此次分论坛上,腾讯云针对AI大数据技术的实现与应用,正式对外公布...

    云加社区
  • 云+社区创作者年度总结暨新年活动说明

    云+社区于2020年1月16日发布了《2019云+社区创作者年度总结》,各位创作者可以在2020.1.16之后登录云+社区,通过活动入口进入查看自己的H5报告。

    云加社区
  • 谁来拯救你 我的屁屁踢

    审美的重要性 美究竟有没有一个标准这里不敢讨论。但是在长期的实践当中,人们大体总结出了一些形式美的规律,比如平衡、对称、对比、统一、变化以及黄金分割等。 做好P...

    生信技能树
  • 刘浩(iSlide):9套主题+14000资源,帮你分分钟完成毕业答辩PPT(附PPT下载)

    寒树Office与RPA
  • 一直以为我很懂 PPT,直到看了~

    除了小程序,大家一定会对生活里其他事物感兴趣。为此,知晓程序会邀请好朋友们,给大家带来小程序之外的文章推荐。

    知晓君
  • 如何在短时间内做出一份高质量的PPT!

    @职场君:我们这一期专访的话题是《如何在短时间内做出一份高质量的PPT》,请到的特邀嘉宾是三顿,ppt设计师,三顿学院创始人,目前运营ppt自媒体三顿。ID:w...

    华章科技
  • 刘浩(iSlide):年终PPT做不好?心得分享+精品模板+送月会员助你过最后一关

    每到年底,几乎所有单位都会要求员工上交一份年终报告,年终总结总是和升职加薪关联在一起,甚至有人说出了“年终总结写得好,升职加薪没烦恼;年终总结不称心,明年只能嘤...

    寒树Office与RPA
  • PPT是世界上最好的语言

    新东方的一个节目让人们开始重新思考PPT。为什么你那么讨厌PPT写的好的人?可能是因为你自己不太会写PPT,但自己不会写PPT也不至于到讨厌别人的地步。究竟是什...

    ImportSource
  • 连PPT都做不好,你在职场上还怎么混下去!

    她说要给部门老大做PPT,一共70多页,改了7、8稿,那个月每天都是最晚下班的一个,很是心累。

    森罗万象

扫码关注云+社区

领取腾讯云代金券