梁民
摘 要: 为了解决目前4G通信网络中语音质量评价问题, 该研究基于PESQ算法,设计开发了语音质量评价系统。该系统主要由语音采样和语音质量评价两个部分组成,语音采样部分由具有录音功能的手机进行样本采集,语音质量评价系统则调用PESQ算法对语音样本文件给出MOS平均意见分。该系统个性化和模块化的设计特点保证它能对不同的4G网络类型进行语音质量评价。系统运行实践证明该系统能有效对4G网络通信语音质量做出客观评价,因而具有一定推广价值。
关键词: 语音质量感知评价; 第四代移动通信; 语音质量评价; 网络优化
中图分类号: TN926?34; TP311 文献标识码: A 文章编号: 1004?373X(2016)08?0006?03
Research on application of PESQ algorithm in 4G network
LIANG Min
(Information Technology Center, Renmin University of China, Beijing 100872, China)
Abstract: With the popularization of 4G communication network in modern society, some new problems in the application process have occurred naturally. A speech quality evaluation system designed and developed on the basis of PESQ algorithm to solve the problem in evaluation of speech quality during the process of communication. The system is composed of two parts in which the first part is devoted to speech sampling and the second part is used to evaluate the speech quality. The speech sampling is conducted by the mobile phones which have the record function. The speech quality evaluation system gives a MOS average mark based on PESQ algorithm. The characteristics of individualization and modular design guaranteed the successful application of this system to evaluate different kinds of 4G communication networks. The operation practice of this system has proved this system can objectively evaluate speech quality of 4G network communication.
Keywords: perceptual evaluation of speech quality; 4G mobile communication; speech quality evaluation; network optimization
0 引 言
在移动4G通信网络中,语音通信是一个核心业务,随着移动网络技术的不断发展,客户对网络通话质量要求日渐提高,语音质量的好坏直接影响用户对于运营商的选择。根据移动通信网络服务质量要求,建立一套语音质量评价系统,更好地对4G网络的语音服务质量进行定量测量、分析、评估,就成为移动运营商的迫切需要。本研究采用PESQ算法作为语音质量评价参数,应用于4G通信网络的语音质量评价中,设计了一套比较完善的语音质量评价系统,解决了4G通信网络中语音的检测与评价问题。
1 PESQ算法原理
PESQ(Perceptual Evaluation of Speech Quality),即主观语音质量评价。PESQ算法是将语音信号的频率、响度等物理特性与人类心理感知特性的关系通过数学模型对应起来,用客观模型来模拟主观感觉的评价的算法。该模型采用时频映射、频率弯折和响度弯折等方法,尽可能地以数学方式表达语音中“可感知”的特性。PESQ算法的思路是:对参考信号和被测试信号先进行电平调整,调整到标准听觉电平,然后用输入滤波器模拟标准电话听筒进行滤波。接着对通过电平调整和滤波后的两个信号在时间上对准,并进行听觉变换,这个变换包括对系统中线性滤波和增益变化的补偿和均衡。两个听觉变换后的信号之间的不同作为扰动(即差值),分析扰动曲面提取出两个失真参数,在频率和时间上累积起来,最终得到PESQ分数,并将这个分数映像到对主观平均意见分的预测值。PESQ算法模型如图1所示。
2 语音质量评价系统的设计与实现
语音质量评价系统主要由语音采样和质量评价两个子系统组成,两个系统是操作独立又相互联系的。
2.1 语音采样系统
语音采样系统主要实现待测评4G网络的语音样本文件的采集。语音采样系统硬件包括语音发送端手机和语音接收端手机,两个手机必须均支持通话录音功能。手机终端1通过4G通信网络和手机终端2通话,同时两个手机分别把语音内容录制到本地手机 ,分别保存为参考音频文件和采样音频文件。语音采样系统硬件拓扑图如图2所示。
2.2 语音评价系统
语音评价系统主要完成采样语音的检测与评价功能。
2.2.1 语音评价系统设计
语音评价系统包含模块为:采集模块、解码模块、业务处理模块、显示模块、日志模块。系统框架图见图3。
(1) 采集模块:对手机录制的音频文件的采集及格式转换。
(2) 解码模块:根据采集模块的采集结果,每收到一帧数据,调用解码模块对这帧数据进行分析,并不断根据消息体类型按照4GPP、LTE相关协议嵌套分析并解码每一层数据,直到获得PESQ算法需要的接收端语音消息。
(3) 业务处理模块:主要根据不同的解码模块处理后的数据帧,作出相应的数据计算以及多个相关数据帧的数据整合,把分散在不同帧的数据作为一个整体,通过相应业务处理,得出相关数据。
(4) 显示模块:作用是把业务处理模块的处理结果,显示在电脑端或者手机端,方便使用者能直观地看到相关参数。
(5) 日志模块:主要完成数据采集的记录,解码关键步骤的记录,业务模块的业务流的记录以及错误信息的记录。
2.2.2 语音评价系统的实现
采样系统采集到的参考音频文件和采样音频文件均保存在计算机特定目录下,调用系统PESQ算法,最终给出采样音频文件的MOS得分。分数越高说明失真越小;语音评估质量越高,移动网络系统语音通话效果也就越好。PESQ算法的使用如图4所示。
调用PESQ算法进行MOS得分计算模块的实现如下:
由于PESQ算法的输入语音信号是 16 位线性 PCM信号, 所以选择WAV文件作为测试语音信号。WAV文件有一个长度为 44 字节的头部信息, 在使用 PESQ 算法对音频文件进行语音质量评估的时候, 需要显式地指定文件后缀名为“ .wav”或者“ .WAV” , 以便通知PESQ算法跳过头部的 44个字节,从第44个字节后面读入有效音频数据。
PESQ软件系统中调用PESQ算法部分代码如下:
voidMosValues()
{
//没有正常启动播放,择停止语音评估
if (!this.startPlay || this.testSoundLevel) return;
//语音评估
this.NotifyMosEvent(EventFSMSDK.DataOperationEvent.DataOperationTypeEnum.MosEvaluate);
stringsrcFileAddress = SystemPropetiesSingle.Instance().WaveFileAddress;
floatpesqScore = 0;
floatpesqLqScore = 0;
WaveFormatwaveFormat = GetWaveFormat(srcFileAddress);
int rate = waveFormat.SamplesPerSecond == 8000 ? 1 : 0;
floatvoiceAdjLevel = 0.03F;
if (GetPesqResult(0, rate, srcFileAddress, sRecordWaveFileName, out pesqLqScore, voiceAdjLevel))
{
//发送通知
LogFrame frame = new LogFrame();
frame.frameType = 0xFFDD;
frame.timeStamp = DateTime.Now.ToFileTime();
frame.AddData(pesqScore);
frame.AddData(pesqLqScore);
if (OnReceivedOneFrame != null)
OnReceivedOneFrame(this, frame);
}
//评估完成后,删除语音文件
this.DeleteWaveFile(pesqLqScore);
}
GetPesqResult是PESQ算法模块的动态连接库,在C#中通过如下代码实现了函数的导入:
[DllImport(@"PESQModule.dll", EntryPoint = "PesqGetResult")]
static extern boolGetPesqResult(int swap, int rate, string refpathname, string degpathname, out float refmos, float voiceAdj);
PESQ得分界面分成左右两部分,左边部分的上方显示的是样本语音的波形,左边部分的下方显示采样语音的波形。右边部分的上方显示当前接收语音的MOS得分,右边部分的下方显示更多接收语音的MOS得分,它反映了4G LTE移动网路的语音质量的变化。系统的PESQ得分界面如图5所示。
3 结 语
本系统将PESQ算法应用于4G通信网络语音评价中,能针对不同类型的网络和测试要求进行个性化设置。由于采用了模块化设计,能随着网络和容量变化轻松升级。运行实践证明该系统有效解决了4G网络中语音质量评价问题,具有一定的推广价值。
参考文献
[1] 陈晓翔,路保本,林嘉宇.PESQ算法在军事语音评估中的性能分析[J].微处理机,2014,35(1):35?40.
[2] 周璐,邱小军,林志斌.PESQ测量语音增强算法性能不确定性的研究[J].电声技术,2010,34(1):71?73.
[3] 陈明义,何孝月.基于 PESQ的VOIP系统语音质量评估应用研究[J].微计算机信息,2008,24(27):171?173.
[4] 卢卫,陆希玉.4G时代移动互联网的发展趋势[J].电信科学,2014,30(5):50?54.
[5] 凌渝.基于PESQ算法的语音质量客观评价方法研究[J].警察技术,2011(5):30?32.
[6] 倪萍,魏芳.基于PESQ算法的彩铃铃音质量评估系统[J].计算机应用与软件,2012(10):145?147.
[7] 陈新.基于PESQ算法的MOS测试解决方案[J].移动通信,2008,32(13):56?59.
[8] 李野,吴亚锋,刘雪飞.基于PESQ的空乘人员语音质量评价系统设计与实现[J].测控技术,2009,28(1):31?34.