基于场景定制的实时翻译微信小程序开发

2019-08-09 标签:翻译小程序 浏览数:121

摘要: 针对当前特定场景精准翻译的需要,普通翻译易出现歧义或直译的问题,设计基于微信小程序的实时翻译软件,用户可通过微信小程序实时地查询所需翻译的词语,长短句。

资讯主图


一 基于场景定制的实时翻译微信小程序系统概述

本微信小程序可供用户随时随地查询,同时支持语音和文本输入,更快捷地获得符合特定语境的翻译结果。翻译小程序的设计分为两部分:数据处理端与微信小程序端。数据处理端在服务器上实现,负责处理微信小程序客户端的请求与接收数据,同时也负责处理翻译API的数据。客户端负责展现数据,提供用户界面。编程语言选用Java,开发工具为IDEA和微信web开发者工具。


二 系统总体框架

本套小程序系统由数据处理模块和微信小程序发布这两大模块构成。数据处理模块部署一台web服务器,web服务器负责与小程序端和API进行信息传输。在微信小程序开发结束发布以后,代码上传至微信后台服务器,客户通过在微信中扫描或者搜索程序名即可从微信服务器中加载程序,然后通过微信小程序实现翻译查询。

自主学习管理的中心环节就是为学习者创造积极的知识转化环境,有利于新知识的学习,促进显性知识和隐性知识的相互转换和知识的生成。结合大学英语教学的特点,在这一阶段,可以采用以下的策略。

(一)系统功能设计

数据处理模块主要是处理微信前端发送过来的数据和返回语音识别结果和翻译结果。微信小程序发布模块主要为用户提供一个输入需翻译内容的界面并且和数据处理模块实时通信。用户获得界面是从微信服务器,而翻译结果是经过数据处理模块返回获得。

(二)系统功能实现

1.数据处理模块

数据的处理主要分为3个方面,前端MP3文件的获取以及转码,请求语音识别和翻译数据,数据的处理和返回。

图1 实际运行示意图

(1)前端MP3文件的获取及转码

在服务器接收到微信小程序的前端发送过来的MP3文件后,使用UUID进行文件的唯一重命名。根据BaiduAPI提供的文档,百度语音识别API接口能够接受MP3、PCM等音频格式文件,但是最终Baidu后台处理的还是PCM文件。当MP3文件转PCM文件后,文件的体积会减少,这样可以减少数据发送的时间。在考虑服务器带宽的情况下,本项目使用PCM文件格式进行上传,其中MP3文件转PCM文件使用ffmpeg进行转码。

(2)语音识别和翻译数据的请求

将上一个步骤中转码成功的数据进行请求发送,同时对请求结果进行处理,当发现是用户使用错误时,没有识别结果,此时将信息返回,进行适当的提示。如果是百度Token验证过期,则重新拉取token验证,如果是因为QPS达到上限,则在2~3秒内进行随机等待,重新请求数据。

(3)数据的处理和返回

根据微信小程序的前端需求,返回错误信息进行提示或者当数据正确的时候,返回语音识别和翻译后的信息进行前端显示。

2.微信小程序发布

(1)微信小程序开发环境的搭建

微信小程序开发要先在微信公众平台官网注册账号,完善小程序信息,获取唯一标识场景定制翻译小程序的AppID,然后在官网下载专用的开发工具。微信小程序的开发工具界面,主要包括微信小程序的代码编辑、代码调试和微信小程序模拟器功能。除此之外,在调用网络API的部分,需事先设置好通讯域名用于连接我们的数据处理模块的服务器。需要注意的是,微信小程序开发文档中说明了小程序不支持IP和端口设置,只支持https和wss协议。

(2)微信小程序界面设计

翻译小程序的界面设计主要是实现翻译语言选择,文本输入查询,语音输入查询,翻译结果展示的功能。本项目页面设计使用官方提供的MINA框架。MINA框架提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者可以方便地聚焦于数据与逻辑上。它也提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序。

界面主要由下拉选择框,翻译结果展示框,按钮组成。其中部分代码如下:


三 测试

在本次项目中,一共使用了两种框架去搭建java后台,一个是servlet,一个是SpringMVC。在不考虑百度QPS的限制和服务器请求的速度下,米维信息分别测试了servlet和SpringMVC在数据处理模块步骤一中的处理速度。本次测试一共测试了500,1000,1500的并发量,在有线测试的条件下,传输速度如图2所示:

在3次测试中,均没有出现请求错误,文件均上传成功并且转码成功。其中,在Sevlet中当并发量为500时,传输速度最快,随着并发量的增加,传输速率有下降的趋势,而在SpringMVC中,传输速率普遍要比servlet要高,并在500~1500的并发中,传输速率逐渐增大。Spring对并发的处理要优于Servlet的处理,特别是在并发量较大的情况下,处理速度要远远大于Servlet。


关键字: 衡阳微信小程序,翻译小程序

衡阳网站建设,APP开发活动入口
热门资讯
提供衡阳微信小程序开发,微信营销功能开发、公众号开发等开发服务