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

一种实时语音中自动检测丢包率的测试方法及其系统与流程

2022-02-22 01:52:45 来源:中国专利 TAG:


1.本发明涉及计算机通讯技术领域,特别是一种实时语音中自动检测丢包率的测试方法及其系统。


背景技术:

2.实时语音是通过某种技术进行声音的传输和重现,为人们无法聚集到同个地方进行对话沟通的时候,提供一种高科技的通讯、协作的一种现代手段。具体来说是设备a(手机,电脑)通过调用音频驱动,采集麦克风的声音,把语音传输给另一台设备b、c、d...(手机、电脑、平板)并进行实时播放。例如1、在“移动办公”的时代,人们通过设备如手机进行语音会议,解放了繁琐的文字沟通,实现了实时通讯。例如2、父母想和子女聊天,不会打字,也不会说普通话,也可以通过实时语音,进行方言沟通,亲切又方便。
3.现有技术存在的缺点:多人语音,会偶尔出现断续卡顿等现象。受当时不可控环境(网络、服务器、设备等)因素影响,难于复现,且给不出准确的通话质量数据。目前测试语音通话的质量,测试方案是由人工进行网络设定,人工语音录制,然后给出是否卡顿的结论。并无法察觉丢包率的大小,且给不能自动的进行周期性的检测,需要投入人力进行重复的模拟操作相对浪费时间,效率低下。


技术实现要素:

4.为克服上述问题,本发明的目的是提供一种实时语音中自动检测丢包率的测试方法,能解放人工测试,得到准确的丢包率数值,提高工作效率。
5.本发明采用以下方案实现:一种实时语音中自动检测丢包率的测试方法,所述测试方法包括如下步骤:步骤s1、将实时通话的多台终端设备进行网速校准;步骤s2、将多台终端设备中一终端设备a启动音频会议,将多台终端设备的其他终端设备加入终端设备a同一语音通道中;分别对多台终端设备进行指定时长t的语音录制,然后终端设备a进行有声语音内容的播放;步骤s3、对各终端设备录制的音频文件进行收集及处理,得到各自终端设备的音频数据流,并获得单次的音频丢包率数值p;步骤s4、自动循环遍历检测,遍历计算得出平均丢包率px,并输出测试报告。
6.进一步的,所述步骤s1进一步具体为:步骤s11、远程服务器控制触发任务,在设置的时间t1、t2、t3
……
tn里进行任务分发给定时器;步骤s12、在时间t1时,定时器接收任务,获取多台终端设备的网络情况,并把多台终端设备的网络统一限制在同一个速率中;步骤s13、对链接的终端设备进行网速校准,保证每台链接的终端设备无网速误差,网速一致:进入下一步终端设备a发起音频会议,网速不一致:重新执行步骤s13。
7.进一步的,所述步骤s3进一步具体为:步骤s31、对各终端设备录制的音频文件进
行收集,解析音频文件内容获取对应的音频数据流,根据单位时间内icmp个数/单位时间内所有报文的个数,计算并记录单次丢包率p1;步骤s32、等待定时器执行设定的剩余时间t2、t3
……
tn,自动循环遍历得出对应的单次丢包率p2、p3
……
pn。
8.进一步的,所述步骤s4进一步具体为:根据设定的时间全部循环执行完成,利用平均值计算公式,得出平均丢包率px,并输出测试报告,测试报告内容包括但不限于:执行时间、各终端设备网速、会议通道号、播放的有声语音内容文件、音频文件、音频数据流、单次丢包率、平均丢包率。
9.进一步的,所述得到各自终端设备的音频数据流, 并获得单次的音频丢包率数值p,具体为:获取终端设备中存储的wav格式的文件,即终端设备a的a.wav文件,终端设备b的b.wav文件;对wav格式的文件进行解析,用程序代码c 中matlab的wavread函数来实现,获取对应的文件头和数据块data[a]、data[b];存储终端设备a、终端设备b对应的数据块data[a]、data[b];根据丢包率计算公式:[(输入报文-输出报文)/输入报文]*100%,计算得出丢包率p,即p=[(data[a]-data[b])/data[a]]*100%。
[0010]
本发明还提供了一种实时语音中自动检测丢包率的测试系统,所述测试系统包括网速校准模块、语音录制模块、单次丢包率获取模块、平均丢包率获取模块;所述网速校准模块,用于将实时通话的多台终端设备进行网速校准;所述语音录制模块,用于将多台终端设备中一终端设备a启动音频会议,将多台终端设备的其他终端设备加入终端设备a同一语音通道中;分别对多台终端设备进行指定时长t的语音录制,然后终端设备a进行有声语音内容的播放;所述单次丢包率获取模块,对各终端设备录制的音频文件进行收集及处理,得到各自终端设备的音频数据流,并获得单次的音频丢包率数值p;所述平均丢包率获取模块,用于自动循环遍历检测,遍历计算得出平均丢包率px,并输出测试报告。
[0011]
进一步的,所述网速校准模块进一步具体为:远程服务器控制触发任务,在设置的时间t1、t2、t3
……
tn里进行任务分发给定时器;在时间t1时,定时器接收任务,获取多台终端设备的网络情况,并把多台终端设备的网络统一限制在同一个速率中;对链接的终端设备进行网速校准,保证每台链接的终端设备无网速误差,网速一致:进入下一步终端设备a发起音频会议,网速不一致:则重新进行网速校准。
[0012]
进一步的,所述单次丢包率获取模块进一步具体为:对各终端设备录制的音频文件进行收集,解析音频文件内容获取对应的音频数据流,根据单位时间内icmp个数/单位时间内所有报文的个数,计算并记录单次丢包率p1;等待定时器执行设定的剩余时间t2、t3
……
tn,自动循环遍历得出对应的单次丢包率p2、p3
……
pn。
[0013]
进一步的,所述平均丢包率获取模块进一步具体为:根据设定的时间全部循环执行完成,利用平均值计算公式,得出平均丢包率px,并输出测试报告,测试报告内容包括但
不限于:执行时间、各终端设备网速、会议通道号、播放的有声语音内容文件、音频文件、音频数据流、单次丢包率、平均丢包率。
[0014]
进一步的,所述得到各自终端设备的音频数据流, 并获得单次的音频丢包率数值p,具体为:获取终端设备中存储的wav格式的文件,即终端设备a的a.wav文件,终端设备b的b.wav文件;对wav格式的文件进行解析,用程序代码c 中matlab的wavread函数来实现,获取对应的文件头和数据块data[a]、data[b];存储终端设备a、终端设备b对应的数据块data[a]、data[b];根据丢包率计算公式:[(输入报文-输出报文)/输入报文]*100%,计算得出丢包率p,即p=[(data[a]-data[b])/data[a]]*100%。
[0015]
本发明的有益效果在于:1、该种测试方法将重复耗时的手工操作,通过自动化实现,释放了人力,提升了测试效率。
[0016]
2、有效的做了一个创新,突破了以往的测试局限,能够对音频的丢包率做准确的数值判断,提高了测试质量。
[0017]
3、测试结果信息完整,便于用来语音通话质量的优化分析。
附图说明
[0018]
图1是本发明的方法流程示意图。
[0019]
图2是本发明实施例一的具体流程示意图。
[0020]
图3是本发明的系统框图。
具体实施方式
[0021]
下面结合附图对本发明做进一步说明。
[0022]
请参阅图1所示,本发明的一种实时语音中自动检测丢包率的测试方法,所述测试方法包括如下步骤:步骤s1、将实时通话的多台终端设备进行网速校准;所述步骤s1进一步具体为:步骤s11、远程服务器控制触发任务,在设置的时间t1、t2、t3
……
tn里进行任务分发给定时器;步骤s12、在时间t1时,定时器接收任务,获取多台终端设备的网络情况,并把多台终端设备的网络统一限制在同一个速率中;步骤s13、对链接的终端设备进行网速校准,保证每台链接的终端设备无网速误差,网速一致:进入下一步终端设备a发起音频会议,网速不一致:重新执行步骤s13。
[0023]
步骤s2、将多台终端设备中一终端设备a启动音频会议,将多台终端设备的其他终端设备加入终端设备a同一语音通道中;分别对多台终端设备进行指定时长t的语音录制,然后终端设备a进行有声语音内容的播放;步骤s3、对各终端设备录制的音频文件进行收集及处理,得到各自终端设备的音频数据流,并获得单次的音频丢包率数值p;所述步骤s3进一步具体为:步骤s31、对各终端设备录制的音频文件进行收集,解析音频文件内容获取对应的音频数据流,根据单位时间内icmp个数/单位时间内所有报文的个数,计算并记录单次丢包率p1;
步骤s32、等待定时器执行设定的剩余时间t2、t3
……
tn,自动循环遍历得出对应的单次丢包率p2、p3
……
pn。
[0024]
步骤s4、自动循环遍历检测,遍历计算得出平均丢包率px,并输出测试报告。
[0025]
所述步骤s4进一步具体为:根据设定的时间全部循环执行完成,利用平均值计算公式,得出平均丢包率px,并输出测试报告,测试报告内容包括但不限于:执行时间、各终端设备网速、会议通道号、播放的有声语音内容文件、音频文件、音频数据流、单次丢包率、平均丢包率。
[0026]
进一步的,所述得到各自终端设备的音频数据流, 并获得单次的音频丢包率数值p,具体为:获取终端设备中存储的wav格式的文件,即终端设备a的a.wav文件,终端设备b的b.wav文件;对wav格式的文件进行解析,用程序代码c 中matlab的wavread函数来实现,获取对应的文件头和数据块data[a]、data[b];存储终端设备a、终端设备b对应的数据块data[a]、data[b];根据丢包率计算公式:[(输入报文-输出报文)/输入报文]*100%,计算得出丢包率p,即p=[(data[a]-data[b])/data[a]]*100%。
[0027]
下面结合一具体实施例对本发明作进一步说明:参阅图2所示,本发明的一种实时语音中自动检测丢包率的测试方法,1、远程服务器用于控制触发任务,在设置的时间t1里进行任务分发给定时器;2、定时器接收任务,获取终端设备a、b的网络情况,并把a、b的网络统一限制在同一个速率中;3、对链接的设备进行网速校准,保证每台链接的设备无网速误差,一致:进入下一步终端设备a发起音频会议,不一致:重新执行步骤3;4、终端设备a发起音频会议,终端设备b加入音频会议;确保终端设备a、b在同一个语音通道中,一致:进入下一步向终端设备a、b发出录制指定时长t1的请求,不一致:重新执行步骤4 ;5、系统向终端设备a、b发出录制指定时长t1的请求,且终端设备a开始进行有声内容t2播放,保证终端设备a、b录制正常;6、获取终端设备a、b录制的音频文件a.wav和b.wav,并检查a、b音频文件的时长,确保录制时长为t1,一致:进入下一步解析音频文件,不一致:重新执行步骤5;7、解析音频文件内容获取对应的音频数据流,根据单位时间内icmp个数/单位时间内所有报文的个数,计算并记录单次丢包率p1;8、等待定时器执行设定的剩余时间t2、t3
……
,自动循环遍历系统得出对应的单次丢包率p2、p3
……
;9、根据设定的时间全部循环执行完成,利用平均值计算公式,得出平均丢包率px。并输出测试报告,报告内容包含系统执行时间、各设备网速、会议通道号、播放的有声内容文件、音频文件、数据流、单次丢包率、平均丢包率。
[0028]
参阅图3所示,本发明还提供了一种实时语音中自动检测丢包率的测试系统,所述测试系统包括网速校准模块、语音录制模块、单次丢包率获取模块、平均丢包率获取模块;所述网速校准模块,用于将实时通话的多台终端设备进行网速校准;
所述语音录制模块,用于将多台终端设备中一终端设备a启动音频会议,将多台终端设备的其他终端设备加入终端设备a同一语音通道中;分别对多台终端设备进行指定时长t的语音录制,然后终端设备a进行有声语音内容的播放;所述单次丢包率获取模块,对各终端设备录制的音频文件进行收集及处理,得到各自终端设备的音频数据流,并获得单次的音频丢包率数值p;所述得到各自终端设备的音频数据流, 并获得单次的音频丢包率数值p,具体为:获取终端设备中存储的wav格式的文件,即终端设备a的a.wav文件,终端设备b的b.wav文件;对wav格式的文件进行解析,用程序代码c 中matlab的wavread函数来实现,获取对应的文件头和数据块data[a]、data[b];存储终端设备a、终端设备b对应的数据块data[a]、data[b];根据丢包率计算公式:[(输入报文-输出报文)/输入报文]*100%,计算得出丢包率p,即p=[(data[a]-data[b])/data[a]]*100%。
[0029]
所述平均丢包率获取模块,用于自动循环遍历检测,遍历计算得出平均丢包率px,并输出测试报告。
[0030]
其中,所述网速校准模块进一步具体为:远程服务器控制触发任务,在设置的时间t1、t2、t3
……
tn里进行任务分发给定时器;在时间t1时,定时器接收任务,获取多台终端设备的网络情况,并把多台终端设备的网络统一限制在同一个速率中;对链接的终端设备进行网速校准,保证每台链接的终端设备无网速误差,网速一致:进入下一步终端设备a发起音频会议,网速不一致:则重新进行网速校准。
[0031]
所述单次丢包率获取模块进一步具体为:对各终端设备录制的音频文件进行收集,解析音频文件内容获取对应的音频数据流,根据单位时间内icmp个数/单位时间内所有报文的个数,计算并记录单次丢包率p1;等待定时器执行设定的剩余时间t2、t3
……
tn,自动循环遍历得出对应的单次丢包率p2、p3
……
pn。
[0032]
另外,所述平均丢包率获取模块进一步具体为:根据设定的时间全部循环执行完成,利用平均值计算公式,得出平均丢包率px,并输出测试报告,测试报告内容包括但不限于:执行时间、各终端设备网速、会议通道号、播放的有声语音内容文件、音频文件、音频数据流、单次丢包率、平均丢包率。
[0033]
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
再多了解一些

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

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

相关文献