语音识别的基本概念

语音识别的基本概念​​​​​​​

​​​​​​​

言语是一种复杂的现象。人们很少了解它是如何产生和感知的。天真的想法常常是语音是由单词构成的,而每个单词又由音素组成。不幸的是,现实却大不相同。语音是一个动态过程,没有明确区分的部分。找一个声音编辑器并查看演讲录音并聆听它总是很有用的。例如,这是音频编辑器中的语音录音。

波形

所有现代的言语描述在某种程度上都是概率性的。这意味着单位之间或单词之间没有特定的界限。语音到文本的翻译和其他语音应用从来都不是 100% 正确的。对于通常使用确定性系统的软件开发人员来说,这个想法相当不寻常。它产生了许多仅针对语音技术的问题。

言语结构

在目前的实践中,语音结构的理解如下:

语音是连续的音频流,其中相当稳定的状态与动态变化的状态混合在一起。在这一系列状态中,人们可以定义或多或少相似的声音类别或音素。人们认为文字是由电话构成的,但这肯定不是事实。与电话相对应的波形的声学特性可能会因许多因素而有很大差异 - 电话环境、说话者、讲话风格等。所谓的协同发音使手机听起来与其“规范”的表现截然不同。接下来,由于单词之间的转换比稳定区域提供更多信息,因此开发人员经常谈论双音素- 两个连续电话之间的电话部分。有时开发人员会谈论亚音位单元 - 手机的不同子状态。通常可以找到三个或更多不同性质的区域。

数字三很容易解释:电话的第一部分取决于其前一个电话;中间部分稳定,接下来就看后续手机了。这就是为什么选择用于语音识别的手机通常具有三种状态的原因。

有时,电话是在上下文中考虑的。这种音素在上下文中被称为 三音素甚至五音素。例如,单词“bad”中带有左音素“b”和右音素“d”的“u”听起来与单词中带有左音素“b”和右音素“n”的同一个音素“u”听起来有点不同。 “禁止”。请注意,与双音素不同,它们的波形范围与普通音素相同。它们只是名称不同,因为它们描述的声音略有不同。

出于计算目的,检测三音素的部分而不是整个三音素很有帮助,例如,如果您想为三音素的开头创建一个检测器并在许多三音素之间共享它。声音检测器的全部种类可以用少量不同的短声音检测器来表示。通常我们使用4000个不同的短声检测器来组成三音素检测器。我们将这些探测器称为“senone”。senone 对上下文的依赖可能比左右上下文更复杂。它可以是由决策树或其他方式定义的相当复杂的函数。

接下来,手机构建子词单元,例如音节。有时,音节被定义为“还原稳定实体”。例如,当语音变快时,电话经常会改变,但音节保持不变。此外,音节与语调轮廓相关。还有其他方法可以构建子词 - 基于形态(在形态丰富的语言中)或基于语音。子词经常用于开放词汇语音识别。

子词形成单词。单词在语音识别中很重要,因为它们极大地限制了电话的组合。如果有 40 个音素,平均一个单词有 7 个音素,则必须有 40^7 个单词。幸运的是,即使是词汇量丰富的人在实践中也很少使用超过 20k 的单词,这使得识别方式更加可行。

单词和其他非语言声音,我们称之为填充词(呼吸、嗯、呃、咳嗽),形成话语。它们是暂停之间的独立音频块。它们不一定与句子匹配,句子是更多语义概念。

除此之外,还有一些对话行为,例如轮流,但它们超出了本文档的目的。

识别过程

识别语音的常见方法如下:我们获取一个波形,将其按静音分开,然后尝试识别每个话语中所说的内容。为此,我们希望采用所有可能的单词组合并尝试将它们与音频进行匹配。我们选择最佳的匹配组合。

在这个匹配过程中有一些重要的概念。首先是特征的概念。由于参数数量较多,我们正在尝试对其进行优化。根据语音计算得出的数字,通常通过将语音划分为帧来计算。然后,对于每帧(通常长度为 10 毫秒),我们提取代表语音的 39 个数字。这就是所谓的特征向量。生成参数数量的方法是一个积极研究的主题,但在简单的情况下,它是频谱的导数。

其次,是模型的概念。模型描述了一些收集口语单词的共同属性的数学对象。实际上,对于 senone 的音频模型,它是三个状态的高斯混合 - 简而言之,它是最可能的特征向量。从模型的概念来看,存在以下问题:

  • 该模型对现实的描述效果如何,
  • 考虑到模型的内部问题以及模型是否可以做得更好
  • 如果条件发生变化,模型的适应性如何

语音模型称为隐马尔可夫模型或 HMM。它是描述黑盒通信通道的通用模型。在该模型中,过程被描述为以一定概率相互改变的一系列状态。该模型旨在描述任何顺序过程,例如语音。HMM 已被证明对于语音解码确实非常实用。

第三,它本身就是一个匹配过程。由于将所有特征向量与所有模型进行比较所需的时间比宇宙存在的时间更长,因此通常通过应用许多技巧来优化搜索。在任何时候,我们都会维护最佳匹配变体,并随着时间的推移扩展它们,为下一帧生成最佳匹配变体。

楷模

根据语音结构,语音识别中使用了三种模型进行匹配:

声学模型包含每个声学的声学属性。有包含属性(每个音素最可能的特征向量)的上下文无关模型和上下文相关模型(由具有上下文的 senone 构建)。

语音词典包含从单词到音素的映射。这种映射不是很有效。例如,其中只注明了两到三个发音变体。然而,大多数时候它足够实用。字典并不是将单词映射到音素的唯一方法。您还可以使用通过机器学习算法学习的一些复杂函数。

语言模型用于限制单词搜索。它定义了哪个单词可以跟在先前识别的单词之后(请记住,匹配是一个顺序过程),并通过剥离不可能的单词来帮助显着限制匹配过程。最常见的语言模型是n-gram语言模型;这些包含单词序列的统计数据以及有限状态语言模型;这些通过有限状态自动化定义语音序列,有时带有权重。为了达到良好的准确率,您的语言模型必须在搜索空间限制方面非常成功。这意味着它应该非常擅长预测下一个单词。语言模型通常将所考虑的词汇限制为其包含的单词。这就是名字识别的问题。为了解决这个问题,语言模型可以包含更小的块,例如子词甚至音素。

这三个实体在一个引擎中组合在一起来识别语音。如果您要将引擎应用于其他语言,则需要将此类结构落实到位。对于许多语言,都有声学模型、语音词典,甚至大词汇量语言模型可供下载。

使用的其他概念

格子是表示识别变体的有向图通常,获得最佳匹配是不切实际的。在这种情况下,点阵是表示识别结果的良好中间格式。

N 最佳变体列表就像格子,尽管它们的表示不如格子那么密集。

单词混淆网络(香肠)是格子,其中严格的节点顺序取自格子边缘。

语音数据库- 任务数据库中的一组典型录音。如果我们开发一个对话系统,它可能是用户录制的对话。对于听写系统,它可能正在阅读录音。语音数据库用于训练、调整和测试解码系统。

文本数据库- 为语言模型训练等而收集的样本文本。通常,文本数据库以样本文本形式收集。这种集合的问题是将现有文档(如 PDF、网页、扫描件)放入语音文本形式。也就是说,您需要删除标签和标题,将数字扩展为其口语形式,并扩展缩写。

优化了什么

当开发语音识别时,最复杂的问题是使搜索精确(考虑尽可能多的变体来匹配)并使其足够快而不会运行很长时间。由于模型并不完美,另一个挑战是使模型与语音相匹配。

通常,系统在测试数据库上进行测试,该数据库旨在正确表示目标任务。

使用以下特征:

单词错误率:假设我们有一个原始文本和一个长度为N 个单词的识别文本。I是插入的单词数。D是删除的单词数,S表示替换的单词数。据此,错误率可以计算为

WER = (I + D + S) / N

WER 通常以百分比来衡量。

准确率:与误词率几乎相同,但不考虑插入。

准确度 = (N - D - S) / N

对于大多数任务来说,准确性比 WER 更差,因为插入对于最终结果也很重要。然而,对于某些任务,准确性是解码器性能的合理衡量标准。

速度:假设音频文件的录制时间 (RT) 为 2 小时,解码需要 6 小时。那么速度算作3xRT。

ROC 曲线:当我们谈论检测任务时,存在误报和命中/未命中的情况。为了说明这些,使用了ROC曲线。这样的曲线是描述误报数量与命中数量的关系图。它试图找到误报数量很少且命中数量匹配 100% 的最佳点。

还有其他属性通常不被考虑,但对于许多实际应用仍然很重要。您的首要任务应该是建立这样的措施并在系统开发过程中系统地应用它。您的第二个任务是收集测试数据库并测试应用程序的性能。

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

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

相关文章

Baidu comate智能编程助手评测

Baidu comate智能编程助手评测 作者:知孤云出岫 目录 一. 关于comate产品 二. 关于comate产品体验 三. 关于实际案例. 四. 关于baidu comate编程助手的实测体验感悟 五. …

如何快速申请SSL证书实现HTTPS访问?

申请SSL证书最简单的方法通常涉及以下几个步骤,尽量简化了操作流程和所需专业知识: 步骤一:选择适合的SSL证书类型 根据您的网站需求,选择最基础的域名验证型(DV SSL)证书,它通常只需验证域名所…

从 MySQL 到 ClickHouse 实时数据同步 —— Debezium + Kafka 表引擎

目录 一、总体架构 二、安装配置 MySQL 主从复制 三、安装配置 ClickHouse 集群 四、安装 JDK 五、安装配置 Zookeeper 集群 六、安装配置 Kafaka 集群 七、安装配置 Debezium-Connector-MySQL 插件 1. 创建插件目录 2. 解压文件到插件目录 3. 配置 Kafka Connector …

Profinet转Modbus网关接称重设备与1200PLC通讯

Profinet转Modbus网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备。Profinet转Modbus网关可提供单个或多个RS485接口,使用Profinet转Modbus网关将称重设备与西门子1200 PLC进行通讯,可以避免繁琐的编程和配…

XY_RE复现(二)

一,何须相思煮余年 0x55 0x8b 0xec 0x81 0xec 0xa8 0x0 0x0 0x0 0xa1 0x0 0x40 0x41 0x0 0x33 0xc5 0x89 0x45 0xfc 0x68 0x9c 0x0 0x0 0x0 0x6a 0x0 0x8d 0x85 0x60 0xff 0xff 0xff 0x50 0xe8 0x7a 0xc 0x0 0x0 0x83 0xc4…

YOLOv8+PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)

1.效果视频:YOLOv8PyQt5输电线路缺陷检测(目前最全面的类别检测,可以从图像、视频和摄像头三种路径检测)_哔哩哔哩_bilibili 资源包含可视化的输电线路缺陷检测系统,可识别图片和视频当中出现的五类常见的输电线路缺陷…

Virtualbox7.0.10--在虚拟机中安装Ubuntu20.04

前言 下载Virtualbox7.0.10,可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤,可参考《Virtualbox7.0.10的安装步骤》 Virtualbox7.0.10创建虚拟机,可参考《Virtualbox7.0.10–创建虚拟机》 Virtualbox7.0.10安装Ubuntu20.0…

随机链表的复制

链接:138. 随机链表的复制 - 力扣(LeetCode) /*** Definition for a Node.* struct Node {* int val;* struct Node *next;* struct Node *random;* };*/struct Node* copyRandomList(struct Node* head) { //用cur记录head结点//创建新节…

Elasticsearch:崭新的打分机制 - Learning To Rank (LTR)

警告:“学习排名 (Learning To Rank)” 功能处于技术预览版,可能会在未来版本中更改或删除。 Elastic 将努力解决任何问题,但此功能不受官方 GA 功能的支持 SLA 的约束。 注意:此功能是在版本 8.12.0 中引入的,并且仅适…

想要更高效沟通?立即掌握微信自动回复技巧!

你是不是也遇到过繁忙的情况,无法及时回复好友或客户的消息,影响了沟通效率和用户体验。不用担心,微信管理系统可以帮助我们提升沟通效率,并设置微信自动回复来解决这个问题。 1、自动通过好友 微信管理系统可以帮助我们自动通过…

Oracle 执行计划

1.执行计划 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。 执行计划描述了SQL引擎为执行SQL语句进行的操作;分析SQL语句相关的性能问题或仅仅质疑查询优化器的决定时,必须知道执行计划;所以执行计划常用于sql调优。 2.查…

生活服务推出品牌实惠团购,覆盖五一假期“吃喝玩乐”多场景

4月26日,抖音生活服务平台上线“跟着大牌过五一”活动会场,携手22家连锁品牌商家,于“五一”前推出优价团购和时令新品,覆盖“吃喝玩乐”多重购物需求,助力假期消费。同时,伴随各地涌现的文旅热潮&#xff…

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数

问题预览/关键词 本节课内容逻辑回归的损失函数简化之后的形式是?为什么可以简化?成本函数的通用形式是?逻辑回归成本函数的最终形式是?逻辑回归为什么用对数损失函数计算成本函数?为什么不直接给出逻辑回归损失函数的…

mysql使用.idb文件恢复数据

1、把.idb文件拷贝到mysql数据库的data文件夹的对应的数据库里(mysql的目录结构一般是/mysql/data/数据库名称) 2、使用命令查看当前文件夹下所有.idb文件的权限(以下是查看所有文件详情的命令) ll 效果图: 我这里其…

配置nodejs的俩小脚本

介绍:共两个脚本。 脚本1,用来配置环境变量,生成环境变量所需的配置信息,然后自己添加到系统环境变量里去 特别注意:该脚本需要放到nodejs目录下面,如果不是,则无法生成环境变量配置文本内容 另…

leetcode1143. 最长公共子序列(ACM模式解法)

题目描述 给你一个序列X和另一个序列Z&#xff0c;当Z中的所有元素都在X中存在&#xff0c;并且在X中的下标顺序是严格递增的&#xff0c;那么就把Z叫做X的子序列。 例如&#xff1a;Z是序列X的一个子序列&#xff0c;Z中的元素在X中的下标序列为<1,2,4,6>。 现给你两个…

人形机器人核心架构梳理

定义&#xff1a;机器人是能进行运动、操纵或定位且具有一定程度自主能力的可编程执行机构。按外在形态分类可分为传统机器人和人形机器人&#xff0c;其中人形机器人是一种利用人工智能和机器人技术制造的具有类似人类外观和行为的机器人。 人形机器人发展历程&#xff1a; 人…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容&#xff0c;Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion&#xff0c;是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布&#xff0c;主要用于根据文本的描述产生详细图像&…

华院计算登榜『2024福布斯中国人工智能科技企业TOP 50』

4月28日&#xff0c;福布斯中国正式发布“2024福布斯中国人工智能科技企业TOP 50”榜单。华院计算凭借其在人工智能领域的卓越成就与深远影响力&#xff0c;荣膺殊荣&#xff0c;成功跻身榜单。 工业和信息化部2024年4月表示&#xff0c;中国人工智能企业数量已超过4,500家。AI…

图搜索算法详解:广度优先搜索与深度优先搜索的探索之旅

图搜索算法详解&#xff1a;广度优先搜索与深度优先搜索的探索之旅 1. 广度优先搜索&#xff08;BFS&#xff09;1.1 伪代码1.2 C语言实现 2. 深度优先搜索&#xff08;DFS&#xff09;2.1 伪代码2.2 C语言实现 3. 总结 图搜索算法是计算机科学中用于在图结构中查找路径的算法。…