一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种VoLTE语音报文双向合并实时播放方法与流程

2021-10-29 22:28:00 来源:中国专利 TAG:报文 语音 播放 双向 合并

一种volte语音报文双向合并实时播放方法
技术领域
1.本发明涉及volte语音播放领域,具体涉及一种volte语音报文双向合并实时播放方法。


背景技术:

2.volte全称为voice over lte(长期演进语音承载),是lte网络中终端设备和网络传输语音数据的技术。volte通信是一种基于lte系统和ims(internetprotocol multimedia system,互联网协议多媒体系统)网络的语音业务。
3.对于支持volte技术的终端来说,语音播放只需要将网络发送到终端的语音报文解码播放即可,但在某些特殊场景需求下,网络发送给终端、终端发送给网络两个方向的语音报文需要双向实时播放,普通终端和通用技术则无法支持。
4.例如,专利申请号为202010074382.8的专利公布了一种volte语音优化方法,针对volte语音报文的传输从无线通信的角度提出了优化的策略,提高语音通话的mos值,但该发明未提出关于双向语音报文播放的方法,所以不能解决上述问题。
5.又例如,专利申请号为201911358366.5的专利提出了一种rtp语音报文的混音方法,按照语音报文rtp头中信息区分出静音帧和目标终端信息,从而将语音报文发送到相应的终端上,从而实现了语音报文的混音。该发明虽然提出了一定的流程进行多路音频报文的混音,但对于多路音频报文的合并策略、报文乱序、多路达到时间不对称等问题未提出解决方法,所以也不能解决volte语音报文双向合合并实时播放的问题。
6.由于本发明对于volte语音报文双向合并播放的主要过程如语音报文乱序、到达时间不对称、双向合并等均提出了高效的处理方法,所有可以实现volte语音报文的双向实时播放。


技术实现要素:

7.针对现有技术存在的缺陷,本发明提出了一种volte语音报文双向合并实时播放方法。
8.本发明的技术方案如下:
9.一种volte语音报文双向合并实时播放方法,具体包括以下步骤:
10.步骤1、将接收到的rtp报文按照上行和下行、按接收的顺序存入上行和下行两个缓冲区;
11.步骤2、分别解析上行和下行缓冲区中第一个接收的报文rtp头中的timestamp(时间戳)字段中,记录为t1和t2;
12.步骤3、当上行和下行任何一个缓冲区域存储达到最大值后,启动20ms定时器;
13.步骤4、当20ms定时器超时的时候时,从上行缓冲区底部的报文开始,逐个解析rtp第一个timestamp,计算deltt=timestamp

t1;通过遍历缓冲区中所有报文,找到deltt(两个语音报文的时间差)最大的语音帧,并记录最大的语音帧帧的位置为n1、时间差为delt1;
14.步骤5、重复步骤4中缓冲区处理部分,对下行缓冲区做与步骤4相同的处理,得到的位置记为n2、时间差记为delt2;
15.步骤6、解析n1位置语音报文rtp第一个的sn号,并检查上行缓冲区中所有报文,解析并进行对比,当有相同的sn号报文时,则将相同的sn号的报文从缓冲区中删除;
16.步骤7、解析n2位置语音报文rtp第一个的sn号,按步骤6,将重复的下行缓冲区n2位置的报文删除,并按照下列情况分别处理:
17.步骤7.1、当delt1大于delt2时,则只送n1位置的报文到语音解码器解码;
18.步骤7.2、当delt1小于delt2时,则只送n2位置的报文到语音解码器解码;
19.步骤7.3、当delt1等于delt2时,则送n1和n2位置两个报文到语音解码器解码;
20.步骤8、p1和p2是上行和下行语音音量权值,取值范围均为[0,1],p1和p2通过预设置的方式确定参数,用于对语音解码器输出的pcm信号进行加权,设解码器输出上行和下行pcm信号分别记为pcm1、pcm2,加权后的信号分别为rpcm1、rpcm2,则语音音量加权计算公式(1)、公式(2)为:
[0021]
rpcm1=pcm1*p1
……
(1),
[0022]
rpcm2=pcm2*p2
……
(2),
[0023]
步骤9、在步骤8的基础上,当步骤8中解码器输出的是一路pcm信号时,即只有上行的rpcm1或下行的rpcm2,则将rpcm1、rpcm2直接发送给播放器进行播放;
[0024]
当步骤8中解码器输出的是二路pcm信号时,则生成rpcm信号,并将生成rpcm信号发送到播放器进行播放,rpcm生成的公式(3)如下:
[0025]
rpcm=rpcm1 rpcm2
……
(3),
[0026]
步骤10、生成的pcm数据流即为最终播放的数据,将最终的播放数据送入播放器(语音的编码译码器)进行播放。
[0027]
进一步地,在步骤5中,当上述步骤确定的两个语音帧时间差不同,则取时间差大的语音帧,将时间差大的语音帧的rtp报文送入语音解码器,得到一个语音帧的pcm数据流;当上述步骤确定的两个语音帧时间差相等,则将这两个语音帧的rtp报文分别送入解码器,得到两个pcm数据流。
[0028]
本发明所述volte语音报文双向合并实时播放方法的有益效果是:
[0029]
本发明在volte语音报文双向合并播放的过程,克服了语音报文乱序、到达时间不对称、双向合并的弊端,保证语音报文顺序正确、到达时间对称,能够实现volte语音报文的双向实时播放。
附图说明
[0030]
图1为现有技术中典型volte的传输rtp报文时间顺序示意图。
[0031]
图2为本发明所述volte语音报文双向合并实时播放方法提出的处理策略示意图。
[0032]
图3为本发明所述volte语音报文双向合并实时播放方法提出的方法软件流程示意图。
具体实施方式
[0033]
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。
[0034]
如图2、图3所示,本发明的具体的实施步骤如下:
[0035]
骤1、将接收到的rtp报文按照上行和下行、按接收的顺序存入上行和下行两个缓冲区;
[0036]
步骤2、分别解析上行和下行缓冲区中第一个接收的报文rtp头中的timestamp(时间戳)字段中,记录为t1和t2;
[0037]
步骤3、当上行和下行任何一个缓冲区域存储达到最大值后,启动20ms定时器;
[0038]
步骤4、当20ms定时器超时的时候时,从上行缓冲区底部的报文开始,逐个解析rtp第一个timestamp,计算deltt=timestamp

t1;通过遍历缓冲区中所有报文,找到deltt(两个语音报文的时间差)最大的语音帧,并记录该帧的位置为n1、时间差为delt1;
[0039]
步骤5、重复步骤4中缓冲区处理部分,对下行缓冲区做与步骤4相同的处理,得到的位置记为n2、时间差记为delt2;
[0040]
步骤6、解析n1位置语音报文rtp第一个的sn号,并检查上行缓冲区中所有报文,解析并进行对比,当有相同的sn号报文时,则将相同的sn号的报文从缓冲区中删除;
[0041]
步骤7、解析n2位置语音报文rtp第一个的sn号,按步骤6方法,将重复的下行缓冲区n2位置的报文删除,并按照下列情况分别处理:
[0042]
步骤7.1、当delt1大于delt2时,则只送n1位置的报文到语音解码器解码;
[0043]
步骤7.2、当delt1小于delt2时,则只送n2位置的报文到语音解码器解码;
[0044]
步骤7.3、当delt1等于delt2时,则送n1和n2位置两个报文到语音解码器解码;
[0045]
步骤8、p1和p2是上行和下行语音音量权值,取值范围均为[0,1],p1和p2通过预设置的方式确定参数,用于对语音解码器输出的pcm信号进行加权,设解码器输出上行和下行pcm信号分别记为pcm1、pcm2,加权后的信号分别为rpcm1、rpcm2,则语音音量加权计算公式(1)、公式(2)为:
[0046]
rpcm1=pcm1*p1
……
(1),
[0047]
rpcm2=pcm2*p2
……
(2),
[0048]
步骤9、在步骤8的基础上,当步骤8中解码器输出的是一路pcm信号时,即只有上行的rpcm1或下行的rpcm2,则将rpcm1、rpcm2直接发送给播放器进行播放;
[0049]
当步骤8中解码器输出的是二路pcm信号时,则生成rpcm信号,并将生成rpcm信号发送到播放器进行播放,rpcm生成的公式(3)如下:
[0050]
rpcm=rpcm1 rpcm2
……
(3),
[0051]
步骤10、生成的pcm数据流即为最终播放的数据,将最终的播放数据送入播放器(语音的编码译码器)进行播放。
[0052]
进一步地,在步骤5中,当上述步骤确定的两个语音帧时间差不同,则取时间差大的语音帧,将时间差大的语音帧的rtp报文送入语音解码器,得到一个语音帧的pcm数据流;当上述步骤确定的两个语音帧时间差相等,则将这两个语音帧的rtp报文分别送入解码器,得到两个pcm数据流。
[0053]
本发明并不限于上述实施方式,在不背离本发明实质内容的情况下,本领域技术人员可以想到的任何变形、改进、替换均落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜