1 简介 随着通信技术的发展,对日益复杂的语音通信系统和语音编码技术进行性能测试变得十分重要.因此,研究灵活,方便,可靠的语音质量评价系统成为国内外研究者共同努力的目标. PE
1 简介
随着通信技术的发展,对日益复杂的语音通信系统和语音编码技术进行性能测试变得十分重要.因此,研究灵活,方便,可靠的语音质量评价系统成为国内外研究者共同努力的目标. PESQ算法是国际电信联盟组织(ITU)提出的语音质量客观评价算法之一.该算法考虑了网络的端到端的时延,且采用改进的听觉模型和认知模型技术,对通信延时,环境噪声等有较好的鲁棒性.
2 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 性能评估 %%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
clear
clc
root_dir = 'C:\Users\TIQC\Desktop\';
evaluation_dir = sprintf('%s%s', root_dir, '语音质量客观评价(PESQ)');
cd(evaluation_dir);
wav_name = 'original';
% de_wav_name ='de-2male&2female-(4)-'
de_wav_name ='output';
% original_file_dir = encode_wav_file;
original_file = sprintf('%s.wav', wav_name);
% original_file = '2male(90s)-1.wav';
% original_file_dir = 'E:\桌面文件\PROGRAMME\600bps(0215)\ultra low bit rate vocoder(600bps)\encode_wav\2male(90s)-1.wav';
% original_file = '2female(90s)-1.wav';
% original_file_dir = 'E:\桌面文件\PROGRAMME\600bps(0215)\ultra low bit rate vocoder(600bps)\encode_wav\2female(90s)-1.wav';
[speech_reference, fs_reference, bits] = wavread(original_file);
% cd('C:\Documents and Settings\Administrator\桌面\MELP\下载来自MATLAB CENTRAL\MELP_m\decode_wav');
% load 'decode_wav.mat';
% % coding_file_dir = decode_wav_file;
coding_file = sprintf('%s.wav', de_wav_name);
[speech_degraded, fs_degraded, bits] = wavread(coding_file); %
cd(evaluation_dir);
% 计算PESQ
[scores] = pesqbin( speech_reference, speech_degraded, fs_reference, 'nb' );
% 计算处理延时(编码器分析语音和解码器重建语音的时间)
%delay_process = mean(t_synths)+mean(t_trans)+mean(t_analys);
% 计算算法延时(绝大部分低比特率语音编码器一次处理一帧语音数据, 语音参数每帧更新和传输一次。因此, 在语音数据分析之前, 必须缓存一帧数据, 由此导致的延时称为算法延时。)
%delay_algor = delay_process;
% 计算系统延时
%delay_system = delay_process + delay_algor;
disp(sprintf('The bit rate is ***kbps'));
disp(sprintf('The PESQ is %d .', scores(1)));
% disp(sprintf('Delay of system is %d ms', delay_system*1000));
% 详细结果
disp(sprintf('\nDetail of result :'));
disp(sprintf(' original wav code wav PESQ-MOS MOS-LQO Sample_FESQ '));
disp(sprintf(' %s %s %d %d %d \n', original_file, coding_file, scores(1), scores(2), fs_reference));
% disp(sprintf('delay of porcess is %d ms', delay_process*1000));
% disp(sprintf('delay of algor is %d ms', delay_algor*1000));
3 仿真结果
4 参考文献
[1]凌渝. 基于PESQ算法的语音质量客观评价方法研究[J]. 警察技术, 2011(5):3.