当前位置: 首页 > 科技观察

玩人工智能的你必须知道的语音识别技术原理

时间:2023-03-17 12:44:09 科技观察

玩转人工智能必须知道的语音识别技术原理谷歌、Nuance,国内的科大讯飞、Aspire等厂商都在研发语音识别的新策略和算法。似乎人类与语音的自然交互正在逐渐接近。  我们都想要一个像《钢铁侠》一样智能高级的语音助手,在与机器人交流时,让它明白你在说什么。语音识别技术让这个曾经是人类的梦想变成了现实。语音识别就像“机器的听觉系统”。该技术可以让机器通过识别和理解将语音信号转换成相应的文本或命令。  语音识别以语音为研究对象。通过语音信号处理和模式识别,机器可以自动识别和理解人类所说的语言。语音识别技术是让机器通过识别和理解的过程,将语音信号转换成相应的文字或命令的高新技术。语音识别是一门涉及面很广的交叉学科,与声学、语音学、语言学、信息论、模式识别理论、神经生物学等学科密切相关。语音识别技术正逐渐成为计算机信息处理技术中的一项关键技术,语音技术的应用已成为极具竞争力的高新技术产业。  1。语音识别的基本原理  语音识别系统本质上是一个模式识别系统,包括三个基本单元:特征提取、模式匹配、参考模式库。其基本结构如下图所示:    未知语音通过麦克风转换成电信号,然后加到识别系统的输入端。首先,经过预处理,根据人声的特点建立语音模型,对输入的语音信号进行分析,提取所需的特征。在此基础上,建立了语音识别所需的模板。在识别过程中,计算机需要根据语音识别模型,将存储在计算机中的语音模板与输入语音信号的特征进行比较,并根据一定的搜索找到一系列与输入语音完美匹配的匹配项。匹配策略。模板。然后根据这个模板的定义,通过查表就可以给出计算机的识别结果。显然,这种优化的结果直接关系到特征的选择、语音模型的好坏、模板的准确性。  语音识别系统构建过程一般包括训练和识别两部分。训练通常离线进行,对预先收集的海量语音和语言数据库进行信号处理和知识挖掘,得到语音识别系统所需的“声学模型”和“语言模型”;而识别过程通常在线完成,自动识别用户的实时语音。识别过程通常可以分为“前端”和“后端”两个模块。“端”模块的作用是利用训练好的“声学模型”和“语言模型”对用户语音的特征向量进行统计模式识别(也称为“解码”),得到其中包含的文本信息在里面。此外,后端模块还有一个“自适应”反馈模块,可以自学习用户的声音,从而对“声学模型”和“语音模型”进行必要的“修正”,进一步提高准确率的认可。  语音识别是模式识别的一个分支,属于信号处理科学领域,与语音学、语言学、数理统计、神经生物学等学科有着非常密切的关系。语音识别的目的是让机器“听懂”人类的口头语言,这包括两层含义:一是逐字理解,无需将其转换成书面语言;另一种是回应口语中包含的要求或询问。领悟、正确应对,不拘泥于所有词语的正确过渡。  自动语音识别技术具有三个基本原理:一是根据短时幅度谱的时变模式对语音信号中的语言信息进行编码;第二,语音是可读的,即可以读出它的声音信号,而无需考虑说话者试图传达的信息内容,由几十个不同的、离散的符号表示;第三语音交互是一个认知过程,因此不能脱离语言的语法、语义和语用结构。  声学模型  语音识别系统的模型通常由两部分组成:声学模型和语言模型,分别对应计算语音到音节的概率和计算音节到词的概率。声学建模;语言模型  搜索  连续语音识别中的搜索就是寻找一个词模型序列来描述输入的语音信号,从而得到词解码序列。搜索基于对公式中的声学模型和语言模型进行评分。在实际使用中,往往需要根据经验给语言模型加高权重,设置长词罚分。  系统实现  语音识别识别原语的选择要求是准确的定义和足够的训练数据,这是通用的。英语通常采用context-dependentphonememodeling,中文的共读不像英语那么严重,所以可以使用音节建模。系统所需的训练数据大小与模型复杂度有关。设计过于复杂而无法超出所提供训练数据的能力的模型将导致性能急剧下降。  听写机:大词汇量、与人无关、连续的语音识别系统通常被称为听写机。其架构是基于上述声学模型和语言模型的HMM拓扑结构。在训练过程中,使用前向后向算法获取每个图元的模型参数。识别时,将原语连接成词,在词与词之间加入静默模型,并引入语言模型作为词与词之间的转移概率,形成循环结构。维特比算法解码。鉴于中文容易分词,先分词再译码是一种提高效率的简化方法。  对话系统:用于实现人机口语对话的系统称为对话系统。受限于目前的技术,对话系统往往面向狭窄的领域和有限的词汇,其主题包括旅游查询、机票预订、数据库检索等。它的前端是语音识别器,对生成的N-bestcandidates或wordcandidategrids进行识别,通过文法分析器分析获取语义信息,然后通过对话管理器确定响应信息,由语音合成器输出。由于目前的系统往往词汇量有限,因此也可以采用提取关键词的方法来获取语义信息。  2:语音识别技术原理-工作原理解读  首先,我们知道声音其实是一种波。常见的mp3等格式都是压缩格式,必须转成未压缩的纯wave文件进行处理,如WindowsPCM文件,又称为wav文件。wav文件中除了文件头外,存放的是声音波形的点。下图是一个波形示例。图中    每帧长度为25毫秒,每两帧之间有25-10=15毫秒的重叠。我们称它为帧长为25ms,帧偏移为10ms的成帧。  分帧后,演讲变成了很多小片段。但是波形在时域几乎没有描述能力,所以必须对波形进行变换。一种常见的变换方法是提取MFCC特征,根据人耳的生理特性,将每一帧波形转换为多维向量。可以简单理解为这个向量包含了这一帧语音的内容信息。这个过程称为声学特征提取。在实际应用中,这一步有很多细节,声学特性不局限于MFCC,这里就不多说了。  至此,声音变成了一个12行(假设声学特征为12维)N列的矩阵,称为观察序列,其中N为总帧数。观察顺序如下图所示。图中,每一帧都用一个12维的向量表示,色块的颜色深度表示向量值的大小。    接下来要介绍的是如何把这个矩阵变成文本。首先要介绍两个概念:  音素:单词的发音是由音素组成的。对于英语,常用的音素集是卡内基梅隆大学的39个音素集,请参阅TheCMUPronouncingDicTIonary?。汉语一般直接把所有的声母和韵母作为音位集。另外,中文识别也分声调和非声调,在此不再详述。  地位:这里可以理解为比音素更细化的语音单位。通常一个音素分为3种状态。  语音识别是如何工作的?其实一点都不神秘,无非就是:  第一步是将框架识别为一种状态(难度)。  第二步是将状态组合成音素。  第三步是将音素组合成单词。  如下图所示:    图中,每个小竖条代表一个帧,几帧语音对应一个状态。每三个状态组合成一个音素,几个音素组合成一个词。也就是说,只要知道每一帧语音对应的状态,语音识别的结果就出来了。  那么每一帧音素对应的是哪个状态呢?有一个简单的方法可以想到,看某个帧对应***的概率是哪个状态,那么这个帧属于哪个状态。比如下面的示意图,这个帧在状态S3的条件概率是***,所以猜测这个帧属于状态S3。    你在哪里读到使用的概率?有一种叫做“声学模型”的东西,它存储了很多参数。通过这些参数,可以知道帧和状态对应的概率。这种获取大量参数的方法称为“训练”,需要使用海量的语音数据,训练方法繁琐,这里不再赘述。  但是这样有个问题:每一帧都会得到一个状态号,***整个语音会得到一堆乱七八糟的状态号,相邻两帧的状态号基本不一样。假设语音有1000帧,每一帧对应一个状态,每三个状态组合成一个音素,那么就会组合大约300个音素,但是这个语音实际上没有那么多音素。如果这样做,所获得的状态数可能根本不会组合成音素。事实上,相邻帧的状态应该大部分相同是合理的,因为每一帧都很短。  解决这个问题的常用方法是使用隐马尔可夫模型(HiddenMarkovModel,HMM)。这个东西听起来很高级,其实用起来很简单:  第一步是搭建状态网络。  第二步是从状态网络中找到最匹配声音的路径。  这样就把结果限制在预先设置的网络中,避免了刚才说的问题,当然也带来了限制,比如你设置的网络只包括“今天是晴天”和“今天israining”两句话的状态路径,那么不管怎么说,识别出来的结果一定是这两句话之一。  想要识别任意文字怎么办?使这个网络足够大以包含任意文本的路径。但是网络越大,越难达到更好的识别精度。因此,应根据实际任务的需要合理选择网络的规模和结构。  构建状态网络,将词级网络扩展为音素网络,再扩展为状态网络。语音识别过程实际上是在状态网络中寻找一条最优路径,语音对应这条路径的概率最高,称为“解码”。路径搜索算法是一种动态规划剪枝算法,称为维特比算法,用于寻找全局最优路径。    这里说的累积概率由三部分组成,即:  观察概率:每一帧和每个状态对应的概率  转移概率:每个状态转移到自己或转移到下一个状态的概率  languageprobability:根据语言统计得出的概率  其中,前两种概率是从声学模型中得到的,最后一种是从语言模型中得到的。语言模型使用大量文本进行训练,可以利用某种语言本身的统计规律来帮助提高识别准确率。语言模型非常重要。如果不使用语言模型,当状态网络很大时,识别结果基本是一团糟。  这样,语音识别的过程就基本完成了,这就是语音识别技术的原理。  3:语音识别技术原理——语音识别系统的工作流程  一般而言,一套完整的语音识别系统的工作分为七个步骤:  ①对语音信号进行分析处理,去除冗余信息。  ②提取影响语音识别的关键信息和表达语言意义的特征信息。  ③紧跟特征信息,用最小单位认字。  ④根据不同语言各自的语法,依次识别单词。  ⑤将前后含义作为辅助识别条件,有利于分析识别。  ⑥根据语义分析,将关键信息分成段落,取出识别出的词并连接起来,根据句意调整句子结构。  ⑦结合语义,仔细分析上下文的相互关系,对当前正在处理的句子进行适当的修正。  语音识别系统基本原理框图    语音识别系统基本原理结构如图所示。语音识别的原理有三点:①根据幅度谱的时间变化对语音信号中的语言信息进行编码;②因为语音是可以读出的,也就是说可以读出声音信号,而不用考虑说话者传达的信息内容。前提下,用多个区分的、离散的符号表示;③语音交互是一个认知过程,不能脱离语法、语义、术语规范。  预处理,包括对语音信号进行采样,克服混叠滤波,去除部分因个体发音和环境差异引起的噪声,同时还要考虑语音识别和端点检测的基本单元的选择。重复训练是通过让说话人在识别前多次重复语音,去除原始语音信号样本中的冗余信息,保留关键信息,然后将数据按照一定的规则组织起来,形成模式库。另一个是模式匹配,它是整个语音识别系统的核心部分。它根据一定的规则判断输入语音的含义,计算输入特征与库存模式的相似度。  前端处理,先对原始语音信号进行处理,然后进行特征提取,消除噪声和不同说话人发音差异的影响,使处理后的信号更完整地反映语音本质特征提取,消除了噪声和不同说话人发音差异的影响,使处理后的信号更完整地反映了语音的本质特征。  4:语音识别技术原理-发展  在计算机发明之前,自动语音识别的想法就已经提上日程,早期的声码器可以看作是语音识别的雏形和合成。也许最早的语音识别器是1920年代生产的“RadioRex”玩具狗,当它被叫到狗的名字时,它就会从它的底座中蹦出来。最早的计算机语音识别系统是AT&T贝尔实验室开发的Audrey语音识别系统,可以识别10个英文数字。它的识别方法是跟踪语音中的共振峰。系统在98%的时间里都是正确的。到1950年代末,伦敦学院(CollegeofLondon)的Denes已经将语法概率加入到语音识别中。  在1960年代,人工神经网络被引入语音识别。这个时代的两大突破是线性预测编码(LPC)和动态时间扭曲技术。  语音识别技术最重大的突破是隐马尔可夫模型HiddenMarkovModel的应用。从Baum提出的相关数学推理出发,经过Labiner等人的研究,卡内基梅隆大学的李开复终于实现了第一个基于隐马尔可夫模型的大词汇量语音识别系统Sphinx。从那时起,严格来说,语音识别技术并没有脱离HMM框架。  实验室语音识别研究的重大突破发生在20世纪80年代后期:人们终于在实验室突破了大词汇量、连续语音和非特定人的三大障碍,并首次将这三个特征结合起来。都集成在一个系统中,比较典型的是卡内基梅隆大学的Sphinx系统,它是第一个高性能的非特定、大词汇量连续语音识别系统。  这一时期语音识别研究得到进一步发展,其显着特点是HMM模型和人工神经元网络(ANN)在语音识别中的成功应用。HMM模型的广泛应用应该归功于AT&TBell实验室Rabiner等科学家的努力。他们工程化了原本困难重重的HMM纯数学模型,让更多的研究者能够了解和了解它,从而使统计方法成为语音识别技术的主流。.  在1990年代初,IBM、Apple、AT&T、NTT等众多知名大公司都大力投入语音识别系统的实用研究。语音识别技术有一个很好的评价机制,即识别的准确性,这个指标在20世纪90年代中后期的实验室研究中不断得到提升。比较有代表性的系统有:IBM的ViaVoice和DragonSystem的NaturallySpeaking、Nuance的NuanceVoicePlatform、微软的Whisper、Sun的VoiceTone等。