让你早2小时下班的秘密,都在这节课里 | 新课来了

让你早2小时下班的秘密,都在这节课里

加班加点,已然成为很多职场同学的生活日常。尤其是遇到几个小时候的会议,光是整理会议记录就能让人加班到零点,1个小时的讲话内容整理起来却能耗费3-4小时的时间,然后很多会议都是3小时起步的……

1

今天班主任就要给大家介绍一项重要的智能语音能力——语音转写,能够实现语音内容的识别,展现对应文字内容,会议3小时,出稿30分钟,让同学们每天早2小时下班~(毕竟我们的愿望是可以和东山结衣一样,到!点!就!下!班!)

2

温馨提示:本节课程文字内容较多,阅读需要12分钟~

👇👇👇

3

一、语音转写的本质

语音转写本质上是统计模式识别,对于给定的观察序列O ={o1, o2, · · · , oT },可以采用贝叶斯决策的最大后验概率(MAP)判决来得到最可能的输出序列W∗,其公式表达如下:

4

通过贝斯公式可以把上述公式转变为下列公式:

5

语音转写技术栈里包含了多种技术,比如神经网络这一块,有Bilstm双向神经网络以及dnn模型,LSTM模型cnn模型,还有wfst以及decoder解码器等。

6

语音转写流程大概有以下几个步骤:

  • 首先输入语音信号进来,然后经过降噪、端点检测、特征提取,这些部分可以认为是前端处理模块;
  • 经过前端处理,得到特征之后,就可以进入识别过程,识别过程中用到了两个模型,一是声学模型,一是语言模型;
  • 结合声学模型语言模型,在解码器中进行识别解码的过程,得到相应的识别结果;
  • 然后将识别结果经过一些文本处理相关操作,最终得到识别结果。

这其中还包含了一个训练过程,离线训练的时候,将提取到的语音特征,送到模型训练模块去进行离线训练,得到声学模型以及语言模型。

二、语音转写相关技术

下面我们来看一下前端处理、识别过程、后处理这几大块的相关技术。

前端处理

前端处理模块主要是将接收到语音信号进行预处理,增强或降噪等。

加窗分帧

对于预处理后的语音波形信号,首先需要进行加窗和分帧操作。 通常采用 25ms 的汉明窗,窗移为 10ms。这样整段的语音波形就会被分割成很多带有重叠的 25ms 的小语音片段,然后再使用合适的声学特征提取算法从 25ms 的语音片段中提取相应的声学特征。

7

声学特征

好的声学特征不仅需要具有很强的区分特性,可以很好地表达不同音素之间的差异性,而且还需要具有很好的鲁棒性,不受噪音环境的干扰。

通过分析人类听觉系统的时频分析特征和听觉掩蔽效应,研究人员提出了多种不同的声学特征。

下列表格列了一些常见的声学特征,以及它们相关的应用场景。

8

VAD

VAD是Voice Activity Detection 的简称,语音活动检测,又称端点检测。是在一段音频信号中对语音信号和非语音信号(包括无声段或背景噪声)进行划分,提取语音信号部分的一个过程。

它主要作用是要提把已接收到一段语音信号提取有效的音频段,减少噪音的干扰。其实它既减少了噪音的干扰,也减少了语音识别过程中的计算量。

目前VAD常用的都是一些模型方案,比如DNN模型,输入每一帧音频的特征,预测这一帧到底是有效语音还是非有效语音。

三、声学模型计算

下面我们讲一下声学模型的计算。首先同学们想一想声学模型计算到底是在计算什么?

对于每一个可能的词序W,计算出条件概率P(O|W),即我们通常所说的AC score。

O可以认为是一个发音信息,在输入W条件下输出O的一个概念,也就是说每一帧的语音对应的是到底是什么音素。

常见的有单音素模型,单音素模型没有考虑本音素前后音素对本音素的影响;还有三音素素模型,它考虑到上下文的因素,是现在最常用的一个声学建模单元式。

9

声学模型计算的主要任务是判断每一帧语音属于什么音素,以上面图谱为例,声学模型其实要判断哪一帧是静音sil,哪些帧是声母zh,哪些帧是韵母ong等。

按模式识别的套路,先提取出特征,再建立分类模型。

FFT将时域转换到频域,因为频域对音素具有更好的区分能力,接下来我们将频域特征经过mel滤波器,主要是模拟人耳听音,这样就得到了代表一帧语音的特征向量。

接下来可以使用前馈神经网络,输入为mel filterbank特征,输出可以为音素或其它建模单元。

按这个框架是不是就解决了语音识别中的声学建模问题呢?显然不是,因为语音是典型的时序序列信号,不同的人说同样的音,或同样的音在不同的上下文中时长是不一样的。每一帧都得到一个音素,但相邻帧可能是不同的音素,这样最后会得到一堆乱七八糟的音素序列,很难形成自然的文字序列。

基于HMM-GMM框架

怎么解决这个问题呢,第一代语音识别使用HMM-GMM技术框架

首先,将建模单元从音素退化到状态,即一个音素有3-5个状态构成;对一个音素而言,只有从起始状态跳转到结束状态,一个音素才算识别结束。

其次,我们用HMM模型来建模状态跳转概率,可以看这幅图中是ue2这个音素的HMM单元;我们将音素的中间状态设计成可以自跳转,从而解决了同一个音素在不同的上下文时长不同的问题。

10

最后,我们用GMM建模状态输出概率,HMM-GMM模型在语音识别历史上起到了重要作用,对语音识别的实用化至关重要。

基于HMM-DNN框架

第二代框架仍使用HMM建模状态转移概率,但使用DNN替换GMM模型。在GMM模型框架下,不同的状态采用不同的模型来建模,在DNN框架下,所有的状态采用同一个模型来建模,也就是所有的状态共享一个输出层。

11

这样做有3个好处:

  • GMM是local的表达,DNN是分布式表达;意思是当训练音素A时,使用GMM只能用A的所有数据,使用DNN既可以用A的数据,也可以用A的反例数据;这么做使得DNN模型的区分能力更强;
  • GMM模型因为计算复杂度的原因需要帧独立性假设,这显然是不符合语音的属性的;但DNN是不需要的;
  • DNN同时具有特征取的能力,DNN的底层可以看成特征提取层,所以我们可以输入更原始的特征,让模型自动通过数据进行学习。这一点对于效果的提升很有好处。

语音识别需要对波形进行加窗、分帧、提取特征等预处理。训练GMM时候,输入特征一般只能是单帧的信号,而对于DNN可以采用拼接帧作为输入,这些是DNN相比GMM可以获得很大性能提升的关键因素。

基于HMM-RNN框架

然而,语音是一种各帧之间具有很强相关性的复杂时变信号,这种相关性主要体现在说话时的协同发音现象上,往往前后好几个字对我们正要说的字都有影响,也就是语音的各帧之间具有长时相关性。采用拼接帧的方式可以学到一定程度的上下文信息。但是由于DNN输入的窗长是固定的,从而导致DNN对于时序信息的长时相关性的建模是较弱的。

考虑到语音信号的长时相关性,一个自然而然的想法是选用具有更强长时建模能力的神经网络模型。于是,循环神经网络(RecurrentNeural Network,RNN)出现了。

12

如图,相比前馈型神经网络DNN,循环神经网络在隐层上增加了一个反馈连接,也就是说,RNN隐层当前时刻的输入有一部分是前一时刻的隐层输出,这使得RNN可以通过循环反馈连接看到前面所有时刻的信息,这赋予了RNN记忆功能。这些特点使得RNN非常适合用于对时序信号的建模。

基于HMM-LSTM框架

而长短时记忆模块(Long-Short Term Memory,LSTM)的引入解决了传统简单RNN梯度消失等问题,使得lstm框架可以在语音识别领域实用化并获得了超越DNN的效果。

13

主流RNN声学模型框架都是基于lstm结构的,主要包含两部分:深层双向lstm和序列短时分类(Connectionist TemporalClassification,CTC)输出层。

其中双向RNN对当前语音帧进行判断时,不仅可以利用历史的语音信息,还可以利用未来的语音信息,从而进行更加准确的决策;CTC使得训练过程无需帧级别的标注,实现有效的“端对端”训练。

基于HMM-CNN框架

CNN早在2012年就被用于语音识别系统,并且一直以来都有很多研究人员积极投身于基于CNN的语音识别系统的研究,但始终没有大的突破。

最主要的原因是他们没有突破传统前馈神经网络采用固定长度的帧拼接作为输入的思维定式,从而无法看到足够长的语音上下文信息。另外一个缺陷是他们只是将CNN视作一种特征提取器,因此所用的卷积层数很少,一般只有一到二层,这样的卷积网络表达能力十分有限。

14

针对这些问题,我们研发了一种名为深度全序列卷积神经网络(Deep Fully ConvolutionalNeural Network,DFCNN)的语音识别框架,使用大量的卷积层直接对整句语音信号进行建模,更好地表达了语音的长时相关性。

DFCNN的结构,它直接将一句语音转化成一张图像作为输入,通过累积非常多的这种卷积池化层对,DFCNN可以看到非常长的历史和未来信息,这就保证了DFCNN可以出色地表达语音的长时相关性,相比RNN网络结构在鲁棒性上更加出色。

基于Enc-Dec框架

基于HMM-GMM框架的语音识别系统可以认为是第一代语音识别系统,基于HMM-DNN、HMM-RNN、HMM-CNN框架的系统可以认为是第二代语音识别系统。

这些语音识别系统都是由声学模型和语言模型两部分组成,由于两个部分在训练时相互独立,因此在实际应用中经常会出现由两个模型的协同不好引起的识别错误。而ED方案最大优点是声学和语言的联合训练,训练方式更为简单,并且在大数据时代,这个优点会更加的突出。

15

同时,由于传统语音识别的方案采用音素状态建模的方式,中英文混合建模容易带来相互之间串扰的问题,实际使用中一般采用中文和英文分别建模的方案。

而对于编解码识别框架,建模单元可以选用对中文的单字和英文联合建模的方式,而中文的单字和英文的单词基本上不会出现发音相近的情况,避免了传统方案中的中英文相互串扰的问题。为了减少建模单元的数量同时又保证英文单词对于罕见词的覆盖度,英文建模单元拟根据双字节编码(BPE)的方式构建英文子词。

因此,基于注意力机制的中英文混合建模的编解码语音识别系统的建模单元采用中文的单字和英文的子词的混合建模方式

基于Enc-Dec的语音识别系统可以称为第三代语音识别系统,也是最新一代的识别系统,可以同时支持多个语种,例如现在讯飞输入法上线的中英随心说功能就是使用的ED模型,可以同时支持中英文。

看到这里的小伙伴~都是学习力max的好童鞋~关于语音转写的技术课程,其实并没有完全讲完,因为阅读时长缘故,语言模型和解码部分的内容就都放在视频课程中了,希望感兴趣的小伙伴能够认真学完~

研究所二维码

1
超过80%语音开发者的共同选择