一。准备:

linux服务器,src2mlf.py   rec2mlf.py   HResults文件,1份源文件和1份需要对比的文件。文件放置于本人云盘

二。使用方法:

1. 对比工具 HResults 需要运行在linux环境下,且仅支持mlf文件的对比
2. 两种python脚本工具 src2mlf.py 和 result2mlf.py , 将txt文件转换成 mlf文件
src文件为原始测试集,result文件为识别结果
txt文件格式:(每行 :序号+空格+字串)
1 字串1
2 字串2
3 ...
3.python脚本需要安装python3版本
4.运行方法:
生成原始测试集的mlf文件:python3 src2mlf.py xx.txt > xx.mlf
生成识别结果的mlf文件: python3 result2mlf.py xx.txt > xx.mlf
5. 当准备好需要对比的mlf文件后,以 src.mlf 和 result.mlf 为例,
运行HResults,运行结果打印在屏幕上
./HResults -t -I src.mlf /dev/null result.mlf
运行HResults,运行结果保存至 1.txt 文件中
./HResults -t -I src.mlf /dev/null result.mlf > 1.txt

三。转换脚本内容

  1. #-*- coding:utf-8 -*-
  2. import os,sys
  3.  
  4. def to_mlf(xi):
  5. dx={
  6. "":"零",
  7. "":"一",
  8. "":"二",
  9. "":"三",
  10. "":"四",
  11. "":"五",
  12. "":"六",
  13. "":"七",
  14. "":"八",
  15. "":"九"
  16. };
  17. d=[]
  18. eng=[]
  19. tx=[",",".","!","(",")",",","。","!",';','、',':','?','“','”'];
  20. for x in xi:
  21. u=x.encode("utf-8")
  22. #print ("2", u)
  23. if u in tx:
  24. continue;
  25. if len(u)==1:
  26. if x in dx:
  27. u=dx[x].encode("utf-8")
  28. eng.append(str(u, encoding='utf-8'))
  29. else:
  30. if len(eng)>0:
  31. d.append("".join(eng).upper())
  32. eng=[]
  33. d.append(str(u, encoding='utf-8'))
  34. if len(eng)>0:
  35. d.append("".join(eng).upper())
  36. return d
  37.  
  38. def fn_to_lab(s):
  39. x=s.split()
  40. for i in x:
  41. d=to_mlf(i.strip())
  42. if len(d)>0:
  43. print("\n".join(d))
  44. print('.')
  45.  
  46. fn=sys.argv[1]
  47. print('#!MLF!#')
  48. for l in open(fn):
  49. l=l.strip()
  50. x=l.split()
  51. k=x[0].strip()
  52. v=" ".join(x[1:])
  53. t=".".join(k)
  54. print('"*No%s.lab" ' % t)
  55. fn_to_lab(v)

四。测试结果

====================== HTK Results Analysis =======================
Date: Mon Aug 26 16:29:42 2019
Ref : src_1.mlf
Rec : hori.mlf
------------------------ Overall Results --------------------------
SENT: %Correct=77.00 [H=385, S=115, N=500]
WORD: %Corr=97.26, Acc=97.01 [H=8034, D=54, S=172, I=21, N=8260]
===================================================================

使用2种python脚本工具将2个txt文档中的文字进行比较,并计算出Corr, WER正确率,准确率的更多相关文章

  1. 用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

    前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过 ...

  2. 一个简易的Python爬虫,将爬取到的数据写入txt文档中

    代码如下: import requests import re import os #url url = "http://wiki.akbfun48.com/index.php?title= ...

  3. arcgis python脚本工具实例教程—栅格范围提取至多边形要素类

    arcgis python脚本工具实例教程-栅格范围提取至多边形要素类 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:提取栅格数据的范围, ...

  4. python 错误、调试、单元测试、文档测试

    错误分为程序的错误和由用户错误的输入引起的错误,此外还有因为各种各样意外的情况导致的错误,比如在磁盘满的时候写入.从网络爬取东西的时候,网络断了.这类错误称为异常 错误处理 参考链接:https:// ...

  5. Python帮助文档中Iteration iterator iterable 的理解

    iteration这个单词,是循环,迭代的意思.也就是说,一次又一次地重复做某件事,叫做iteration.所以很多语言里面,循环的循环变量叫i,就是因为这个iteration. iteration指 ...

  6. [原创博文] 用Python做统计分析 (Scipy.stats的文档)

    [转自] 用Python做统计分析 (Scipy.stats的文档) 对scipy.stats的详细介绍: 这个文档说了以下内容,对python如何做统计分析感兴趣的人可以看看,毕竟Python的库也 ...

  7. 2018-10-04 [日常]用Python读取word文档中的表格并比较

    最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...

  8. 使用Python中的HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies(二)(转)

    对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过 Python语言提供的各种模块,我们无需借助Web服务器或者Web浏览 ...

  9. 【python】使用HTMLParser、cookielib抓取和解析网页、从HTML文档中提取链接、图像、文本、Cookies

    一.从HTML文档中提取链接 模块HTMLParser,该模块使我们能够根据HTML文档中的标签来简洁.高效地解析HTML文档. 处理HTML文档的时候,我们常常需要从其中提取出所有的链接.使用HTM ...

随机推荐

  1. ELK的安全解决方案 X-Pack(1)

    安装 X-Pack 前必须安装 elasticsearch. Kibana.logstash,因为之前安装ELK选择的版本都是5.4.1,所以这次选择X-Pack的版本也要是5.4.1的 第一步:下载 ...

  2. List的remove方法里的坑

    今天遇到一件怪事,用一个ArrayList添加了一个对象,再调用ArrayList的remove方法删除该对象,当然这时对象是数据库里查出来的,但内容绝对是一样,却发现remove失败了.演示一下,这 ...

  3. SaaS领域如何分析收入增长?

    SaaS领域如何分析收入增长? 今天我们试着将其模式运用到收入增长上进行分析.这对常规收入的计算会极有帮助,例如企业级应用软件(SaaS)或消费者订阅业务. 列举某公司通过月度订阅获得营收为例,为了更 ...

  4. 建立自己的数据类型——C结构体归纳

    一.建立结构体类型 1.申明结构体类型 struct 结构体名 { 成员表列(类型名 成员名:); }: 例如: struct Person { char name; int age; char se ...

  5. Android netty客户端入门

    新建项目,加入netty库 implementation 'io.netty:netty-all:4.1.36.Final'

  6. CentOS7 安装mysql(YUM源方式)

    1.下载mysql源安装包 $ wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm   2.安装mysql ...

  7. (模板)poj3461(kmp模板题)

    题目链接:https://vjudge.net/problem/POJ-3461 题意:给出主串和模式串,求出模式串在主串中出现的次数. 思路:kmp板子题. AC代码: #include<cs ...

  8. Scrapy payload 报错400

    首先Scrapy 发送payload请求格式如下: def start_requests(self): querystr = { "ctoken": "U-ang1zmp ...

  9. 【IDEA插件】—— 代码量统计工具Statistic

    1.下载 1.打开idea设置界面,选择 plugins标签 2.搜索“Statistic”插件,点击 install 3.重启IDEA 2.使用 1.菜单栏中找到view 2.在下层目录中找到Sta ...

  10. Vue.js + Element.ui 从搭建环境到打包部署

    一.搭建环境 由于新的node已经集成了npm,所以直接安装node,前往node官网下载最新版本的node,根据自己的操作系统选择相应的包,按照步骤一步步走就可以,这里不做过多介绍. 安装好后可以打 ...