语音质量评价指标:PESQ(已经过时)

您所在的位置:网站首页 python程序评价指标 语音质量评价指标:PESQ(已经过时)

语音质量评价指标:PESQ(已经过时)

2023-08-11 10:46| 来源: 网络整理| 查看: 265

PESQ 概述PESQ 流程问题

概述

PESQ(Perceptual evaluation of speech quality)(语音质量的感知评估)是一种客观的、全参考的语音质量评估方法,其在国际电信联盟的标注化代号为ITU-T P.862。 PESQ算法需要带噪的衰减信号和一个原始的参考信号,能够对客观语音质量评估提供一个主观MOS的预测值,而且可以映射到MOS刻度范围,PESQ得分范围在 -0.5–4.5 之间。得分越高表示语音质量越好。

其实现代码如下(在Python中也可直接调用相应的pesq模块):

def get_pesq(clean_wav, denoised_wav): """ 计算两个音频的pesq,要求采样率为16000或8000,且8000只支持窄带。 PESQ就是用经过处理后的语音文件(语音压缩、重构等)与原始语音进行比较。PESQ得分范围在-0.5--4.5之间。得分越高表示语音质量越好。 git: https://github.com/vBaiCai/python-pesq :param clean_wav: 原始文件 :param denoised_wav: 待评估文件 :return: score """ ref, sr0 = sf.read(clean_wav) deg, sr1 = sf.read(denoised_wav) # 检查采样率是否达标 if sr0 == sr1 and (sr0 == 16000 or sr0 == 8000): logger.info("ref_audio/deg_audio音频采样率为: %s/%s" % (str(sr0), str(sr1))) else: logger.error("音频采样率必须为16000或窄带8000。ref_audio/deg_audio音频采样率为: %s/%s" % (str(sr0), str(sr1))) return False # 检查两个音频文件长度,帧数相差不大于10 if abs(len(ref) - len(deg)) > 10: logger.error("ref_wav/deg_wav两个音频长度不一致: %d/%d" % (len(ref), len(deg))) return False score = pesq(ref, deg, sr0) logger.success("PESQ算法计算的MOS值为:%s" % str(score)) return score PESQ 流程

Speech Quality Assessment.pdf —— 上图来自 Speech Quality Assessment.pdf

问题

好好看看这个: PESQ,STOI score (Speech Quality) for different languages(Non-English)

我截取出一些关键部分:

PESQ 已经过时不可用了! 在这里插入图片描述PESQ的继任是POLQA,但是由于一些原因不再公开(需要获得授权) 在这里插入图片描述不要(因为语种不同)随意更改算法模型 在这里插入图片描述

参考:

音频质量PESQ得分评估原理与步骤PESQ,STOI score (Speech Quality) for different languages(Non-English)


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3