一种基于NodeJS的智能家居语音控制系统的制作方法

文档序号:11097819阅读:2436来源:国知局
一种基于NodeJS的智能家居语音控制系统的制造方法与工艺

本发明涉及计算机技术领域,特别是涉及一种基于NodeJS的智能家居语音控制系统。



背景技术:

智能家居在实现高效便捷的基础上,被赋予语音控制的功能,这无疑会使得智能家居有一个更大的发展空间和更广阔的平台。

随着NodeJS的不断发展,NodeJS渐渐演变成一种构建网络应用的基础框架,并发展为一个不共享任何资源的单线程、单进程系统。NodeJS包含了很适合网络的库,这样NodeJS就为构建大型分布式应用提供了基础设施。它的目标都是为了构建快速、可伸缩的网络应用平台。它自身非常简单、采用通信协议来组织许多的Node,非常容易通过拓展来达成构建大型网络应用的目的。NodeJS是谷歌V8引擎、libuv平台抽象层以及主体使用Javscript编写的核心库三者集合的一个包装外壳。对性能的苛求是Node的一个关键因素。Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。NodeJS采用事件驱动、异步编程,为网络服务而设计。NodeJS非阻塞模式的IO处理给NodeJS带来在相对低系统资源耗用下的高性能与出众的负载能力。

NodeJS具有以下几个特点:

1)它是一个Javascript运行环境。NodeJS是服务器端的JavaScript运行环境,NodeJS是一套用来编写高性能网络服务器的JavaScript工具包。

2)依赖于v8引擎进行代码解释。v8对JS的解析不是基于反复loop源代码进行解释而是直接将JS代码编译成机器码运行。

3)事件驱动机制。事件由事件处理器或事件回调来处理,事件回调是当某个特定事件发生时被调用的函数。

4)非阻塞l/O。l/O操作不会阻塞程序的执行,也就是在l/O操作的同时,继续执行其他代码。

5)轻量、可伸缩,适于实时数据交互应用。NodeJS在实时的Web应用上采用了基于WebSocket的推送技术。

6)单进程,单线程。不管有多么的强大硬件,只能利用到单个CPU进行计算。NodeJS代码,是在单线程的环境中执行,但NodeJS本身不是单线程的。



技术实现要素:

本发明的目的是提供一种基于NodeJS的智能家居语音控制系统。

本发明的目的可以通过以下技术方案实现:

一种基于NodeJS的智能家居语音控制系统,包括数据模块、云端识别模块、项目产品化模块;

所述的数据模块,用于实现语音数据的接收、保存和删除;

所述的云端识别模块,用于对讯飞语音的参数配置提供识别权限,进行讯飞语音云端识别权限、语音识别相关参数的设置,以及NodeJS的http请求实现;

所述的项目产品化模块,用于崩溃日志和系统运行日志的记录,对系统运行出错时进行系统崩溃处理和系统的内存控制。

进一步地,所述的项目产品化模块包括工作日志和内存监控子模块,进程守护子模块和异常捕获子模块;

所述的工作日志和内存监控子模块,采用一个常用的第三方包Log4js,引入Log4js模块,最后在需要记录重要信息的时候,使用Log4js模块把工作日志记录到本地文件夹;

所述的进程守护子模块,采用NodeJS的服务器管理模块forever,能够启动、停止、重启App应用;

所述的异常捕获子模块,采用模块domain,捕捉异步回调中出现的异常,把处理多个不同的JO的操作作为一个组,注册事件和回调到domain,当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不导致程序错误立即推出。

本发明的有益效果:

本发明所提供的一种基于NodeJS的智能家居语音控制系统,实现了基于NodeJS的智能家居语音控制系统服务器端总体结构、技术手段和主要功能模块。服务器端主要实现实时语音识别,通过把接收的语音数据发送给讯飞语音云端识别,把识别结果返回给客户端。此外,NodeJS采用事件驱动、异步编程,其突出的优点使得程序能够实现高并发处理。NodeJS非阻塞模式的J0处理给NodeJS带来在相对低系统资源耗用下的高性能与出众的负载能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明的系统示意图;

具体实施方式

本发明的核心是提供一种基于NodeJS的智能家居语音控制系统。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供了一种基于NodeJS的智能家居语音控制系统,包括数据模块、云端识别模块和项目产品化模块。

所述的数据模块,用于语音数据的接收、保存和删除。

所述的云端识别模块,用于对讯飞语音的参数配置提供识别权限,主要用于配置讯飞语音云端识别权限、语音识别相关参数的设置,以及NodeJS的http请求实现;Http协议是一个通用的应用层协议,NodeJS作为一个宿主运行环境,以JavaScript为宿主语言,它也有自己实现的一套标准;NodeJS通过require引入http模块,并调用相关接IZl函数。NodeJS请求的是事先写好的用于设置语音识别参数和提供语音识别权限的php文件,该php采用utf一8无BOM编码;使用讯飞语音识别时,需要提供产品的apiKey和secretKey,云端审核通过后,返回结果。只有在审核通过后,语音文件才可以得到识别;此外,需要提交语音数据的编码;由于单片机客户端的数据处理能力有限,语音数据经过压缩并编码为Speex格式后,才上传到讯飞语音云端,讯飞语音要求需要识别的语音数据为8000采样率、单声道、16比特。

所述的项目产品化模块,用于崩溃日志和系统运行日志的记录,对系统运行出错时进行系统崩溃处理和系统的内存控制,其包括工作日志和内存监控子模块,进程守护子模块和异常捕获子模块。

所述的工作日志和内存监控子模块,采用一个常用的第三方包Log4js,引入Log4js模块,最后在需要记录重要信息的时候,使用Log4js模块把工作日志记录到本地文件夹;

所述的进程守护子模块,采用NodeJS的服务器管理模块forever,能够启动、停止、重启App应用;

所述的异常捕获子模块,采用模块domain,捕捉异步回调中出现的异常,把处理多个不同的JO的操作作为一个组,注册事件和回调到domain,当发生一个错误事件或抛出一个错误时,domain对象会被通知,不会丢失上下文环境,也不导致程序错误立即推出。

为了描述的方便,描述以上装置时以功能分为各种单元、模块分别描述。当然,在实施本申请时可以把各单元、模块的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。

以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

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