一种双模块数据处理的对讲机***
本申请是申请日为2019年01月29日、名称为“用于窄带物联网的实时语音压缩和解压的方法”、申请号为201910086356.4的发明专利申请的分案申请。
技术领域
本发明涉及在窄带物联网中语音通信的技术领域,更具体地说,涉及一种双模块数据处理的对讲机***,以及在对讲机中的应用。
背景技术
随着信息技术的***性发展,当今的世界已经进入万物互联的时代,各种物联网技术层出不穷。但是,由于窄带物联网固有的带宽窄,传输速率低,时延较长等特点。导致使用Zigbee、LoRa以及NB-IOT等通信方式在传输语音信号时存在较大的困难,如何有效利用窄带物联网有限的带宽资源,实现数据量为22KB/s以上的语音收发,已经成为迫切需要解决的问题。
1、以LoRa为例:在用LoRa技术传输数据时,如果传输的码速率小于8B/s时,传输距离可达到25公里(空旷场地),而当码速率达到960B/s时,同等条件下的传输距离已下降至1Km以下,而一般的语音通信的数据量达到22KB/s,在未压缩的情况下,基本上无法通过LoRa的方式传输。
2、Zigbee的理论带宽为256KB/s,但其所传输的数据中各种协议的数据包实际占有很大比重,能够留给语音通信用的带宽十分有限,如果不对高达22KB/s的语音数据进行压缩,即使Zigbee可以勉强传输,也会带来很大的时延。
3、现有最常用的语音压缩技术为MPEG2,此技术已经非常成熟,但如果直接用于窄带无线通信时,会有以下缺陷:
(1)实时性不强:MPEG2至少需要采样够一个完整的语音音节的数据后,压缩成的数据才足以保证通话质量,而一个完整的音节至少时长为0.4~0.7s,再加上通话时延,通常总通话时延至少在1s以上,而我们的实时语音压缩技术每50ms完成一帧压缩,因此在通话的实时性上远强于MPEG2。
(2)压缩比不足:MPEG2的压缩率是12:1--10:1,压缩比不足无法在窄带物联网中实时语音传输技术。对22KB/s速度的语音数据,在每次截取压缩总时长为20ms的语音数据时,我们的实时语音功率谱压缩技术可达40:1,甚至更高的压缩比,22KB/s能压缩在0.6KB/s以内,可实现窄带物联网的语音实时通畅通信。
发明内容
本发明的一个目的是解决至少上述缺陷,并提供至少后面将说明的优点。
为了实现根据本发明的这些目的和其它优点,本发明提供一种双模块数据处理的对讲机***,包括:
压缩模块,其用于实时接收拾音器传输过来的模拟语音信号,并将模拟语音信号AD转化为语音数据,然后将语音数据进行压缩得到传输序码列;
LoRa无线发送模块,其用于将压缩模块的传输序码列无线发送给窄带物联网,传输给其他对讲机接收;
LoRa无线接收模块,其用于将从窄带物联网传输过来的其他对讲机的传输序码列无线接受给解压模块;
解压模块,其用于实时接受LoRa无线接收模块传输来的其他对讲机的传输序码列进行解压;
语音播放器,其用于将解压模块解压后的语音信号播放发声;
进一步地,所述压缩模块和解压模块分别都用ISD9160芯片。
进一步地,压缩模块压缩语音数据的具体过程为:
连续实时截取总时长为t的语音数据,然后按t/2n的间隔时间对所述语音数据取点,当取够2n个点时作为第N帧数据;
将所述第N帧数据进行高频预加重,将高频预加重后的时域数据转成频域数据,再将频域数据求模计算功率谱得到频谱,以及在所述频谱中选取各次谐波幅值,并将各次谐波幅值的最大幅值除以选取各次谐波幅值的次数得到总衰减系数;
将各次谐波幅值与总衰减系数相除得到4位量化的各次谐波幅度比;
将所述第N帧数据和所述频谱结合进行基波分析得到基波频率值;
将所述基波频率值、各次谐波幅度比和总衰减系数按照数据传输协议的帧数据格式排列生成第N帧数据的传输序码列;
其中,t取20ms-60ms,n=7、8、9;N为正整数。
进一步地,所述时域数据转成频域数据的具体方式为通过傅里叶变换得到;所述基波分析具体方式为将第N帧数据和所述频谱采用最小二乘法计算每次谐波的标准间隔;所述的传输序码列通过窄带物联网传输。
进一步地,所述在所述频谱中选取各次谐波幅值具体为:在20-2000Hz的频段中选取14个峰值点,得到第1~14次谐波的幅值,在2200—2600Hz频段中取最高幅值为第15次谐波幅值,3000-3600Hz频段取最高幅值为第16次谐波幅值,总共得到第1~16次谐波幅值;将第1~16次谐波幅值与总衰减系数相除得到4位量化的第1~16次谐波幅度比;其中,总衰减系数为取1~16次谐波幅值中的最大幅值除以16得到。
进一步地,当t=50ms,n=8时,对所述语音数据取点的间隔时间为t/2n=50/256ms,所述传输序码列的长度为12个字节,第1个字节作为起始码,最后1个字节作为结束码,第2个字节作为基波频率值,第3至10个字节依次作为第1~16次谐波幅度比,第11个字节作为总衰减系数。
进一步地,在连续实时截取总时长为t的语音数据之前,还包括将拾音器传输过来的语音信号进行预处理、增益放大、A/D转化后得到语音数据,并将语音数据存入内存,便于连续实时帧截取。
进一步地,解压模块解压传输序码列的具体过程为:对窄带物联网发送过来的传输序码列进行连续实时接收,接收的传输序码列与压缩方法中的数据传输协议的帧数据格式相同;
将接收的传输序码列按数据传输协议的帧数据格式分离出第N帧数据的基波频率值、各次谐波幅度比以及总衰减系数;
将各次谐波幅度比与总衰减系数相乘后得到各次谐波幅值;
将各次谐波幅值与基波频率值进行反傅里叶变换,生成时域上的语音数据;
将语音数据去高频预加重,再D/A转化后得到语音信号。
本发明至少包括以下有益效果:本发明的实时语音压缩技术,可以将22KB/s、44KB/s以上的语音数据实时压缩成0.6KB/s甚至更低。相比于现有的MPEG标准的压缩技术,无需等待一段语音结束后再进行压缩处理,而是将语音信号分段实时压缩,无需等待漫长时延,在实现实时性通信的同时也极大地保留了语音的质量。相较于MPEG格式压缩率更高,更加适合在窄带物联网的极低速率下传输。
(1)实时性强
当前基于窄带物联网的语音技术停留在通过对人声的语音识别,直接将语音信号转换成数据指令传送给终端,终端通过这些指令信号作出相应反应来实现人机交互。其本质并不是通过窄带物联网真正传输语音信号,因此只能实现人机交互,无法真正实现语音交流,更谈不上实时性。然而本发明通过将数据量较大的语音信号分段实时压缩并发送使窄带物联网可以直接收发语音信号,并且通信延时极小,可以实现近似于打电话的通信效果,让窄带物联网真正实现语音互联。
(2)压缩率高,通信质量佳
语音信号在经过40倍甚至更高的极高压缩率下,不仅可以实现通话的实时性,更突破性的极大保留了通话时的语音质量,给您更好的通话体验。
(3)兼容性强
因为本发明的实时语音压缩技术在保证实时性的同时拥有着40倍甚至更高的压缩率,可以将22KB/s到44KB/s的语音信号压缩到0.6KB/s以下甚至更小。所以我们的技术对于模块传输速率的硬件要求极低。可广泛适用于zigbee、LoRa等现有窄带物联网模块当中并实现完美融合。可基于用户已经组好的窄带网络,无需更换已有设备,即插即用、方便实惠。
通过利用本发明的语音压缩和解压方法应用到对讲机上,可以做成单模块数据处理的对讲机***和双模块数据处理的对讲机***。单模块数据处理的对讲机***结构紧凑,成本较低,但由于压缩和解压的都由一个ISD9160芯片实现,并且共用一个LoRa无线模块实现信号的发送和接收,所以通话质量较双模块方式差,且在其基础上进行二次开发的难度也较大。双模块数据处理的对讲机***通话质量更好,在其基础上进行二次开发的难度小,有利于其他功能的进一步扩展。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明所述的用于窄带物联网的实时语音压缩的方法的流程图;
图2为本发明在窄带物联网中有助于连续实时帧截取语音数据的语音压缩的方法流程图;
图3为本发明压缩第N帧数据的传输序码列格式;
图4为本发明所述用于窄带物联网的实时语音解压方法的流程图;
图5为使用本发明的压缩和解压方法的单模块数据处理的对讲机***模块连接图;
图6为使用本发明的压缩和解压方法的双模块数据处理的对讲机***模块连接图;
图7为单模块数据处理的对讲机***的电路图;
图8为双模块数据处理的对讲机***电路图;
图9为某一人声在时域上的波形图;
图10为图9中a段生成的频谱图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
如图6所示,一种双模块数据处理的对讲机***,其包括:
选择匹配对讲机模块,其用于选定需要语音通讯的其他对讲机;
拾音器,其用于将声音振动转换成模拟语音信号;
压缩模块,其用于实时接收拾音器传输过来的模拟语音信号,并将模拟语音信号AD转化为语音数据,然后将语音数据进行压缩得到传输序码列;
LoRa无线发送模块,其用于将压缩模块的传输序码列无线发送给窄带物联网,传输给其他对讲机接收;
LoRa无线接收模块,其用于将从窄带物联网传输过来的其他对讲机的传输序码列无线接受给解压模块;
解压模块,其用于实时接受LoRa无线接收模块传输的其他对讲机的传输序码列进行解压;
语音播放器,其用于将解压模块解压后的语音信号播放发声;
稳压电源模块,其用于给对讲机***提供电源。
双模块数据处理的对讲机***的具体实施电路图如图8所示,压缩模块U2和解压模块U1分别用ISD9160芯片,并且通过管脚PA.7和PB.2并联,拾音器MK1通过管脚MIC+、MIC-和MICBIAS与压缩模块U2电连接;语音播放器LS1通过管脚SPK+和SPK-与解压模块U1电连接;选择匹配对讲机模块由按键S1-S5组成,其通过管脚PA.11、PA.10、PA.0、PA.1、PA.2与压缩模块U2电连接;LoRa无线发送模块通过管脚PB.3、PB.4、PB.5、PB.6和PB.7与压缩模块U2电连接;LoRa无线接收模块通过管脚PB.3、PB.4、PB.5、PB.6和PB.7与解压模块U1电连接;稳压电源模块3V3通过管脚VSSD、VDD33、VCCD、VCCSPK和VCCA与压缩模块U2和解压模块U1电连接;压缩模块U2和解压模块U1的管脚VSSA、VSSSPK、VREG、VCCLDO接地。
按照上述的电路图做出电路板,并对应焊接上元器件,烧入程序,进行模拟实验,在20公里范围内进行模拟实验能够达到预期效果,实时性强,能够近似于打电话的通信效果,压缩率高,通信质量佳。
如图1所示,一种双模块数据处理的对讲机***的实时语音压缩的方法,包括:
在步骤101中,连续实时截取总时长为t的语音数据,然后按t/2n的间隔时间对所述语音数据取点,当取够2n个点时作为第N帧数据;
在步骤102中,将所述第N帧数据进行高频预加重,将高频预加重后的时域数据经过步骤103转成频域数据,再将频域数据经过步骤104求模计算功率谱得到频谱,以及在所述频谱中选取各次谐波幅值,并将各次谐波幅值的最大幅值除以选取各次谐波幅值的次数得到总衰减系数;
将各次谐波幅值与总衰减系数经过步骤106的相除得到步骤107的4位量化后的各次谐波幅度比;
在步骤105中,将所述第N帧数据和所述频谱结合进行基波分析得到基波频率值;
将所述基波频率值、各次谐波幅度比和总衰减系数按照数据传输协议的帧数据格式排列生成步骤108的第N帧数据的传输序码列;
其中,t取20ms-60ms,n=7、8、9;N为正整数。
在步骤103中,所述时域数据转成频域数据的具体方式为通过傅里叶变换得到;在步骤105中,所述基波分析具体方式为将第N帧数据和所述频谱采用最小二乘法计算每次谐波的标准间隔;所述的传输序码列可以通过在步骤109的窄带物联网传输。
在步骤104中求模计算功率谱得到的频谱中选取各次谐波幅值具体为:在20-2000Hz的频段中选取14个峰值点,得到第1~14次谐波的幅值,在2200—2600Hz频段中取最高幅值为第15次谐波幅值,3000-3600Hz频段取最高幅值为第16次谐波幅值,总共得到第1~16次谐波幅值;将第1~16次谐波幅值与总衰减系数相除得到4位量化的第1~16次谐波幅度比,这样得到的第1~16次谐波幅度比更能保证通话质量;其中,总衰减系数为取1~16次谐波幅值中的最大幅值除以16得到。
在步骤101中,当t=50ms,n=8时,对所述语音数据取点的间隔时间为t/2n=50/256ms=0.1953125ms,所述传输序码列的长度为12个字节,第1个字节作为起始码,最后1个字节作为结束码,第2个字节作为基波频率值,第3至10个字节依次作为第1~16次谐波幅度比,第11个字节作为总衰减系数,具体参见图3所示的一种传输序码列格式。
如图2所示,在步骤101连续实时截取总时长为t的语音数据之前,还包括将拾音器传输过来的语音信号进行步骤201预处理、步骤202增益放大、步骤203的A/D转化后得到语音数据,并将语音数据存入步骤204的DMA内存,便于步骤101中的连续实时帧截取。
本发明人以22k/s速率的声音数据处理为例,连续实时截取总时长为0.02s的语音数据进行压缩的具体实验为:
ISD9160芯片以22k/s的速率对声音数据进行实时采样,存入DMA,每存满数据量为22k/s×20ms=440Byte的数据,截取总时长为0.02s的440Byte语音数据进行压缩处理,同时马上进入下一个0.02s时段声音数据的采样和存贮。图9时域上的波形图中的a段即为实时采样并存入DMA的时长0.02s的数据。
将440Byte数据以每间隔0.02/256s取一个点的方式,每截取够256点即可作为一帧数据分别进行高频预加重和基波分析,高频预加重后的数据通过快速傅里叶变换(FFT),生成如图10的频谱图,在频谱中选取各次谐波幅值,并将各次谐波幅值的最大幅值除以选取各次谐波幅值的次数得到总衰减系数;将各次谐波幅值与总衰减系数相除得到4位量化的各次谐波幅度比;将截取够256点的一帧数据和所述频谱结合进行基波分析得到基波频率值;将所述基波频率值、各次谐波幅度比和总衰减系数按照图3的格式生成12Byte的传输序码列,压缩率约等于40:1,如果将截取总时长增长到0.05s,可以将压缩率提高到90:1。
如图4所示,一种双模块数据处理的对讲机***的实时语音解压方法,其包括:
在步骤401中,对窄带物联网发送过来的传输序码列进行连续实时接收,接收的传输序码列与压缩方法中的数据传输协议的帧数据格式相同;
将接收的传输序码列按数据传输协议的帧数据格式分离出第N帧数据的基波频率值、各次谐波幅度比以及总衰减系数;
在步骤402中,将各次谐波幅度比与总衰减系数相乘后得到各次谐波幅值;
在步骤403中,将各次谐波幅值与基波频率值进行反傅里叶变换(IFFT),生成时域上的语音数据;
在步骤404中,将语音数据去高频预加重,再到步骤405的D/A转化后得到语音信号。
还可以包括步骤406将D/A转化后的语音信号经过功率放大后,传输给语音播放器发声。
如图5所示,为一种单模块数据处理的对讲机***,其包括:
选择匹配对讲机模块,其用于选定需要语音通讯的其他对讲机;
拾音器,其用于将声音振动转换成模拟语音信号;
共用ISD9160芯片的压缩和解压模块,其用于实时接收拾音器传输过来的模拟语音信号,并将模拟语音信号AD转化为语音数据,然后将语音数据进行压缩得到传输序码列,以及用于实时采样LoRa无线模块接收的其他对讲机的传输序码列进行解压;
LoRa无线模块,其用于将压缩和解压模块的传输序码列无线发送给窄带物联网传输,传输给其他对讲机接收,以及用于将从窄带物联网传输过来的其他对讲机的传输序码列无线接受给压缩和解压模块;
切换收发模块,其用于选择LoRa无线模块处于无线发送状态还是无线接收状态;
语音播放器,其用于将压缩和解压模块解压后的语音信号播放发声;
稳压电源模块,其用于给对讲机***提供电源。
单模块数据处理的对讲机***的具体实施电路图如图7所示,拾音器MK1通过管脚MIC+、MIC-和MICBIAS与压缩和解压模块ISD9160电连接;语音播放器LS1通过管脚SPK+和SPK-与压缩和解压模块ISD9160电连接;选择匹配对讲机模块由按键S1-S4组成,其通过管脚PA.11、PA.10、PA.0、PA.1与压缩和解压模块ISD9160电连接;切换收发模块为按键S5,其通过管脚PA.2与压缩和解压模块ISD9160电连接;LoRa无线模块通过管脚PB.3、PB.4、PB.5、PB.6和PB.7与压缩和解压模块ISD9160电连接;稳压电源模块3V3通过管脚VSSD、VDD33、VCCD、VCCSPK和VCCA与压缩和解压模块ISD9160电连接;压缩和解压模块ISD9160的管脚VSSA、VSSSPK、VREG、VCCLDO接地。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用。它完全可以被适用于各种适合本发明的领域。对于熟悉本领域的人员而言,可容易地实现另外的修改。因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。