语音是人类最天然的交互方式。核算机发明之后,让机器可以“听懂”人类的言语,了解言语中的内涵意义,并能做出正确的回答就成为了人们追求的方针。咱们都希望像科幻电影中那些智能先进的机器人帮手相同,在与人进行语音交流时,让它听了解你在说什么。语音辨认技能将人类这一从前的梦想变成了现实。语音辨认就比方“机器的听觉体系”,该技能让机器经过辨认和了解,把语音信号转变为相应的文本或指令。
语音辨认是一门涉及面很广的交叉学科,它与声学、语音学、言语学、信息理论、形式辨认理论以及神经生物学等学科都有十分亲近的联系。语音辨认技能正逐渐成为核算机信息处理技能中的要害技能。
语音辨认技能的研讨最早开端于20世纪50时代,年贝尔实验室研制出了10个孤立数字的辨认体系。从20世纪60时代开端,美国卡耐基梅隆大学的Reddy等展开了接连语音辨认的研讨,可是这段时刻展开很缓慢。年贝尔实验室的PierceJ甚至在一封公开信中将语音辨认比作近几年不或许完结的事情。
20世纪80时代后期,深度神经网络(deepneuralnetwork,DNN)的前身——人工神经网络(artificialneuralnetwork,ANN)也成为了语音辨认研讨的一个方向。但这种浅层神经网络在语音辨认使命上的作用一般,体现并不如GMM-HMM模型。
年,Hinton和他的学生MohamedD将DBN运用在语音辨认声学建模中,而且在TIMIT这样的小词汇量接连语音辨认数据库上获得成功。
语音辨认的底子原理
作为语音辨认的前提与基础,语音信号的预处理进程至关重要。在终究进行模板匹配的时分,是将输入语音信号的特征参数同模板库中的特征参数进行比照,因而,只要在预处理阶段得到可以表征语音信号本质特征的特征参数,才干够将这些特征参数进行匹配进行辨认率高的语音辨认。
声学特征提取
1、特征参数可以尽量描绘语音的底子特征;
3、应使核算特征参数的进程愈加简洁,使算法愈加高效。基音周期、共振峰值等参数都可以作为表征语音特性的特征参数。
所谓基音周期,是指声带振荡频率(基频)的振荡周期,因其可以有用表征语音信号特征,因而从开始的语音辨认研讨开端,基音周期检测便是一个至关重要的研讨点;所谓共振峰,是指语音信号中能量集中的区域,因其表征了声道的物理特征,而且是发音音质的首要决议条件,因而相同是十分重要的特征参数。此外,现在也有许多研讨者开端将深度学习中一些办法运用在特征提取中,获得了较快的开展。
声学模型是语音辨认体系中十分重要的一个组件,对不同底子单元的区别才干直接联系到辨认成果的好坏。语音辨认本质上一个形式辨认的进程,而形式辨认的中心是分类器和分类决策的问题。
一起,跟着深度学习的展开,经过深度神经网络来完结声学建模,形成所谓的DNN-HMM构架来替代传统的GMM-HMM构架,在语音辨认上也获得了很好的作用。
关于一个随机向量x,假如它的联合概率密度函数契合公式2-9,则称它遵守高斯散布,并记为xN(,Σ)。
咱们称以为数据遵守混合高斯散布所运用的模型为高斯混合模型。高斯混合模型被广泛的运用在许多语音辨认体系的声学模型中。考虑到在语音辨认中向量的维数相对较大,所以咱们一般会假定混合高斯散布中的协方差矩阵Σm为对角矩阵。这样既大大减少了参数的数量,一起可以进步核算的效率。
可是,高斯混合模型相同具有一个严峻的缺陷:高斯混合模型关于接近向量空间上一个非线性流形(manifold)上的数据建模才干十分差。例如,假定一些数据散布在一个球面两侧,且距离球面十分近。假如运用一个适宜的分类模型,咱们或许只需求很少的参数就可以将球面两侧的数据区别开。可是,假如运用高斯混合模型描绘他们的实践散布情况,咱们需求十分多的高斯散布重量才干足够精确地描写。这唆使咱们寻找一个可以更有用运用语音信息进行分类的模型。
咱们现在考虑一个离散的随机序列,若搬运概率契合马尔可夫性质,行将来状况和过去状况独立,则称其为一条马尔可夫链(MarkovChain)。若搬运概率和时刻无关,则称其为齐次(homogeneous)马尔可夫链。马尔可夫链的输出和预先定义好的状况一一对应,关于恣意给定的状况,输出是可观测的,没有随机性。假如咱们对输出进行扩展,使马尔可夫链的每个状况输出为一个概率散布函数。这样的话马尔可夫链的状况不能被直接观测到,只能经过受状况改变影响的契合概率散布的其他变量来推测。咱们称以这种以隐马尔可夫序列假定来建模数据的模型为隐马尔可夫模型。
言语模型
最简单又却又最常用的言语模型是N元言语模型(N-gramLanguageModel,N-gramLM)。N元言语模型假定当前在给定上文环境下,当前词的概率只与前N-1个词相关。所以词序列w1,...,wm的概率P(w1,...,wm)可以近似为
为了得到公式中的每一个词在给定上文下的概率,咱们需求必定数量的该言语文本来估算。可以直接运用包括上文的词对在全部上文词对中的比例来核算该概率,即
关于在文本中未呈现的词对,咱们需求运用滑润办法来进行近似,如Good-Turing估量或Kneser-Ney滑润等。
解码器是辨认阶段的中心组件,经过练习好的模型对语音进行解码,获得最或许的词序列,或许依据辨认中间成果生成辨认网格(lattice)以供后续组件处理。解码器部分的中心算法是动态规划算法Viterbi。因为解码空间十分巨大,一般咱们在实践运用中会运用约束查找宽度的令牌传递办法(tokenpassing)。
传统解码器会彻底动态生成解码图(decodegraph),如著名语音辨认东西HTK(HMMToolKit)中的HVite和HDecode等。这样的完结内存占用较小,但考虑到各个组件的复杂性,整个体系的流程繁琐,不方便高效地将言语模型和声学模型结合起来,一起愈加难以扩展。现在干流的解码器完结会必定程度上运用预生成的有限状况改换器(FiniteStateTransducer,FST)作为预加载的静态解码图。这儿咱们可以将言语模型(G),词汇表(L),上下文相关信息(C),隐马尔可夫模型(H)四个部分别离构建为规范的有限状况改换器,再经过规范的有限状况改换器操作将他们组合起来,构建一个从上下文相关音素子状况到词的改换器。这样的完结办法额外运用了一些内存空间,但让解码器的指令序列变得愈加整齐,使得一个高效的解码器的构建愈加简单。一起,咱们可以对预先构建的有限状况改换器进行预优化,合并和剪掉不必要的部分,使得查找空间变得愈加合理
首要,咱们知道声响实践上是一种波。常见的mp3等格局都是紧缩格局,有必要转成非紧缩的纯波形文件来处理,比方WindowsPCM文件,也便是俗称的wav文件。wav文件里存储的除了一个文件头以外,便是声响波形的一个个点了。下图是一个波形的示例。
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。咱们称为以帧长25ms、帧移10ms分帧。
至此,声响就成了一个12行(假定声学特征是12维)、N列的一个矩阵,称之为调查序列,这儿N为总帧数。调查序列如下图所示,图中,每一帧都用一个12维的向量表明,色块的色彩深浅表明向量值的巨细。
接下来就要介绍怎样把这个矩阵变成文本了。首要要介绍两个概念:
状况:这儿了解成比音素更详尽的语音单位就行啦。一般把一个音素区分红3个状况。
第一步,把帧辨认成状况。
第三步,把音素组合成单词。
那每帧音素对应哪个状况呢?有个简单想到的办法,看某帧对应哪个状况的概率最大,那这帧就归于哪个状况。比方下面的示意图,这帧在状况S3上的条件概率最大,因而就猜这帧归于状况S3。
那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里边存了一大堆参数,经过这些参数,就可以知道帧和状况对应的概率。获取这一大堆参数的办法叫做“练习”,需求运用巨大数量的语音数据。
处理这个问题的常用办法便是运用隐马尔可夫模型(HiddenMarkovModel,HMM)。这东西听起来好像很高深的样子,实践上用起来很简单:
第二步,从状况网络中寻找与声响最匹配的途径。
那假如想辨认恣意文本呢?把这个网络搭得足够大,包括恣意文本的途径就可以了。但这个网络越大,想要达到比较好的辨认准确率就越难。所以要依据实践使命的需求,合理挑选网络巨细和结构。
调查概率:每帧和每个状况对应的概率
言语概率:依据言语计算规矩得到的概率
这样底子上语音辨认进程就完结了,这便是语音辨认技能的作业原理。
一般来说,一套完好的语音辨认体系其作业进程分为7步:
1、对语音信号进行剖析和处理,除去冗余信息。
3、紧扣特征信息,用最小单元辨认字词。
5、把前后意思当作辅助辨认条件,有利于剖析和辨认。
7、结合语义,仔细剖析上下文的彼此联系,对当前正在处理的语句进行恰当修正。
语音辨认原理有三点:
2、因为语音是可以阅览的,也便是说声学信号可以在不考虑说话人说话传达的信息内容的前提下用多个具有区别性的、离散的符号来表明;
预处理,其间就包括对语音信号进行采样、战胜混叠滤波、去除部分由个体发音的差异和环境引起的噪声影响,此外还会考虑到语音辨认底子单元的选取和端点检测问题。反复练习是在辨认之前经过让说话人多次重复语音,从原始语音信号样本中去除冗余信息,保留要害信息,再依照必定规矩对数据加以收拾,构成形式库。再者是形式匹配,它是整个语音辨认体系的中心部分,是依据必定规矩以及核算输入特征与库存形式之间的相似度,从而判别出输入语音的意思。
原文标题:语音辨认技能概述
转载请注明:http://www.0431gb208.com/sjslczl/1565.html