语音质量评价方法之MOS

引言

在语音增强、语音合成、语音转换、声音转换、语音克隆、语音修复等等领域,常常要对输出的语音进行评价。对语音的质量评价一般关注两个方面,即主观评价和客观评价。主观评价就是人凭借听觉感受对语音进行打分,客观评价比较广泛,有的是通过计算输出语音与目标语音之间的声学参数之间的差异来衡量输出语音的质量;有的是依靠仪器测试响度、频率响应、灵敏度等指标;有的依靠模型和算法,模拟人工打分。

  • 主观评价方法:MOS、CMOS、ABX(XAB)、Mushar、PESQ…
  • 客观评价方法:MCD、MSD 、MEL loss、F0 MSE、F0RMSE、F0 CC、E MSE、 DurMSE…

注:
这些评价方法并不都是相互独立的,如:F0 MSE、F0RMSE是计算最小均方误差和最小均方根误差。有一定的相似性。
这些评价方法在不同的领域评价又有一定的区别。评估的目的不同,所用的评估方法也不同。

平均意见得分MOS

早期语音质量的评价方式是凭主观的,人们在打通电话之后通过人耳来感知语音质量的好坏。1996年国际ITU组织在ITU-T P.800(电话传输系统语音质量主观评价)和P.830(电话宽带和宽带数字语音编解码器主观评价方法)建议书开始制订相关的评测标准,即MOS(Mean Opinion Score)测试。

平均主观值MOS是广泛认同的语音质量标准。因此,无论采用何种方法,所有测量方法所得到的结果都必须对应到最终的平均主观值MOS。

官网:MOS terminology

评价标准

它是一种主观测试方法,将用户接听和感知语音质量的行为进行调研和量化,由不同的调查用户分别对原始标准语音和经过无线网传播后的衰退声音进行主观感受对比,评出MOS分值。评价为5分制,标准如下:
在这里插入图片描述

与评测的人员对语音整体质量进行打分,分值范围为1-5分,分数越大表示语音质量最好。

一般MOS应为4或者更高,这可以被认为是比较好的语音质量,若MOS低于3.6,则表示大部分被测不太满意这个语音质量。

MOS测试一般要求:

  • 足够多样化的样本(即试听者和句子数量)以确保结果在统计上的显著;
  • 控制每个试听者的实验环境和设备保持一致;
  • 每个试听者遵循同样的评估标准。

评价规则

标准中的测试规则主要定义几点:

  1. 参考的标准音频和被测试音频间隔测试,连续重复4次;

  2. 音频源采用15~20s;

  3. 一次完整的测试时间不应超过15~20min;

  4. 测试成员:专家成员最少10人,非专家20人。(语音合成需至少40人)

  5. 如果预先定义评分值,则不需要对单个评分值做归一化,否则需要归一化处理。

  6. 评分可以采用5分或者7分制,也有嫌它不够精细的,用10分20分的。

  7. 所测语音材料要足够丰富,测试环境要尽量保持相同。

评价内容

对于语音合成系统,评估的内容也包含三个方面,即合成语音的清晰度,可懂度,自然度。

对于语音转换系统,一般评估

语音合成中的MOS

对于语音合成(文语转换TTS)系统,评估的工作有三个方面的任务和目的:

  • 对比不同的合成系统或算法,排出位次;
  • 对某个系统或算法进行诊断,指出其不足之处和问题所在;
  • 应用评价,确定某系统是否适应某种应用。

对于语音合成系统,评估的内容也包含三个方面,即合成语音的清晰度,可懂度,自然度:

  • 清晰度:针对语音中词以下的语音单元(音素、声母、韵母等)的清晰度;
  • 可懂度:针对语音中词以上的语言单元(如字、单词和句子等)的可懂程度;
  • 自然度:指的是更高一层的内容,如短语、句子、篇章等方面的整体自然水平。

合成语音质量的评估,不但与语音学、语言学相关、而且与心理学也有着密切的联系。

MOS不仅用于语音编码、通信设备的性能测试上,也可用于语音合成系统的整体评估,1994年国际ITU组织在ITU-T P.85(语音输出设备质量的主观性能评测方法),根据该建议草案,选择10-30句语音测试材料,从8个方面用5分制MOS进行打分。

  • 整体印象:整体感觉如何
  • 可接受度:你认为这种声音是否可以在某个应用领域上做信息服务?
  • 收听效果、注意力:需要多大的专心或注意力程度才能听懂语音
  • 理解难度:句子的意思是不是说清楚了?是否有些词不好理解
  • 清晰度:声音是不是清晰可辨?
  • 发音:发音中的规则让人不舒服的程度
  • 声音的悦耳程度:声音好听吗?
  • 讲话速度:速度快,慢,还是正常?

在P.85中虽然没有给出整体印象的5个等级的具体定义,但其他7个方面都给出了5个等级的具体说明。可以用计权平均的方法得到总体的满意度评价,也可以综合这几个方面给出一个主观的评价得分。

附语音合成论文中计算MOS的脚本,其不仅强调MOS值,并且要求95%的置信区间内的分数:

# -*- coding: utf-8 -*-
# @FileName: caculate_MOS.pyimport math
import numpy as np
import pandas as pd
from scipy.linalg import solve
from scipy.stats import tdef calc_mos(data_path: str):'''计算MOS,数据格式:MxN,M个句子,N个试听人,data_path为MOS得分文件,内容都是数字,为每个试听的得分:param data_path::return:'''data = pd.read_csv(data_path)mu = np.mean(data.values)var_uw = (data.std(axis=1) ** 2).mean()var_su = (data.std(axis=0) ** 2).mean()mos_data = np.asarray([x for x in data.values.flatten() if not math.isnan(x)])var_swu = mos_data.std() ** 2x = np.asarray([[0, 1, 1], [1, 0, 1], [1, 1, 1]])y = np.asarray([var_uw, var_su, var_swu])[var_s, var_w, var_u] = solve(x, y)M = min(data.count(axis=0))N = min(data.count(axis=1))var_mu = var_s / M + var_w / N + var_u / (M * N)df = min(M, N) - 1  # 可以不减1t_interval = t.ppf(0.975, df, loc=0, scale=1)  # t分布的97.5%置信区间临界值interval = t_interval * np.sqrt(var_mu)print('{} 的MOS95%的置信区间为:{} +—{} '.format(data_path, round(float(mu), 3), round(interval, 3)))if __name__ == '__main__':data_path = ''calc_mos(data_path)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/29238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生成绩评分 - Scala

文章目录 一、第1关:对学生成绩进行评分 一、第1关:对学生成绩进行评分 实训目标 掌握 Scala 中运算符嵌套的使用 了解 if-else if-else 语句的使用 实训分析 利用条件运算符的嵌套来完成此题:学习成绩 150 - 90 分的同学成绩评分为&#…

【JVM结构、JVM参数、JVM垃圾回收】

JVM:Java Virtual Machine java虚拟机 虚拟机:使用软件技术模拟出与具有完整硬件系统功能、运行在一个隔离环境中的计算机系统。 JVM官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html java 一些命令 javac 将文件编…

常用算法及参考算法 (1)累加 (2)累乘 (3)素数 (4)最大公约数 (5)最值问题 (6)迭代法

常用算法及参考算法 &#xff08;1&#xff09;累加 &#xff08;2&#xff09;累乘 &#xff08;3&#xff09;素数 &#xff08;4&#xff09;最大公约数 &#xff08;5&#xff09;最值问题 &#xff08;6&#xff09;迭代法 1. 累加 #include <stdio.h>int main() {…

上海亚商投顾:沪指缩量调整 PCB概念股持续爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 大小指数昨日走势分化&#xff0c;沪指全天震荡调整&#xff0c;创业板指午后涨超1%。消费电子板块全天强势&a…

【ARM】MDK Debug模式下Disassembly窗口介绍

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 主要了解Disassembly窗口中包含的内容&#xff0c;和如何利用Disassembly中的内容了解程序的存储和调用情况。 2、 问题场景 对于Disassembly窗口中具体包含的内容不了解&#xff0c;无法合理地应用Disassembly窗口…

Docker的基本操作 及 容器与外部机互相通讯(持续更新中)

Docker入门&#xff1a; Docker 入门教程 - 阮一峰的网络日志 (ruanyifeng.com)docker入门&#xff0c;这一篇就够了。-CSDN博客Docker 容器使用 | 菜鸟教程 (runoob.com)Docker自定义网络和运行时指定IP_docker run ip-CSDN博客 基本命令 链接&#xff1a;docker入门&#…

希尔排序-C语言版本

前言 从希尔开始&#xff0c;排序的速度就开始上升了&#xff0c;这里的排序开始上一个难度了&#xff0c;当然难一点的排序其实也不是很难&#xff0c;当你对于插入排序了解的足够深入的时候&#xff0c;你会发现其实希尔就是插入的异形&#xff0c;但是本质上还是一样的 希尔…

openresty(Nginx) 301重定向域名 http访问强制使用https

1 访问http 2 修改配置访问 server {listen 80;server_name example.cn;return 301 https://$server_name$request_uri;access_log /data/logs/czgzzfjgsup_access.log access;error_log /data/logs/czgzzfjg_error.log error;#location / {root /usr/local/open…

Mac 开发vscode常用命令

1 打开vscode settting配置 commandshiftp 输入&#xff1a;Open User Setting 2

CV预测:快速使用DenseNet神经网络

AI预测相关目录 AI预测流程&#xff0c;包括ETL、算法策略、算法模型、模型评估、可视化等相关内容 最好有基础的python算法预测经验 EEMD策略及踩坑VMD-CNN-LSTM时序预测对双向LSTM等模型添加自注意力机制K折叠交叉验证optuna超参数优化框架多任务学习-模型融合策略Transform…

小规模自建 Elasticsearch 的部署及优化

本文将详细介绍如何在 CentOS 7 操作系统上部署并优化 Elasticsearch 5.3.0,以承载千万级后端服务的数据采集。要使用Elasticsearch至少需要三台独立的服务器,本文所用服务器配置为4核8G的ECS云服务器,其中一台作为 master + data 节点、一台作为 client + data 节点、最后一…

QT——MySQL数据库联用

一、ODBC 1、ODBC简介 ODBC全称为Open Database Connectivity,是一种用于数据库操作的标准接口。要使用ODBC,首先需要安装相应的ODBC驱动程序,然后在系统中配置ODBC数据源。接着,可以通过编程语言(如C++、Java等)或者数据库工具(如SQL Server Management Studio)来连…

Visual Studio Code的安装与配置

Visual Studio Code&#xff08;简称 VS Code&#xff09;是 Microsoft 在2015年4月30日 Build 开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的&#xff0c;针对于编写现代 Web 和云应用的跨平台源代码编辑器&#xff0c;可在桌面上运行&#xff0c;并且可用…

Unity API学习之资源的动态加载

资源的动态加载 在实际游戏开发的更新换代中&#xff0c;随着开发的软件不断更新&#xff0c;我们在脚本中需要拖拽赋值的变量会变空&#xff0c;而要想重新拖拽又太花费时间&#xff0c;因此我们就需要用到Resources.Load<文件类型>("文件名")函数来在一开始…

大模型基础——从零实现一个Transformer(5)

大模型基础——从零实现一个Transformer(1)-CSDN博客 大模型基础——从零实现一个Transformer(2)-CSDN博客 大模型基础——从零实现一个Transformer(3)-CSDN博客 大模型基础——从零实现一个Transformer(4)-CSDN博客 一、前言 上一篇文章已经把Encoder模块和Decoder模块都已…

深度學習筆記12-優化器對比(Tensorflow)

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習紀錄博客&#x1f356; 原作者&#xff1a;K同学啊 | 接輔導、項目定制 一、我的環境 電腦系統&#xff1a;Windows 10 顯卡&#xff1a;NVIDIA Quadro P620 語言環境&#xff1a;Python 3.7.0 開發工具&…

基于GTX的64B66B编码IP生成(高速收发器二十)

点击进入高速收发器系列文章导航界面 1、配置GTX IP 相关参数 前文讲解了64B66B编码解码原理&#xff0c;以及GTX IP实现64B66B编解码的相关信号组成&#xff0c;本文生成64B66B编码的GTX IP。 首先如下图所示&#xff0c;需要对GTX共享逻辑进行设置&#xff0c;为了便于扩展&a…

【开发工具】git服务器端安装部署+客户端配置

自己安装一个轻量级的git服务端&#xff0c;仅仅作为代码维护&#xff0c;尤其适合个人代码管理。毕竟代码的版本管理是很有必要的。 这里把git服务端部署在centos系统里&#xff0c;部署完成后可以通过命令行推拉代码&#xff0c;进行版本和用户管理。 一、服务端安装配置 …

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 内存访问热度分析(100分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

windows环境下,怎么查看本机的IP、MAC地址和端口占用情况

1.输入ipconfig,按回车。即查看了IP地址&#xff0c;子码掩码&#xff0c;网关信息。 2.输入ipconfig/all,按回车。即查看了包含IP地址&#xff0c;子码掩码&#xff0c;网关信息以及MAC地址 3.我们有时在启动应用程序的时候提示端口被占用&#xff0c;如何知道谁占有了我们需要…