本发明属于窄带物联网技术领域,涉及一种窄带物联网语音消息通信方法和系统。
背景技术:
窄带物联网具有广覆盖、强链接、低成本、低功耗的优势,广泛应用于环境监测预警以及智能穿戴设备。现有的窄带物联网设备采集、传输的是传感器的数据,比如温度、噪声、定位等等,忽视了语音数据。在一些应用场景下,如智能穿戴设备、智能家居等与人密切相关的设备,或者噪声监控、水管监控、防盗监控等可能需要采集环境声音的设备,采集和传输语音可以提供更人性化的用户体验和更直观的数据。
基于push-to-talkovercellular(简称poc)标准的公网对讲集群在安保、厂矿、港口、家用等方面都有广泛应用,但是目前的poc对讲终端的价格都在百元人民币以上,不适用于物联网低成本的应用需求。
窄带物联网的语音通信是基于voip技术的半双工通讯,而现有的大多数voip语音压缩和传输技术是基于3g,4g网络,这些网络拥有充足的带宽和传输速率并且支持小区间无缝切换。相比之下,在窄带物联网上实现语音通信时有以下困难:
1.窄带物联网具有广覆盖的特点,但是广覆盖状态下,传输速率很低,不足以支持半双工语音。
2.窄带物联网支持大规模连接,但是带来延迟问题,当小区已经接入大量设备时,新的设备接入请求可能被要求延迟数秒。
3.窄带物联网不支持小区间无缝切换。当终端从一个服务小区进入另一个服务小区时,终端需要重新搜网接入,整个过程持续数秒,在此期间,数据传输会中断。
由于窄带物联网的这些特点和带来的局限性,现有的语音压缩和传输技术都不适用于窄带物联网。
技术实现要素:
为解决上述问题,本发明公开了一种窄带物联网语音消息通信系统及方法,为窄带物联网提供语音消息通信功能,实现窄带物联网设备之间以及窄带物联网设备与其他多媒体设备(电脑、手机等)之间的语音通信。
为了达到上述目的,本发明提供如下技术方案:
窄带物联网语音消息通信方法,包括如下步骤:
终端注册到语音消息服务器,获得语音消息服务;
终端上线后,登录到运营商服务器和语音消息服务器,语音消息服务器更新终端状态,刷新群组信息;
终端发送语音数据时,当处于增强覆盖状态下,提供紧急和非紧急两个功能供用户选择;当选择紧急功能时,将语音转成文字上传至语音消息服务器存储;当非紧急功能时,终端先将语音数据保存在自身,然后向语音消息服务器传输语音数据;上传语音时,终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知语音消息服务器插入不同的延迟时间;
语音消息服务器接收语音数据;当接收到的语音数据为文字格式时,语音消息服务器直接保存,当接收到语音数据时,语音消息服务器保存语音数据到智能缓冲区并且生成语音数据的标识,语音消息服务器对智能缓冲区进行如下操作:语音消息服务器收到终端上传的语音包和延时指示,解压语音后存入智能缓冲区,启动智能断句,记录每个句子的开始和结束位置,根据句子对语音数据进行分包;语音消息服务器根据延迟指示,在数据包开头插入延迟数据;
语音消息服务器根据终端的群组信息找到接收终端,并将语音消息通知发送给接收终端,语音消息通知中带有发送者信息和语音消息标识;
接收终端通过标识从语音消息服务器获取语音数据。
进一步的,所述延迟时间的具体算法如下:
当信号较好,强度大于阈值时,延时由传输速率决;
当信号低于阈值且持续变差时,则启动最大延迟。
进一步的,所述信号较好时延时时间=(传输时间–平均传输时间)。
进一步的,所述语音消息服务器根据延迟指示,在数据包开头插入延迟数据的过程中,当延迟时间不是最大延迟时,则在每包数据开头插入延迟数据;如果是最大延迟,则根据缓冲区中的数据包个数,平分延迟时间,将均分时间后计算得到的延迟数据插入每个数据包开头。
进一步的,所述语音消息服务器根据终端所在群组找到接收终端的过程中,如果接收终端不在本语音消息服务器,则将消息转发到接收终端所在语音消息服务器;语音消息服务器判断接收终端是否具有公网ip,如果没有,则通过运营商的物联网平台将消息通知发送到接收终端;如果有,则直接将消息通知发送到接收终端。
进一步的,所述接收终端通过标识从语音消息服务器获取语音数据的过程中:当接收终端并非处于超强覆盖状态时,终端接收语音消息服务器发送的语音数据,如果从语音消息服务器端接收到的是文字,则终端将文字合成语音后播放;当接收终端处于超强覆盖状态时,则由语音消息服务器将文字或将语音数据转换成文字,超强覆盖终端则从语音消息服务器端下载文字后合成语音播放。
进一步的,所述终端发送语音数据时,每一包数据独立压缩,除语音结束情况外每次压缩最大长度的数据。
窄带物联网语音消息通信系统,包括终端和语音消息服务器,
所述终端用于发送语音数据,当终端处于增强覆盖状态下,提供紧急和非紧急两个功能供用户选择;当选择紧急功能时,将语音转成文字上传至语音消息服务器存储;当非紧急功能时,终端先将语音数据保存在自身,然后向语音消息服务器传输语音数据;上传语音时,终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知语音消息服务器插入不同的延迟时间;
所述终端还用于从语音消息服务器获取语音数据;
所述语音消息服务器用于接收语音数据;当接收到的语音数据为文字格式时,语音消息服务器直接保存,当接收到语音数据时,语音消息服务器保存语音数据到智能缓冲区并且生成语音数据的标识,语音消息服务器对智能缓冲区进行如下操作:语音消息服务器收到终端上传的语音包和延时指示,解压语音后存入智能缓冲区,启动智能断句,记录每个句子的开始和结束位置,根据句子对语音数据进行分包;语音消息服务器根据延迟指示,在数据包开头插入延迟数据;
所述语音消息服务器还用于根据终端的群组信息找到接收终端,并将语音消息通知发送给接收终端,语音消息通知中带有发送者信息和语音消息标识。
与现有技术相比,本发明具有如下优点和有益效果:
1.本发明实现了窄带物联网设备之间以及与其他多媒体设备(电脑、手机等)之间的语音通信,扩展了窄带物联网的应用。相较于已有的语音消息服务或半双工语音通话服务,本发明提供了更低成本和更低功耗的方案。
2.本发明中终端在超强覆盖状态下,将语音转成文字形式上传,显著提高速度。
3.本发明通过延迟数据的插入,配合自动断句功能,可以将原本因网络导致的不确定的间断延迟在断句后放入句与句之间,形成更流畅的收听效果,更为人性化,播放效果更佳。
附图说明
图1为本发明架构示意图。
图2为终端与服务器之间语音数据传输示意图。
图3为超强覆盖终端上传语音消息流程图。
图4为超强覆盖终端接收语音消息流程图。
图5为语音消息服务器路由流程图。
图6为小区重选预判流程示意图。
图7为服务器智能缓冲区结构和插入延迟流程示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明提供的窄带物联网语音消息通信系统,架构如图1所示,包括终端和语音消息服务器。终端包括但不限于窄带物联网终端、其他无线终端(如4g、wifi、emtc设备)、有线终端(如通过网线上网的电脑等)等等;无线终端通过无线接入网、核心网和互联网连接到语音消息服务器。终端上设置有应用程序。终端将语音消息通过服务器发送至另一个终端,其大体流程如图2所示。
终端与语音消息服务器可以互相传输数据。终端支持数据加密、音频压缩、身份验证等功能。终端具有唯一标识符,语音消息服务器基于此唯一标识符提供语音消息路由功能。终端上下线时需通知语音消息服务器,服务器根据具体业务特点决定是否为离线设备保留语音消息。终端能够接收服务器的控制指令。终端的语音消息功能由终端应用程序提供,可以是linux应用程序、windows应用程序、macos应用程序、网页版应用、android应用程序、ios应用程序等。终端应用程序为用户收发语音消息提供图形界面或按钮操作,也提供收发语音消息的api接口给其他应用程序调用。
如图2所示,终端完成录音和音频数据压缩,将压缩后的数据上传到语音消息服务器。增强覆盖状态下(即终端处于信号不好的地方),传输速率很低,此时如果用户传输语音,则终端应用程序界面中提示用户选择紧急或者非紧急语音(为避免用户总选用紧急语音,可设定不同的通信资费)。当选择紧急语音时,应用程序先将语音识别成文字,极大减少传输数据量,然后立即传输至服务器。当选择非紧急语音时,则先将语音数据保存在终端,然后传输语音数据,延迟比较大。此外,终端上传语音时,数据压缩方式有所改进,同时终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知服务器插入不同的延迟时间,具体详见后续方法描述。
语音消息服务器通过udp协议或基于udp协议的应用层协议与窄带物联网终端通信,通过udp、tcp协议或基于这两种协议的应用层协议与另一多媒体终端通信,同时,服务器之间也能互相通信。除了基本的通信功能外,语音消息服务器还具有管理功能,包括终端管理、安全验证、群组管理、语音消息路由等功能。语音消息服务器能够分布式部署,支持扩容,不同服务器的用户可以互相通信。语音消息服务器统计用户流量数据,支持收费功能。语音消息数据用uri标识。
语音消息服务器保存语音数据并且生成语音数据的uri,然后根据终端的群组信息找到接收终端并将语音消息通知发送给接收终端,语音消息通知中带有发送者信息和语音消息uri。接收终端根据uri获取语音数据并播放。语音消息服务器采用智能缓冲区技术,智能缓冲区位于服务器上。智能缓冲区可以根据终端的无线信号强度,调整缓冲区大小,信号差时多缓存,信号好时少缓存;智能缓冲区支持自动断句,当语音传输过程中出现数秒延迟时,不会出现不完整的语音;智能缓冲区可以将语句之间的停顿适当延长,分摊延迟的影响。
终端和语音消息服务器之间数据传输都经过身份验证、加密和完整性保护。
基于上述系统,本发明提供了窄带物联网语音消息通信方法,包括如下步骤:
终端首先注册到语音消息服务器,获得语音消息服务。
终端上线后,登录到运营商服务器,这样才能及时收到通知。
终端上线后,登录到语音消息服务器,语音消息服务器更新终端状态,刷新群组信息。
终端处于增强覆盖状态时,提供紧急呼叫功能和非紧急留言两个功能供用户选择。紧急呼叫时流程如图3所示,采用语音识别的方法将语音转成文字,几十k字节的数据转成文字后大约几十字节,原本语音传输需几十秒,而转成文字后只需一秒就能传完,显著提高速度。紧急呼叫可以提供预先训练功能,提高该用户语音识别的准确率,也可以提供用户编辑功能,对识别后的文字进行校正。紧急呼叫时,该终端接收的语音也是文字格式,流程如图4所示,下行的文字格式由服务器完成语音识别转换成文字,由处于增强覆盖状态下紧急呼叫的终端完成语音合成并播放。
当非紧急留言时,终端先将语音数据保存在自身,然后向语音服务器传输语音数据。具体地说,终端上传语音时,每一包数据都是独立压缩的,每一包数据都有最大长度,除非语音结束(松开对讲按键),每次发送都凑齐一包最大长度的数据。同时终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知服务器插入不同的延迟时间。延迟时间的具体算法如下:
1.如果信号较好,强度大于阈值,延时由传输速率决定,例如,一包数据正常传输是1秒,如果传输时间(计算得到)大于1秒,则延迟时间=(传输时间–1)秒,不足1秒按1秒算;
2.如果信号低于阈值,且持续变差,则启动最大延迟,最大延迟可以由服务器根据缓冲区中的数据量自行决定。持续变差意味着终端很可能丢失覆盖,进入如图6所示的小区重选流程。具体的,首先获取当前信号强度,判断信号强度大于上次强度时,信号持续衰减计数加1,否则信号持续衰减计数加0;随后判断当信号持续衰减计数大于3且(2x当前信号值-上次信号值)小于重选阈值时,进行小区重选。
当接收到的语音数据为文字格式时,服务器直接保存,当接收到语音数据时,服务器保存语音数据到智能缓冲区并且生成语音数据的uri。具体的,如图7所示,服务器对智能缓冲区进行如下操作:服务器收到终端上传的语音包和延时指示,解压语音后存入智能缓冲区,启动智能断句(智能断句为现有技术,可根据语义来判断句子的起始和结束),记录每个句子的开始和结束位置,根据句子对语音数据进行分包。服务器根据延迟指示,如果不是最大延迟,则在每包数据开头插入延迟数据,发送给接收终端。如果是最大延迟,则根据缓冲区中的数据包个数,平分延迟时间,将均分后的延迟时间对应的数据插入数据包开头。
语音服务器路由整体流程如图5所示。语音消息服务器根据终端的群组信息找到接收终端,并将语音消息通知发送给接收终端。如果接收终端不在本服务器,则将消息转发到接收终端所在服务器。语音消息服务器判断接收终端是否具有公网ip,如果没有,则通过运营商的物联网平台将消息通知发送到接收终端;如果有,则直接将消息通知发送到接收终端。,语音消息通知中带有发送者信息和语音消息uri,接收终端通过uri从服务器获取语音数据,然后播放。
当接收终端并非处于超强覆盖状态时,接收服务器发送的语音数据,如果接收的是文字,则终端将文字合成语音后播放。当接收终端处于超强覆盖状态时,则由服务器将语音数据转换成文字(当原本服务器接收到的就是文字数据时无需转换),超强覆盖终端下载文字后,合成语音播放。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
1.窄带物联网语音消息通信方法,其特征在于,包括如下步骤:
终端注册到语音消息服务器,获得语音消息服务;
终端上线后,登录到运营商服务器和语音消息服务器,语音消息服务器更新终端状态,刷新群组信息;
终端发送语音数据时,当处于增强覆盖状态下,提供紧急和非紧急两个功能供用户选择;当选择紧急功能时,将语音转成文字上传至语音消息服务器存储;当非紧急功能时,终端先将语音数据保存在自身,然后向语音消息服务器传输语音数据;上传语音时,终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知语音消息服务器插入不同的延迟时间;
语音消息服务器接收语音数据;当接收到的语音数据为文字格式时,语音消息服务器直接保存,当接收到语音数据时,语音消息服务器保存语音数据到智能缓冲区并且生成语音数据的标识,语音消息服务器对智能缓冲区进行如下操作:语音消息服务器收到终端上传的语音包和延时指示,解压语音后存入智能缓冲区,启动智能断句,记录每个句子的开始和结束位置,根据句子对语音数据进行分包;语音消息服务器根据延迟指示,在数据包开头插入延迟数据;
语音消息服务器根据终端的群组信息找到接收终端,并将语音消息通知发送给接收终端,语音消息通知中带有发送者信息和语音消息标识;
接收终端通过标识从语音消息服务器获取语音数据。
2.根据权利要求1所述的窄带物联网语音消息通信方法,其特征在于:所述延迟时间的具体算法如下:
当信号较好强度大于阈值时,延时由传输速率决;
当信号低于阈值且持续变差时,则启动最大延迟。
3.根据权利要求2所述的窄带物联网语音消息通信方法,其特征在于:所述信号较好时延时时间=(传输时间–平均传输时间)。
4.根据权利要求1所述的窄带物联网语音消息通信方法,其特征在于:所述语音消息服务器根据延迟指示,在数据包开头插入延迟数据的过程中,当延迟时间不是最大延迟时,则在每包数据开头插入延迟数据;如果是最大延迟,则根据缓冲区中的数据包个数,平分延迟时间,将均分时间后计算得到的延迟数据插入每个数据包开头。
5.根据权利要求1所述的窄带物联网语音消息通信方法,其特征在于:所述语音消息服务器根据终端所在群组找到接收终端的过程中,如果接收终端不在本语音消息服务器,则将消息转发到接收终端所在语音消息服务器;语音消息服务器判断接收终端是否具有公网ip,如果没有,则通过运营商的物联网平台将消息通知发送到接收终端;如果有,则直接将消息通知发送到接收终端。
6.根据权利要求1所述的窄带物联网语音消息通信方法,其特征在于:所述接收终端通过标识从语音消息服务器获取语音数据的过程中:当接收终端并非处于超强覆盖状态时,终端接收语音消息服务器发送的语音数据,如果从语音消息服务器端接收到的是文字,则终端将文字合成语音后播放;当接收终端处于超强覆盖状态时,则由语音消息服务器将文字或将语音数据转换成文字,超强覆盖终端则从语音消息服务器端下载文字后合成语音播放。
7.根据权利要求1所述的窄带物联网语音消息通信方法,其特征在于:所述终端发送语音数据时,每一包数据独立压缩,除语音结束情况外每次压缩最大长度的数据。
8.窄带物联网语音消息通信系统,包括终端和语音消息服务器,其特征在于:
所述终端用于发送语音数据,当终端处于增强覆盖状态下,提供紧急和非紧急两个功能供用户选择;当选择紧急功能时,将语音转成文字上传至语音消息服务器存储;当非紧急功能时,终端先将语音数据保存在自身,然后向语音消息服务器传输语音数据;上传语音时,终端根据发送每包数据时的速率,以及信号强度的变化趋势,通知语音消息服务器插入不同的延迟时间;
所述终端还用于从语音消息服务器获取语音数据;
所述语音消息服务器用于接收语音数据;当接收到的语音数据为文字格式时,语音消息服务器直接保存,当接收到语音数据时,语音消息服务器保存语音数据到智能缓冲区并且生成语音数据的标识,语音消息服务器对智能缓冲区进行如下操作:语音消息服务器收到终端上传的语音包和延时指示,解压语音后存入智能缓冲区,启动智能断句,记录每个句子的开始和结束位置,根据句子对语音数据进行分包;语音消息服务器根据延迟指示,在数据包开头插入延迟数据;
所述语音消息服务器还用于根据终端的群组信息找到接收终端,并将语音消息通知发送给接收终端,语音消息通知中带有发送者信息和语音消息标识。
技术总结