一种基于语音播报的手机新闻系统及其处理方法与流程

文档序号:14156728阅读:1188来源:国知局

本发明涉及互联网领域,尤其是一种基于语音播报和输入的手机新闻系统及其处理方法。



背景技术:

随着互联网的逐渐普及和移动终端的迅速发展影响着受众媒介接触习惯的改变,越来越多的人希望通过移动终端随时随地获得最新的新闻和资讯。现代生活的快节奏使得人们只能忙里偷闲。中国新闻出版研究院公布的“第十次全国国民阅读调查”报告显示,人均每天手机阅读时长为16.52分钟,通过手机阅读的国民比率为31.2%。新媒体环境下,读者阅读时间的减少和碎片化趋势,预示着手机阅读的影响范围将会越来越广。手机阅读不仅能快速获取新闻信息,同时契合了碎片化时代读者的便捷性、片段化和主动性的需求。

对此,现有技术中提供了移动终端新消息及新闻资讯的语音播放方法及应用(cn106791078a),但其技术方案存在以下缺点:

1、其app应用程序用于多种平台,开发过程中的重复工作量大,效率低,不利于跨平台实现手机新闻系统;

2、对于一些常用的应用场景,例如开车时收听新闻播报,可能车辆在行驶过程中通过隧道等情况下,因网络信号弱或网络信号中断导致新闻播报暂停,造成用户的视听体验不佳;

3、对于一些常用的应用场景,例如开车时收听新闻播报,该方案不适用于使用者的信息互动;

4、对于部分应用用户,例如急于交流并且手机输入慢的用户,该方案不适用于使用者的信息互动。

术语解释:

javascript(js):一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为javascript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标准通用标记语言下的一个应用)网页上使用,用来给html网页增加动态功能。

mui:基于js实现的高性能前端框架。

sdk:软件开发工具包(softwaredevelopmentkit)。

localstorage:没有时间限制的前端数据存储。

canvas:是html5新增的元素。

activity:android组件中最基本也是最为常见用的四大组件之一。



技术实现要素:

为了解决上述技术问题,本发明的目的是:一种基于语音播报和输入的开发难度小、视听体验好、利于信息互动的手机新闻系统。

为了解决上述技术问题,本发明的另一目的是:一种基于语音播报和输入的开发难度小、视听体验好、利于信息互动的手机新闻处理方法。

本发明所采用的技术方案是:一种基于语音播报的手机新闻系统,包括有

新闻信息获取模块,基于html5实现,用于通过互联网服务端获取新闻信息数据;

语音配置模块,用于根据新闻信息数据创建语音并设置语音参数;

语音生成模块,用于根据语音参数生成音频文件,并将音频文件保存至语音缓存模块;

语音缓存模块,用于保存音频文件;

语音播放模块,用于播放新闻信息数据在语音缓存模块中对应的音频文件。

进一步,所述新闻信息获取模块采用mui作为前端框架。

进一步,所述语音参数包括有发音人、语速和/或音量。

进一步,所述语音生成模块还用于对生成的音频文件进行加密。

进一步,所述语音生成模块还用于在生成音频文件之前检测语音缓存模块中是否已存在相应的新闻信息数据的音频文件,若存在则不生成音频文件。

进一步,还包括有用户输入模块,用于获取用户的文字输入信息或者获取语音输入信息并转化为文字输入信息,并将文字输入信息发送至服务端。

本发明所采用的另一技术方案是:一种基于语音播报的手机新闻处理方法,包括有以下步骤:

采用基于html5实现新闻信息获取模块,通过互联网服务端获取新闻信息数据;

根据新闻信息数据创建语音并设置语音参数;

根据语音参数生成音频文件,并将音频文件保存至语音缓存模块;

播放新闻信息数据在语音缓存模块中对应的音频文件。

进一步,根据语音参数生成音频文件,并将音频文件保存至语音缓存模块这一步骤,具体为:检测语音缓存模块中是否已存在相应的新闻信息数据的音频文件,若存在则不生成音频文件,否则根据语音参数生成音频文件,并将音频文件保存至语音缓存模块。

进一步,还包括有以下步骤:

通过监听事件检测用户是否操作打开评论页面;

若用户打开评论页面,则获取用户的文字输入信息,或者获取用户的语音输入信息并转化为文字输入信息,并将文字输入信息发送至服务端。

进一步,还包括有以下步骤:将文字输入信息发送至服务端之后,接收服务端发回的文字输入信息的存储状态,若存储状态为失败,则根据存储状态提示失败原因,若存储状态为成功,则关闭评论页面。

本发明系统和方法有益效果是:基于html5开发,开发过程中的重复工作量小,效率高,利于跨平台实现手机新闻系统;利用缓存数据库对数据进行缓存,可在无网络环境下离线播放,使用过程流畅;通过语音进行新闻评论,使用户评论交流更加方便。

附图说明

图1为本发明的系统结构框图;

图2为本发明处理方法的步骤流程图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步说明:

参照图1,一种基于语音播报的手机新闻系统,包括有

新闻信息获取模块,基于html5实现,用于通过互联网服务端获取新闻信息数据;

语音配置模块,用于根据新闻信息数据创建语音并设置语音参数;

语音生成模块,用于根据语音参数生成音频文件,并将音频文件保存至语音缓存模块;

语音缓存模块,用于保存音频文件;

语音播放模块,用于播放新闻信息数据在语音缓存模块中对应的音频文件。

进一步作为优选的实施方式,所述新闻信息获取模块采用mui作为前端框架。

进一步作为优选的实施方式,所述语音参数包括有发音人、语速和/或音量。

进一步作为优选的实施方式,所述语音生成模块还用于对生成的音频文件进行加密。

进一步作为优选的实施方式,所述语音生成模块还用于在生成音频文件之前检测语音缓存模块中是否已存在相应的新闻信息数据的音频文件,若存在则不生成音频文件。

进一步作为优选的实施方式,还包括有用户输入模块,用于获取用户的文字输入信息或者获取语音输入信息并转化为文字输入信息,并将文字输入信息发送至服务端。

参照图2,一种基于语音播报的手机新闻处理方法,包括有以下步骤:

采用基于html5实现新闻信息获取模块,通过互联网服务端获取新闻信息数据;

新闻信息获取模块具体可采用mui作为前端框架,当用户点击播放新闻按钮后,通过监听事件(element.addeventlistener('tap',function(){}))来触发我们监听该按钮的方法,通过该方法的回调函数调用javascript的根据name属性来获取元素的值(document,getelementsbyname(‘newcontent’)[0].value),来获取到新闻需要播报信息。

根据新闻信息数据创建语音并设置语音参数;其中语音播放通过智能交互技术服务平台的sdk实现,例如市面上流行的讯飞语音,具体语音创建和参数设置可参考以下过程:

1、通过plus.android.runtimemainactivity()方法获取activity对象的实例;

2、通过引用方法(plus.android.importclass),引用讯飞语音sdk的语音工具类(speechutility)、语音参数类(speechconstant)和语音实现类(speechsynthesizer);

3、通过语音工具类(speechutility)的createutility()创建语音实例;

4、通过语音实现类(speechsynthesizer)的createsynthesizer()创建语音。

5、通过语音参数类(speechconstant)的属性:voice_name、speed、volume和语音实现类(speechsynthesizer)的设置参数方法(setparameter)来分别设置发音人、语速、设置音量。

根据语音参数生成音频文件,并将音频文件保存至语音缓存模块;

播放新闻信息数据在语音缓存模块中对应的音频文件;

例如通过语音实现类(speechsynthesizer)的createsynthesizer()的实例的startspeaking()方法播放语音并生成音频文件。

进一步作为优选的实施方式,还包括对生成的音频文件进行加密的步骤,例如通过canvas元素的todataurl()方法把上一步获取到的音频文件转成base64字符串,通过自封装函数compilestr()对上一步获取的base64字符串进行加密。

进一步作为优选的实施方式,根据语音参数生成音频文件,并将音频文件保存至语音缓存模块这一步骤,具体为:检测语音缓存模块中是否已存在相应的新闻信息数据的音频文件,若存在则不生成音频文件,否则根据语音参数生成音频文件,并将音频文件保存至语音缓存模块。

具体实施例中可通过localstorage判断该缓存是否存在,如果不存在,通过localstorage把上一步获取base64文件加上新闻id构建成json对象在通过jquery的json.stringify()转成json字符串并缓存起来,如果存在,则结束流程。

同样的,当用户点击播放新闻时,优先通过localstorage查找缓存,如果存在,直接播放;若缓存中为加密后的音频文件,则通过封装的uncompilestr()把加密的base64字符串解密,在通过自封装的方法dataurl2audio的方法把base64字符串转成音频并播放。

进一步作为优选的实施方式,还包括有以下步骤:

通过监听事件检测用户是否操作打开评论页面;

若用户打开评论页面,则获取用户的文字输入信息,或者获取用户的语音输入信息并转化为文字输入信息,并将文字输入信息发送至服务端。

通过监听事件(element.addeventlistener('tap',function(){})))来触发监听用户操作的方法;通过该方法的回调函数调用mui的打开新的窗体(mui.openwindow({}))方法来打开评论的详细页面,用户可点击下方的输入框来语音输入或文字输入评论。若输入为语音输入,则将语音输入信息转化为文字输入信息后,然后通过mui封装的异步请求方法(mui.ajax()),把文字传递给服务端。

进一步作为优选的实施方式,还包括有以下步骤:将文字输入信息发送至服务端之后,接收服务端发回的文字输入信息的存储状态,若存储状态为失败,则根据存储状态提示失败原因,若存储状态为成功,则关闭评论页面;

服务端对上述文字输入信息(包括原始的文字输入信息,或者获取用户的语音输入信息并转化的文字输入信息)作相应的存储后返回成功或失败的提示;根据上步骤服务端返回的信息,判断成功失败,如若失败,则给app提示出错误的原因,并结束流程;若成功,则通过关闭方法(plus.webview.close())关闭评论页面;对于有加密步骤的,把文件转成base64(canvas.todataurl())缓存到本地,并刷新评论页面。当用户回到评论页面时,既可看到文字也可播放此评论的语音。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变换或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1