2016-11-30 18:40:35 attilax 阅读数 4442
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7300 人正在学习 去看看 朱有鹏

Atitit 语音识别的技术原理

1.1. 语音识别技术,也被称为自动语音识别Automatic Speech Recognition(ASR)2

1.2. 模型目前,主流的大词汇量语音识别系统多采用统计模式识别技术2

1.3. 基本方法般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。2

1.3.1. 模板匹配的方法2

1.4. 一般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。2

1.5. 提及语音识别,就不能不说Nuance,Nuance的语音技术是以统计推断方法为基础,着眼于音素(音节的声音)和语境来识别话语2

1.6. 神经网络这种技术可使得精确度提升25%以上,这是一个巨大的飞跃,因为这个行业只需要提升5%就具备革命意义3

1.7. 语音信号预处理与特征提取3

1.7.1. 基于语音学和声学的方法3

1.8. PCM文件,也就是俗称的wav文件。4

1.9. VAD静音切除4

1.10. 要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。4

1.11. 一个完整的基于统计的语音识别系统可大致分为三部分:5

1.12. MFCC特征 特征主要用MFCC等等5

1.13. 语音识别是怎么工作的呢,识别流程5

1.14. 隐马尔可夫模型(Hidden Markov ModelHMM6

1.15. 路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。6

1.16. 这里所说的累积概率,由三部分构成, 观察概率 转移概率 语言概率6

1.17. 声学模型建模。7

1.18. 连续语音识别中的搜索,就是寻找一个词模型序列以描述输入语音信号,Viterbi7

1.19. 历史7

1.20. 声学特征 LPC  MFCC CEP Mel8

1.20.1. LPC8

1.20.2. CEP8

1.20.3. Mel9

1.20.4. MFCC9

1.21. 最新进展9

1.22. 电脑模拟人脑的思路是不对的,飞机也不是模范鸟闪动翅膀10

1.23. 参考资料10

1.1. 语音识别技术,也被称为自动语音识别Automatic Speech Recognition(ASR)

1.2. 模型目前,主流的大词汇量语音识别系统多采用统计模式识别技术

1.3. 基本方法般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。

1.3.1. 模板匹配的方法

模板匹配的方法发展比较成熟,目前已达到了实用阶段。在模板匹配方法中,要经过四个步骤:特征提取、模板训练、模板分类、判决。常用的技术有三种:动态时间规整(DTW)、隐马尔可夫HMM)理论、矢量量化VQ)技术。

1.4. 一般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。

1.5. 提及语音识别,就不能不说Nuance,Nuance的语音技术是以统计推断方法为基础,着眼于音素(音节的声音)和语境来识别话语

就像提到PC处理器不能跨过intel,智能手机SOC不能忽略高通,Nuance有着辉煌的历史,曾经在语音领域一统江湖,就算现在,仍旧是瘦死的骆驼比马大,仍旧是全球最大的语音技术公司,专利数量和市场份额都遥遥领先。苹果iPhone手机的虚拟语音助手Siri(风传放弃)、三星的语音助手S-Voice、各大航空公司和顶级银行的自动呼叫中心和虚拟在线语音助手,都采用了Nuance的技术。Nuance曾经很热门,三星和苹果都和它传过绯闻,都要收购它,不知道为什么,都无疾而终。

科大讯飞是nuance的国内版,同样的一览众山小

 

1.6. 神经网络这种技术可使得精确度提升25%以上,这是一个巨大的飞跃,因为这个行业只需要提升5%就具备革命意义

这是一种十分炫酷的技术,将机器学习的方式模仿人类大脑的神经元,当处理的语言越来越多时,这种网络就可以逐渐理解语言。实验结果发现,这种技术可使得精确度提升25%以上,这是一个巨大的飞跃,因为这个行业只需要提升5%就具备革命意义

1.7. 语音信号预处理与特征提取

选择识别单元是语音识别研究的第一步。语音识别单元有单词(句)、音节和音素三种,具体选择哪一种,由具体的研究任务决定。

单词(句)单元广泛应用于中小词汇语音识别系统,但不适合大词汇系统,原因在于模型库太庞大,训练模型任务繁重,模型匹配算法复杂,难以满足实时性要求。

 音素单元以前多见于英语语音识别的研究中,但目前中、大词汇量汉语语音识别系统也在越来越多地采用。原因在于汉语音节仅由声母(包括零声母有22个)和韵母(共有28个)构成,且声韵母声学特性相差很大。实际应用中常把声母依后续韵母的不同而构成细化声母,这样虽然增加了模型数目,但提高了易混淆音节的区分能力。由于协同发音的影响,音素单元不稳定,所以如何获得稳定的音素单元,还有待研究

 

1.7.1. 基于语音学和声学的方法

该方法起步较早,在语音识别技术提出的开始,就有了这方面的研究,但由于其模型及语音知识过于复杂,现阶段没有达到实用的阶段。

 

1.8. PCM文件,也就是俗称的wav文件。

wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。下图是一个波形的示例。

 

1.9. VAD静音切除

在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为VAD,需要用到信号处理的一些技术。

1.10. 要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。

分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,就像下图这样: 图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。  分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征

 

一种简单的解决思路是对语音进行分帧,每一帧占有比较短固定的时 长(比如25ms),再假设说这样的一帧既足够长(可以蕴含 足以判断它属于哪个声韵母的信息),又很平稳(方便进行短时傅里叶分析),这样将每一帧转换为一个特征向量,(依次)分别识别它们属于哪个声韵母,就可以 解决问题。识别的结果可以是比如第100到第105帧是声母c,而第106帧到115帧是韵母eng等。 这种思路有点类似微积分 中的『以直代曲』。另外在实际的分帧过程中,还有很多常用技巧,比如相邻两帧之间有所重叠,或引入与临近帧之间的差分作为额外特征,乃至直接堆叠许多语音帧等等

 

 

1.11. 一个完整的基于统计的语音识别系统可大致分为三部分:

(1)语音信号预处理与特征提取;

(2)声学模型与模式匹配;

(3)语言模型与语言处理、

 

1.12. MFCC特征 特征主要用MFCC等等

MFCC特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有MFCC这一种,具体这里不讲。  至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。

 

 

 

1.13. 语音识别是怎么工作的呢,识别流程

实际上一点都不神秘,无非是: 第一步,把帧识别成状态(难点)。 第二步,把状态组合成音素。 第三步,把音素组合成单词

 

 

图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。  那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧在状态S3上的条件概率最大,因此就猜这帧属于状态S3。

 

1.14. 隐马尔可夫模型(Hidden Markov ModelHMM

HMM声学建模:马尔可夫模型的概念是一个离散时域有限状态自动机,隐马尔可夫模型HMM是指这一马尔可夫模型的内部状态外界不可见,外界只能看到各个时刻的输出值。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值只与当前状态(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。HMM的打分、解码和训练相应的算法是前向算法、Viterbi算法和前向后向算法。

语音识别中使用HMM通常是用从左向右单向、带自环、带跨越的拓扑结构来对识别基元建模,一个音素就是一个三至五状态的HMM,一个词就是构成词的多个音素的HMM串行起来构成的HMM,而连续语音识别的整个模型就是词和静音组合起来的HMM

 

1.15. 路径搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。

 

1.16. 这里所说的累积概率,由三部分构成, 观察概率 转移概率 语言概率

分别是: 观察概率:每帧和每个状态对应的概率 转移概率:每个状态转移到自身或转移到下个状态的概率 语言概率:根据语言统计规律得到的概率 其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。

 

 

1.17. 声学模型建模。

当我们有了分帧后的语音特征之后,下一步常用的处理是使用某种分类器将之分类成某种跟语音内容相关的类别,如声韵母,这一步通常称作声学模型建模。

对于分类目标的选取,最简单的选择可以是词组,或者是组成词组的汉字所对应的音节。但这样的选择方式通常会对训练模型的语音数据提出过高的要求,带来『数据稀疏』的问题,即数据中 很难包含汉语中的所有词组,同时每个词组也很难具有充足的训练样本以保证统计声学模型的可靠性。由于一个词组通常由多个音素的连续发音 构成,常见的音素都包含在国际音标表中,它们具有恰当的数目(通常几十个),以及清晰的定义(由特定的发声器官运动产生),于是音素成了各种语言中的语音识别中都最为常见的 建模选择(汉语的声韵母也是由一到三个音素构成), 识别中再结合词组到音素的发音字典使用。使用音素也方便对混合语言(如汉语种夹杂英语词汇)进行识别

目前最广泛使用的仍然是基于隐式马尔科夫模型的建模方法,即对每个三音子分别建立一个模型

 

·  声学模型(acoustic model):用于识别语音向量;可用GMMDNN等方法来识别向量,用DTWHMMCTC来对齐(alignment)识别结果的输出(单词从何时开始,何时结束)

·  字典(dictionary):多数模型并不是以单词,而是以音素为识别单位。当识别出æ p l这三个音素时,

 

 

1.18. 连续语音识别中的搜索,就是寻找一个词模型序列以描述输入语音信号,Viterbi

从而得到词解码序列。搜索所依据的是对公式中的声学模型打分和语言模型打分。在实际使用中,往往要依据经验给语言模型加上一个高权重,并设置一个长词惩罚分数。

Viterbi:基于动态规划的Viterbi算法在每个时间点上的各个状态,计算解码状态序列对观察序列的后验概率,保留概率最大的路径,并在每个节点记录下相应的状态信息以便最后反向获取词解码序列。Viterbi算法在不丧失最优解的条件下,同时解决了连续语音识别中HMM模型状态序列与声学观察序列的非线性时间对准、词边界检测和词的识别,从而使这一算法成为语音识别搜索的基本策略。

 

1.19. 历史

最早的基于电子计算机的语音识别系统是由AT&T贝尔实验室开发的Audrey语音识别系统,它能够识别10个英文数字。其识别方法是跟踪语音中的共振峰。该系统得到了98%的正确率。到1950年代末,伦敦学院(Colledge of London)的Denes已经将语法概率加入语音识别中。

1960年代,人工神经网络被引入了语音识别。这一时代的两大突破是线性预测编码Linear Predictive Coding (LPC), 及动态时间弯折Dynamic Time Warp技术。 语音识别的最重大突破是隐含马尔科夫模型Hidden Markov Model的应用。从Baum提出相关数学推理,经过Labiner等人的研究,李开复最终实现了第一个基于隐马尔科夫模型的大词汇量语音识别系统Sphinx,他也凭借此发明获得1988 美国商业周刊最重要发明奖。此后严格来说语音识别技术并没有脱离HMM框架,可以说现在手机上的语音拨号就脱胎于李开复的语音识别系统。

这一时期所取得的重大进展有:

隐式马尔科夫模型HMM)技术的成熟和不断完善成为语音识别的主流方法。

 

统计方法将研究者的视线从微观转向宏观,不再刻意追求语音特征的细化,而是更多地从整体平均(统计)的角度来建立最佳的语音识别系统。在声学模型方面,以Markov为基础的语音序列建模方法HMM(隐式Markov链)比较有效地解决了语音信号短时稳定、长时时变的特性,并且能根据一些基本建模单元构造成连续语音的句子模型,达到了比较高的建模精度和建模灵活性。在语言层面上,通过统计真实大规模语料的词之间同现概率即N统计模型来区分识别带来的模糊音和同音词。另外,人工神经网络方法、基于文法规则的语言处理机制等也在语音识别中得到了应用。

1.20. 声学特征 LPC  MFCC CEP Mel

1.20.1. LPC

线性预测分析从人的发声机理入手,通过对声道的短管级联模型的研究,认为系统的传递函数符合全极点数字滤波器的形式,从而n 时刻的信号可以用前若干时刻的信号的线性组合来估计。通过使实际语音的采样值和线性预测采样值之间达到均方差最小LMS,即可得到线性预测系数LPC。对 LPC的计算方法有自相关法(德宾Durbin法)、协方差法、格型法等等。计算上的快速有效保证了这一声学特征的广泛使用。与LPC这种预测参数模型类似的声学特征还有线谱对LSP、反射系数等等。

1.20.2. CEP

利用同态处理方法,对语音信号求离散傅立叶变换DFT后取对数,再求反变换iDFT就可得到倒谱系数。对LPC倒谱(LPCCEP),在获得滤波器的线性预测系数后,可以用一个递推公式计算得出。实验表明,使用倒谱可以提高特征参数的稳定性。

1.20.3. Mel

不同于LPC等通过对人的发声机理的研究而得到的声学特征,Mel倒谱系数MFCC和感知线性预测 PLP是受人的听觉系统研究成果推动而导出的声学特征。对人的听觉机理的研究发现,当两个频率相近的音调同时发出时,人只能听到一个音调。临界带宽指的就是这样一种令人的主观感觉发生突变的带宽边界,当两个音调的频率差小于临界带宽时,人就会把两个音调听成一个,这称之为屏蔽效应。Mel刻度是对这一临界带宽的度量方法之一。

1.20.4. MFCC

首先用FFT将时域信号转化成频域,之后对其对数能量谱用依照Mel刻度分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换DCT,取前N个系数。PLP仍用德宾法去计算LPC参数,但在计算自相关参数时用的也是对听觉激励的对数能量谱进行DCT的方法。

1.21. 最新进展

近几年来,特别是2009年以来,借助机器学习领域深度学习研究的发展,以及大数据语料的积累,语音识别技术得到突飞猛进的发展。

1、技术新发展

1)将机器学习领域深度学习研究引入到语音识别声学模型训练,使用带RBM预训练的多层神经网络,极大提高了声学模型的准确率。在此方面,微软公司的研究人员率先取得了突破性进展,他们使用深层神经网络模型(DNN)后,语音识别错误率降低了30%,是近20年来语音识别技术方面最快的进步。

2)目前大多主流的语音识别解码器已经采用基于有限状态机(WFST)的解码网络,该解码网络可以把语言模型、词典和声学共享音字集统一集成为一个大的解码网络,大大提高了解码的速度,为语音识别的实时应用提供了基础。

 今年10月底,微软宣布语音识别实现了历史性突破,词错率仅 5.9%,英语的语音转录达到专业速录员水平,微软的此次突破是机器的识别能力在英语水平上第一次超越人类。微软的这条消息发布之后在业内引起了极大的关注。语音识别一直是国内外许多科技公司重点发展的技术之一,百度首席科学家吴恩达就发推特恭贺微软在英语语音识别上的突破,同时也回忆起一年前百度在汉语语音识别上的突破,其Deep Speech 2 的短语识别的词错率已经降到了3.7%,Deep Speech 2 转录某些语音的能力基本上是超人级的,能够比普通话母语者更精确地转录较短的查询。

 

1.22. 电脑模拟人脑的思路是不对的,飞机也不是模范鸟闪动翅膀

早期的20多年,即从20世纪50年代到70年代,是科学家们走弯路的阶段,全世界的科学家对计算机完成语音识别这类只有人才能做的事情,认为必须先让计算机理解自然语言,这就局限在人类学习语言的方式上了,也就是用电脑模拟人脑,这20多年的研究成果近乎为零。

 

贾里尼克的贡献

  直到1970年后,统计语言学的出现才使语音识别重获新生,并取得了今天的飞凡成就。推动这个技术路线转变的关键人物是德里克·贾里尼克(Frederick Jelinek)和他领导的IBM华生实验室(T.J.Watson),开始使用统计方法。采用统计的方法,IBM将当时的语音识别率从70%提升到90%,同时语音识别的规模从几百单词上升到几万单词,这样语音识别就有了从实验室走向实际应用的可能

 

在贾里尼克之前,科学家们把语音识别问题当作人工智能和模式匹配问题,而贾里尼克将它当作通信问题,并用两个隐含马尔可夫模型(声学模型和语言模型)把语音识别概括得清清楚楚

 

在大数据时代到来后,隐马尔可夫模型出现了局限,即数据量提升时,它带来的表现提升没有深度神经网络那么大,但其实都属于统计模式识别。在语音识别发展的过程中,深度学习是同时发生的一件事,如果没有深度神经网络,但是有大数据和涟漪效应,隐马尔可夫模型也可以做到实用

 

深度神经网络由Geoffrey Hinton与微软的邓力研究员最先开始做,谷歌是最早在全球范围内大规模使用深度神经网络的公司,谷歌的Voice Search也在最早开创了用互联网思维做语音识别。在这方面,科大讯飞受到谷歌的启发,迅速跟进成为国内第一个在商用系统里使用深度神经网络的公司。

1.23. 参考资料

语音识别_百度百科.html

(2 条消息) 语音识别的技术原理是什么? - 知乎.html

语音识别64年大突破-搜狐科技!!!.html

语音识别技术_百度百科.html

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙)   EMAIL:1466519819@qq.com

转载请注明来源:attilax的专栏   http://blog.csdn.net/attilax

--Atiend

 

2015-03-15 19:56:38 puqutogether 阅读数 7804
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7300 人正在学习 去看看 朱有鹏

    

    从这一篇开始,陆续学习语音识别技术,由浅入深。


    这一篇是入门,主要学习的是语音识别技术的大致步骤,以及现在的几种主流方法。


    下图是语音识别技术的系统框图:


    主要包括这样几个步骤:

1)预处理。对输入语音信号进行预加重和分帧加窗等处理,过滤其中不重要信息及背景噪声,进行端点检测,以确定有效的语音段;

2)特征提取。常见的特征参数有基于时域的幅度、过零率、能量,以及基于频域的线性预测倒谱系数(LPCC)、Mel倒谱系数(MFCC)等;

3)模式匹配。


    目前已有几种主流的语音识别技术:

1)动态时间规整(DTW)技术。采用动态规整法,并结合时间变换关系,得到特征矢量之间的距离,是语音识别中的一种经典算法。DTW技术比较容易实现,但是不能充分利用语音信号的时序特性和动态特征,因此适合用于孤立词、小词汇等相对简单的汉语语音识别系统。


2)隐马尔可夫模型(HMM)技术。HMM用马尔科夫链中的状态表示语音的发音过程,在单字生成过程中,系统由一个状态转移到另一个状态,在每个状态下产生一个输出,直至该单字输出完毕。HMM用马尔科夫链来模拟信号的变化过程,在通过序列间接地描述这种变化,因此它是一个双重随机过程,因而能很好地描述语音信号的总体非平稳性和短时平稳性。

HMM需要对当前的状态序列分布作先验假设;对高层次声学音素建模能力弱,使声学上相似词容易混淆;HMM语音识别系统用硬件实现起来比较困难。


3)人工神经网络(ANN)技术。训练时间长。


    现有语音识别的难点:

1)识别性能依赖周围环境。当训练环境和测试环境不一样时,效果变差;

2)噪声问题。如何去噪;

3)语音信息的模糊性。读音相似的词语,同音不同意思的词语,如何识别。



参考:

《基于隐马尔可夫模型的额语音识别技术研究》



 

2019-12-26 23:37:16 qq_40873545 阅读数 18
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7300 人正在学习 去看看 朱有鹏

语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:

图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。

图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:

图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析

图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:

图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)

图六
数字化后,下一步的工作是提取语音信号的声学特征:

图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。

图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。

图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。

图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然,CNN 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注意 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模型上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。
语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:

图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。

图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:

图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析

图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:

图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)

图六
数字化后,下一步的工作是提取语音信号的声学特征:

图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。

图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。

图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。

图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然, 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模

上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。

2015-11-17 19:50:14 u014437511 阅读数 1853
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7300 人正在学习 去看看 朱有鹏

 这几天都在给实验室的老师普及语音识别的知识,可我自己也是个二把刀啊!

被迫写了个流程图和学习计划,感觉做不到头我就已经毕业了,总之加油吧。


1、了解语音识别流程和各部分的作用;

目的:能清楚的搭建框图,并对各部分常用方法和意义有简单认识。

 2、了解kaldi工具箱每个模块的作用;

目的:将每个脚本和C++程序与框图中的流程对应起来。

 3、了解每个模块中算法或模型的意义和优势;

目的:每个模块掌握至少一种常用算法的数学基础并读懂C++程序。MFCC\LDA\GMM\HMM

 4、按照流程图分模块搭建一个经典的语音识别系统;

目的:掌握基本的脚本语言编程,利用kaldi搭建。

 5、验证系统每个模块的正确性;

目的:比对相应模块各种算法的有效性,并总结。

 6、更改算法或声学模型,提高识别正确率和系统鲁棒性。

 

需要掌握的基础知识:

随机过程、矩阵论、Linux系统、shell、C++、编解码原理等。

2017-10-27 00:56:13 bingo_csdn_ 阅读数 4878
  • 定时器、看门狗和RTC-1.9.ARM裸机第九部分

    本期课程主要讲述SoC中的时间相关的外设,包括定时器、看门狗定时器和实时时钟RTC。首先讲述了定时器的基本概念,然后以PWM定时器为例详细讲解了定时器的使用及编程细节;看门狗定时器部分详细讲了看门狗的意义和常规工作形式;后2节课讲了RTC的概念、框图和编程方法

    7300 人正在学习 去看看 朱有鹏

0 语音识别技术路线大致框图

这里写图片描述

如上图所示,语音识别的大致过程可以分为以下几步:
1、语音输入——这个过程可以通过电脑上的声卡来获取麦克风中输入的音频信号,或者直接读取电脑中已经存在的音频文件;
2、音频信号特征提取——在得到音频信号之后,需要对音频信号进行预处理,然后对预处理之后的音频信号进程特征提取,MFCC是最常用的声学特征;
3、声学模型处理——把语音的声学特征分类对应到音素或字词这样的单元;
4、语言模型处理——用语言模型接着把字词解码成一个完整的句子,于是就得到了最终的语音识别结果。

1 语音输入

语音信号的输入方法可以有两种:
1、通过电脑上的声卡读取麦克风中输入的语音信号,实现实时语音信号采集;
2、读取电脑本地中的.wav或.mp4文件获取语音信号。

2 音频信号特征提取

2.1 语音信号分帧处理

本节内容详细请参考 语音信号处理中怎么理解分帧
语音信号处理常常要达到的一个目标,就是弄清楚语音中各个频率成分的分布。做这件事情的数学工具是傅里叶变换,而傅里叶变换要求输入信号是平稳的。语音在宏观上来看是不平稳的——你的嘴巴一动,信号的特征就变了。但是从微观上来看,在比较短的时间内,嘴巴动得是没有那么快的,语音信号就可以看成平稳的,就可以截取出来做傅里叶变换了。因此,我们需要对语音信号进行分帧处理,截取出来的一小段信号就叫一帧。
那么一帧有多长呢?帧长要满足两个条件:
1、从宏观上看,它必须足够短来保证帧内信号是平稳的。前面说过,口型的变化是导致信号不平稳的原因,所以在一帧的期间内口型不能有明显变化,即一帧的长度应当小于一个音素的长度。正常语速下,音素的持续时间大约是 50~200 毫秒,所以帧长一般取为小于 50 毫秒。
2、从微观上来看,它又必须包括足够多的振动周期,因为傅里叶变换是要分析频率的,只有重复足够多次才能分析频率。语音的基频,男声在 100 赫兹左右,女声在 200 赫兹左右,换算成周期就是 10 毫秒和 5 毫秒。既然一帧要包含多个周期,所以一般取至少 20 毫秒。
一帧音频信号在经过傅里叶变换之后,信号两端的部分被削弱了,没有像中央的部分那样得到重视。弥补的办法是,帧不要背靠背地截取,而是相互重叠一部分。相邻两帧的起始位置的时间差叫做帧移,常见的取法是取为帧长的一半,或者固定取为 10 毫秒。

2.2 声学特征MFCC

本节内容详细请参考 MFCC特征原理

2.2.1 梅尔频率

梅尔刻度是一种基于人耳对等距的音高(pitch)变化的感官判断而定的非线性频率刻度。和频率的赫兹的关系如下:

m=2595log10(1+f700)

所以当在梅尔刻度上面上是均匀分度的话,对于的赫兹之间的距离将会越来越大,所以梅尔刻度的滤波器组的尺度变化如下:
这里写图片描述
梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。

2.2.2 倒谱分析

倒谱的含义是:对时域信号做傅里叶变换,然后取log,然后再进行反傅里叶变换。可以分为复倒谱、实倒谱和功率倒谱,我们用的是功率倒谱。
倒谱分析可用于将信号分解,两个信号的卷积转化为两个信号的相加。
这里写图片描述
假设上面的频率谱X(k),时域信号为x(n)那么满足

X(k)=DFT(x(n))

考虑将频域X(k)拆分为两部分的乘积:
X(k)=H(k)E(k)

假设两部分对应的时域信号分别是h(n)和e(n),那么满足:
x(n)=h(n)e(n)

此时我们是无法区分开h(n)和e(n)。
对频域两边取log:
log(X(k))=log(H(k))+log(E(k))

然后进行反傅里叶变换:
IDFT(log(X(k)))=IDFT(log(H(k)))+IDFT(log(E(k)))

假设此时得到的时域信号如下:
x'(n)=h'(n)+e'(n)

声学模型

语音识别中的声学模型将声学和发音学的知识进行整合,以特征提取模块提取的特征为输入,生成声学模型得分。个人理解是,将前面得到的声学特征转化为发音中的音符。目前使用比较多的声学模型是具有记忆功能的RNN或LSTM网络。
本文将简要介绍LSTM网络。
由于语音是有顺序性的,也就是前面说的字跟后面说的字之间,或者前面发的音与后面发的音之间是有联系的,因此,使用有记忆行的网络模型比较符合语音的特点。
这里写图片描述
如上图所示,图中为LSTM中的神经元结构,其神经元的输出会反过来在下一轮重新作为输入,从而是神经元能够记住上一轮情况,从而实现记忆功能。将该图按时间序列展开得下图:
这里写图片描述
实际上,LSTM网络的神经元比较复杂,其中含有输入们,输出门,遗忘门(如下图),通过这些门能够控制网络想要记忆的内容以及其时间的长短。
这里写图片描述

语音模型

语言模型是用来计算一个句子出现概率的概率模型。它主要用于决定哪个词序列的可能性更大,或者在出现了几个词的情况下预测下一个即将出现的词语的内容。换一个说法说,语言模型是用来约束单词搜索的。它定义了哪些词能跟在上一个已经识别的词的后面(匹配是一个顺序的处理过程),这样就可以为匹配过程排除一些不可能的单词。
语言模型分为三个层次:字典知识,语法知识,句法知识。

经过上述步骤处理之后,便能够得到输入语音的内容。

原理框图

阅读数 282

1.工业自动化框图

博文 来自: yingxuexuan

语音识别入门介绍

阅读数 626

博文 来自: dezhihuang
没有更多推荐了,返回首页