语音识别技术的前世今生之前世

人工智能—语音识别技术发展史 语音识别技术:也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。 阅读详情

最近在做脑磁图的信号处理方面的工作,在网上查阅信号处理相关工作的资料时,看到了CMU的王赟博士关于语音识别技术的介绍,个人感觉讲的很精彩,同时,语音识别技术已经渗入到我们生活的方方面面,抱着学习者的心态,把王博士关于语音识别技术的讲解写一篇文章,文章主要是根据王博士的PPT和我自己的一些理解组成,我个人并不是做语音识别方向,所以难免会有些理解不到位或者不准确的地方,如果有什么错误,希望大家指正。下面开始进行语音识别技术的介绍。

目录

1.背景

2.孤立词识别

2.1 特征提取

2.2 动态弯算法

2.3 GMM(Gaussian mixture model)

2.4 HMM(Hidden markov model)

2.5 EM训练算法

2.6 语音识别基本方程

3.连续语音识别

3.1 语言模型

3.2 大词汇量

3.3 语音识别系统结构

3.4 评价指标:WER

4. 潘多拉魔盒

4.1 上下文有关模型

4.2 区分式训练

4.3 说话人适应

4.4 二次打分

5.结语

参考文献

1.背景

在讲解每一个知识或者技术之前,我们通常先说到它的概念,当然语音识别技术也不例外。那么什么是语音识别呢,语音识别就是把语音转换成文字。科大讯飞的输入法就是一个典型的语音识别的例子,我们可以在不方便打字又不想让别人听到自己声音的时候,就可以使用这种方法,它可以把语音信号转化成文字。全球有很多种语言,怎么让不同语言的信号转换成其对应的文字呢。这就衍生了语音识别的一些相关课题。元数据识别:就是无论说话人说的是中文还是外语,我都可以将它转换成对应的汉子或者外国文字,而且更加神奇的是,它还知道在一句话的什么地方该加标点符号,这都属于元数据的识别范畴;语音增强与分离:在很多语音中挣钱并分离出自己需要的语音信号,最典型的的例子就是鸡尾酒宴会,意思就是在这个宴会上会有很多声音音乐声,不同的人的说话声,这时我想从这些混杂的语音中提取小明的声音以及他说话的内容,这时我们就可以用到语音增强与分离技术,这个可以用SVD实现;语音合成与转换:语音合成是语音识别的逆过程,也就是说语音合成是把文字转化成语音信号;自然语言处理的应用场景也非常多,像Siri或者win10上的小娜都是基于NLP的。说完概念,接下来说一说语音识别的应用。

语音识别技术在我们生活中见得非常多,比如语音助手、导航系统等等。这里就不多介绍。说完这些,我们就将进入语音识别技术的前世今生的前世部分。

这是两个带着红领巾的少先队员,为什么以这个图片为背景呢,我猜测可能和语音识别技术的历史有关。因为语音识别技术的前世是在20世纪80年代兴起的,而那时,也就是上世纪八九十年代,带着红领巾的少先队员正是风靡全国,曾经作为一名少先队员,我骄傲。既然说到这里,我就大致说下语音识别技术的发展史:1952年贝尔实验室的Davis等人研究成功了世界上第一个能识别10个英文数字发音的实验系统;20世纪70年代孤立词识别取得实质性的进展;1987年李开复开发世界上第一个‘非特定人连续语音识别系统’,(是的,就是那个创新工场的李开复,人家不仅能当总裁,还是一个科技大牛,不得不服呀,而且,王博士跟李开复是一个实验室的),用统计的方法提升了语音识别率;2011年微软的DNN深度神经网络模型在语音识别领域取得成功。具体的发展史可以看参考文献1中的小视频。

2.孤立词识别

每一个单词都有模板,用于待预测语音与它进行比较,如上图所示,右边蓝色的语音信号到底是说的Yes还是No。我们直观的看一下,可能感觉它是Yes的可能性更大,因为Yes的信号波形中有两个包,No只有一个包,而待预测的信号也是有两个包,从波形上我们可以大概判断出待预测信号是Yes的可能性更大一些,当然这种看波形的方法实不可取的,更是不科学的。那么我们应该怎么做呢,就是计算待预测信号与模板信号的距离,其实也就是相似程度,距离越短,相似程度越高。但是信号的距离该怎么比较呢,是通过把信号转换成特征向量,然后比较向量之间的欧式距离或者其他的距离,接下来,就来到了特征提取的部分。

2.1 特征提取

对于一段语音信号,我们通常是一段一段的分析,我们提取一帧信号,它的长度通常为20~50ms,一帧信号要至少包含2~3个周期,那你怎么知道20~50ms就能有至少2~3个周期呢,因为人说话的频率是在100Hz左右,所以语音信号的周期就是10ms,微观上我们感觉一帧信号特别长,竟然包含几个周期,但其实,50ms也就是0.05s,比一眨眼的的时间还短。

接下来我们就需要分析这一帧信号,对一帧信号做傅里叶变换,这样可以得到信号的频域的信息。有关傅里叶变换的知识可以看参考文献2,讲的非常通俗易懂。经过傅里叶变换之后,我们会得到这一帧信号的频谱,它由两部分组成,其中蓝色的线表示的是精细结构反应的是音高,在汉语中比较常用,用来识别汉字的声调,但是在外语中用处相对较小;红色的线表示的是包络,也就是频谱的大致幅度,它反映的是音色,包含主要的信息。可以看到,包络的峰要比精细结构少很多,只是在500Hz、1700Hz和2500Hz的地方有峰值。像精细结构这样的多峰的波形分析起来比较复杂,其实可以直接用包络表示这段语音信号,虽然不能丝毫不差的表示,但是它包含了这段信号的大部分信息。但是,我们通常不会直接用包络表示语音信息,那么我们应该怎么做呢,就是对精细结构进行滤波,继续往下看。

我们对一帧信号进行三角滤波,中间那副图片中的蓝线表示的就是精细结构,红线表示的就是三角滤波器。可以看到,左边的三角滤波器比较密,这是跟人耳的频率特性相关的,人耳对低频信号比较敏感,所在低频部分的分辨率较高,高频部分的分辨率就相对较低。经过三角滤波后,我们得到最下边的成为滤波器组输出的图像,可以看出,Filterbank output的峰的个数相对精细结构也变少了,我们再一看,它和频谱的包络在形状上很相似,实际上,他就是频谱包络的一种近似。最下边这幅图的横坐标表示三角滤波器的标号,此示例中用了40个三角滤波器,纵坐标表示信号的能量,可以看出频谱精细结构在500Hz处有个高峰,所以在500Hz处的三角滤波器中的能量比较大,500Hz大约对应第12个三角滤波器,在下图可以看到,横坐标在12处有个高峰。其实这个Filterbank output就基本可以作为这一帧语音的特征了,但是我们还通常会进一步做数学变换来达到数据压缩的目的,继续往下看。

通常情况下我们会对Filterbank output做一个对数变换或者离散余弦变换,这样就可以吧Filterbank output压缩为一个13维的特征向量,称为MFCC。经过一系列处理之后,我们得到了一帧语音信号的特征向量,那么怎么对整个一段语音信号进行处理呢,我们继续往下看。

对于一段语音信号,我们通常利用类似于滑动窗口的方法沿着时间的维度一帧帧的将信号堆叠起来,窗宽就是一帧信号的长度,两个窗口之间通常会有10ms的重叠以防信息的泄漏,这样把一帧帧信号按列堆叠起来,形成了中间的语谱图,横坐标为帧的序号,纵坐标为评率,右边的Colorbar表示信号的能量,自下向上能量越来越大,对语谱图进行数学变换之后,我们可以得到MFCC序列,它就表示语音信号中的有用特征。接下来看看特征提取的一些特点。

在语音识别领域中MFCC序列是最常用的特征,他主要描述的是频谱包络,也就是音色。它的优点就是排除基频也就是精细结构;一帧语音信号通常会有成百上千个采样点,而MFCC序列只需要一个13维的特征向量就可以表示这一帧信号的主要特征信息,所以有维度低的特点;符合听觉就是指在低频处三角滤波器密集而在高频处三角滤波器稀疏。万物都有两面性,MFCC序列有优点就会有缺点,它一次只能看一帧也就是20~50ms的信号,即视野小;还有就是受噪声、回声影响等。关于它的改进部分就不多说了。

2.2 动态弯算法

在文章的开头说过,需要计算待预测语音与模板语音之间的距离,从而判断它想要表达的内容。经过特征提取之后我们将语音信号编程了一个个13维的特征向量,那么我们该怎么计算两个特征序列之间的距离呢。这里用到了DWT算法,将待识别语音中的每一帧与模板中最相似的一帧匹配,同时要保证顺序不要改变。因为一个词或者一句话顺序改变,意思也会完全改变。在上图中我们用一个竖条表示一帧语音信号的特征向量,通过DTW算法将待识别语音的特征向量与模板特征向量对齐之后,计算待识别语音中的每一帧语音与模板中每一帧的欧式距离,然后总距离为所有帧的欧式距离之和。通过计算待识别语音与Yes模板和No模板的欧式距离,取两者中距离小的那个为最终识别结果即可。其实到此,孤立词识别问题就已经解决了,但是人总是不满足的, 总是想找到更好的方法,那么我们继续往下看。

2.3 GMM(Gaussian mixture model)

我们知道,同一个人或者不同的人说一个汉字或者单词的发音是存在区别的,那么我一个词比如Yes只录一个模板的话,那么最后的识别正确率会降低。这就要求我们需要多录几个模板,在上图中,中间的五个特征向量为待识别语音,上下分别为待识别语音的模板,那么经过DTW算法之后,我们把对齐的几个特征向量整合在一块,这样原来的模板就变成了右边的有五个状态的模型,然后我们就让待识别语音与模型中的每个状态进行对齐,这样的话,识别的准确率会大大提升。接下来我们需要使用GMM来拟合每个状态中特征向量的分布,顾名思义,GMM其实就是多个高斯分布叠加而成的一种模型,如右下角的图形就是在二维空间下的GMM,可以看到,它的形状有点像地理中的等高线,这其实是一个轮廓图,经过GMM后,可以得出特征向量的概率密度并以此代替欧式距离。训练好GMM后,我们怎么用模型识别未知语音呢,继续往下看。

我们首先用DTW算法把待识别语音与模型中的状态对齐,计算每一个特征向量在模型中的概率密度,并以此来代替向量间的欧式距离。然后把每一帧的概率密度(这里一帧和一个特征向量是一样的,都是用一个竖线表示)相乘得到了在模型下待识别语音的概率,这里假设各帧之间是独立的。最后取P(待识别语音|模型)最大的模型为识别结果。还是以文章开头的例子为说明,计算待识别语音中的每一帧分别在Yes模型和No模型中的每一状态中的概率密度,最后相乘得到P(待识别语音|Yes模型)和P(待识别语音|No模型),取两者中较大的值对应的模型就是待识别语音最后的结果。

2.4 HMM(Hidden markov model)

接下来就轮到了前世中的主角闪亮登场了,也就是隐马尔可夫模型(HMM),它将模型完全概率化,概率可以为我们提供更多的信息,比如我想知道明天是晴天还是阴天或者下雨,告诉你结果,不如告诉你这三者中每一个发生的概率,其实我们也经常在天气预报中听到,某某地区的降水概率是多少,这显然比直接告诉我们明天是下雨或者晴天包含的信息更多。HMM在GMM的基础上增加了转移概率。什么是转移概率呢,如上面的图中所示,初始状态为第一个状态,那么它的下一状态还为第一状态的概率为0.7,下一状态为第二状态的概率为0.3,这里的0.7和0.3就是从当前状态转移到下一状态的概率,也就是转移概率。我们可以看到,待识别语音的每一帧与模型中的状态对齐之间也有个概率,也就是0.016,0.028这些值,这些值可以由GMM计算得出,也就是观测概率。我们把GMM测得的观测概率和HMM的转移概率相乘,就得到了在某模型下,语音和对齐方式的联合概率。接下来看看,HMM的特点。

HMM主要有两个特点,第一个就是特征序列由隐状态产生,隐状态也就是上面说到的五个状态,为什么称之为隐状态呢,是因为每帧特征向量和状态之间的对齐方式是未知的;另一个特点就是马尔可夫性,这里就不多说了。有关GMM,HMM,包括下面将要说的EM的相关知识,我推荐大家可以看一下悉尼科技大学的徐亦达老师在优酷的一个自频道,里面详细的讲解了概率统计的一些知识,并且每一个概念都有详细的公式推导,值得一看,教学视频见参考文献3。说完模型的特点,接下来说一下模型的参数,实际上HMM是有三个参数的:转移概率,观测概率以及初始概率。但是上面示例中的HMM是单向的,所以初始状态默认为第一个状态,所以,模型的参数就变成了两个:转移概率和观测概率。

接下来就看看HMM在语音识别领域中是如何使用的。HMM的三大问题:第一个问题就是求值问题,也就是给定模型参数和待识别语音,求概率,因为对齐方式是事前不知道了,所以我们就需要枚举每种对齐方式,由前面讲到的公式P(语音,对齐方式|模型) = GMM观测概率*HMM转移概率可以算出联合概率P(语音,对齐方式|模型),然后对所有对齐方式求和,联合概率就变成了边缘概率P(语音|模型),但是对齐方式是多种多样的,对枚举每一种对齐方式是很困难的,所以这里就引入了动态规划算法中的前向算法,个人对动态规划的算法不了解,所以这里就不多进行说明;第二个问题就是解码问题,也就是给定模型参数和语音,求最佳对齐方式的问题,那么什么才是最佳的对齐方式呢,最佳对齐方式就是使联合概率P(语音,对齐方式|模型)最大的那种对齐方式,这里用到了动态规划的算法中的Viterbi,这个算法其实就是DTW算法的升级版本,最佳对齐方式的概率可以作为总概率的近似,这里说明一下它的意思,比如我有1000种对齐方式,那么最佳对齐方式只是其中的一种,如果假设对齐方式服从均匀分布的话,当然这时候也就没有了最佳而言,因为每一种对齐方式的概率都是一样的都是0.1%,这显然跟总概率相差甚远,实际上并不是这样了,通常情况下最佳对齐方式的概率跟非最佳对齐方式的概率不是一个数量级,也就是说我最佳概率可能为90%,而你其他999中非最佳的概率和才占10%,所以,这种情况下,可以把最佳概率作为总概率的近似;最后一个问题就是训练问题,训练问题就是给定语音和模型结构,求模型参数的问题。将在下面的内容中详细的讲解。

2.5 EM训练算法

最大期望算法(Expectation-maximization algorithm,EM)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。我们事先是不知道对齐方式的,但是我们可以随机假设一种对齐方式,假设Yes这个词的发音一共有15帧信号,那么我们可以这样分割,前五帧代表Y的发音,中间五帧代表e的发音,最后五帧代表s的发音,然后以这种对齐方式求得模型的参数,然后再反过来更新对齐方式,这里没有再使用DTW,而是使用Viterbi或者Forward-backward算法,一直这样不断更新下去,直到收敛为止。

2.6 语音识别基本方程

最后讲一下语音识别的基本方程。这个方程其实就是语音识别技术要解决的问题,它是求得在已知X也就是待识别语音的条件下它被识别为任意一个单词W的概率,比如我们说段语音,它可以被识别为Yes也可以被识别为No或者其他,语音识别要做的就是找出被识别为某一个词最大的概率,也就是W^{*}。P(W|X)是条件概率,我们把它经过贝叶斯公式变换一下得到\frac{P(X|W)P(W)}{P(X)},其中P(X|W)称为likelihood也就是似然函数,在这里它是指的声学模型,根据这个式子P(W|X) = \frac{P(X|W)P(W)}{P(X)}而言,要想使P(W|X)最大,我们要做的无非就是让分子尽量大,分母尽量小。因为给定了X以后P(X)就可以认为是固定了,那么最大化式子P(W|X) = \frac{P(X|W)P(W)}{P(X)},就变成了最大化式子P(W|X) = P(X|W)P(W),那么就需要让似然函数也就是声学模型P(X|W)和先验概率P(W)尽量大,声学模型我们可以用GMM和HMM训练得到,而且上一张PPT中,EM训练算法可以最大化似然函数也就是P(X|W)。那么什么是先验概率呢,先验概率就是一个人说某一个词或字的概率,比如我们一天中说“我吃米饭“”的次数比较多,那么它们的概率就比较大,而说“饭米吃我”的次数极少,那么它们的概率就小,那么这些概率就是所谓的先验概率,当似然函数也就是声学模型不能给我们提供足够的信息的时候,也就是P(X|W)很小的时候,我们就会通过先验概率P(W)来判断这个语音说的是什么,对于一段待识别语音,我们会更倾向与把它识别为“我吃米饭”而不是“饭米吃我”,当然这个我举的这个例子是一句话了,不是单个的孤立词,但是意思是一样的。那么,到目前为止,有关孤立词识别的内容就全部讲完了,接下来,将讲解连续语音识别的相关内容。

3.连续语音识别

什么是连续语音识别呢,我们把上面的孤立词都变成句子就是连续语音识别了。W和W^{*}就不再表示一个词,而是表示一句话;同样的孤立词的似然也就是声学模型P(X|W)也变成了句子的声学模型,它可由一个个单词的声学模型串联起来,但是一定要保证顺序。最后的孤立词的先验概率P(W)也变成了句子的先验概率,也就是我们上面举的例子,“我吃米饭”与“饭米吃我”,哪一个更像我们正常人说的话,那么我们也称作句子的先验概率为语言模型。接下来,我们将详细介绍语言模型。

3.1 语言模型

在语言模型中,会经常用到链式法则,其实就是概率论中的乘法公式,即某一句话出现的概率等于第一个字出现概率乘以已知第一个字出现的条件下第二个字出现的概率乘以已知前两个字出现的概率下第三个字出现的概率依次类推。我们以“皮卡皮卡丘”这句话为例,链式法则用公式表示就是P(皮卡皮卡丘) = P(皮)*P(卡|皮)*P(皮|皮卡)*P(卡|皮卡皮)*P(丘|皮卡皮卡)。但是通常情况下,当我们说皮卡后,下一个字是皮的概率很小,也就是P(皮|皮卡)很小,而且不容易计算。为了解决问题,提出了n-gram模型,这是一种什么样的存在呢,也就是说每个词只与前n-1个词有关,当每个词只与前1个词有关时,我们称之为Bigram,这其实就跟Markov模型是一样的了,我们怎么计算这样的概率呢,这需要搜集大量的语料,以P(丘|卡)为例,我们需要搜集卡*出现的次数,然后搜集卡丘出现的次数,用卡丘出现的次数除以卡*的次数就是P(丘|卡);同样的,当每个词只与前两个词有关的时候,我们称之为Trigram。还有一些最大熵和神经网络的语言模型,它们比较复杂,我本人也不太懂,所以不多介绍。接下来,我们主要看下Bigram模型。

正如我上面所说的。Bigram实际上就是马尔可夫模型,下一个词只与当前词有关,可以可到,这里它不再像孤立词中的HMM一样,这里的模型它是双向,也称为是遍历的,它们之间的状态可以相互转移,上图为例,“皮”转移到“卡”的概率为0.5,转移到“丘”的概率为0.3,还是“皮”的概率为0.2。那么我们把语言模型看做一个马尔可夫模型有什么好处呢,其实这样的话,它就可以与单词的声学模型进行复合。什么意思呢,我们以上图中下边这个状态转移图为例进行简要的说明。如上图所示,把每个字都分成了3个状态,前两个状态只能在这个顺序字内转移,也就是说皮1不能直接到皮3或者到卡以及丘的内部状态中,但是第三个状态可以在字间或者字内转移。以皮3为例,假设皮3转移到自身的概率为0.6,那么它转移到其它转态的概率为0.4,这里的0.4包括字内转态转移和字间转态转移,因为字间转移只能由第三个状态完成,在这里也就是皮字转移到其它字只能由皮3完成,我们在上边那个三角形的转移图中可以看到,皮字转移到卡的概率为0.5,那么0.5*0.4 = 0.2就是皮3转移到卡1的概率;同样的0.3*0.4 = 0.12就是皮3转移到丘1的概率,0.4*0.2 = 0.08就是皮3转移到皮1的概率。因为语音信号的顺序问题,比如“卡”字的发音是按照卡1---卡2---卡3这样的顺序完成的,所以字间转移,也就是第三转态只能转移到本字或者其他字的第一状态。我们可以将待识别语音在复合模型中遍历,让待识别语音跟复合模型中的状态进行匹配,计算状态的观测概率,寻找最佳路径,然后将最佳路径上的单词按照顺序排列起来就得到了连续语音信号的识别。我们通常说的语音都是大词汇量的,那么我们该怎么去识别大词汇量的语音呢,继续往下看。

3.2 大词汇量

我们前边讲到的是为每一个单词训练单独的HMM,也就是每一个单词录不同的模板组成模型。但是语言库中的汉字或者单词都是上万级别的,如果为每个汉字或者单词都录入几个不同的模板的话,这样的工作量就太大了,所以这种方法是不可取的。我们知道汉语是按照拼音进行发音的,我们可以为字母表中的拼音训练HMM,同样的我们可以为英语中的音标训练HMM,这样我们就把每个单词训练的HMM变为了为每个因素训练HMM。这样之前原来的复合模型就变成了上图中更加庞大的一个复合模型,我我们得到了这个模型,那么我们应该怎么训练它呢,请继续往下看。

训练的过程和之前的训练是相同的,它在音素串内部的HMM仍然是单向的,我们还是采用EM算法。这里就不多说了,接下来就是解码的过程,当给定一门语言的解码器(这包括语言模型,词典(词典的作用就是把音素拼接为一个单词)和声学模型)和一条语音,我们就可以使用Viterbi算法求得最佳路径,最佳路径其实还是回归到概率问题,概率最大的路径就是最佳路径,路径上的单词就是识别的结果。那么我们就完成了大词汇量的连续语音信号的识别问题,接下来我们看看语音识别系统的一个整体结构框架。

3.3 语音识别系统结构

首先是将一段语音信号经过特征提取的操作后把信号变成了一个MFCC序列,特征提取也称为前端,那么后端主要是由解码器组成的,解码器又包括声学模型、词典和语言模型。声学模型也就是似然,它描述的是单词或者音素的发音情况,主要由GMM和HMM来完成,词典可以把音素拼接起来组成单词或者汉字,语言模型就是把单词整合成符合人类说话习惯的连续的语音,也就是把单词整合成一句话,最后将结果输出就是我们最终想要得到的识别结果。模型都有评价指标,这个模型到底好不好,我们该怎么去评价它呢,接下来我们就讲解语音识别系统的评价指标。

3.4 评价指标:WER

语音识别系统常用的额评价指标就是词错误率,英文是word error rate,简写为WER。那么怎么计算呢,PPT中写的很详细,我在这里就不多说了。例子也不说了。

我们可以看到,这张PPT中的对齐方式跟上一张不太一样,但是最终的词错误率是一样的,所以最优对齐方式不一定是唯一的。词错误率有一个缺陷就是它只能发现词是对是错,却不能说明词错误的程度,比如我说“小狗”,它识别成了“小巩”或者识别成“小猫”的词错误率都是50%,但是很明显,把“小狗”识别成“小猫”的错误程度更大,但是语音识别中还是通常使用词错误率作为评价指标而不会去在意那些细节性的东西。还有一点就是WER可能高于100%,这是因为你错的词的个数比正确的答案句子的长度还要多,这就会导致WER高于100%,如上边的例子所示。

这两幅PPT主要是讲解的WER的发展史,这里就不多做介绍。

4. 潘多拉魔盒

这么长时间内语音识别的框架没有发生改变,并不是说技术没有进步,只是人们把框图中的每个人部分更加优化了,解决的方法更好了。下面主要讲后端部分的优化。

4.1 上下文有关模型

上下文有关模型实际上就是在说同样的音素在前后音素发音不同时,中间的音素的发音也有微小的不同,上边的PPT以five和nine为例说明了这个问题,在英语中大约有50个音素,每个因素有3个状态的话,这样也就是有150个状态,但是有了上下文有关音素之后,这个音素受它的上一个音素、下一个音素以及它本身这三个音素的影响,每一个音素有50种情况,那么一种有50*50*50种情况,也就是125000种情况,这显然是非常多的。于是就有了上下文聚类的一种方法,这样最终的状态数会在几千的数量级,这对于我们来说还是可以接受的。

4.2 区分式训练

4.3 说话人适应

4.4 二次打分

 

5.结语

至此,语音识别技术前世今生之前世的内容就讲完了,下一篇文章将继续讲解语音识别技术前世今生之今生的内容。

参考文献

1、语音识别技术的前世今生     https://www.bilibili.com/video/av19158521/

2、傅里叶变换            https://zhuanlan.zhihu.com/p/19763358

3、徐亦达自频道        http://i.youku.com/i/UMzIzNDgxNTg5Ng==?spm=a2hzp.8253869.0.0

【自然语言处理01】——语音识别(LAS模型的原理详解) 随着ChatGPT的兴起,自然语言处理NLP(Natural Language Processing)也是相当的火,所以在这里详细讲解NLP的相关理论基础以及他的应用。 阅读详情

相关推荐

语音识别 - 历史发展

一、模板匹配 二、统计模型 三、深度学习

AI工程化、开源分享、文档翻译、代码笔记 3312

深度学习与人类语言处理学习笔记(一)—— 语音识别(理论篇)

文章目录1. 语音识别概述1.1 Token的表示1.2 Acoustic Feature2. 语音识别深度学习模型2.1 Listen,Attend,and Spell(LAS)2.2 CTC2.3 RNN-T2.4 Neural Transducer2.5 MoChA3. 语音识别传统模型3.1 隐马尔可夫模型3.2 Tandem3.3 DNN-HMM Hybrid4. alignment B站地址:深度学习与人类语言处理 人类语言包含了语音(audio)和文字(text)两种形式。 因此语音和文字的处

weixin_36488653的博客 5159

AI前言技术,一文带你深入了解语音识别的前世今生

导读:语音识别是一门综合性学科,涉及的领域非常广泛,包括声学、语音学、语言学、信号处理、概率统计、信息论、模式识别和深度学习等。语音识别的基础理论包括语音的产生和感知过程、语音信号基础知识、语音特征提取等,关键技术包括高斯混合模型 ( Gaussian Mixture Model,GMM )、隐马尔可夫模型 ( Hidden Markov Model,HMM )、深度神经网络 ( Deep Neural Network,DNN ),以及基于这些模型形成的GMM-HMM、DNN-HMM和端到端 ( End-t

wenyusuran的专栏 2462

语音识别中输入输出的可能形式有哪些

拿到10ms的语音数据后,常会利用一定大小的window将语音数据 切分成 若干份(在语音识别中,由window生成的一份语音片段被称为frame),每份语音片段在 通过 特定的数据转换方式(如:MFCC) 转成 feature,最后 在所有这些转化后的features拼接起来 作为 最终输入model 的 input。对于英文来讲,由于不同的词之间会以空格分开,因此,分词很easy,但是,在外文中,word是可以被创造的,这也意味着 vocabulary 可能需要无限延长。

u014765410的博客 1788

5分钟搞定!用Keil MDK将STM32F103C8T6工程无缝迁移到ZET6开发板

本文详细介绍了如何在Keil MDK环境下快速将STM32F103C8T6工程迁移到ZET6开发板,涵盖硬件差异对比、工程配置调整、外设适配及编译排错等关键步骤,帮助开发者5分钟内完成工程移植,大幅提升开发效率。

weixin_30879169的博客 408

操作系统期末大题类型题解

额,OS主要这回考程序分析题,PV操作、生产者消费者啊,哲学家进餐问题,死锁问题啊,如何避免死锁,经典银行家算法,页面置换算法啥的,磁盘调度......总计还有很多,就不一一说了 PV操作 谈到PV操作,首先要了解什么是信号量,其实就是用来解决互斥与同步问题的,分为原语wait(S)和signal(S),也就是我们常说的PV操作,在这里给出王道上的概念 wait(S){ while(S>0) S=S-1; } signal(S){ S=S+1; } 记录型信号量

ZXxxiaoxuan的博客 792

语音识别技术的前世今生【前世篇】

目录 1.背景 2.孤立词识别 2.1 特征提取 2.2 动态弯算法 2.3 GMM(Gaussian mixture model) 2.4 HMM(Hidden markov model) 2.5 EM训练算法 2.6 语音识别基本方程 3.连续语音识别 3.1 语言模型 3.2 大词汇量 3.3 语音识别系统结构 3.4 评价指标:WER 4. 潘多拉魔盒 4.1...

Nieson2012的专栏 5897

YOLOv11 损失函数解析

YOLOv11 在 YOLO 系列的持续演进中,通过 ​多模态损失协同优化、动态任务感知机制 和 ​超轻量化设计,实现了检测精度与推理效率的再突破。其损失函数设计融合了前沿的几何建模、分布学习与自监督技术,显著提升了复杂场景下的鲁棒性。

浩瀚之水的专栏 6702

语音识别技术的前世今生之今生

由于时间原因,一直没有写前世今生中的今生部分的文字说明,只是把王博士的PPT摆上来了,今天把这一部分的文字说明部分补充一下,还是说明一下,我没有深入接触过语音识别技术的原理及实现,文字说明部分是我结合王博士的讲解以及我自己的一些理解写的,如果有什么讲的不准确或者不正确的地方,希望大家多多包涵,并欢迎大家指正。接下来,我们开始正式的文字讲解部分。 目录 1.前馈神经网络 1.1Tandem结构...

Tonywu2018的博客 2689

现代软件开发技术 | 第1章:Spring基础

Spring是一个轻量级Java 开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。

知识库搭建ing 455

SpringBoot项目搭建

SpringBoot项目搭建

私信可回答各种问题~ 1020

语音识别技术的前世今生【今生篇】

目录 1.前馈神经网络 1.1Tandem结构 1.2 Hybrid结构 2.循环神经网络 2.1 CTC 2.2 Graphheme系统 2.3 注意力机制 3 语音识别之未来 3.1 语音识别的现状 3.2 语音识别的未来 参考文献: 1.前馈神经网络 近几年深度学习的技术非常火,我们平时所说的深度学习主要是指深度神经网络,神经网络是一种监督学习的技术。神经网...

Nieson2012的专栏 1675

Copilot在游戏开发中的应用:Unity脚本自动生成实践

2021年GitHub Copilot的发布,为代码自动生成带来了革命性突破。作为基于GPT模型训练的AI辅助编程工具,Copilot能根据注释、函数名、代码上下文,实时生成符合语法和逻辑的代码片段,甚至完整脚本。减少重复劳动:自动生成模板代码(如生命周期、结构),让你专注核心逻辑;降低API学习成本:对Unity特有的组件(RigidbodyAnimator)、类(),Copilot能生成符合最佳实践的调用代码;统一代码风格:通过团队共享提示词模板,让生成的代码符合项目规范;快速原型迭代。

AIGC应用创新大全的博客 1618

语音识别技术的前世今生

语音识别技术之前世: GMM + HMM 知识点1:孤立词识别 知识点2:连续语音识别 知识点3:潘多拉魔盒 语音识别技术之今生:神经网络 知识点1:前馈神经网络(Tandem 结构、Hybrid结构) 知识点2:循环神经网络(CTC、Transducer、注意力机制,以及这三种模型的优缺点比较) 知识点3:语音识别技术之未来展望 ...

湾区人工智能 1190

Openai gym environment for multi-agent games

用于多智能体游戏的 OpenAI Gym 环境

suiusoar 1193

Power EM与Signal EM解决办法与原理分析

1.面对power EM,首先检查missing via,补全via,还可以加宽,加密局部power mesh,一些power IO出pin有power EM问题,可以叠加多层线和垂直方向补power形成网络降低并联电阻和提供更多电流通路解决,这种方法还可以降低ir drop。3.先进工艺有一个via ladder的方法可以解决power/signal em问题,clock cell出pin绕线或者power rail连接power stripe通过搭梯子的方式连接,原理还是分流。

m0_61544122的博客 4743

语音识别技术之前世今生

咕噜咕噜 453

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

语音识别技术的前世今生视频课程

Live 讲座简介 在这次 Live 中,我将讲述语音识别技术 30 年来的发展历程。我会从 80 年代由李开复等人开创的 GMM + HMM 框架讲起,最终讲到这些技术如何被最近十年兴起的神经网络所取代。 讲解侧重于原理,较少涉及各公司及其产品。出现的公式很少,不过期望听众对向量、概率等基本概念有了解。 预计讲解时间为 1.5 ~ 2 小时,加上答疑时间, Live 的总时长会在 2.5 ~ ...

m0_46238470的博客 267

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

语音识别的前世今生

这是我4月份在BitTiger公开课听的王赟大牛《语音识别的前世今生》整理的笔记,本来打算整理通畅再发的,结果实在没时间就一拖再拖。笔记有些草率,不过应该可以看明白,希望可以对大家有用,也祝王赟大神好。 Q&A 1. 历史上非特定人和特定人的语音识别是不是有很大的不同? 这个就是前面讲过的打补丁,各种说话人适应的那一页(如下图) 这一页上的这三种方法就是历史上,其实也包...

Xwei1226的博客 1140

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

语音识别中强制对齐_语音识别技术的前世今生(1) - 孤立词识别

开始接触ASR,先验知识太少。计划看完这个live,每个章节课后做总结,整理个人理解思路和技术细节。语音识别技术的前世今生​www.zhihu.com1. ASR2. 前世 - 孤立词识别技术框架:HMM:80年代开始到本世纪初主流模型GMM:用于配合HMM模型2.1 孤立词识别孤立词识别是指语音中只包含一个词语的识别。2.1.1 模板比较法模板比较法的主要工作是:特征提取得分/距离计算特征提取精...

weixin_29944865的博客 582

任务

抽时间把语音识别的前世今生两个视频看完

weifeng blog 79

语音相似度_语音识别技术的前世今生(1) - 孤立词识别

开始接触ASR,先验知识太少。计划看完这个live,每个章节课后做总结,整理个人理解思路和技术细节。语音识别技术的前世今生​www.zhihu.com1. ASR2. 前世 - 孤立词识别技术框架: HMM:80年代开始到本世纪初主流模型GMM:用于配合HMM模型2.1 孤立词识别孤立词识别是指语音中只包含一个词语的识别。2.1.1 模板比较法模板比较法的主要工作是: 特征提取得分/距离计算特征提...

weixin_39811478的博客 1220

《语音识别的前世今生》Q&A

这是我4月份在BitTiger公开课听的王赟大牛《语音识别的前世今生》整理的笔记,本来打算整理通畅再发的,结果实在没时间就一拖再拖。笔记有些草率,不过应该可以看明白,希望可以对大家有用,也祝王赟大神好。 Q&A 1. 历史上非特定人和特定人的语音识别是不是有很大的不同? 这个就是前面讲过的打补丁,各种说话人适应的那一页(如下图) 这一页上的这三种方法就是历史上,其实也包...

weixin_30877181的博客 300

语言识别的前世今生

介绍了语音识别技术

guangali的博客 588

《语音识别的前世今生:GMM+HMM & 深度学习》讲座笔记

这是我4月份在BitTiger公开课听的王赟大牛《语音识别的前世今生》整理的笔记,本来打算整理通畅再发的,结果实在没时间就一拖再拖。笔记有些草率,不过应该可以看明白,希望可以对有用,也祝王赟大神好。 比较一下蓝色的波形和绿色、红色波形,哪个更接近,那就认为我说的是哪个词。 数学语言: 定义一个距离,分别比较,距离小的就是结果。 问题: 这里...

weixin_30300523的博客 514

语音识别的概念和前世今生

最近在学习语音识别的一些知识,做了一些笔记,这篇文章讲讲语音识别的发展,以及相关的几个容易混淆的概念。 语音识别的背景 从物理声音被转换为电信号,再通过模数转换器转换为数据。一旦被数字化,就可适用若干种模型。语音识别的技术,就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术。 发展阶段 50年代:贝尔实验室开始语音识别的研究,主要研究基于简单的孤立词的语音识别系...

简言 4010
上一篇: kNN(k近邻法)
下一篇: 语音识别技术的前世今生之今生
Tonywu2018
博客等级 码龄9年 238粉丝 43原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值