前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇语音识别范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
【关键词】语音识别 语言模型 声学模型 人工智能
使用智能手机的朋友们都会对语音助手产生极大的兴趣,不管是微软的Cortana,还是苹果的Siri,都是将语音识别融入现代技术的典范。Z音识别是解决机器“听懂”人类语言的一项技术,也是人工智能重要部分。
语音识别技术(speech recognition),也被称为自动语音识别 (ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而前者的目标是语音中所包含的词汇内容。
探究语音识别技术的框架、应用与发展有利于全面了解语音识别。本文将从语音识别简介、主流语言识别框架以及语言识别近年来的发展三个方面探究语音识别。
1 语音识别简介
1.1 传统语言识别技术发展
对语音识别技术的研究可以追述到上世纪五十年代,1952年贝尔研究所Davis等人研究成功了世界上第一个能识别10个英文数字发音的实验系统,开创了语音识别的先河。上世纪六十年代,人工神经网络被引入了语音识别。上世纪七十年代以后,大规模的语音识别在小词汇量、孤立词的识别方面取得了实质性的进展。传统语音识别技术最大突破是隐式马尔可夫模型的应用,这一模型极大提高了语音识别的准确率[1]。
1.2 语言识别的应用
作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别一直受到各国科学界的广泛关注。如今,随着语音识别技术的研究的突破,其对计算机发展和社会生活的重要性日益凸现出来。在现实生活中,语音识别技术的应用相当广泛,它改变了人与计算机交互的方式,使计算机更加智能。和键盘输入相比,语音识别更符合人的日常习惯;使用语言控制系统,相比手动控制,语音识别更加方便快捷,可以用在工业控制、智能家电等设备;通过智能对话查询系统,企业可以根据用户的语音进行操作,为用户提供自然、友好的数据检索服务。
2 语音识别框架
目前主流的语音识别框架可以分为以下几个模块:信号处理,特征提取,声学模型,语言模型,解码器。
2.1 信号处理
信号处理模块是对语音文件进行预处理。声音是一种纵波,在识别语音时,输入为WMV,MP3等格式的文件会被转换成非压缩的纯波文件wav格式。然后在进行语音识别前,需要检测该文件中的语音信号,该技术被称之为语音活性检测[2]。使用语言活性检测技术可以有效降低噪音,去除非语音片段,提高语音识别的准确率。经典的语音活性检测算法由如下步骤组成:
(1)使用spectral subtraction等方法对语言序列进行降噪。(2)将输入信号的分成区块并提取特征。(3)设计分类器判断该区块是否为语音信号。
2.2 特征提取
特征提取目的是提取出语音文件的特征,以一定的数学方式表达,从而可以参与到后续模块处理中。在这一模块,首先要将连续的声音分成离散的帧。每一帧的时间既要足够长,使得我们能够判断它属于哪个声韵母的信息,若过短则包含信息过少;每一帧时间也要尽量短,语音信号需要足够平稳,能够通过短时傅里叶分析进行特征提取,过长则会使信号不够平稳。分帧时使用如下改进技术可以有效提高识别准确率:相邻的两帧有所重叠减少分割误差,将与临近帧之间的差分作为额外特征,将多个语音帧堆叠起来。通过分帧处理,连续的语音被分为离散的小段,但还缺乏数学上的描述能力,因此需要对波形作特征提取。常见的方法是根据人耳的生理特征,把每一帧波形变换成一个多维向量。因此,这些向量包含了这些语音的内容信息。该过程被称为声学特征提取,常见的声学特征有MFCC、CPE、LPC等。
MFCC是目前最常用、最基本的声学特征,提取MFCC特征可以分为如下四个步骤:首先对每一帧进行傅里叶变换,取得每一帧的频谱。再把频谱与图1中每个三角形相乘并积分,求出频谱在每一个三角形下的能量,这样处理可以减少数据量,并模仿人耳在低频处分辨率高的特性。然后取上一步得到结果的对数,这可以放大低能量处的能量差异。最后对得到的对数进行离散余弦变换,并保留前12~20个点进一步压缩数据。通过特征提取,声音序列就被转换为有特征向量组成的矩阵。
2.3 声学模型
声学模型是语音识别中最重要的组成部分之一,其用于语音到音节概率的计算。目前主流的方法多数采用隐马尔科夫模型,隐马尔可夫模型的概念是一个离散时域有限状态自动机。
隐马尔可夫模型HMM如图2所示,是指这一马尔可夫模型的内部状态x1,x2,x3外界不可见,外界只能看到各个时刻的输出值y1,y2,y3。对语音识别系统,输出值通常就是从各个帧计算而得的声学特征,输入是由特征提取模块提取的特征。用HMM刻画语音信号需作出两个假设,一是内部状态的转移只与上一状态有关,另一是输出值Y只与当前状态X(或当前的状态转移)有关,这两个假设大大降低了模型的复杂度。HMM的打分、解码和训练相应的算法是前向算法、维特比算法和前向后向算法。
早期的声学模型使用矢量量化(Vector Quantification)的方法,使其性能受到VQ算法的极大影响。对于连续取值的特征应当采用连续的概率分布如高斯混合模型或混合拉普拉斯模型等。为了解决模型参数过多的问题,可以使用某些聚类方法来减小模型中的参数数量,提高模型的可训练性。聚类可以在模型层次,状态层次乃至混合高斯模型中每个混合的层次进行。
2.4 语言模型
语言模型音节到字概率的计算。 语言模型主要分为规则模型和统计模型两种。相比于统计模型,规则模型鲁棒性较差,对非本质错误过于严苛,泛化能力较差,研究强度更大。因此主流语音识别技术多采用统计模型。统计模型采用概率统计的方法来揭示语言单位内在的统计规律,其中N-Gram简单有效,被广泛使用。
N-Gram基于如下假设:第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率即为各个词出现概率的乘积。词与词之间的概率可以直接从语料中统计N个词同时出现的次数得到。考虑计算量和效果之间的平衡,N取值一般较小,常用的是二元的Bi-Gram和三元的Tri-Gram。
2.5 解码器
解码器是语音识别系统的核心之一,其任务是对输入信号,根据声学、语言模型及词典,寻找能够以最大概率输出该信号的词串。在实践中较多采用维特比算法[3]搜索根据声学、语言模型得出的最优词串。
基于动态规划的维特比算法在每个时间点上的各个状态,计算解码状态序列对观察序列的后验概率,保留概率最大的路径,并在每个节点记录下相应的状态信息以便最后反向获取词解码序列。维特比算法在不丧失最优解的条件下,同时解决了连续语音识别中HMM模型状态序列与声学观察序列的非线性时间对准、词边界检测和词的识别,从而使这一算法成为语音识别搜索的基本策略。
维特比(Viterbi)算法的时齐特性使得同一时刻的各条路径对应于同样的观察序列,因而具有可比性,Beam搜索在每一时刻只保留概率最大的前若干条路径,大幅度的剪枝提高了搜索的效率。Viterbi-Beam算法是当前语音识别搜索中最有效的算法。
3 语音识别技术的发展
近几年来,特别是2009年以来,借助机器学习领域深度学习研究的发展,以及大数据语料的积累,语音识别技术得到突飞猛进的发展。
在模型方面,传统语音识别模型逐步被神经网络替代,使用神经网络可以更好地提取特征,拟合曲线。使用人工神经网络来提高语音识别性能的概念最早在80年代就提出了,但当时高斯混合模型在大词汇语音识别上表现得更好,因此人工神经网络并没有进行商业应用。随着相关技术的进一步发展,微软研究院利用深度神经网络建立了数千个音素的模型,比传统方法减少了16%的相对误差。其在建立起有超过660万神经联系的网络后,将总的语音识别错误率降低了30%,实现了语音识别巨大的突破[4]。
同时目前多数主流语言识别解码器采用了基于有限状态机的解码网络,该网络将语音模型、词典、声学共享音字集统一为大的解码网络,大幅度提高了解码速度。
在数据量上,由于移动互联网的急速发展,从多个渠道获取的海量语言原料为声学模型和语言模型的训练提供了丰富的资源,不断提升语音识别的准确率。
4 结语
语音是人们工作生活中最自然的交流媒介,所以语音识别技术在人机交互中成为非常重要的方式,语音识别技术具有非常广泛的应用领域和非常广阔的市场前景。而随着深度神经网络发展,硬件计算能力的提高,以及海量数据积累,语音识别系统的准确率和实用性将得到持续提高。
参考文献:
[1]S基百科编者.语音识别[G/OL].维基百科,2016(20160829)[2016-08-29].
[2]维基百科编者.语音活性检测[G/OL].维基百科,2016(20160629)[2016-06-29].
[3]维基百科编者.维特比算法[G/OL].维基百科,2016(20160920)[2016-09-20].
[4] Dahl G E, Yu D, Deng L, et al. Context-dependent pre-trained deep neural networks for large-vocabulary speech recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2012, 20(1):30-42.
>> Linux平台下的ALSA声音编程 基于Sphinx的机器人语音识别系统构建与研究 linux平台下智能卡的支持方案 Linux平台下的MySQL存储管理技术研究 Linux平台下FTP客户端的设计思路 自主学习平台下英语语音教学模式的构建 TensorFlow平台下的手写字符识别 Linux平台下数据包过滤防火墙的研究与实践 基于SkyEye的虚拟嵌式平台下Linux内核移植技术的研究 Windows和Linux平台下的腰椎治疗仪实时仿真 嵌入式Linux平台下随机序列算法的设计 IP多播技术在Linux平台下电子教室中的应用与研究 基于ARM11在Linux平台下网络通信的设计与实现 Linux系统平台下会计软件的发展前景展望 虚拟机linux平台下基于Xshell的远程登录服务的设计与实现 在Linux平台下基于MPI的并行PC集群搭建的实现 基于Sphinx4的语音解码模块设计 云服务安全平台研究开发与语音识别应用 基于车联网平台下自然语音辨识系统的研发 .NET平台下中文语音合成技术的研究与实践 常见问题解答 当前所在位置:l。提交文件后,会产生由4个数字和后缀名组成的文件,假设其中包括的两个文件为8521.dic字典文件和8521.lm语言模型文件即我们所需要的文件。可以用两个线程处理这一过程,从而提高程序的性能:一个线程用来监听和处理语音命令,一个线程用来执行命令对应的应用程序,如图1所示。
假设C语言源程序名为hello_ps.c则可以编写如下的Makefile文件:
#Makefile for hello_ps.c
obj=hello_ps
modeldir=$(shell pkg-config--variable=modeldir pocketsphinx)
flags=$(shell pkg-config--cflags--libs pocketsphinx sphinxbase)
$(obj):$(obj).c
gcc $(obj).c-o $(obj)-DMODELDIR=\"$(modeldir)\"$(flags)
运行make命令编译即可产生hello_ps文件。然后运行./hello_ps-lm 8521.lm -dict 8521.dic就可以测试了。
五、结束语
本文介绍了语音识别引擎pocketsphinx在Linux环境下的应用程序编程,语音识别有着广泛的应用。如我们常见的声控拨号电话,语音识别锁等等。语音识别技术是非常重要的人机交互技术,有着非常广泛的应用领域和市场前景色。
参考文献:
[1]Carnegie Mellon University./wiki/
[2]/wiki/%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB
关键词:连续语音识别;关键技术;创新
谈到语音识别,就不得不提到李开复------前微软研究院院长,他在哥伦比亚大学时主攻的就是语音识别,即通过机器来识别语音。语音识别是现代社会背景下的一门新兴学科,它最主要的功能就是可以让计算机听懂人说的话,进而为人们提供更高效且方便的服务。它是人类和计算机之间利用语言进行交流 的桥梁,也是一门与多种学科紧密联系的实用技术。现阶段,人们对连续语音识别的研究已经取得了一定的成就。目前,我们研究语音识别的重点正在向特定应用领域口语的识别和理解方面转变。在这个研究中,有几种关键技术,下面我们就对其中几种关键技术进行简单的分析。
1、词语定位技术
词语定位技术,在语音识别技术中非常重要的技术。主要通过对关键词进行定位,这种技术跟语言的语法特点有很大关系,是将语句中的关键词语提取出来的一种定位技术。比如主语,谓语,宾语就是关键语素,先将这些语素定位对于完善整句话有着非常重要的意义,因为这些语素已经勾勒出了语句的骨架。打个比方,盖个房子要加钢筋,来增加建筑物的强度和支撑作用,关键语素就是语句意群的钢筋。通常词语定位是通过设置并及时更新关键词库来实现的。
2、关联搜索技术
在确定完基本语素后,就要根据语素之间的关联性,进行搜索,那些语素是一个意群,同在一个意群中的语素如何排列。利用相关性确定意群非常重要,因为词语词之间不是任意搭配的,而是有规律的,这种规律就是语法,包括书面语语法和口语的语法。语法是语音识别的规则,因此是非常重要的。关联的方式在语法的约束下主要有以下几种:1.相关词语出现的概率;2.相关词语的词性;3.相关词语出现的语境的重复率等等。
连接词识别就是说,系统中存储的HMM针对的是孤立词,但识别的语音是由这些词组成的词串。由于这一技术是一个连接序列,即根据给定发音序列来找到与其最匹配的参考模块词,所以,下面的问题必须得到解决:(1)在序列中,有些时候即使知道词长度的大概范围,也不知道词的具体数量;(2)除整个序列的首末端点之外,序列之中每个词的边界位置并不知道。
3、抗阻碍性
在语音识别系统中,阻碍无处不在,具体说来,阻碍包括以下几个方面:1.方言带来的语音识别的阻碍;2.口音带来的语音识别的阻碍;3.外界干扰(噪声)带来的语音识别的阻碍;4.系统设备局限性带来的语音识别的阻碍等等。
一般情况下,在实验室(环境相对安静)中训练合格的语音识别系统用在实际环境(环境与训练的实验室环境不相匹配)的时候性能就会明显下降。所以,运用顽健语音识别技术就是为了研究一些补偿技术借以提高系统在不同环境中的性能。
根据语音系统中噪声的特点,我们研究出了一些抑制噪声的方法,如根据信号与噪声在各个尺度上的小波谱表现不一样的特点,可以运用小波变换的噪声抑制;根据含噪语音信号能量谱就是噪声信号和语音信号能量谱之和这一特点,可以运用EVRC编码噪声抑制方法,等等。
4、搜索策略技术
在利用计算机来识别语音的时候,未知的模式,即从输入语音中求出的特征参数,与事前所定的标准模式是否一致,这个问题必须检查。目前语音识别的实现主要是通过声音识别芯片分析声音的波形来实现的,人的说话声音有音调、音色的不同,因而所形成的生意的波形也不同,芯片通过比对声音图谱来确定语音内容,达到声音识别的目的,这也就是声音识别的原理。然而,在实际情况中,由于语音具有许多的不确定的因素,想达到完全一致比较困难。搜索策略是连续语音识别研究中的一个是否重要的课题。它的基本思路是,把帧作为搜索单位,在每一时刻对每一条路径都假定当前帧有可能是这一路径的后续,借此进行一个完整的搜索。
总体来说,搜索策略技术受到容量的限制。所以,我们必须确定应该保留哪些路径,这就要求我们确定一定阀值,这个阀值既不能过严也不能过宽。对于这个问题,我们一定要采用合适的算法,如传统的帧同步算法、基于统计知识的帧同步搜索算法原理和受词法约束的词搜索树等算法都是比较适合这一部分的。
结论:
本文总结了连续语音识别中几种关键技术,并对它们进行了简单的介绍和分析。目前连续语音识别技术的研究并不成熟,它要向正确的方向健康发展就必须把词语定位技术、关联搜索技术、抗阻碍性技术、搜索策略技术等技术都正确运用于实际工作中。
参考文献:
[1]冯丽娟,吾守尔·斯拉木.维吾尔语连续语音识别技术研究[J].现代计算机:下半月,2010,(1)
2、进入控制面板后,将查看的类别设置为大图标或者小图标,语音识别功能就会显现出来。
3、在所有控制面板项的最下方选择语音识别功能,会进入语音识别功能设置的页面。
4、启动语音识别,启动的步骤按照电脑的提示走即可。
调试不可少
连接好麦克风,然后打开“控制面板轻松访问语音识别”,打开“语音识别设置”(如图1)。在正式使用语音识别功能前,我们需要对相关设备进行调试。
1.单击“设置麦克风”启动麦克风设置向导,按向导提示完成麦克风的设置,这里主要配置麦克风的音量和灵敏度。
2.单击“学习语音教程”启动学习向导。现在按照屏幕的提示一步步使用语音操作电脑即可。比如屏幕提示“说出‘下一步’以继续”,我们只要对着麦克风说出“下一步”,向导的操作就会自动进入下一步。这里可以对“听写”、“命令”和“操作Windows”进行全方位的训练,整个教程也设计得十分漂亮(如图2)。
系统操作,“听”我的
完成上述设置后,返回图1所示的窗口,单击“启动语音识别”。语音识别启动后会在屏幕上方出现语音识别状态栏。现在对着麦克风说出“开始聆听”,语音识别显示框会出现“正在听”的字样。接下来,我们就能用嘴给计算机下达命令了。
例如我们要启动Vista的侧边栏,就需要依次说出“开始”“所有程序”“附件”“Windows边栏”。不过很多时候,语音识别在初次使用时并不能准确识别所有命令,比如在说出“Windows边栏”时,语音识别会将类似的识别项目全部标注出来,只要按提示说出正确项目的序号并确定即可(说“4”,然后再说“确定”,如图3)。
经过一段时间试用,笔者发现无论是用普通话还是用笔者的本地方言(重庆话),系统都能做出比较准确的判断。但操作的效率还是不高,而且一些特定的指令也需要慢慢熟悉。