CMUS狮身人面像(六)-调整语音识别准确性

调整语音识别准确性


  • 精度差的原因
  • 测试数据库设置
  • 运行测试

语音识别的准确性并不总是很高。

首先,重要的是要了解您的准确性是否只是低于预期,还是总体上非常低。如果总体精度非常低,则您很可能错误配置了解码器。如果低于预期,可以采用各种方法来改进。

您应该做的第一件事是收集测试样本数据库并测量识别准确性。您需要将话语转储到 wav 文件中,编写参考文本并使用解码器对其进行解码。然后使用 Sphinxtrain 的工具计算字错误率 (WER) word_align.pl。测试数据库的大小取决于准确性,但通常有 30 分钟的转录音频就足以可靠地测试识别器的准确性。

只有拥有测试数据库,您才能继续优化识别精度。

精度差的原因

精度不佳的主要原因是:

  • 传入音频的采样率和通道数不匹配或传入音频带宽不匹配。它必须是 16 kHz(或 8 kHz,具体取决于训练数据)、16 位 Mono(= 单通道)Little-Endian 文件。您需要通过重采样来修复源的采样率(仅当其采样率高于训练数据的采样率时)。您不应该对文件进行上采样并使用在更高采样率的音频上训练的声学模型对其进行解码。可以使用命令验证音频文件格式(采样率、通道数)

    sox --i /path/to/audio/file

    在此处查找更多信息: 什么是采样率?

  • 声学模型不匹配。为了验证这个假设,您需要根据测试数据库文本构建一个语言模型。这样的语言模型会非常好,并且一定会给你很高的准确率。如果精度仍然较低,则需要在声学模型上进行更多工作。您可以使用声学模型自适应来提高准确性。

  • 语言模型不匹配。您可以创建自己的语言模型来匹配您尝试解码的词汇。

  • 字典中的不匹配以及单词的发音。在这种情况下,必须在语音词典中完成一些工作。

测试数据库设置

要测试识别,您需要使用所需的参数配置解码,特别是,您需要有一个语言模型<your.lm>。有关更多详细信息,请参阅构建语言模型页面。

创建一个fileids文件test.fileids

test1
test2

创建转录文件test.transcription

some text (test1)
some text (test2)

将音频文件放入wav文件夹中。确保这些文件具有正确的格式和采样率。

└─ wav├─ test1.wav└─ test2.wav

运行测试

现在,让我们运行解码器:

pocketsphinx_batch \-adcin yes \-cepdir wav \-cepext .wav \-ctl test.fileids \-lm `<your.lm>` \    # for example en-us.lm.bin from pocketsphinx-dict `<your.dic>` \ # for example cmudict-en-us.dict from pocketsphinx-hmm `<your_hmm>` \  # for example en-us-hyp test.hypword_align.pl test.transcription test.hyp

word_align.pl脚本是 sphinxtrain 发行版的一部分。

如果您要解码 8 kHz 文件,请务必将该选项添加-samprate 8000到上述命令!

Sphinxtrain 的脚本word-align.pl将向您报告准确的错误率,您可以使用该错误率来确定改编是否适合您。它看起来像这样:

TOTAL Words: 773 Correct: 669 Errors: 121
TOTAL Percent correct = 86.55% Error = 15.65% Accuracy = 84.35%
TOTAL Insertions: 17 Deletions: 11 Substitutions: 93

要查看解码速度,请检查 pocketsphinx 日志,它应该如下所示:

INFO: batch.c(761): 2484510: 9.09 seconds speech, 0.25 seconds CPU, 0.25 seconds wall
INFO: batch.c(763): 2484510: 0.03 xRT (CPU), 0.03 xRT (elapsed)

0.03 xRT解码速度(“记录时间的0.03倍”)。

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

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

相关文章

qt学习篇---C++基础学习

本学习笔记学习下面视频总结&#xff0c;感兴趣可以去学习。讲的很详细 【北京迅为】嵌入式学习之QT学习篇_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1tp4y1i7EJ/?spm_id_from333.337.search-card.all.click&vd_source8827cc0da16223b9f2ad8ae7111de9e2 目录 C…

【K8s】工作以来遇到的K8s相关问题、故障

工作以来遇到的有关K8S相关问题及故障 deployments 资源 2副本情况下&#xff0c;一个springboot的pod能访问&#xff0c;一个不能&#xff08;端口不通&#xff09;在K8S运维(多人管理) 不知道谁在链路加了个跨域配置&#xff0c;导致前端打不开图片某些安全部门演练时经常在…

Linux深入理解内核 - 内存寻址

目录 引论&#xff0c;三个地址 硬件中的分段 段描述符 快速访问段描述符 分段单元 Linux GDT Linux LDT 硬件中的分页 PAE 硬件高速缓存 TLB Linux中的分页 页表类型定义pgd_t、pmd_t、pud_t和pte_t pteval_t&#xff0c;pmdval_t&#xff0c;pudval_t&#xff0…

k8s pod 镜像拉取策略

在 Kubernetes (k8s) 中&#xff0c;Pod 容器镜像的拉取策略通过 imagePullPolicy 属性来控制。这一策略决定了 kubelet 如何以及何时从容器镜像仓库中拉取镜像。以下是三种主要的镜像拉取策略及其详细说明&#xff1a; Always: 说明: 这是默认的拉取策略。当设置为 Always 时&…

PDCA循环:持续精进的工具

文章目录 一、什么是PDCA二、PDCA的应用场景三、PDCA在信息系统项目管理中的应用 一、什么是PDCA PDCA循环是由美国质量管理专家沃特阿曼德休哈特&#xff08;Walter A. Shewhart&#xff09;在20世纪30年代提出的&#xff0c;最初用于制造业的质量管理。休哈特博士在构想PDCA…

【C++题解】1418. 求一个5位数的各个位之和

问题&#xff1a;1418. 求一个5位数的各个位之和 类型&#xff1a;基本运算、拆位求解 题目描述&#xff1a; 从键盘读入一个 5 位的正整数&#xff0c;请求出这个 5 位数的各个位之和。 输入&#xff1a; 一个 5 位的正整数 n 。 输出&#xff1a; 这个 5 位数的各个位之…

2385. 感染二叉树需要的总时间

2385. 感染二叉树需要的总时间 题目链接&#xff1a;2385. 感染二叉树需要的总时间 代码如下&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr)…

Aiseesoft Blu-ray Player for Mac:蓝光播放器

Aiseesoft Blu-ray Player for Mac是一款功能强大且易于使用的蓝光播放器&#xff0c;专为Mac用户打造。它以其卓越的性能和简洁的操作界面&#xff0c;为用户带来了全新的高清蓝光播放体验。 Aiseesoft Blu-ray Player for Mac v6.6.50激活版下载 这款软件支持播放任何高质量的…

ArcGIS Pro3.0软件破解版安装教程

软件名称&#xff1a;ArcGIS Pro 3.0 安装环境&#xff1a;Windows 软件大小&#xff1a;7.3GB 硬件要求&#xff1a;CPU2GHz&#xff0c;内存4G(或更高) 百度云下载链接 &#xff1a; https://pan.baidu.com/s/1CXy1MSwdQXdVnJoV2X422A 提 取 码 &#xff1a;r0w1 教学内…

AI图书推荐:ChatGPT写论文的流程与策略

论文一直是任何学术学位的顶峰。它展示了学生在研究领域的兴趣和专业知识。撰写论文也是一个学习经验&#xff0c;为学术工作以及专业研究角色做好准备。但是&#xff0c;论文工作总是艰苦的&#xff0c;通常是充满乐趣和创造性的&#xff0c;但有时也是乏味和无聊的。生成式人…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

采用前后端分离Vue,Ant-Design技术开发的(手麻系统成品源码)适用于三甲医院

开发环境 技术架构&#xff1a;前后端分离 开发语言&#xff1a;C#.net6.0 开发工具&#xff1a;vs2022,vscode 前端框架&#xff1a;Vue,Ant-Design 后端框架&#xff1a;百小僧开源框架 数 据 库&#xff1a;sqlserver2019 系统特性 麻zui、护理、PACU等围术期业务全覆…

FreeRTOS学习——FreeRTOS队列(上)

本篇文章记录我学习FreeRTOS队列的相关知识&#xff0c;主要包括队列简介、队列的结构体、队列创建等知识。 队列是为了任务与任务、任务与中断之间的通信而准备的&#xff0c;可以在任务与任务、任务与中断之间传递消息&#xff0c;队列中可以存储有限的、大小固定的数据项目。…

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time

Android 在attrs.xml添加属性时出现 Found item Attr/****** more than one time 问题描述解决办法方式一方式二 小结 问题描述 在Android应用开发过程中&#xff0c;经常需要自定义控件&#xff0c;并且定义控件的属性&#xff0c;方便灵活的修改控件的显示样式&#xff0c;提…

HCIP-Datacom-ARST必选题库_无线【道题】

单选题 26/1327、 如图所示,漫游前数据流显的转发为STA-HAP-上层网络,转发方式为直接转发,并且在AP上配置了家乡代理经过三层漫游 以后,数据的转发流量走向是? STA-FAP-FAC-HAC-HAP-上层网络 BSTA-FAP-FAC-HAC-上层网络 STA-FAP-FAC-上层网络 STA-FAP-FAC-HAC-HAP-HAC-上…

IT廉连看——UniApp——样式绑定

IT廉连看——UniApp——样式绑定 一、样式绑定 两种添加样式的方法&#xff1a; 1、第一种写法 写一个class属性&#xff0c;然后将css样式写在style中。 2、第二种写法 直接把style写在class后面 添加一些效果&#xff1a;字体大小 查看效果 证明这样添加样式是没有问题的…

探索Vue 3 reactive()原理及其实现步骤

探索Vue 3 reactive()原理及其实现步骤 引言 Vue 3中引入的Composition API&#xff0c;以其强大的灵活性和可组合性&#xff0c;彻底改变了Vue应用的开发方式。在这场革新中&#xff0c;reactive()函数扮演了核心角色&#xff0c;它使得开发者能够轻松创建响应式对象&#x…

【提示学习论文】PMF:Efficient Multimodal Fusion via Interactive Prompting论文原理

Efficient Multimodal Fusion via Interactive Prompting&#xff08;CVPR2023&#xff09; 基于交互式提示的高效多模态融合方法减少针对下游任务微调模型的计算成本提出模块化多模态融合架构&#xff0c;促进不同模态之间的相互交互将普通提示分为三种类型&#xff0c;仅在单…

直接下拉的镜像,怎么确定镜像里面dockerfile的执行指令

如果您直接拉取了 Docker 镜像并且想要确定镜像中的执行指令&#xff0c;可以使用 docker image inspect 命令来查看镜像的详细信息&#xff0c;包括 CMD 和 ENTRYPOINT。 以下是查看 Docker 镜像中执行指令的步骤&#xff1a; 1. 首先&#xff0c;确保您已经拉取了想要检查的 …

Unity C#和安卓原生专题一 C#和Android Java交互

前言 C#和iOS Obj-C交互的方法&#xff0c;和Android交互也一样简单&#xff0c;主要是Unity提供了非常方便的辅助类&#xff0c;基本不需要和JNI打交道 一 、 C#中关于Android的几个基本概念 1.1 创建或获取类 第一种 new AndroidJavaClass()来创建 AndroidJavaClass jc …