目录:

1. 什么是WER

2. WER计算原理

3. WER测试设计方案

4. 当前业界识别水平

1. 什么是WER

在语音识别(Automatic Speech Recognition, ASR)中,常用的评估标准为词错误率WER(Word Error Rate),当测试语言为中文时,也会使用CER(Character Error Rate)字符错误率,两者计算原理是一样的,英文基本单位是单词Word,中文基本单位是Character。本文中统一使用WER。

WER计算方式为:为了使识别出来的词序列和标准的词序列之间保持一致,需要进行替换,删除,或者插入某些词。这些插入,替换,删除的词的总个数,除以标准的词序列中词的个数的百分比,即为WER,其计算公式如下所示:

字准确率Word Accuracy,简写为 W.Acc,则有W.Acc计算公式:W.Acc = 1 – WER

由于存在计算关系,所以我们测试时只需要测WER即可。

2. WER计算原理

第一行为标准的词序列(REF reference 参照),第二行为识别出来的词序列(HYP hyphen连字符),第三行为字符分类(Eval evaluate 评价)。

那么上述的WER计算如下所示:

增加词3个,替换的词6个,删除的词1个,那么WER为:

WER = (6 + 3 + 1)/ 13 = 76.9%

同理,中文例子如下:

REF

*

HYP

*

*

*

Eval

S

 

I

 

 

D

D

D

WER = (1 + 1 + 3)/ 7 = 71.4%

3. WER测试设计方案

本次测试方案分为:

a) 准备好一个标准测试集的txt文本(或其他格式)作为“参考字串集合“,以txt文本为例,记录内容如下

1 今天天气怎么样

2 你叫什么名字

3  .......

b) 准备好测试Demo程序,测试Demo会将测试过程中ASR生成的语句记录到一个文件中,作为”识别结果集合”,格式和步骤a)中的文件一致,便于字串的比较

c) 将“参考字串集合“和”识别结果集合”中的字串按照上文中”2.WER计算原理“进行计算,

输出WER测试结果

4. 当前业界识别水平

英语-WER:

IBM:行业标准Switchboard语音识别任务,2016年 6.9%,2017年 5.5%

微软:行业标准Switchboard语音识别任务,2016年 6.3% -> 5.9%,2017年 5.1%,这个目前最低的。

说明:ICASSP2017上IBM说人类速记员WER是5.1%,一般认为5.9% 的WER字错率是人类速记员的水平。

中文-WER/CER:

小米:2018年 小米电视 2.81%

百度:2016年 短语识别 3.7%

中文-W.Corr(W.Corr = W.Acc = 1-WER):

百度:2016年 识别准确率 97%

搜狗:2016年 识别准确率 97%

讯飞:2016年 识别准确率 97%

数据来源:

微软WER 5.9%:https://arxiv.org/abs/1610.05256

微软WER 5.1%:

https://www.microsoft.com/en-us/research/wp-content/uploads/2017/08/ms_swbd17-2.pdf

小米电视CER 2.81% :https://arxiv.org/pdf/1707.07167.pdf

国内百度等同时宣布识别准确率97% : https://www.zhihu.com/question/53001402

ASR性能测试方案--详细见云盘的更多相关文章

  1. 18年10月份最新免费申请微软OneDrive5TB云盘超详细教程!(已亲测!)

    本人已于今天10月23日亲测,成功获取微软OneDrive5T云盘! 第一步:.打开申请链接学生版:https://signup.microsoft.com/signup?sku=student教师版 ...

  2. hadoop云盘client的设计与实现(一)

    近期在hadoop云盘client项目.在做这个项目曾经对hadoop是一点都不了解呀,在网上查了好久.将client开发的是非常少的,在做这个项目的过程中遇到非常多奇葩的问题. 并且试图换过好多方案 ...

  3. 使用NextCloud搭建私有网络云盘并支持Office文档在线预览编辑以及文件同步

    转载自:https://www.bilibili.com/read/cv16835328?spm_id_from=333.999.0.0 0x00 前言简述 描述:由于个人家里的NAS以及公司团队对私 ...

  4. 体验阿里云SSD云盘+ECS(I/O优化)的性能

    阿里云推出SSD云盘+I/O优化的ECS已有一段时间,这个功能优化可以为ECS服务器与SSD云盘提供更好的网络能力.据阿里云官网介绍,SSD云盘最高提供20000次随机读写IOPS.256MB/S吞吐 ...

  5. 哭瞎!360云盘将关停,你的几十T照片和文件该怎么办

    IDO老徐刚得到了一个非常不开心的消息,360云盘将停止个人云盘服务...进行业务转型,在网盘存储.传播内容的合法性和安全性得到彻底解决之前不再考虑恢复,之后转型企业云服务. 而且之前共享的所有资料, ...

  6. 极客DIY:使用树莓派制作一套“NAS+私有云盘+下载机”

    原创作者:HackLiu 0×00 前言 ‍ ‍ 如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司做了这个事情 ...

  7. 基于Hadoop开发网络云盘系统客户端界面设计初稿

    基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...

  8. 基于Hadoop开发网络云盘系统架构设计方案

    基于Hadoop开发网络云盘系统架构设计方案第一稿 引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己 ...

  9. Nextcloud私有云盘在Centos7下的部署笔记

    搭建个人云存储一般会想到ownCloud,堪称是自建云存储服务的经典.而Nextcloud是ownCloud原开发团队打造的号称是“下一代”存储.初一看觉得“口气”不小,刚推出来就重新“定义”了Clo ...

随机推荐

  1. eclipse、MyEclipse 修改字符集和JDK

    eclipse 中UTF-8设置 1.windows->Preferences   打开"首选项"对话框: 2.然后,general->Workspace,右 侧Tex ...

  2. unity三维地球模型生成

    准备一张贴图   创建材质球 球面坐标系转直角坐标系 x=rsinθcosφ. y=rsinθsinφ. z=rcosθ. 效果如下   脚本如下 using System.Collections; ...

  3. 安装ELectron失败解决方案

    npm安装Electron解决方案 Electron使用npm安装时,因为是国外的镜像源,所以速度会非常慢.而使用cnpm如下命令进行安装时,又会出现安装失败的问题: npm install elec ...

  4. souce and bash 的区别

    对于一些环境变量的配置文件,如想使更改后立即生效,多用 souce +file 执行后即可.如/etc/profile 里加了配置, source 和  bash 的区别: source filena ...

  5. ETH&EOS开发资源及工具集合(完整汇总版)

    ETH&EOS开发资源及工具集合(完整汇总版) 3113 ETH开发资源篇 一.开发语言 ·         Solidity - 官方推荐以太坊智能合约开发语言,也是目前最为主流的智能合约语 ...

  6. 【DSP开发】6455EMIF

     外部设备连接接口包括外部存储器连接接口(EMIF).主机接口(HPI)等.外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM.SBSRAM.Flash.SRAM存储器等,外部存储器接口 ...

  7. Linux ps 查看进程

    [root@wang /]# ps aux ps -elf ^C [root@wang /]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIM ...

  8. Nginx 小入门记录 之 初识Nginx和环境准备(一)

    前置知识准备: 如果还不知道服务器是干什么的,只是刚踏入程序员之路的,大家还是先学习基础,虽然以下文档很简单,但至少知道为什么要学: 一般服务器环境现在基本上都是放在Linux系统上了,如果对Linu ...

  9. poj1961(kmp算法next数组应用)

    题目链接:https://vjudge.net/problem/POJ-1961 题意:给定一个长为n的字符串(n<=1e6),对于下标i(2<=i<=n),如果子串s(1...i) ...

  10. Python if __name__ == '__main__': 理解

    if __name__ == '__main__':是为了区分.py文件是自己直接被执行还是被其他文件调用. 当.py文件直接被执行时,默认的是 __name__ = '__main__',因此条件成 ...