一种基于RTP的语音感知评估方法与流程

专利2022-06-30  50


本发明实施例涉及无线通讯
技术领域
,尤其涉及一种基于rtp的语音感知评估方法。
背景技术
:随着移动网络发展,尤其是volte业务的应用,基于实时传输协议(real-timetransportprotocol,rtp)业务的感知评估问题日益凸显,如何使volte用户得到更加优质的网络体验,特别是高清语音视频体验,成为volte业务发展的重点。而现阶段针对volte业务的感知评估是基于对能够接收到的rtp包识别、统计计算进行的。现有技术是通过对改变rtp包的数据存储结构,使多媒体终端对rtp包进行存储排序时能够避免频繁内存分配、拷贝并降低计算复杂度,同时使多媒体终端的接收实体和读取实体能够并发高效地存取rtp包数据;然后设定rtp包的接收时间段,在该时间段内将rtp包的存储数据区域划分为检测区域和延时区域,分别用于检测rtp是否丢包和容纳rtp包的延时到达,结合两者达到精确的rtp丢包检测结果。该方案能够在不稳定的网络传输环境下,使多媒体终端精确地进行rtp丢包检测,并使多媒体终端能够快速地存取rtp包数据,提高多媒体终端的rtp丢包检测能力和系统性能。以上方案是从多媒体终端入手,设计出一种新的数据存储结构,用于存储rtp包,从而提高提高多媒体终端的rtp丢包检测能力和系统性能。以接收到的第一个rtp包默认作为头部,仅计算了接收到起始rtp包后rtp包丢失情况。这样得到的计算结果不够准确,对于感知评估完整性就存在一定影响。技术实现要素:本发明实施例提供一种基于rtp的语音感知评估方法,用以解决现有技术中仅计算了接收到起始rtp包后rtp包丢失情况。这样得到的计算结果不够准确,对于感知评估完整性就存在一定影响。第一方面,本发明实施例提供了一种基于rtp的语音感知评估方法,其特征在于,包括:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。第二方面,本发明实施例提供了一种基于rtp的语音感知评估方法,其特征在于,包括:接收由终端发送的第一长度;向所述终端发送确认信息,以使所述终端获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为所述终端发送的第一个rtp包的序列号;依次接收所述终端发送的rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1;若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。第三方面,本发明实施例提供了一种基于rtp的语音感知评估方法,其特征在于,包括:获取一次通话过程中接收到的由终端发送的所有rtp包并按照接收时间进行排序,所述rtp包至少包括序列号;根据接收到的第一个rtp包以及预存的与所述通话对应在的第一长度,得到所述终端发送的第一个rtp包的初始序列号,所述初始序列号至少包括长度为所述第一长度的随机序列;根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率。第四方面,本发明实施例还提供了一种电子设备,包括:处理器、存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于该电子设备的通信设备之间的信息传输;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。第五方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。本发明实施例提供的一种基于rtp的语音感知评估方法,通过终端确定随机序列的第一长度,并通知网络侧设备后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。附图说明图1为本发明实施例的基于rtp的语音感知评估方法流程图;图2为本发明实施例的另一基于rtp的语音感知评估方法流程图;图3为本发明实施例的又一基于rtp的语音感知评估方法流程图;图4为本发明实施例的还一基于rtp的语音感知评估方法流程图;图5为本发明实施例的用于基于rtp的语音感知评估方法的终端结构示意图;图6为本发明实施例的用于基于rtp的语音感知评估方法的网络侧设备结构示意图;图7为本发明实施例的另一用于基于rtp的语音感知评估方法的网络侧设备结构示意图;图8为本发明实施例的电子设备结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例的基于rtp的语音感知评估方法流程图,图2为本发明实施例的另一基于rtp的语音感知评估方法流程图,如图1所示,所述方法包括:步骤s01、向网络侧设备发送第一长度,以使网络侧设备回复确认信息。在volte语音业务中,当终端发起通话时会先向网络侧设备发送邀请消息invite,再由网络侧设备发送给接收端,然后在接收端接收邀请后会回复确认消息invite200ok。然后终端会通过新建的承载向网络侧设备发送包含有语音数据的rtp包,再由网络侧设备发送给接收端,从而实现语音数据的传输。所述rtp包的具体结构如下表所示:表1当所述终端发送rtp包时,其所发送的第一个rtp包中所包含的16比特的序列号是由终端随机分配的,然后按照rtp包的发送顺序,在每次发送rtp包时,所包含的序列号加一。例如,终端在发送rtp包前先随机产生一个16位的初始序列号sn,并将该sn作为发送的第一个rtp包的序列号,此后发送的第二个rtp包所包含的序列号为sn 1,而第三个rtp包中包含的序列号为sn 2,以此类推,直到本次通话结束为止。由于发送的第一个rtp包的序列号是随机产生的,所以网络侧设备在本次通话结束后,对本次通话进行语音感知评估时无法通过序列号来判断哪个才是接收到的第一个rtp包,只能根据时间标志,将第一个接收到的rtp包默认为所述终端发送的第一个rtp包。然后再根据序列号的排列顺序,得到其中丢失的rtp包的个数,得到的丢包率计算公式为:其中,所述i表示终端发送的第一个rtp包的序列号,默认为网络侧设备接收到的第一个rtp包的序列号,n表示终端发送的最后一个rtp包的序列号,默认为网络侧设备接收到的最后一个rtp包的序列号,两者相减即为发送包个数,而其中的缺失的序列号数量即为丢包个数,可以通过发送包个数与网络侧设备接收到的所有rtp包的数量的差得到。由此可见,现有技术中对于网络侧设备在接收到的第一个rtp包前是否出现丢包现象无法进行判断。为此,本发明实施例提出了一种新的volte语音业务rtp包序列号的分配机制,从而可以更加准确得识别出终端发送的第一个rtp包的序列号。将初始序列号分为随机序列和初始包序号两个部分,具体的组合方式可以根据实际的需要来进行,例如如下表所示:表2表2中灰色的部分为随机序列,其位于所述初始序列号的高位,而白色的部分为初始包序号,其中,每一行表示初始序列号在不同长度的随机序列下的分配方式,所述起始个数为对应的随机序列可能产生数量,而间隔为两个随机序列的最小时间间隔,即在终端选定初始序列号后,随着序列号的增大,最终改变随机序列值的时间间隔。例如,以第四行随机序列长度为4比特为例,其随机序列位于初始序列号的12-15位,四比特的随机序列可能产生的随机数共有16个,若终端选定的随机序列为1010,则所述初始序列号为:1010************由于后续每发送一个rtp包,其序列号都要加1,则最多在发送4096个rtp包后,其序列号将变为:1011************即原来选定的随机序列的值会改变,若按照每个rtp包均为全语音包计算,每个rtp包的发送时间为20ms,则对应的间隔为20ms*4096=81.92s。为此,终端需要先与网络侧设备约定本次通话中随机序列的长度,即第一长度。终端先根据自身的环境和状态确定第一长度,例如3或4比特,然后,将该第一长度发送给所述网络侧设备。具体的发送过程,可以如图2所示,终端ue在发送invite消息后再向所述网络侧设备,例如ip多媒体系统(ipmultimediasubsystem,ims)网络侧设备发送包含有第一长度的rtpsnnotify。网络侧设备在接收到rtpsnnotify后提取出其中的第一长度并保存,然后向所述终端回复确认信息rtpsnack来确认已经接收到该消息。步骤s02、获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号。终端在接收到网络侧设备发送的确认信息后,随机获取第一长度的随机序列。然后将所述随机序列与预设的初始序列号组合以得到初始序列号,所述初始序列号为终端向网络侧设备发送的第一个rtp包的序列号。进一步地,所述初始包序号的值为0。所述初始包序号可以是由终端和网络侧设备事先约定的一个值,也可以是由终端确定后再通知网络侧设备,例如,可以将所述初始包序号也通过所述rtpsnnotify消息发送给网络侧设备。但为了简便起见,直接将所述初始包序号的值默认为0,即所述初始包序号为全0序列。如此,也可以方便网络侧设备在后续判定是否出现丢包现象时能够更加简单方便得出结论。在下面的实施例中,都以所述初始包序号的值为0进行举例说明。步骤s03、向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。在得到初始序列号后,终端在通过承载向所述网络侧设备发送rtp包时,每个rtp包的序列号为前一个rtp包的序列号加1。由于终端在向网络侧设备发送rtp包时可能会出现丢包现象,所以网络侧设备会提取出接收到的第一个rtp包的序列号,并根据保存的与本次通话相对应的第一长度来判断所接收到的第一rtp包是否为终端发送的第一个rtp包。若判定两者相同,则认为在接收到第一个rtp包前,不存在丢包现象;否则,则认为在接收到第一个rtp包之前,存在丢包现象。本发明实施例通过终端确定随机序列的第一长度,并通知网络侧设备后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。基于上述实施例,进一步地,所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象,具体为:所述网络侧设备提取接收到的第一个rtp包的序列号,并根据所述第一长度得到初始接收包序号;若所述初始接收包序号与所述初始包序号不同,则判定在接收到所述第一个rtp包前发生丢包现象。网络侧设备先提取出本次通话中接收到的第一个rtp包的序列号,然后截掉该序列号中长度为第一长度的高位,得到初始接收包序号,例如序列号,共16位:a15a14a13a12a11a10a9a8a7a6a5a4a3a2a1a0第一长度为4,则截掉该序列号位于高位的4位,即截掉a15-a12,从而得到12位的初始接收包序号:a11a10a9a8a7a6a5a4a3a2a1a0所述网络侧设备将所述初始接收包序号与所述初始包序号进行比对,若不同,则可以判定接收到的第一个rtp包并不是所述终端发送的第一rtp包,即发生的rtp包的丢包现象。而若所述初始包序号的值为0,则若所述初始接收包序号不为0,即可判定存在丢包现象。本发明实施例通过终端确定随机序列的第一长度,并通知网络侧设备后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。基于上述实施例,进一步地,所述第一长度为3或4比特。对于第一长度的选择,终端可以根据自身的通讯环境和传输的要求来进行,理论上可以选择不大于预设的序列号的长度,即第二长度即可,例如序列号为16比特,则所述第一长度可以为1-16比特。由上述实施例可知,所述第一长度不大于所述第二长度即可,但由于过长的随机序列会产生过多的起始号,且起始号间的间隔时间也会较小,不利于网络侧设备对于系统初始序列号和丢包的判定;而太短的随机序列,产生的过少的起始号,不利于传输过程中的保密性和安全性。为此,优先得将所述第一长度设定为3或4比特,可以产生相对更佳的安全性和可靠性。本发明实施例通过终端确定随机序列的第一长度,并通知网络侧设备后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。图3为本发明实施例的又一基于rtp的语音感知评估方法流程图,如图3所示,所述方法包括:步骤s10、接收由终端发送的第一长度。本发明实施例将所述终端发送的第一个rtp包中的初始序列号分为随机序列和初始包序号两个部分。为此,终端需要先与网络侧设备约定本次通话中随机序列的长度,即第一长度。终端先根据自身的环境和状态确定第一长度,例如3或4比特,然后,将该第一长度发送给所述网络侧设备。具体的发送过程,可以如图2所示,终端在发送invite消息后再向所述网络侧设备发送包含有第一长度的rtpsnnotify。步骤s11、向所述终端发送确认信息,以使所述终端获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为所述终端发送的第一个rtp包的序列号。网络侧设备在接收到rtpsnnotify后提取出其中的第一长度并保存,然后向所述终端回复确认信息rtpsnack来确认已经接收到该消息。终端在接收到网络侧设备发送的确认信息后,随机获取第一长度的随机序列。然后将所述随机序列与预设的初始序列号组合以得到初始序列号,所述初始序列号为终端向网络侧设备发送的第一个rtp包的序列号。进一步地,所述初始包序号的值为0。所述初始包序号可以是由终端和网络侧设备事先约定的一个值,也可以是由终端确定后再通知网络侧设备,例如,可以将所述初始包序号也通过所述rtpsnnotify消息发送给网络侧设备。但为了简便起见,直接将所述初始包序号的值默认为0,即所述初始包序号为全0序列。如此,也可以方便网络侧设备在后续判定是否出现丢包现象时能够更加简单方便得出结论。在下面的实施例中,都以所述初始包序号的值为0进行举例说明。步骤s12、依次接收所述终端发送的rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1。在得到初始序列号后,终端在通过承载向所述网络侧设备发送rtp包时,每个rtp包的序列号为前一个rtp包的序列号加1。步骤s13、若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。由于终端在向网络侧设备发送rtp包时可能会出现丢包现象,所以网络侧设备会提取出接收到的第一个rtp包的序列号,并根据保存的与本次通话相对应的第一长度来判断所接收到的第一rtp包是否为终端发送的第一个rtp包。若判定两者相同,则认为在接收到第一个rtp包前,不存在丢包现象;否则,则认为在接收到第一个rtp包之前,存在丢包现象。本发明实施例通过终端确定随机序列的第一长度,并通知网络侧设备后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。图4为本发明实施例的还一基于rtp的语音感知评估方法流程图,如图4所示,所述方法包括:步骤s20、获取一次通话过程中接收到的由终端发送的所有rtp包并按照接收时间进行排序,所述rtp包至少包括序列号。在一次通话结束后,网络侧设备可以根据本次通话过程接收到的由终端发送的rtp包进行语音感知评估,其中,所述rtp包至少包括序列号。具体可以通过对终端发送的rtp包的丢包率的计算来进行评估。网络侧设备先根据每个rtp包的接收时间,对所有接收到的rtp包进行排序。步骤s21、根据接收到的第一个rtp包以及预存的与所述通话对应在的第一长度,得到所述终端发送的第一个rtp包的初始序列号,所述初始序列号至少包括长度为所述第一长度的随机序列。对于终端发送的rtp包丢失的数量可以根据网络侧设备接收到的rtp包的情况分为:第一丢失数量和第二丢失数量。其中所述第一丢失数量为所述网络侧设备接收到第一个rtp包前丢失的rtp包的数量,而第二丢失数量则是在所述网络侧设备接收到第一个rtp包到接收到最后一个rtp包之间丢失的rtp包的数量。由上述实施例可知,所述第二丢失数量可以根据接收到的所有rtp包中第一个rtp包和最后一个rtp包的序列号得到,为丢包个数。而第一丢失数量则需要网络侧设备先根据接收到的第一个rtp包的序列号和预存的与本次通话对应的第一长度,来得到对应的终端发送的第一个rtp包的初始序列号。所述初始序列号由随机序列和初始包序号组成,其中,所述随机序列的长度为所述第一长度,并位于所述初始序列号的高位,而所述初始包序号的值可以为0。因此,在提取出接收到的第一个rtp包的序列号后,截掉该序列号高位的第一长度后,得到接收到的第一个rtp包的初始接收包序号。若该初始接收包序号不为0,则可认定所述网络侧设备在接收到第一个rtp包之前存在丢包现象。所述初始接收包序号的值即为第一丢失数量。而所述终端发送的第一个rtp包的初始序列号为将接收到的第一个rtp包的序列号中的初始接收包序号变为全0序列后得到的序列号。例如,若所述接收到的第一个rtp包的序列号为:1010000001000000所述第一长度为4,则截掉上面序列号的前4位得到的初始接收包序号为:000001000000由此可以判定在接收到第一个rtp包之前存在丢包现象,而得到的第一丢失数量为26=64,由此得到的初始序列号为:1010000000000000步骤s22、根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率。由此,根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号,就可以得到所述终端发送的所有rtp包的数量,以及第一丢失数量和第二丢失数量,从而计算得到所述丢包率。进一步地,所述根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率;具体为:所述丢包率计算公式如下:其中,所述k为所述初始序列号,所述i为所述接收到的第一个rtp包的序列号,所述n为所述接收到的最后一个rtp包的序列号。根据所述初始序列号的值和所述接收到的最后一个rtp包的序列号的值就可以得到所述终端发送的所有rtp包的总数发送包个数;根据所述初始序列号的值和所述接收到的第一个rtp包的序列号的值就可以得到所述第一丢失数量丢包个数;根据所述接收到的第一个rtp包的序列号的值、接收到的最后一个rtp包的序列号的值以及所有接收到的rtp包的数量可以得到所述第二丢失数量丢包个数。从而可以根据上式计算得到最终的丢包率,从而对本次通话的语音感知进行评估。本发明实施例通过网络侧设备根据在一次通话过程中接收到的第一个rtp包的序列号与预存的第一长度得到终端发送的第一个rtp包的初始序列号,从而能够更加准确得得到本次通话的丢包率,进而对语音感知进行评估。基于上述实施例,进一步地,所述方法还包括:在所述通话过程中接收所述终端发送的所述第一长度,并回复确认信息,以使所述终端根据所述第一长度获取所述随机序列,并得到所述初始序列号。所述网络侧设备存储的第一长度是由所述终端在进行本次通话时发送,用来与所述网络侧设备约定本次通话中随机序列的长度。终端先根据自身的环境和状态确定第一长度,例如3或4比特,然后,将该第一长度发送给所述网络侧设备。具体的发送过程,可以如图2所示,终端在发送invite消息后再向所述网络侧设备发送包含有第一长度的rtpsnnotify。网络侧设备在接收到rtpsnnotify后提取出其中的第一长度并保存,然后向所述终端回复确认信息rtpsnack来确认已经接收到该消息。终端在接收到网络侧设备发送的确认信息后,随机获取第一长度的随机序列。然后将所述随机序列与预设的初始序列号组合以得到初始序列号,所述初始序列号为终端向网络侧设备发送的第一个rtp包的序列号。而终端在通过承载向所述网络侧设备发送rtp包时,每个rtp包的序列号为前一个rtp包的序列号加1。本发明实施例通过网络侧设备根据在一次通话过程中接收到的第一个rtp包的序列号与预存的第一长度得到终端发送的第一个rtp包的初始序列号,其中,所述第一长度为终端在本次通话过程中发送给所述网络侧设备,从而能够更加准确得得到本次通话的丢包率,进而对语音感知进行评估。图5为本发明实施例的用于基于rtp的语音感知评估方法的终端结构示意图,如图5所示,所述终端包括:射频模块10和组包模块11,其中,所述射频模块10用于向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;所述组包模块11用于获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;所述射频模块10还用于向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。具体地:本发明实施例将所述射频模块10发送的第一个rtp包中的初始序列号分为随机序列和初始包序号两个部分。为此,所述射频模块10需要先与网络侧设备约定本次通话中随机序列的长度,即第一长度。射频模块10先根据自身的环境和状态确定第一长度,例如3或4比特,然后,将该第一长度发送给所述网络侧设备。具体的发送过程,可以如图2所示,射频模块10在发送invite消息后再向所述网络侧设备发送包含有第一长度的rtpsnnotify。网络侧设备在接收到rtpsnnotify后提取出其中的第一长度并保存,然后向所述射频模块10回复确认信息rtpsnack来确认已经接收到该消息。射频模块10在接收到网络侧设备发送的确认信息后,指示组包模块11随机获取第一长度的随机序列。然后将所述随机序列与预设的初始序列号组合以得到初始序列号,所述初始序列号为所述射频模块10向网络侧设备发送的第一个rtp包的序列号。为了简便起见,直接将所述初始包序号的值默认为0,即所述初始包序号为全0序列。组包模块11在得到初始序列号后,指示射频模块10通过承载向所述网络侧设备发送rtp包,其中,每个rtp包的序列号为前一个rtp包的序列号加1。由于射频模块10在向网络侧设备发送rtp包时可能会出现丢包现象,所以网络侧设备会提取出接收到的第一个rtp包的序列号,并根据保存的与本次通话相对应的第一长度来判断所接收到的第一rtp包是否为所述射频模块10发送的第一个rtp包。若判定两者相同,则认为在接收到第一个rtp包前,不存在丢包现象;否则,则认为在接收到第一个rtp包之前,存在丢包现象。本发明实施例提供的终端用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。本发明实施例通过射频模块10确定随机序列的第一长度,并通知网络侧设备后,然后由组包模块11将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使网络侧设备通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。图6为本发明实施例的用于基于rtp的语音感知评估方法的网络侧设备结构示意图,如图6所示,所述网络侧设备包括:接收模块20、发送模块21和判断模块22,其中,所述接收模块20用于接收由终端发送的第一长度;所述发送模块21用于向所述终端发送确认信息,以使所述终端获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为所述终端发送发送的第一个rtp包的序列号;所述接收模块20还用于依次接收所述终端发送的rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1;所述判断模块22用于若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。具体地:本发明实施例将所述终端发送的第一个rtp包中的初始序列号分为随机序列和初始包序号两个部分。为此,终端需要先与接收模块20约定本次通话中随机序列的长度,即第一长度。终端先根据自身的环境和状态确定第一长度,例如3或4比特,然后,将该第一长度发送给所述接收模块20。具体的发送过程,可以如图2所示,终端在发送invite消息后再向所述接收模块20发送包含有第一长度的rtpsnnotify。接收模块20在接收到rtpsnnotify后提取出其中的第一长度并保存,然后指示发送模块21向所述终端回复确认信息rtpsnack来确认已经接收到该消息。终端在接收到发送模块21发送的确认信息后,随机获取第一长度的随机序列。然后将所述随机序列与预设的初始序列号组合以得到初始序列号,所述初始序列号为终端向接收模块20发送的第一个rtp包的序列号。但为了简便起见,直接将所述初始包序号的值默认为0,即所述初始包序号为全0序列。在得到初始序列号后,终端在通过承载向所述接收模块20发送rtp包时,每个rtp包的序列号为前一个rtp包的序列号加1。由于终端在向接收模块20发送rtp包时可能会出现丢包现象,所以所述判断模块22会提取出接收到的第一个rtp包的序列号,并根据保存的与本次通话相对应的第一长度来判断所接收到的第一rtp包是否为终端发送的第一个rtp包。若判定两者相同,则认为在接收到第一个rtp包前,不存在丢包现象;否则,则认为在接收到第一个rtp包之前,存在丢包现象。本发明实施例提供的网络侧设备用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。本发明实施例通过终端确定随机序列的第一长度,并通知接收模块20后,然后将得到随机序列与初始包序号组成初始序列号来进行rtp包的传输,从而使判断模块22通过对接收到的第一个rtp包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。图7为本发明实施例的另一用于基于rtp的语音感知评估方法的网络侧设备结构示意图,如图7所示,所述网络侧设备结构示意图包括:获取模块30、第一计算模块31和第二计算模块32,其中,所述获取模块30用于获取一次通话过程中接收到的由终端发送的所有rtp包并按照接收时间进行排序,所述rtp包至少包括序列号;所述第一计算模块31用于根据接收到的第一个rtp包以及预存的与所述通话对应在的第一长度,得到所述终端发送的第一个rtp包的初始序列号,所述初始序列号至少包括长度为所述第一长度的随机序列;所述第二计算模块32用于根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率。具体地:在一次通话结束后,根据本次通话过程接收到的由终端发送的rtp包进行语音感知评估,其中,所述rtp包至少包括序列号。具体可以通过对终端发送的rtp包的丢包率的计算来进行评估。先由获取模块30获取所有在本次通话过程中接收到的rtp包,并根据每个rtp包的接收时间进行排序。对于终端发送的rtp包丢失的数量可以根据接收到的rtp包的情况分为:第一丢失数量和第二丢失数量。其中,所述第一丢失数量为接收到第一个rtp包前丢失的rtp包的数量,而第二丢失数量则是接收到第一个rtp包到接收到最后一个rtp包之间丢失的rtp包的数量。由上述实施例可知,所述第二丢失数量可以根据获取模块30获取的接收到的所有rtp包中的第一个rtp包和最后一个rtp包的序列号得到,为丢包个数。而第一丢失数量则需要先由第一计算模块31根据接收到的第一个rtp包的序列号和预存的与本次通话对应的第一长度,来得到对应的终端发送的第一个rtp包的初始序列号。所述初始序列号由随机序列和初始包序号组成,其中,所述随机序列的长度为所述第一长度,并位于所述初始序列号的高位,而所述初始包序号的值可以为0。因此,所述第一计算模块31在提取出接收到的第一个rtp包的序列号后,截掉该序列号高位的第一长度后,得到接收到的第一个rtp包的初始接收包序号。若该初始接收包序号不为0,则可认定在接收到第一个rtp包之前存在丢包现象。所述初始接收包序号的值即为第一丢失数量。而所述终端发送的第一个rtp包的初始序列号为将接收到的第一个rtp包的序列号中的初始接收包序号变为全0序列后得到的序列号。由此,所述第二计算模块32根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号,就可以得到所述终端发送的所有rtp包的数量,以及第一丢失数量和第二丢失数量,从而计算得到所述丢包率。进一步地,所述根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率;具体为:所述丢包率计算公式如下:其中,所述k为所述初始序列号,所述i为所述接收到的第一个rtp包的序列号,所述n为所述接收到的最后一个rtp包的序列号。所述第二计算模块32根据所述初始序列号的值和所述接收到的最后一个rtp包的序列号的值就可以得到所述终端发送的所有rtp包的总数发送包个数;根据所述初始序列号的值和所述接收到的第一个rtp包的序列号的值就可以得到所述第一丢失数量丢包个数;根据所述接收到的第一个rtp包的序列号的值、接收到的最后一个rtp包的序列号的值以及所有接收到的rtp包的数量可以得到所述第二丢失数量丢包个数。从而可以根据上式计算得到最终的丢包率,从而对本次通话的语音感知进行评估。本发明实施例提供的网络侧设备用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。本发明实施例通过第一计算模块31根据在一次通话过程中接收到的第一个rtp包的序列号与预存的第一长度得到终端发送的第一个rtp包的初始序列号,从而使第二计算模块32能够更加准确得得到本次通话的丢包率,进而对语音感知进行评估。图8为本发明实施例的电子设备结构示意图。如图8所示,所述电子设备,包括:处理器(processor)601、存储器(memory)602和总线603;其中,所述处理器601和所述存储器602通过所述总线603完成相互间的通信;所述处理器601用于调用所述存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页1 2 3 
技术特征:

1.一种基于rtp的语音感知评估方法,其特征在于,包括:

向网络侧设备发送第一长度,以使所述网络侧设备回复确认信息;

获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为向所述网络侧设备发送的第一个rtp包的序列号;

向所述网络侧设备依次发送rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1,以使所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。

2.根据权利要求1所述的方法,其特征在于,所述网络侧设备若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象,具体为:

所述网络侧设备提取接收到的第一个rtp包的序列号,并根据所述第一长度得到初始接收包序号;

若所述初始接收包序号与所述初始包序号不同,则判定在接收到所述第一个rtp包前发生丢包现象。

3.根据权利要求1所述的方法,其特征在于,所述初始包序号的值为0。

4.根据权利要求1所述的方法,其特征在于,所述第一长度为3或4比特。

5.一种基于rtp的语音感知评估方法,其特征在于,包括:

接收由终端发送的第一长度;

向所述终端发送确认信息,以使所述终端获取长度为所述第一长度的随机序列,并与预设的初始包序号组成初始序列号,所述初始序列号为所述终端发送的第一个rtp包的序列号;

依次接收所述终端发送的rtp包,且每个rtp包的序列号为前一个发送的rtp包的序列号加1;

若根据所述第一长度判定接收到的第一个rtp包不是发送的第一个rtp包,则判定在接收到第一个rtp包前发生丢包现象。

6.一种基于rtp的语音感知评估方法,其特征在于,包括:

获取一次通话过程中接收到的由终端发送的所有rtp包并按照接收时间进行排序,所述rtp包至少包括序列号;

根据接收到的第一个rtp包以及预存的与所述通话对应在的第一长度,得到所述终端发送的第一个rtp包的初始序列号,所述初始序列号至少包括长度为所述第一长度的随机序列;

根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率。

7.根据权利要求6所述的方法,其特征在于,所述根据所述初始序列号、接收到的第一个rtp包和最后一个rtp包的序列号得到所述rtp包的丢包率;具体为:

所述丢包率计算公式如下:

其中,所述k为所述初始序列号,所述i为所述接收到的第一个rtp包的序列号,所述n为所述接收到的最后一个rtp包的序列号。

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

在所述通话过程中接收所述终端发送的所述第一长度,并回复确认信息,以使所述终端根据所述第一长度获取所述随机序列,并得到所述初始序列号。

9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至8任一所述的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一所述的方法。

技术总结
本发明实施例提供一种基于RTP的语音感知评估方法。所述方法包括向网络侧设备发送第一长度;获取第一长度的随机序列,并与初始包序号组成初始序列号,初始序列号为发送的第一个RTP包的序列号;向网络侧设备依次发送RTP包,且每个RTP包的序列号为前一个序列号加1,以使网络侧设备若根据第一长度判定接收到的第一个RTP包不是发送的第一个RTP包,则判定在之前发生丢包现象,本发明实施例通过终端确定随机序列的第一长度,然后将随机序列与初始包序号组成初始序列号来进行RTP包的传输,从而使网络侧设备通过对接收到的第一个RTP包的序列号的分析判断是否在之前出现丢包现象,从而能够更加准确得对本次通话的语音感知进行评估。

技术研发人员:韩增富;刘红梅;牛海涛;张振刚;李宗璋;刘珂;石志同
受保护的技术使用者:中国移动通信集团山东有限公司;中国移动通信集团有限公司
技术研发日:2018.11.28
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56573.html

最新回复(0)