一种VoIP终端的音频自动化测试装置以及方法与流程

文档序号:20204405发布日期:2020-03-27 20:59阅读:480来源:国知局
一种VoIP终端的音频自动化测试装置以及方法与流程

本发明涉及一种voip终端的音频自动化测试装置以及方法。



背景技术:

音频测试目的是测试设备的音频模块指标是否符合标准。音频测试内容无非几大项目,底噪测试、失真度测试和频响测试。测试方式上拾音和放音有差异,拾音测试是由人工嘴或者信号发生器输出一组测试信号,软件分析系统接收拾音器转换的数字信号,分析对比该信号和测试信号,获得相应指标;而放音测试是由软件分析系统输出一组测试信号给放音设备,放音设备将其转换为模拟信号后输出,通过软件分析系统连接的人工耳、测试麦克风或模拟audioin捕获它的最终输出音频,分析对比它和数字信号,获得相应指标。借助专业高精度的仪器,我们能够通过它了解音频设备的问题和性能。

这类传统的音频测试方法目前还是音频电学和声学指标测试的主流方案,不过,随着数字化技术的迅猛发展,基于互联网的voip终端得到普及,同时voip终端中音频模块附带的功能也愈加丰富,从最初的稳态噪声消除和简单回声抑制发展到最近流行的ai消噪技术和智能音量调节等,传统的音频测试方法很难满足新的测试需求,比如消噪测试,需要导入各类噪声,之后分析噪声衰减能量,用传统方法就需要测两次底噪,手动记录数据之后各频点相减;比如回声双工测试就是很少看到的但又很有意义的音频测试项目。

对于很多新的音频处理方案,甚至需要靠人工在各种通话场景下做双向语音测试,人耳听取声音,主观评判处理效果。整个测试过程变得非常复杂,且受个人主观因素的影响,费时费力,测试效率却不高。另外,传统的音频自动化测试方案,比如acqua音频测试系统,虽然能够自动对voip终端做音频测试,但是需要严格的声学环境以及昂贵的分析仪器,测试项目也较少。



技术实现要素:

本发明要解决的技术问题,在于提供一种voip终端的音频自动化测试装置以及方法,能减少测试人员的工作,又能用客观数据反馈音频功能的变化过程。

本发明之一是这样实现的:一种voip终端的音频自动化测试装置,包括测试主机、放音声卡、拾音声卡以及voip终端,所述测试主机分别连接所述放音声卡、voip终端以及拾音声卡,所述voip终端分别连接所述放声音卡以及拾音声卡。

进一步地,所述voip终端包括拾音音频以及放音音频,所述放音声卡连接至所述拾音音频,所述拾音声卡连接至所述放音音频。

本发明之二是这样实现的:一种voip终端的音频自动化测试方法,包括测试主机、放音声卡、拾音声卡以及voip终端;具体包括如下步骤:

步骤1、测试主机后台连接voip终端,测试主机模拟voip终端,建立以pcm裸流为编码的音频通话,所述测试主机通过所述放音声卡连接至所述voip终端,所述voip终端通过所述拾音声卡连接至所述测试主机;

步骤2、基于测试项目,创建特定的音频信号s0和音频信号x0;

步骤3、测试主机通过放音声卡输出特定的音频信号s0至voip终端,通过网络获取被测voip终端的发送信号s1,通过网络发送特定的音频信号x0给voip终端播放,测试主机通过拾音声卡接收voip终端的输出信号x1;

步骤4、通过测试主机内置的音频判断脚本,分析比较s0和s1以及x0和x1,判定其测试结果。

进一步地,所述步骤1中测试主机后台连接voip终端进一步具体为:

测试主机与voip终端网线直连,与被测voip终端建立通话,生成接收数据链路rx以及发送数据链路tx;

进一步地,所述voip终端包括拾音音频以及放音音频,所述步骤3进一步具体为:

测试主机放音声卡和拾音声卡,放音声卡的lineout连接被测voip终端的模拟输入接口audioin,特定音频信号s0经由放音声卡的lineout输出给被测voip终端的audioin,拾音音频转换audioin信号,并经过拾音音频处理后得到s1,s1被打包成网络数据包,测试主机通过接收数据链路rx接收s1;测试主机通过发送数据链路tx将x0发送至voip终端,放音音频接收来自测试主机的x0,经过放音音频处理后发送给拾音声卡进行转换,测试主机得到数字输出信号x1。

本发明的优点在于:自动化测试框架实现方式简单,成本低廉,不需要专业高精度的音频测试仪器,测试主机可以就是一台普通电脑。

基于该测试框架提出的几项测试都是当前市面上的音频测试仪器很少执行的,比如关于回声消除功能的回声延时预估能力的测试、关于回声消除功能的线性回声和非线性回声消除能力的测试和关于回声消除功能在双工情况下对近端干净语音的影响的测试。同时,这些自动化测试项能提供详细的测试结果输出,对于迭代软件版本的自动化测试,即能减少测试人员的工作,又能用客观数据反馈音频功能的变化过程。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是本发明一种voip终端的音频自动化测试装置的原理框图。

图2是本发明音频发送延时测试样例示意图。

图3是本发明实施例七中音频自动化测试设备连接框图。

具体实施方式

请参阅图1所示,本发明voip终端的音频自动化测试装置,包括测试主机、放音声卡、拾音声卡以及voip终端,所述测试主机分别连接所述放音声卡、voip终端以及拾音声卡,所述voip终端分别连接所述放声音卡以及拾音声卡,所述voip终端包括拾音音频以及放音音频,所述放音声卡连接至所述拾音音频,所述拾音声卡连接至所述放音音频。

本发明voip终端的音频自动化测试方法,包括测试主机、放音声卡、拾音声卡以及voip终端;具体包括如下步骤:

步骤1、测试主机与voip终端网线直连,与被测voip终端建立通话,生成接收数据链路rx以及发送数据链路tx;测试主机模拟voip终端,建立以pcm裸流为编码的音频通话,所述测试主机通过所述放音声卡连接至所述voip终端,所述voip终端通过所述拾音声卡连接至所述测试主机;

步骤2、基于测试项目,创建特定的音频信号s0和音频信号x0;

步骤3、所述voip终端包括拾音音频以及放音音频,测试主机放音声卡和拾音声卡,放音声卡的lineout连接被测voip终端的模拟输入接口audioin,特定音频信号s0经由放音声卡的lineout输出给被测voip终端的audioin,拾音音频转换audioin信号,并经过拾音音频处理后得到s1,s1被打包成网络数据包,测试主机通过接收数据链路rx接收s1;测试主机通过发送数据链路tx将x0发送至voip终端,放音音频接收来自测试主机的x0,经过放音音频处理后发送给拾音声卡进行转换,测试主机得到数字输出信号x1;

步骤4、通过测试主机内置的音频判断脚本,分析比较s0和s1以及x0和x1,判定其测试结果。

本发明一种具体实施方式:

本发明公开了一种适用于voip终端的音频自动化测试方案,首先,测试主机声卡的lineout连接被测voip终端的模拟输入接口,输出特定的音频信号s0,测试主机声卡的linein连接被测voip终端的模拟输出接口,接收被测voip终端的输出信号x1;然后,测试主机后台连接voip终端,可以实时控制音频模块内部的各功能;之后,模拟voip终端,建立以pcm裸流为编码的音频通话,通过网络获取被测voip终端的发送信号s1,通过网络发送特定的音频信号x0给被测voip终端播放;最后,基于测试项目,创建特定的音频信号s0和x0,捕获相应的s1和x1,利用测试主机内置的音频判断脚本judge.py,分析比较s0和s1以及x0和x1,判定其测试结果。

假设,此时目标是测试验证均衡器,测试主机将被测voip终端内的其他音频处理功能关闭,只配置均衡器的参数,将4khz衰减5db,此时judge.py就需要判断处理后的信号s1的4khz频点是否衰减了5db,生成白噪声s0,捕获相应的s1,比较s0和s1在4khz频点的频谱能量,若满足4khz频点处s0比s1大5db,那么就认为测试通过。

参考该方法,开发人员只要生成相应的s0、x0和judge.py,就可以借助测试主机自动测试音频质量,包括但不限于均衡器功能、回声消除功能、音量调节功能、消噪功能等。每个迭代版本都可由音频自动化测试替代人工测试,通过最终测试结果的变化,可以知道迭代版本中音频质量的提升过程。

如图1所示整套方案中包含以下几个部分:

1、测试主机,与被测voip终端网线直连,可后台登录voip终端建立控制链路,实时配置voip终端内的音频处理,可与被测voip终端建立通话,生成接收数据链路rx以及发送数据链路tx;另外,可基于被测的音频项目,生成特定的音频信号s0和x0,以及音频测试结果判断脚本judge.py;

2、测试主机放音和拾音声卡,放音声卡的lineout连接被测voip终端的模拟输入接口audioin,特定音频信号s0经由放音声卡的lineout输出给被测voip终端的audioin,拾音声卡的linein连接被测voip终端的模拟输出接口audioout,拾音声卡ad转换linein的模拟信号,得到数字输出信号x1;

3、voip终端,音频自动化测试的被执行对象,内部包含音频功能,此处默认它有拾音音频和放音音频,同时,voip终端和测试主机之间的音频通话未特别强调都默认使用非压缩的线性pcm编码——采样率48k、单声道、采样深度16bit的。当然,如果需要用本发明测试网络延时、编码失真等指标,那么也可以使用压缩编码,此处使用非压缩编码只是为了减少音频测试过程中编码引起的失真。拾音音频ad转换audioin信号,并经过拾音音频处理后得到s1,s1被打包成网络数据包,通过以太网的数据链路rx传递给测试主机;通过以太网的数据链路tx,放音音频接收来自测试主机的x0,经过内部的放音音频处理后,再经放音音频da转换为audioout输出信号;

按照上文描述的连接设备后即可以执行音频自动化测试流程,下文中将以多个具体实例来详细说明本发明在实际音频测试中的使用。需要说明的是,这些具体实例的前提都必须先按照本发明的设备连接框图连接好设备,调试放音声卡、拾音声卡、voip终端间的增益,确保放音和拾音不削波、破音,并且voip终端不开音频处理功能的情况下测试主机连接的声卡和voip终端音频环路的增益为0db,即s0和s1幅值相同,x0和x1幅值相同。同时,放音声卡和拾音声卡与voip终端间的硬件连接线路不存在电流音等杂音干扰,信噪比小于-85db,这几个条件为行业内人员都知晓其意思。

实例一

测试voip终端的音频发送延时,当信号进入audioin,到信号抵达voip终端进行封包发送之间的这段时间。

1、测试主机和voip终端建议音频通话,测试主机通过控制链路关闭voip终端的单频抑制、频移功能;

2、测试主机创建特定的音频信号s0,一段静音三秒、440hz正弦波持续两秒、再静音两秒的信号,其中440hz正弦波为标的信号;

3、测试主机创建judge.py,测试结果判断依据是voip终端和测试主机网线直连,可忽略网络传输时间的影响,如图2所示,s0和s1两文件中标的信号结束时间的差值减去放音声卡的缓冲时间t0就是发送延时;

4、测试主机将s0放入放音声卡播放,同时测试主机开始录制来自数据链路rx的信号并保存为s1,s0播放结束后测试主机停止录制;

5、judge.py获取s0和s1中标的信号结束时间的差值t,即可得到voip终端的发送延时为(t-t0)。

实例二

测试音频回声消除功能的回声延时预估能力,回声消除功能要能消除回声则必须先找到近端信号和参考信号之间的延时差,回声消除功能基于当前近端信号相应时刻的参考信号预估回声,以消除回声。针对该功能,本发明基于图1的测试框架,提出了一种可实施的方法。

1、测试主机和voip终端建议音频通话,测试主机通过控制链路开启voip终端的回声消除功能;

2、测试主机生成一段开头不为静音的干净语音信号x0,然后以x1为因变量生成一组线性回声s0,具体如下;

(假设线性回声为8阶,在回声消除支持范围内确保回声可完全消除,an权重小于0.6)线性回声s0(n)的生成模型:

s0(n)=a0x0(n)+a1x0(n-1)+a2x0(n-2)+……+a8x0(n-8)公式(1-1)

3、测试主机生成judge.py,测试结果判断依据是回声预估准确后回声会被完全消除,从voip终端拾取到回声开始,直到回声被完全消除,这一段时间就是回声延时预估需要的收敛时间,时间越短说明预估效率越高,若始终没有收敛,则说明测试出错或回声消除功能异常;

4、用户设定延时t1(假设回声延时预估范围是0~500ms,此处要求t1<500ms),测试主机通过数据链路tx将x0传递给voip终端,同时测试主机开始录制来自数据链路rx的信号并保存为s1,t1时间后,测试主机将s0放入放音声卡播放,s0播放结束后测试主机停止录制;

5、judge.py获取s1中从开始到完全没有回声这段时间的长度t,t-t1即是回声延时预估需要的收敛时间;

6、重复操作4和5,用户随机设定多组延时值,求得平均的收敛时间和最大值。

实例三

测试音频回声消除功能的线性回声和非线性回声的抑制能力,回声中包含两种回声线性回声和非线性回声,回声消除功能会预估这两种回声的频谱,然后谱减得到干净的语音,不过回声预估能力是有限的,特别是对非线性回声的预估,预估不准确或者消除算法支持消除的声音尾长(taillength)太小都会导致回声消除不干净。本发明基于图1的测试框架,提出了一种可实施的方法。

1、测试主机和voip终端建议音频通话,测试主机通过数据链路开启voip终端的回声消除功能;

2、测试主机生成judge.py,测试结果判断依据是s0是纯回声的情况下,如果s0有语音信号的时间段的能量均值比相应时间段内s1的能量均值大6db,那么说明回声抑制生效,而且差值越大则说明回声消除得越干净。据此,可以得到两个数值——回声抑制生效概率和平均抑制分贝,它们代表了当前回声消除功能的线性回声和非线性回声的抑制能力,回声抑制生效概率和平均抑制分贝数值越大,回声抑制效果越好,具体判断如公式(1-2)和公式(1-3)所示;

(1)有语音片段的时间长度分别为t1,t2……tn;

(2)与tn,n∈[1,2,……,n]对应的回声抑制生效标志为f1,f2,……,fn,1表示生效,0表示未生效;

(3)与tn,n∈[1,2,……,n]对应的回声抑制差值为d1,d2,……,dn,未生效的情况下差值为0,单位db;

(4)总语音片段时长为

3、测试主机导入两段信号x0和s0,s0是x0的回声,其中包含线性和非线性成分;

4、用户设定延时一个固定延时t(假设回声延时预估范围是0~500ms,此处要求t<500ms),测试主机通过数据链路tx将x0传递给voip终端,同时测试主机开始录制来自数据链路rx的信号并保存为s1,t时间后,测试主机将s0放入放音声卡播放,s0播放结束后测试主机停止录制;

5、参考实例二,截去s0和s1中回声延时预估在收敛阶段的音频信号,重新分别保存为s01和s11,然后使用judge.py获取s01和s11的回声抑制生效概率和平均抑制分贝,记录此数据和它对应的两段语音x0和s0;

6、重复操作3到5,用户导入多组不同的x0和s0,获得多组回声抑制生效概率和平均抑制分贝,并标注其对应的x0和s0;

实例四

测试音频回声消除功能在双工情况下对近端干净语音的影响,双工即是近端和远端同时说话。和实例三类似,只是此处在回声中叠加了干净的近端语音信号,回声消除功能会预估线性回声和非线性回声的频谱,然后谱减后得到干净的近端语音,不过回声预估能力毕竟是有限的,不准确的回声预估,会让谱减得到的语音和实际叠加的近端语音有偏差,当前这个测试项就是为了测得它的影响大小。理论上,回声消除功能双工情况下的处理能力越好,则干净语音的还原度越高。本发明基于图1的测试框架,提出了一种可实施的方法。

1、测试主机和voip终端建议音频通话,测试主机通过控制链路开启voip终端的回声消除功能;

2、测试主机生成judge.py,测试结果判断依据是回声消除后得到的s1和原始信号s0中的非回声成分越相似,则说明回声消除功能在双工情况下的处理能力越强,此处判断信号相似度的方法是计算两信号之间的协方差,协方差越大,信号相关性越强,相似度就越高,另外这边不再列出协方差计算方法,默认行业人员都知;

3、测试主机导入三段信号x0、v0和e0,s0=v0+eq,e0是x0的回声,其中包含线性和非线性成分,v0是干净的语音信号且有语音的时长不得低于总时长的二分一;

4、用户设定延时一固定延时t(假设回声延时预估范围是0~500ms,此处要求t<500ms),测试主机通过数据链路tx将x0传递给voip终端,同时测试主机开始录制来自数据链路rx的信号,并保存为s1,t时间,测试主机将s0放入放音声卡播放,s0播放结束后测试主机停止录制;

5、参考实例二,截去v0和s1中回声延时预估在收敛阶段的音频信号,重新分别保存为v01和s11,然后使用judge.py获取两信号的相似度,记录此数据和它对应的三段信号x0、v0和e0;

6、重复操作3到5,用户导入多组不同的x0、v0和e0,获得多组相似度,并标注其对应的三段信号x0、v0和e0。

实例五

测试音频消噪能力。消除对象一般分为稳态噪声和非稳态噪声,非稳态噪声一般指那些突发性或者频谱无规律的干扰声,这个实例测试的是稳态噪声。可以从三个方面衡量消噪能力——可抑制的噪声类型、抑制强度以及对有效音频的损伤。本发明基于图1的测试框架,提出了一种可实施的方法,用于测试可抑制的噪声类型以及对应的抑制强度,至于对有效音频的损伤可以参考实例四中“测试音频回声消除功能在双工情况下的对近端干净语音的影响”的方法,此处就不再详细列出。

1、测试主机和voip终端建议音频通话,测试主机通过控制链路关闭voip终端内和消噪无关的功能,开启和消噪相关的功能;

2、测试主机生成judge.py,测试结果判断依据是由于voip终端内消噪的作用,s1中的噪声会被抑制,s1的能量均值将会小于s0的能量均值,两者形成能量差,能量差越大则说明消噪能力越强;

3、测试主机导入一种噪声信号s0,噪声信号时长不得低于30秒;

4、测试主机将s0放入放音声卡播放,同时测试主机开始录制来自数据链路rx的信号并保存为s1,s0播放结束后测试主机停止录制;

5、使用judge.py获取s1和s0的能量差,记录此数据和它噪声信号类型;

6、重复操作3到5,用户导入多组不同的噪声,获得多组能量差,并标注其对应的噪声信号类型。

实例六

测试均衡器功能。均衡器是一种可以分别调节信号各种频率成分的功能,通过对各种不同频率的信号的调节来补偿扬声器和声场的缺陷。本发明基于图1的测试框架,可以非常简便第测试均衡器功能,用户配置某频点的频响增减分贝,然后测试主机判断经过拾音音频处理后原始信号该频点有没有按照预设值变化。

1、测试主机和voip终端建议音频通话,测试主机通过控制链路关闭voip终端内所有音频处理功能,然后开启均衡器功能;

2、测试主机生成judge.py,测试结果判断依据是用户配置将某频点的频响增减a分贝,由于均衡器的作用,s1和s0在对应频点的频谱能量差值会等于用户配置的a;

3、测试主机配置voip终端内均衡器频点f1的增益调节量为h1,然后导入一段白噪声s0,信号时长不得低于30秒;

4、测试主机将s0放入放音声卡播放,同时测试主机开始录制来自数据链路rx的信号并保存为s1,s0播放结束后测试主机停止录制;

5、使用judge.py获取s1和s0在f1的频谱能量差值h,若h1-1<h<h1+1,则认为测试通过,否则失败;

实例七

本发明中提出的图1测试框架只是一个基础模型,对这个模型稍作调整,还可以测试多台voip终端之间或voip终端和服务器间的音频。这边再列举一个实例,基于调整后的图2音频自动化测试框架,说明借助本发明测试终端间通话总延时的方法。

总延时=网络传输延时+voip发送延时+voip接收延时,其中voip接收延时是当voip终端通过网络收到数据包,解码后重新还原为模拟信号放音的这段时间。

1、如图3所示,测试主机的放音声卡的lineout连接其中一台voip终端的audioin,测试主机的拾音声卡的linein连接另外一台voip终端的audioout;

2、两台voip终端建议音频通话,测试主机通过控制链路关闭两台voip终端的单频抑制、频移功能;

3、测试主机创建特定的音频信号s0,一段静音三秒、440hz正弦波持续两秒、再静音两秒的信号,其中440hz正弦波为标的信号;

4、测试主机生成judge.py,测试结果判断依据是s0和s1两文件中标的信号结束时间的差值减去放音声卡的缓冲时间t0和拾音声卡的缓冲时间t1就是通话总延时;

5、测试主机将s0放入放音声卡播放,同时测试主机开始录制来自拾音声卡的信号并保存为s1,s0播放结束后测试主机停止录制;

5、judge.py获取s0和s1中标的信号结束时间的差值t,即可得到voip终端间通话总延时为(t-t0-t1)。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1