语音识别(Speech Recognition)综述

文章目录

  • 1. 语音识别的基本单位
    • 1.1 Phoneme(音位,音素)
    • 1.2 Grapheme(字位)
    • 1.3 Word(词)
    • 1.4 Morpheme(词素)
    • 1.5 bytes
  • 2. 获取语音特征(Acoustic Feature)
  • 2. 语音识别的网络结构
  • 3. 语音识别模型
    • 3.1 LAS(Listen, Attend, and Spell)
      • 1. down sampling(下采样)
      • 2. Beam search
      • 3. LAS 中的 Attention
      • 4. Location-aware attention
      • 5. LAS 训练过程
        • teacher forcing
      • 6. LAS的局限
    • 3.2 CTC(Connectionist Temporal Classification)
    • 3.3 RNN-T(RNN Transducer)
    • 3.4 Neural Transducer
    • 3.4 (MoCha)Monotonic Chunkwise Attention
    • 3.5 几种seq2seq语音识别模型的区别

1. 语音识别的基本单位

1.1 Phoneme(音位,音素)

a unit of sound 是声音的最基本单位,每个词语token的声音由多个 phoneme 组成

1.2 Grapheme(字位)

smallest unot of a writing system 每个单词书写最基本的单位,简单来说:
英文的grapheme可以认为是词缀, 由 [26个英文字母 + 空格 + 标点符号]组成
中文的grapheme是汉字

1.3 Word(词)

英文可以用单词作为语音识别的最基本单位,但包括中文在内的很多语言无法使用word作为最基本的单位(word数量太过于庞大,word之间难于分隔等)

1.4 Morpheme(词素)

the smallest meaningful unit 类似英文单词中词缀

1.5 bytes

用byte的序列来表示计算机中的每个字符(比如使用utf-8对字符编码),用用byte作为语音识别的基本单位可以让是识别系统将不同的语言统一处理,和语言本身无关,英文上叫 The system can be language independent

2. 获取语音特征(Acoustic Feature)

获取语音特征的方法从难到易依次是:

waveform -> spectrogram -> filter bank output -> MFCC
在这里插入图片描述

2. 语音识别的网络结构

语音识别的结构一般可以分为两种,一种是直接输出 word embedding(feature base);一种将语音识别模型和和其他模型相组合的end2end结构,如:speech recognition + 翻译模型、speech recognition + 分类模型、speech recognition + Slot filling模型,这里主要分析这一种类型

3. 语音识别模型

主流的语音模型总体上可以分为seq2seq结构和HMM结构,而seq2seq结构有LAS、CTC、RNN-T、Neural Transducer、MoChA等

3.1 LAS(Listen, Attend, and Spell)

LAS网络是一个 seq2seq的结构(encoder-decoder),其中:

  1. Listen(encoder) 部分可以使用多种网络结构,主要作用是进行注意力机制和过滤噪声等工作,encoder可以是CNN、LSTM、BILSTM、CNN+RNN、Self-Attention或多层上述的组合结构等
  2. Attend 就是一般的Attention结构,由encoder的输出和decoder(RNN)上一时刻的输入变换后经过点乘或相加得到,如下图所示
  3. Spell(decoder )一般是RNN(LSTM)结构,这部分可以认为是模型中的 Language Model,因此LAS可以不在模型之后添加其他的Language Model,但是后再在接一个Language Model 会得到更好的效果

注意:Attend中的 Attention 和 encoder 中的 Self-Attention 没有关系

  • encoder 中的 Self-Attention 用来对输入数据去噪同时提取有效数据
  • Attend 中的 Attention 用来得到当前时刻encoder和decoder之间的语义向量(content vector)

在这里插入图片描述
LAS过程:

  1. encoder端将输入数据转化为高维隐层嵌入
  2. Attention过程:将 decoder上一时刻的输出和 encoder 的每个输出分别做 match 得到每个encoder输出的权重参数 a i a_i ai ,然后对 a i a_i ai 进行softmax,最后将 a i a_i ai 作为权重对 h i h_i hi 进行加权求和得到语义变量 c i c_i ci
  3. c i c_i ci 作为decoder(RNN)当前时刻的输入传入decoder,并将decoder结果作为LAS当前时刻的输出返回

在这里插入图片描述
在 LAS 中,常用以下技术来优化模型性能

1. down sampling(下采样)

因为语音识别的数据量很大,因此在LAS的 encoder 内往往需要对数据进行下采样的操作,从而降低数据维度,在RNN中,一般使用如下两种方式进行下采样:

  • 合并第一个RNN的输出(两个和并为1个)然后传入第二个RNN
  • 在第一个RNN的输出中选择部分输出传入第二个RNN
    在这里插入图片描述

对于TCNN,可以使用上左图的方式进行下采样操作:
一般的TCNN网络会读取整个范围内所有序列的数据,但是为了减少数据量,我们可以只输入序列的开始和结束的 embedding

对于 Self-Attention,为了减少数据量,我们可以只对一定范围内的序列数据进行 attention,如上右图所示,对于输入 x 3 x_3 x3,只对其周围的 x 2 x_2 x2 x 4 x_4 x4 进行 Attention

2. Beam search

下边使用一个例子来说明 Beam search 的过程
假如 token 的个数为2,分别为A和B,同时序列长度为3,我们可以使用下图来展示语音识别的整个过程:

对于第一个token,识别为A的概率是0.6,B的概率是0.4,我们将三个token识别出来的所有可能展示出来就如下图所示;如果每次我们都选择概率最大的token,我们会得到红色路径代表的结果,但是如果我们第一次没有选择概率最大的A,而是选择了B,那么我们会得到绿线代表的结果,我们发现绿线的结果反而更好;因此我们可以同时选择多条路线同时预测,最后选择效果最好的结果返回,其实这就是 beam search的思想,其中 beam size 就代表同时进行的路线数量
在这里插入图片描述

3. LAS 中的 Attention

LAS中的Attention可以有两种形式:

  • 一种是上文提到的,将decoder的当前时刻隐含层数据 z t z^t zt在encoder的输出 h i h^i hi上做Attention,并将此生成的语义变量 c t c^t ct作为下一时刻decoder(RNN)的输入;

  • 一种是将decoder的当前时刻隐含层 z t z^t zt和在encoder的输出上做Attention,并将此生成的语义变量和当前时刻的隐含层 z t z^t zt作为当前时刻decoder(RNN)的输入放入RNN中

这两种注意力的区别在,注意力得到的结果是下一个时间使用还是当前时间使用。第一篇拿Seq2Seq做语音识别的论文,用的是二者的合体版本。
在这里插入图片描述

4. Location-aware attention

Location-aware attention 在计算每个 h i h^i hi的权重时, 不仅考虑 z i z^i zi h i h^i hi,同时将上一时刻得到的部分权重;之所以是部分权重是因为只考虑上一时刻 h i h^i hi邻域内的权重,具体实现方式可以参考下图

在这里插入图片描述

5. LAS 训练过程

我们用 one-hot 编码来表示每个token, 同时计算模型输出和正确token one-hot编码的交叉熵,使模型输出的结果逐步接近正确token的one-hot编码,如下图所示:
在这里插入图片描述

teacher forcing

但是,有一点需要注意,在decoder端,我们并不会将上一时刻的输出作为当前时刻的输入,而是将上一时刻正确的token作为当前时刻输入,
如下图所示,当我们要预测cat中的a时,我们并关心上一时刻(第一个token)得到什么结果,而是直接将上一时刻的正确结果 c 作为当前时刻decoder的输入 这个训练方式叫做 teacher forcing
在这里插入图片描述

6. LAS的局限

由于LAS是seq2seq结构,而seq2seq结构需要将整个输入序列编码成一个语义向量,要得到整个输入序列之后才能开始输出第一个token,因此无法实现在线学习,或者说是在线语音识别

3.2 CTC(Connectionist Temporal Classification)

和LAS相比,CTC能够实现实时识别的功能,CTC模型的基本结构如下图所示:
在这里插入图片描述
首先,模型先通过一个encoder结构将输入的token转化为一个高维隐层嵌入,然后对于每一个token的输出使用一个分类器(全连接网络)进行分类,最终的到每个token对应的预测结果;虽然CTC网络没有Attention机制,但encoder往往使用LSTM网络,从而每个token也能够得到上下文的信息;CTC会遇到如下两个问题:因为 CTC模型的输入是音位,因此多个相邻的token可能出现重复或者某个token的输出为空的情况:

  1. 当某个token没有合适的输出时,我们输出 ∅ ∅ ,并在最后将输出结果中的 ∅ ∅ 符号删除;
  2. 当多个相邻token对应的输出重复时,我们会在最后将多个重复的输出结果合并

同样因为 CTC模型的输入是音位,因此我们无法准确的到每个序列对应的标签,以下边的例子为例,同样对于好棒这个语音的音位序列,他的标签可以是下边标签的任意一个,问题是我们要用哪一个做为这个语音序列的标签呢?CTC其实是用到了下边的所有标签,原理这里暂且不做讲解
在这里插入图片描述

3.3 RNN-T(RNN Transducer)

在认识 RNN-T之前,首先要认识一下RNA(Recurrent Neural Aligner)网络;前边我们了解了CTC网络,RNA网络就是将CTC中encoder后的多个分类器换成了一个RNN网络,使网络能够参考序列上下文信息

在这里插入图片描述
RNN-T 网络在RNA网络的基础上使每个输入token可以连续输出多个结果,当每个token输出符号 ∅ ∅ 时,RNN网络再开始接受下一个 token,具体过程如下图所示:
在这里插入图片描述
其实,在RNN-T中,RNN网络的的输出并不是简单的将上一时刻的输出作为当然时刻的一个输入,而是将上一时刻的输出放入一个额外的RNN中,然后将额外RNN的输出作为当前时刻的一个输入;这个额外的RNN可以认为是一个语言模型,可以单独在语料库上进行训练,因为在一般的语料库上并不包含 ∅ ∅ 符号,因此这个额外的RNN网络在训练时会忽略符号 ∅ ∅
在这里插入图片描述

3.4 Neural Transducer

和RNA、CTC、RNN-T不同,Neural Transducer 每次接受多个输入,并对这些输入做Attention,然后得到多个输出的语音识别模型;

和 LAS 对整个输入序列做 Attenton不同,Neural Transducer只对窗口内的多个输入做attention
Neural Transducer 模型结构如下图所示:
在这里插入图片描述
Neural Transducer 中 Attention 的实现方式在网上没有找到明确的说明,这里以后做补充

3.4 (MoCha)Monotonic Chunkwise Attention

MoCha 是一个窗口可变的语音识别模型,和 Neural Transducer 最大的区别是MoCha每次得到的窗口大小可以动态变化,每次的窗口大小是模型学习的一个参数;同时因为MoCha的窗口动态可变,因此MoCha的decoder端每次只输出一个token,MoCha模型结构如下图所示:

在这里插入图片描述

3.5 几种seq2seq语音识别模型的区别

在这里插入图片描述

模型Attention输入输出编码器解码器是否支持实时识别
LAS对整个序列 Attention每次输入整个序列每次输出一个TokenCNN、RNN、Self-Attention等LSTM
CTC单个Token每个分类器输出一个Token单向LSTM每个token对应一个独立的分类器
RNA单个Token单个Token单向LSTMLSTM
RNN-T单个token多个Token单向LSTM两个LSTM
Neural Transducer对同一窗口内的token做Attention多个Token(窗口大小固定)多个token单向LSTM两个LSTM
MoCha对同一窗口内的token做Attention多个Token(窗口大小动态)单向LSTM一个窗口输出一个Token两个LSTM

下一篇文章将介绍 HMM+GMM 语音识别模型的基本原理->#透彻理解# GMM+HMM 语音识别模型过程

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

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

相关文章

语音识别(一)——概述

概述 虽然现在的语音识别中,DL已经应用的非常广泛了,但是语音识别终究还是有一些领域知识的,将之归类为DL或者ML,似乎都不妥当。特形成本系列文章,用以描述automatic speech recognition的领域知识和传统方法。 说起…

语音识别 特征提取(一)

一.语音的产生简介 1.1 发音器官 人体的语音是由人体的发音器官在大脑的控制下做生理运动产生的。人体发音器官由三部分组成:肺和气管、喉、声道。 肺是语音产生的能源所在。气管连接着肺和喉,是肺与声道的联系通道。喉是由一个软骨和肌肉…

语音识别概述

我的书: 淘宝购买链接 当当购买链接 京东购买链接 #语音识别概述 语音识别问题就是模式分类问题。 一个基本的语音识别系统如下图,实现是正常工作流程,虚线是训练模式分类问题中的模板(这里就是声学模型,字典和语言模型)。 图1语音识别系统组件关系图 语音识别是把语音…

初探语音识别技术

语音识别 语音识别根据实际需求的不同也会有所不同。目前主要追求大词汇量、连续、非特定人。 语音识别主流开源框架:HTK、Kaldi、CMUSphinx。 因为目前只接触了Sphinx,对于另外两个框架没有太深入研究。 1)Kaldi适用于在服务器搭建的语音识…

语音识别技术

语音识别技术,也被称为自动语音识别(Automatic Speech Recognition,ASR)。语音识别技术就是以语音为研究对象,让机器通过自动识别和理解过程把语音信号转变为相应的文本或命令的技术。涉及多种交叉学科,如声…

语音识别之语音特征提取一

语音识别的第一步就是语音特征提取,语音信号是在人体中肺、喉、声道等器官构成的语音产生系统中产生的,它是一个高度不平稳的信号,它的幅度谱和功率谱也随着时间不停的变化,但是在足够短的时间内,其频谱特征相当平稳&a…

语音识别发展综述

语音识别自半个世纪前诞生以来,一直处于不温不火的状态,直到2009年深度学习技术的长足发展才使得语音识别的精度大大提高,虽然还无法进行无限制领域、无限制人群的应用,但也在大多数场景中提供了一种便利高效的沟通方式。本篇文章…

Attention在语音识别中的应用(1)

从2014年Attention mode在机器翻译或起来以后,attention model逐渐在语音识别领域中应用,并大放异彩。因此本篇文章就对Attention进行总结和说明。 首先要确定的是Attention是一种权重向量或矩阵,其往往用在Encoder-Decoder架构中&#xff0…

说话人性别识别——语音检测初探

目录 一、任务背景和分析 二、特征抽取 librosa wave torchaudio 三、数据集 commonvoice [ 中文] 四、模型训练 1、频域信号LSTM2DCNN 2、频域信号2DCNN 3、时域信号1DCNN 一、任务背景和分析 公司有项目需求,需要识别语音信号是男女性别以及是否是彩铃…

chatgpt赋能python:Python短信群发:如何优化短信营销?

Python短信群发:如何优化短信营销? 短信营销是一种广泛用于促进业务和品牌认可度的营销策略。随着移动设备的普及以及人们越来越依赖手机,短信营销的有效性也在不断提高。在短信营销中,最大的优势之一是短信可以迅速传递到用户的…

chatgpt赋能python:Python就业前景分析

Python就业前景分析 1. Python简介 Python是一种简单易学、操作灵活、功能丰富的高级编程语言。它被广泛应用于人工智能、大数据分析、网络爬虫、自动化测试、Web开发、游戏开发等众多领域。Python的开发者们致力于让Python语言能够简单、易读、易学,适用于各种领…

由 ChatGPT 带来的对低代码产品的思考

在之前的文章中多次提到我们在开发一款低代码平台,主要面向 ToB 企业,帮助企业完善信息化建设,给企业的数字化转型贡献一份力量。 数字化转型的目标是降本增效,同样,效率对我们来说也至关重要,主要体现在&a…

内容安全策略 Content-Security-Policy

一、作用: 1、限制资源获取:限制网页当中一系列的资源获取的情况,从哪里获取,请求发到哪个地方 限制方式: default-src限制全局的和链接有关的作用范围 根据资源类型(connect-src、img-src等&#xff0…

记一下怎样关闭windows defender安全中心

Win10系统中自带Windows Defender杀毒软件,有些用户非常排斥,其一是扫描的频率太高,占用大量CPU。其二是有些文件不经过任何提示就直接删除。那么如何彻底关闭windows defender安全中心。 第一步:首先按winR,输入gped…

ICML 2023禁止使用大型语言模型写论文!LeCun转发:中小型模型可以用吗?

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>Transformer微信技术交流群 转载自:新智元 | 编辑:昕朋 David 【导读】AI顶会ICML征稿日在即,关于道德准则的新政策却引来网友不满&#x…

英文论文润色哪家好用比较好,有值得推荐的吗

英文论文润色 推荐 英文论文润色对于写作者来说是一项十分重要的任务,它可以帮助我们修改文章中的语法、标点和排版等问题,使论文更加准确和易读。在众多的英文润色软件中,147chatgpt改写润色软件是一款值得推荐的全自动批量图文润色、自动纠…

chatgpt赋能python:Python爬取电影简介

Python 爬取电影简介 随着互联网技术的逐步普及,越来越多的人已经建立了自己的个人网站或博客,而如何让自己的网站获得更好的 SEO 排名,吸引更多的流量就成了一个非常重要的问题。其中,内容的质量和数量是关键的,而提…

文案修改软件哪个好,AI模型有哪些?

文案修改软件哪个好?ChatGPT是一个聊天机器人,要想从产品形态上复现其实并不困难,过去的苹果Siri、微软小冰、各个平台的客服机器人都是类似形态。但ChatGPT与它们真正拉开差距,从“人工智障”到“人工智能”的关键一跃&#xff0…

目标检测算法——YOLOv5/YOLOv7改进|将IOU Loss替换为EIOU Loss

&#x1f496;&#x1f496;>>>加勒比海带&#xff0c;QQ2479200884<<<&#x1f496;&#x1f496; &#x1f340;&#x1f340;>>>【YOLO魔法搭配&论文投稿咨询】<<<&#x1f340;&#x1f340; ✨✨>>>学习交流 | 温澜潮…

目标检测算法——助力涨点 | YOLOv5改进结合Alpha-IoU

深度学习Tricks&#xff0c;第一时间送达 论文题目&#xff1a;《Alpha-IoU: A Family of Power Intersection over Union Losses for Bounding Box Regression》 论文地址&#xff1a; https://arxiv.org/abs/2110.13675v2 1.论文简介&#xff1a; 文中&#xff0c;作者将…