引论:我们为您整理了13篇语音识别系统范文,供您借鉴以丰富您的创作。它们是您写作时的宝贵资源,期望它们能够激发您的创作灵感,让您的文章更具深度。
篇1
1.1语音识别技术的概念
语音识别技术(Auto Speech Recognize,简称ASR)所要解决的问题是让计算机能够“听懂”人类的语音,将语音中包含的文字信息“提取”出来。ASR技术在“能听会说”的智能计算机系统中扮演着重要角色,相当于给计算机系统安装上“耳朵”,使其具备“能听”的功能,进而实现信息时代利用“语音”这一最自然、最便捷的手段进行人机通信和交互。
1.2语音识别的系统组成
语音识别系统构建过程整体上包括两大部分:训练和识别。
1.2.1训练
训练通常是离线完成的,对预先收集好的海量语音、语言数据库进行信号处理和知识挖掘,获取语音识别系统所需要的“声学模型”和“语言模型”。
1.2.2识别
识别过程通常是在线完成的,对用户实时的语音进行自动识别,可以分为“前端”和“后端”两大模块:“前端”模块主要的作用是进行端点检测(去除多余的静音和非说话声)、降噪、特征提取等;“后端”模块的作用是利用训练好的“声学模型”和“语言模型”对用户说话的特征向量进行统计模式识别(又称“解码”),得到其包含的文字信息,此外,后端模块还存在一个“自适应”的反馈模块,可以对用户的语音进行自学习,从而对“声学模型”和“语音模型”进行必要的“校正”,进一步提高识别的准确率。
语音识别技术所面临的问题是非常艰巨和困难的。尽管早在二十世纪五十年代,世界各国就开始了对这项技术孜孜不倦的研究,特别是最近二十年,国内外非常多的研究机构和企业都加入到语音识别技术的研究领域,投入了极大的努力,也取得了丰硕的成果,但是直到今天,距离该技术得到完美解决还存在着巨大的差距,不过这并不妨碍不断进步的语音识别系统在许多相对受限的场合下获得成功的应用。
如今,语音识别技术已经发展成为涉及声学、语言学、数字信号处理、统计模式识别等多学科技术的一项综合性技术。基于语音识别技术研发的现代语音识别系统在很多场景下获得了成功的应用,不同任务条件下所采用的技术又会有所不同。
2、语音识别系统技术实现
语音识别系统选择识别基元的要求是:有准确的定义,能得到足够数据进行训练,具有一般性。系统所需的训练数据大小与模型复杂度有关,模型设计得过于复杂以至于超出了所提供的训练数据的能力,会造成系统性能的急剧下降。
2.1听写机
2.1.1概念
大词汇量、非特定人、连续语音识别系统通常称为听写机。
2.1.2基本架构
听写机是建立在前述声学模型和语言模型基础上的HMM拓扑结构,训练时对每个基元用前向后向算法获得模型参数,识别时将基元串接成词,词间加上静音模型并引入语言模型作为词间转移概率,形成循环结构,用Viterbi算法进行解码。针对汉语易于分割的特点,先进行分割再对每一段进行解码,是用以提高效率的一个简化方法。
2.1.3对话系统
用于实现人机口语对话的系统称为对话系统。目前,受技术所限,对话系统往往是面向一个狭窄领域、词汇量有限的系统,其题材有旅游查询、订票、数据库检索等等。它的前端是一个语音识别器,识别产生的N-best候选或词候选网格,由语法分析器进行分析获取语义信息,再由对话管理器确定应答信息,由语音合成器输出。基于目前的系统往往词汇量有限的情况,也可以用提取关键词的方法来获取语义信息。
3、语音识别系统特性
语音识别系统的性能受许多因素的影响,包括不同的说话人、说话方式、环境噪音、传输信道等等。具有自适应性与鲁棒性。解决办法可大致分为两类:针对语音特征的方法(以下称特征方法)和模型调整的方法(以下称模型方法)。前者需要寻找更好的、高鲁棒性的特征参数,或是在现有的特征参数基础上,加入一些特定的处理方法。后者是利用少量的自适应语料来修正或变换原有的说话人无关(SI)模型,从而使其成为说话人自适应(SA)模型。
4、语音识别的应用
语音识别专用芯片的应用领域,主要包括以下几个方面:
4.1电话通信的语音拨号。特别是在中、高档移动电话上,现已普遍的具有语音拨号的功能。随着语音识别芯片的价格降低,普通电话上也将具备语音拨号的功能。
4.2汽车的语音控制。由于在汽车的行驶过程中,驾驶员的手必须放在方向盘上,因此在汽车上拨打电话,需要使用具有语音拨号功能的免提电话通信方式。此外,对汽车的卫星导航定位系统(GPS)的操作,汽车空调、照明以及音响等设备的操作,同样也可以由语音来方便的控制。
4.3工业控制及医疗领域。当操作人员的眼或手已经被占用的情况下,在增加控制操作时,最好的办法就是增加人与机器的语音交互界面。由语音对机器发出命令,机器用语音做出应答。
4.4个人数字助理(Personal Digital Assistant,PDA)的语音交互界面。PDA的体积很小,人机界面一直是其应用和技术的瓶颈之一。由于在PDA上使用键盘非常不便,因此,现多采用手写体识别的方法输入和查询信息。但是,这种方法仍然让用户感到很不方便。现在业界一致认为,PDA的最佳人机交互界面是以语音作为传输介质的交互方法,并且已有少量应用。随着语音识别技术的提高,可以预见,在不久的将来,语音将成为PDA主要的人机交互界面。
4.5智能玩具。通过语音识别技术,我们可以与智能娃娃对话,可以用语音对玩具发出命令,让其完成一些简单的任务,甚至可以制造具有语音锁功能的电子看门狗。智能玩具有很大的市场潜力,而其关键在于降低语音芯片的价格。
4.6家电遥控。用语音可以控制电视机、VCD、空调、电扇、窗帘的操作,而且一个遥控器就可以把家中的电器皆用语音控起来,这样,可以让令人头疼的各种电器的操作变得简单易行。
篇2
语音作为语言的声学体现,也是人类进行信息交流最自然、和谐的手段。与机械设各进行语音的沟通,让机器可以明白人类在说什么,并理解这是人类长期的梦想。语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。语音识别技术的应用包括语音拨号、语音导航、室内设备控制、语音文档检索、简单的听写数据录入等。语音识别技术与其他自然语言处理技术如机器翻译及语音合成技术相结合,可以构建出更加复杂的应用,语音识别技术所涉及的领域包括:信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等。
二、语音信号分析与特征提取
1.基于发音模型的语音特征。(1)发音系统及其模型表征。其发声过程就是由肺部进行收缩,并进行压缩气流由支气管通过声道和声门引起的音频振荡所发生的。气流通过声门时使得声带的张力刚好使声带发生比较低的频率的振荡,从而形成准周期性的空气脉冲,空气脉冲激励声道便会产生一些浊音;声道的某处面积比较小,气流冲过时便会产生湍流,会得到一种相似噪声的激励,对应的则是摩擦音;声道完全闭合并建立起相应的气压,突然进行释放就是爆破音。(2)语音信号线性预测倒谱系数。被广泛应用的特征参数提取技术的就是线性预测分析技术,很多成功的应用系统都是选用基于线性预测技术进而提取的LPC倒谱系数作为应用系统的特征。LPC倒谱就是复倒谱。复倒谱就是信号通过z进行变换以后再取其对数,求反z变换所得到的谱。线性预测分析方法其实就是一种谱的估计方法,所以其声道模型系统函数H(z)反映的就是声道频率激励和信号的谱包络,对IHg(z)作反z变换就可以得出其复倒谱系数。改复倒谱系数是依据线性预测模型直接获得的,而又被称为LPC倒谱系数(LPCC)。
2.基于听觉模型的语音特征。(1)听觉系统模型。一是人类的听觉系统对于声音频率高低和声波实际的频率高低不是线性的关系,它对不同声音频率信号的敏感度是不一样的,也可看成是对数关系。二是关于掩蔽效应指的就是声音A感知的闭值因为另外的身影的出现出现增大的现象。其生理依据主要是频率群,对频率群进行划分会出现许多的很小的部分,每一个部分都会对应一个频率群,掩蔽效应就发生在这些部分过程中。所以在进行相应的声学测量时,频率刻度一般取非线性刻度。语音识别方面,主要的非线性频率刻度有Mel刻度、对数刻度和Kon~nig刻度。其中Mel刻度被广泛的应用,其是最合理的频率刻度。(2)语音信号Mcl频率倒谱系数。Mel频率倒谱系数利用人们耳朵的听觉特性,在频域将频率轴变换为Mcl频率刻度,再变换到倒谱域得到倒谱系数。MFCC参数的计算过程:
篇3
【中图分类号】TP311 【文献标识码】A
【论文编号】1671-7384(2014)02-0069-03
引 言
计算机如今如此普及,计算机发展速度完全超乎想象。但目前为止,真正具备与人交流功能的电脑还不存在。有这样一个图灵测试——让测试员与被测试者和一台机器在隔开的情况下,通过一些装置向被测试者随意提问。问过一些问题后,如果测试人不能确认被测试者30%的答复哪个是人、哪个是机器的回答,那么这台机器就通过了测试。可惜的是,如今情况下最好的成绩是由俄罗斯专家设计的“叶甫根尼”电脑程序,也只是达到了29.2%。
语音,是人与人交流的一种手段,也是人类交流和交换信息中最便捷的工具。退而求其次,要做到通过图灵测试,不如先让电脑通过语音作为引信来帮人类做事情。为了充分阐述语音识别这套系统的原理,本文将小范围重现语音识别原理。
对于语音识别之后,让计算机去理解人的意思,不可缺少的就是将文字信息转化为计算机能理解的内容。把计算机比作一个人手中拿着一本象形文字对照手册,身处上文说的图灵测试的房子中。而另一人则在房间外向此房间发送象形文字问题。房间内的人只需按照对照手册,返回手册上的象形文字答案即可。毕竟只需要让计算机懂得我们的意思,并非让计算机来帮我们去思考。因此,只要给予足够多的“稿纸、笔”以及足够大的“词典”即可。
这次我们对系统的研究使用的是C语言,由于并没有采用面向对象化的语言来编程,大部分程序使用的编程并没有向“类”里面填充“方法”的概念。这套系统硬件开发、硬件编程采用的是51单片机来实现,后期的处理则是在上位机通过钩挂系统钩子读取内存来实现。下面,我们将一步一步讲述构建这个系统的过程。
平台构建
如今,国外已经有很多成品语音识别系统,中文的语音识别控制系统也有很多的企业、教育科研机构在做相关的项目。不过这些研究却依然停留在初级阶段。因为中文是世界上最难学的语言,人来学习尚且如此,更何况人来教给机器去识别。
虽然如此,做语音识别首先要有一个平台来去搭建中文语音识别系统。第一步要做的便是将声音讯号转化为电讯号。这里采用一个高阻抗麦克风,作为音源进行声电转化。通常的麦克风是三个端子输出,分别是两个信号源和一个接地端。大部分的麦克风两个端读入的是相同信号,少部分高品质的则读入的是差分信号。
麦克风的输入是毫伏级别,类似空气声、干扰波都会使得输入的信号有噪波。因此,输入的两个端分别进行旁路电容滤波等操作,去除杂波。无源麦克风的输入电压过低,之后要将信号接入放大器,放大后的信号才能使得后续的操作中,模拟—数字信号转换器获得足够被感应的信号强度。
理论上讲,音频信号可以看作周期信号,按照傅立叶级数定理可知,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示。因此,通过将音频信号进行傅立叶级数展开,去除杂波频段的波形即可得到优质波形。
而实践中,通过硬件操作步骤较为烦琐,软件分析需要时间较长,出于经济等方面因素考虑,本系统不采用傅立叶变换来实现识别音频特性,而采用比较法取波形相似度等方式进行识别。
语音识别
上文中的信号经过模拟—数字转换器转换成为了数字信号,接入处理器的IO接口线程中,此时,读入的信号会通过地址总线和IO端口读入。因此在硬件上,我们使用中断程序来进行信号预处理。
软件方面中断程序部分,仅需要将读入的IO数据以数组形式存放入内存即可。
声音有三要素:音高、响度、音色。读入的信号即每个时间点的声音感受器震动位置,我们可以通过电流接入到压片陶瓷上来还原声音,而如果我们要去分析音频则需要对照三要素下手。
响度即声波数组中的数值高低,为了让声波数组中的响度和预存的响度相同,我们通过统计整段中有效波形能量数值和与预存数组的能量数值做比例处理,使得响度和预存数组相近。
音高即声音的频率,频率的定义是:单位时间内完成振动的次数,是描述振动物体往复运动频繁程度的量。通过声波数组寻找相邻两点是否为相反数,即可寻找到过0点次数得到频率。这时,时间段的频率即可求出,间接可得到整段声音的频率。
我们发现,对音高进行频率化处理,同样也需要对预存数组进行频率化处理。因此,尽管我们可以去频率化处理提高识别精度,但相比对音频直接做响度匹配,所谓黑盒操作更易于分析和匹配。
汉语是由声母和韵母组成的,通过五声韵母和声母匹配,即可收集有限个声源。用这些声源和预处理的声音进行匹配,即可得出每个字的读音。
上述的程序段只是匹配所需要的函数,在外部需要循环来赋给数组对应指针位置才能实现,在对比中,如何确定开头是一个难点。因此需要对音频数据的开头做识别。在本系统中,采用读取5个相邻数据,如果连续的峰值高于30且持续了超过25毫秒以上,则判定这个时间点为数据的开始。
在系统中,虽然我们采用了去除抖动的算法,但声音音响处理过后,也会丢失一些精度,此处的算法若提高精度,则需要在前期处理做根据香农采样定理计算低通信道的最高大码元传输速率,进而做精确的采样以及还原,同时滤波采用更先进的算法来实现,这里只实现采样而不做精细讨论。
人工分词
中文,全世界有近20亿的人在使用。然而,中文的语法是世界上无章可循的语法之一。古人云:“句读之不知,惑之不解”,想要用中文交流,就必须知道如何断句。这样,才能正常地和人交流,才能清晰地理解对方的意思。
欲断句,先断词。让计算机来执行控制,而计算机处理的却是整个词组。前面步骤已经讲述了如何将语音识别成一个个的单字,识别成一个个句子。但是中文并不像英文,说“我是一个学生”这句话的时候不会像“Iam a student”这样中间有空格从而判断词组。这就需要我们对句子做一个特殊的处理——人工分词。
以“我是一个学生”为例,人类来理解这句话,他的意思就是“‘我’的职业属性是学生”。从这个例子可以看出,提取“是”这个动词为关键字,便可以将前后转变为赋值表达式的形式“我->职业=学生”。
优先提取出一句话的动词,是分词处理的关键。但并非每个动词都可以这样来操作,例如,“他鞠躬下台”,很明显“鞠躬”是个动词,“下台”也是一个动词;如果按照上文中所述,“他->鞠躬=下台”就会出问题。为了处理这个问题,我们引入现代汉语中及物动词和不及物动词的概念。将“鞠躬”、“下台”这种不及物动词和“打”、“吃”这样的及物动词分开。
当然,这需要字典来处理,借助现代科技的发展,一本电子版的现代汉语词典就可以解决这个问题,通过词库来查询每个词语的意思,从而抽离出动词。我们只需要设计不及物动词代表动作即可,这样就可以将信息存储成“他->动作=鞠躬&下台”。
若是英文,如此做便可以了。但上文说过,中文语法是世界上无章可循的语法之一。英文中设置了动词字典基本上就处理了大部分问题。可中文中会出现如下句子:“今天的比赛在大学生活动中心召开。”
人工模拟电脑来理解,副词可以修饰形容词、修饰动词,用副词来修饰试探:比赛可以“不比赛”不能“很比赛”,因此它不是形容词,而是动词,“我比赛你”这句话不通,因此是不及物动词;“活动”和“召开”也是同理,是不及物动词。因此这句话要理解成“今天->动作=比赛&活动&召开”。
但不能说“今天->动作=比赛&活动&召开”,很显然这句话真正的意思是“比赛->地点=大学生活动中心”。出现这个问题,核心原因就是计算机没有把“大学生活动中心”当作一个词,任何一本字典都不会去收录“大学生活动中心”这个词。
在中文分词中, 中科天玑出品了一套中文分词系统架构,加载头文件"ICTCLAS50.h"可以用头文件定义的命令#pragma comment读取它所提供的数据库(lib,"ICTCLAS50.lib")
执行过该程序段后,会将分词结果以test.txt的形式保存在硬盘中。
结 语
做完人工分词,基本上也就实现了读取用户所要达到的目的。这套系统贯穿底层到软件层,如果有可能甚至需要设计到云端。虽然局部的测试没有出现严重的错误,但由于时间原因,并没有做综合测试。
其中的一些理论和实践衔接的地方还存在着不足,一些算法也存在着改进的空间,但这些问题终将在以后得到解决。也希望这套系统能在最后的实践和发展中真正用于生活,从而提供更好的生活体验,为人们体验生活、享受人生做出贡献。
基金项目: 本文系北京市自然科学基金项目(4132009);北京市属高等学校高层次人才引进与培养计划项目(CIT&TCD201304120);北京市教委科技计划项目(KM201211232008)的研究成果。
参考文献
何嘉. 基于遗传算法优化的中文分词研究[D].电子科技大学,2012.
赵培. 中文语音识别结果文本分类的研究与实现[D].大连理工大学,2008.
曹卫峰. 中文分词关键技术研究[D].南京理工大学,2009.
龙树全,赵正文,唐华. 中文分词算法概述[J]. 电脑知识与技术,2009,10:2605-2607.
刚. 图灵测试:哲学争论及历史地位[J]. 科学文化评论,2011,06:42-57.
谭超. 学习型中文语音识别系统研究及实现[J]. 电脑开发与应用,2012,04:35-37.
胡宝洁,赵忠文,曾峦,张永继. 图灵机和图灵测试[J]. 电脑知识与技术,2006,23:132-133.
陈淑芳. 基于51单片机的教学实验系统的设计与开发[D].中国海洋大学,2011.
张文国. 中文语音识别技术的发展现状与展望[J].上海微型计算机,1998,35:46.
篇4
隐马尔可夫模型;神经网络;语音识别;遗传算法
随着语音识别技术的发展,人们对语音识别的技术要求越来越高,隐形马可夫模型(HiddenMarkovModel,简称HMM),在语音识别中已经广泛得到应用.但是,其自适应能力差,抗噪性也不是十分理想,仅靠单一的HMM进行语音识别存在诸多困难[1,2].而现在广泛应用的人工神经网络(ArtificalNeuralNet-work,简称ANN)[3,4],在自适应、抗噪性方面具有良好的特性,克服了HMM中存在的不足.反向传播神经网络(BP)虽然已经是神经网络中前向神经网络的核心部分,并且得到了广泛的应用[5].然而,BP神经网络也存在诸多缺点,比如学习收敛速度太慢,使其只能解决小规模的问题,也不能保证收敛到全局最小点,使得训练结果达不到全局最优性.遗传算法优化后的反向传播神经网络(GA-BP)[6-9]的混合模型语音识别方法,有效地保证训练结果的全局最优性,在语音识别的速度方面也有大幅度的提高,但在噪声环境下,遗传算法优化后的反响传播神经网络噪声鲁棒性并不是十分理想,因此也对语音识别系统的性能带来了影响[10].本文运用小波神经网络结构简单、收敛速度快的优点,对MFCC系数进行训练,从而得到新的MFCC系数,再进行特征提取后作为遗传算法优化后的输入.然后利用优化后的遗传神经网络获得语音的分类识别信息进行语音识别.实验结果表明,基于HMM与遗传神经网络改进的语音识别系统进一步提高了语音识别系统的自适应性和噪声鲁棒性.
1隐马尔可夫模型语音识别原理
隐马尔可夫模型是一种利用相关参数来表示,并用于描述随机过程中统计特性的概率模型[11].它的本质是一种基于统计分布一致性的聚类分析,每个隐含的状态就是一个聚类,对HMM进行训练的过程就是寻找每个聚类之间的相关联的过程.它由两部分组成:一个是隐含的马尔可夫链,即为隐含层;另一个是实际的观测量,即为观测层.HMM基于参数统计理论,利用概率密度函数计算出语音参数对模型的输出概率,找到最佳状态序列以后,用最大后验概率为准则进行识别.语音参数和隐马尔可夫模型关系如下图图1所示.
2基于遗传算法的神经网络优化算法
BP神经网络是人工神经网络中应用最为广泛的算法,但在广泛运用的同时,也逐渐出现一些不足之处,比如收敛速度慢、不能保证收敛到全局最小点等等.另外,网络结构,初始连接权值与阈值的选取对网络训练带来的影响也非常大,但是又无法准确获得.针对这些特点可以采用遗传算法对神经网络进行优化.
2.1传统遗传算法传统遗传算法实现步骤如下:1)随机产生一定数量的初始个体,这些随机产生的初始个体总体数目组成一个种群.2)用评价函数来评价每个个体的优劣,每个个体的适应程度(称为适应度)作为遗传操作的依据.3)从现有的种群中选取一定的个体作为新一代的个体,个体适应程度越高,被选择的机会越大.4)对于新生成的种群进行交叉、交异操作.
2.2用遗传算法优化神经网络权值的学习过程遗传算法(GeneticAlgorithm,GA)是模拟著名天文学家达尔文的遗传选择和生物进化的计算模型,具有很强的宏观搜索能力和良好的全局优化性能[12,13].因此采取遗传算法与BP神经网路相结合,训练时先用遗传算法对神经网络的权值进行寻找,将搜索范围缩小后,再利用BP网络来进行精确求解,可以达到全局寻找和快速高效的目的,并且避免局部最小问题.算法结束后,由群体中最优个体解码即可得到优化后的网络连接权值系数.
3基于HMM与遗传神经网络改进的语音识别系统设计
现有的语音识别系统只能处理平稳信号,而人说话的语言频率不一样使得语音信号是一个准稳态信号,这时就要把语音划分成若干帧以达到信号稳定的要求.但这存在的不足之处就是并没有考虑到语音信号的动态特性,根据神经网络在非线性映射方面有比较好的效果,同时神经网络也具有小波多分辨分析的性能,从而可以从样本中提取出来新的特征信息.本文采用基于HMM与遗传神经网络改进的语音识别系统,对输入语音信号进行预处理后,利用小波神经网络训练MFCC系数,然后根据HMM参数库进行Viterbi译码,归一化处理以后作为优化后遗传神经网络的输入,即将HMM中全部状态累计概率作为优化后的遗传神经网络特征输入,再根据神经网络的非线性映射能力对语音信号识别出所需要的结果.改进后的语音识别系统流程图如图3所示.
4仿真实验及结果分析
实验语音文件从十个人中采集,一个文件有中文数字1-9组成.每个人录了四次,其中三个用于培训和一个用于测试.记录格式的采样频率8kHz,单通道16位采样点,采取的帧长为256点.记录后,点检测去除无声段,其次是预加重.然后,语音段划分为20个帧,从每一帧中提取的特征参数.一个帧有10个特征.因此,每一个数字都会有200特点.实验训练集采取100个不同人员的净语音样本;在不同的信噪比下取50个不同人员的语音信息;在不同的环境下,采用的语音数据的信噪比分别为40、35、30、25、20、15、5和0dB.实验时,为了验证改进的语音识别系统的有效性,在Matlab7.0上分别对HMM,HMM与优化后的遗传神经网络和本文改进后的混合语音识别模型算法做对比.实验分为两次实验过程,第一次在加性高斯噪声下;第二次在学校餐厅学生就餐时人声为噪声背景.实验分别得出语音在加性高斯噪声下识别率如表1和图4;在学校餐厅时实验结果如表2和图5所示.由表1和表2中的实验数据可以看出,改进以后的混合算法相比单一的HMM和优化的遗传神经网络相比具有更好的识别效果,尤其对那些容易混淆的词语识别率也有所提高.对于识别系统的信噪鲁棒性方面也有了明显的改变,提高了语音识别系统的自适应能力.神经网络的收敛速度是衡量语音识别的一个重要标准,因此遗传神经优化算法与BP算法收敛速度作了如图6、图7的比较,实验结果表明,优化算法收敛速度得到明显改善.
5结论
本文提出了基于隐马尔可夫HMM与遗传算法的神经网络改进的语音识别系统,在隐马尔可夫模型与遗传网络算法优化的基础上,引入小波神经网络训练MFCC系数,充分利用了隐马尔可夫模型强大的时间建模能力与遗传算法优化后的收敛速度快、分类识别能力强的优点.小波神经网络训练出的MFCC新系数应用到优化后的神经网络具有更高的识别率,提高了识别系统的自适应能力.
参考文献
1吕军,曹效英,徐宝国.基于语音识别的汉语发音自动评分系统的设计与实现.计算机工程与设计,2007,28(5):1232–1235.
2郭超,张雪英,刘晓峰.支持向量机在低信噪比语音识别中的应用.计算机工程与应用,2013,49(5):213–215.
3SemanN,BakarZA,BakarNA.TheoptimizationofArtificialNeuralNetworksconnectionweightsusinggeneticalgorithmsforisolatedspokenMalayparliamentaryspeeches.2010InternationalConferenceonComputerandInformationApplication(ICCIA).IEEE.2010.162–166.
4LanML,PanST,LaiCC.Usinggeneticalgorithmtoimprovetheperformanceofspeechrecognitionbasedonartificialneuralnetwork.FirstInternationalConferenceonInnovativeComputing,InformationandControl(ICICIC’06).IEEE.2006,2.527–530.
5王晓东,薛宏智,马盈仓.基于自适应遗传算法的神经网络字符识别.西安工程大学学报,2008,22(2):210–213.
6钟林,刘润生.新神经网络结构及其在数码语音识别中的应用.清华大学学报(自然科学版),2000,40(3):104–108.
7包亚萍,郑骏,武晓光.基于HMM和遗传神经网络的语音识别系统.计算机工程与科学,2011,33(4):139–144.
8冯宏伟,薛蕾.基于HMM和新型前馈型神经网络的语音识别研究.计算机工程与设计,2010,(24):5324–5327.
9肖勇,覃爱娜.改进的HMM和小波神经网络的抗噪语音识别.计算机工程与应用,2010,(22):162–164.
10PanST,WuCH,LaiCC.Theapplicationofimprovedgeneticalgorithmonthetrainingofneuralnetworkforspeechrecognition.SecondInternationalConferenceonInnovativeComputing,InformationandControl(ICICIC’07).IEEE,2007.168–168.
11AggarwalRK,DaveM.ApplicationofgeneticallyoptimizedneuralnetworksforHindispeechrecognitionsystem.2011WorldCongressonInformationandCommunicationTechnologies(WICT).IEEE.2011.512–517.
篇5
中图分类号:TP319 文献标志码:A 文章编号:1006-8228(2013)01-01-02
Design of hardware of speech recognition system in humanized robot
Liu Renping, Hou Ruizhen, Fang Yinglan, Han Xianfeng
(North China of Technology, Beijing 100144, China)
Abstract: In order to improve the reliability and efficiency of the speech recognition, a speech recognition system based on double CPU of the "MCU+DSP" is designed. The calculations are done by the main processor which takes the digital signal processor (DSP) as the hardware platform. DSP operation is assisted by Micro control unit(MCU), which controls all parts of the robot. Its performance can meet real-time processing's needs.
Key words: humanoid robot; double CPU; speech recognition system; hardware design
0 引言
随着超大规模集成电路和数字信号处理器(DSP)的快速发展,DSP的应用越来越广泛,涉及到各个领域如语音处理,图像处理等方面。现在语音识别中许多复杂算法已经能够在硬件上实现。最近十多年来,已研发出不少应用于不同领域的便携式语音识别系统。DSP处理速度快、灵活、精确,满足了对信号快速、实时、精确处理的要求,所以很适用于语音识别。
1 拟人机器人语音识别方法概述
语音信号分析是语音识别的前提和基础,只有分析出可表示语音信号本质特征的参数,才可能利用这些参数进行高效的语音通信,才能建立用于识别的模板或知识库。语音识别率的高低取决于对语音信号分析的准确性和精确性,虽然语音信号具有时变特性,但在一个短时间范围内其特性相对稳定,因而可以将其看作是一个短时平稳过程。任何对语音的分析和处理均建立在“短时”的基础上,一般认为语音信号在10-30ms的短时间内是相对平稳的。
拟人机器人语音识别方法如图1所示,采集到的语音信号输入后,首先对语音信号进行预处理,预处理主要包括:语音信号电压放大采样、反混叠失真滤波、预加重、自动增益控制、分帧、加窗、语音增强、端点检测以及A/D转换等环节;然后是信号特征量的提取(本文对信号的特征量进行Mel频率倒谱系数[2](Mel-Frequency Cestrum Coefficients)处理);最后对建立好的参数模板进行对比,测试的依据是失真度最小准则,如本文用到的动态时间规整DTW[3](Dynamic Time Warping)。
2 系统硬件设计
通过针对拟人机器人的特点,对系统进行分析和方案设计,最终确定本系统的框图如图2所示。本系统的硬件基于一个以DSP(TMS320VC5416)为主处理器的硬件平台,硬件平台主要包括:语音输入输出模块、主处理器DSP模块、存储器模块、单片机MCU模块、485串口通信模块。其中语音输入输出模块实现了语音信号的采集和输出;主处理器DSP模块(TMS320VC5416)主要完成语音识别所需的计算,其性能能够达到实时处理的要求;存储器模块包括一片FLASH和两片SRAM,用FLASH作为DSP的可编程存储器,SRAM分别作为DSP的数据和程序存储器;单片机MCU模块完成对拟人机器人的运动控制;485串口通信模块实现单片机MCU和PC机之间的通信。
2.1 主处理器DSP模块介绍
TMS320VC5416(简称VC5416)是TI公司的C54X家族的成员之一,它是基于先进的改进哈佛结构的16位定点DSP。它具有C54X的共同特点,高性能低功耗,具有高达160MHz的主频,核心电压1.5V,运行于此频率时功耗仅为90mW;拥有一条程序总线和三条数据总线,片内集成有高度并行性的算术逻辑单元(ALU)、专有硬件逻辑、片内存储器和片内外设等。
篇6
随着人们对人机交流技术的要求越来越高,语音识别技术应运而生。语音识别是将语音信号转换成相应文本的高技术,是一种重要的人机交互技术[1]。在近二十年,越来越多高水平的研究机构和企业加入到语音识别的研究领域,并开始向市场上提品。其中具有代表性的产品有微软的Whisper系统,Google的Word Search系统,苹果的Siri系统等。
语音识别最重要的性能指标就是识别率,而识别率十分依赖特征参数的训练和识别模型。常用的模式匹配和模型训练技术主要有动态时间归整算法和隐马尔可夫算法。文中就这两种算法特点进行了分析和改进,对基于改进后的算法建立的语音识别系统进行了性能评估和对比。
一、语音识别算法
(一)动态时间归整算法
发音具有随机性,同一个人在不同时间,不同场合对同一个字的发音长度都不是完全一样的。在语音识别的模版匹配中,这些长度不一的发音将降低系统的识别率。为了解决这一问题,我们引入动态时间归整算法(Dynamic Time Warping,DTW)。在语音识别中,DTW算法是较早出现,较为经典的算法,它是基于动态规划(DP)的[2]。
提取参考语音信号的特征参数存入特征模板库建立参考模板,提取待识别语音号的特征参数建立测试模板。DTW算法就是计算参考模板和测试模板各帧矢量之间的距离之和,总距离越小说明相似度越高,最后选取最小的总距离作为匹配结果。
这种识别算法虽然较为简单、有效,但是计算量大,存储空间占用多,响应时间长。因此,文中对该算法进行改进,以避免以上缺点。
改进后的DTW算法将归整函数限制在一个平行四边形中(其中两条边的斜率为1/2,另外两条边的斜率为2)。在计算总距离时只需计算平行四边形之内各交点的匹配距离和累积距离,这样减少了计算量,提高了系统的反应速度,节省了存储空间。
(二)隐马尔可夫算法
隐马尔可夫模型是在马尔可夫链基础上发展起来的一种语音信号统计模型,自从用来描述语音信号后,该模型迅速发展,使得HMM理论逐渐成为语音研究中的热点,语音识别的主流技术。
隐马尔可夫模型HMM是一个双重随机过程,一重是可直接观测的马尔可夫链,用于描述状态的转移;另一重是隐含在观察序列中的随机过程,用于描述状态和观察值之间的统计对应关系。
将HMM用于语音识别系统前,必须解决三个基本问题[3]:
1.模型评估
已知一个观察序列和一个HMM模型,如何计算由此模型产生此观察符号序列的输出概率。
2.最优状态序列搜索
已知一个观察序列和一个HMM模型,如何确定一个最佳状态序列,使之产生的观察序列的概率最大。
3.模型训练
已知一个观察序列和一个HMM模型,如何根据观察序列来确定模型的参数。
针对以上三个问题,可分别用前向-后向算法,Viterbi算法和Baum-Welch算法改进,改进后的HMM算法较传统算法在识别率方面有了明显的提高。
(三)算法比较
基于模版匹配技术的DTW算法和基于随机过程理论的HMM算法是比较有代表性的孤立词识别算法。DTW算法应用动态规划的方法解决了语音信号特征参数序列时间对准问题,克服了语速的差异。DTW算法适用于训练样本较少的情况下,训练过程简单,识别过程较复杂,多用于特定人孤立词语音识别系统。
HMM算法HMM运用状态序列描述观测向量的时间逻辑,通过多变量混合高斯分布表现观测向量序列的空间分布[4]。为了获得高识别率,HMM算法需要大量的训练样本和存储量,训练过程要耗费较多时间,识别过程较简单,多用于连续大词汇量语音识别系统。
二、系统设计实现
语音识别系统由预处理、特征提取、模型库和模式匹配等四个基本单元构成。系统的基本结构如图1所示:
(一)预处理
通过话筒将语音信号变成电信号输入到语音识别系统中。首先对信号进行一系列的预处理,包括采样、量化、加窗、端点检测、预加重等。
采样和量化就是将离散信号分别在时间上和幅度上转化成离散形式。为了滤除低频干扰,提升信号高频部分,对信号进行预加重处理。由于系统对信号的处理都是以短时为前提的,这就要将信号分割成许多语音段,即对语音信号分帧、加窗处理。原始语音信号往往包含无音段和有音段,端点检测就是运用数字处理技术来判断各语音段的起点和终点,从而找到有用的语音成分。文中使用基于短时能量和短时平均过零率的检测方法判定语音信号的起始点和终止点,即双门限比较法。
(二)提取特征参数
经过预处理的语音信号中并不是所有信息都是有用的,这就需要将语音信号经过一次变换,去掉冗余部分,提取代表语音本质的特征参数。文中采用近年来运用比较广泛的Mel频率倒谱参数,先将频谱转变为美尔频标的非线性频谱,接着再转换到倒谱域上[6]。MFCC参数充分考虑了人耳的听觉特性,有很高的稳健性和抗噪性能。
篇7
篇8
一、课题背景
学校常会组织我们到贵阳市盲聋哑学校送爱心,与残障孩子亲密互动,今年也不例外。那些残章的孩子来到这个世界,只能用他们仅存的方式去感知世界万物,在他们的世界里只有一种颜色,那就是黑色。我不禁想,在学校还有老师的照拂,可他们总有一日要长大,要开启自己的人生旅程。要是我能为他们做哪怕一点点事,就算只是为他们的家庭生活提供一些帮助也是好的。我想,如果能利用我在机器人社中学到的传感器、电子电路、单片机等专业知识,对家庭电路进行智能化改造,让家庭的电路“聪明”起来,使他们能够听得懂主人的指令而进行相应的操作,那就可以对有残障的人和对一些不良于行的病人或老人的家庭生活都能提供很大的便利。于是,有了我的这个设计――基于LD3320的语音识别系统在家庭电路中的模拟应用。
二、模型设计
(一)模块功能
(二)模型组成
(三)主要电子元件工作原理与功能说明
1、LD3320语音识别芯片
LD3320语音识别芯片采用的是ASR(Auto Speech Recognitio)技术,是YS-LD语音识别模块的核心。它是对大量的语音数据经语言学家语音模型分析,建立数学模型,并经过反复训练提取基元语音的细节特征,以及提取各基元间的特征差异,得到在统计概率最优化意义上的各个基元语音特征,最后才由资深工程师将算法以及语音模型转换成硬件芯片并应用在嵌入式系统中。
LD3320有两种使用模式,即“触发识别模式”和“循环识别模式”。可以通过编程,设置两种不同的使用模式。
触发识别模式:系统的主控MCU在接收到外界一个触发后,启动LD3320芯片的一个定时识别过程,在这个定时过程中说出要识别的语音关键词语。这个过程结束后,需要再次触发才能再次启动一个识别过程。
循环识别模式:系统的主控MCU反复启动识别过程。如果没有人说话就没有识别结果,则每次识别过程的定时到时后再启动一个识别过程;如果有识别结果,则根据识别作相应处理后再启动一个识别过程。
根据本案模型的设计特点,采用语音触发识别模式。LD3320芯片最多支持50个识别条目,每个识别条目是标准普通话的汉语拼音(小写),每2个字(汉语拼音)之间用1个空格间隔。例如表1,只需要把识别的关键词语以汉语拼音字符串的形式传送进芯片,该芯片已封装了基于标准普通话的语音模型数据和语音识别算法,无需进行任何语音训练即可投入开发应用。
2、STM32单片机控制单元
本案模拟系统主控单元采用意法半导体ARM-Cortex架构的STM32F1系列超低功耗单片机作为控制核心。
该单元完成几大功能:
向LD3320模块提供时钟振荡信号,以驱动片上DSP(数字信号处理器 )工作;
通过SPI(串行外设接口)串行通信方式向LD3320模块写入预定义的控制命令拼音串,并读取语音模块返回的识别结果编码;
根据识别结果驱动负载电路(LED单元(发光二极管)、继电器单元)的动作。
当LD3320模块完成一次识别过程后,通过中断请求方式通知主控单元处理,主控单元获知中断请求后会暂时中止当前的任务执行,转而跳转到中断服务例程(ISR Route),在该例程中通过SPI总线从LD3320模块读取识别编码,根据识别编码的不同执行对应控制功能。通过点亮、熄灭指令对应发光二极管或驱动继电器接通主回路得到运行结果。
3、LED显示单元
本案模拟系统用六个共阳极发光二极管(LED)来模拟家庭中厨房、工作间、卧室、走廊、卫生间、阳台的灯泡开关状况,工作时主控单片机则根据语音命令,采用输出低电平方式进行驱动点亮。
4、继电器输出单元
继电器输出单元可接收主控单片机的高低电平控制信号以接通或断开主回路。主回路根据实际需求可以用于大电压,交、直流供电的负载驱动。本案模拟系统用继电器单元实现家庭电扇的通断控制。
(四)系统软件开发环境
本案模拟系统的软件开发只针对STM32F103主控单元进行,软件代码完成以下功能:
LD3320底层驱动(对其内部寄存器的读写、时序的控制);
STM32F103硬件单元和用户变量的初始化;
用户语音命令拼音串的写入;
中断服务ISR(完成负载电路的驱动控制)。
软件开发基于ARM公司的Keil开发环境,完成从代码编辑到编译、调试、烧写一系列过程。
(五)设备成本
三、设备实测
(一)控制命令
LD3320语音识别芯片中最多可以写入50条语音控制指令,可以根据用户需要定制个性化的语音控制功能。本案设备的设计初衷是为了探索LD3320语音识别芯片在家庭电路中的模拟应用,故只写入了比较基本的18条指令。
(二)设备测试
在写入程序,完成硬件连线并加电复位后,系统即进入运行状态。向系统说出控制命令(尽可能用普通话, 不过实测时对贵阳本地方言还是有较高识别率),比如说“厨房打开”、“走廊关闭”、“电扇启动”、“运行流水灯”等命令后,系统会根据识别结果执行对应动作,点亮/熄灭LED或者通/断电扇运行。
为了更好的检测语音识别效果,实验中选择多个不同音色的人在家庭(比较安静)环境下分别进行测试,每个词语测试50遍。部分非特定人的语音命令测试的正确识别数据比例见表4:由上表可知,在家庭(比较安静)环境下,对于语音命令的平均识别率可达到90%以上。
四、设备优势与应用展望
(一)设备优势
1、本案设备成本低、语音辨识率高、响应快速,可以直接安装于家庭电路中实现语音智能控制。
2、由于LD3320 可以动态编辑的识别关键词语列表,因此其可以应用的范围大大超过了那些不可以改变识别列表的芯片。
3、可以根据用户的需求进行控制命令写入,实现可定制、个性化的智能控制。
(二)应用展望
1、应对家庭生活突发状况
在本语音识别系统中只是初步尝试了对用电器通、断电控制,而在现在社会中有很多的空巢老人,他们独自生活,如果在家中出现意外或突发疾病,随时都有可能危及生命。如果在本案系统中可以添加“紧急呼叫”的语音控制,当出现突发状况时可以使用该功能触发电话自动拨打物管、救护车、亲属等重要联系人。或者该控制与小区物管相连,每当有人有紧急呼叫时,物管的终端紧急呼叫灯亮起,并触发扬声器发出警报声,使物管人员迅速到场解决问题。
2、实现家用电器的语音控制
(1)电磁炉/微波炉/智能家电操作
在现在的家电中,各种各样的设置越来越繁复。用户在使用过程中,还要不断地对家电进行功能切换。在引入LD3320 芯片后,可以用语音直接控制这些家电。比如用语音来控制电磁炉把火力调整到“煎炸”或者是“慢炖”。
(2)数码像框
数码像框中存放了许多的照片和视频,同时又具有多种播放的方式。一般是通过按键或者遥控器的方式来对其进行操作,但是这样的操作并不方便。在引入了LD3320 提供的语音识别功能后,用户可以最自然地用语音去点播想要显示的照片,或者改变数码像框的显示方式。使得这样的数码产品更加具有人性化的操作界面。
3、机顶盒/彩电遥控器
随着数字电视的普及,家庭中可以收看到的电视节目也越来越丰富。大家也就苦于在众多的频道中迅速选择到自己想要看的频道。在把LD3320 语音识别芯片集成进机顶盒/彩电遥控器后,用户只需要对着遥控器说出想要看的电视频道的名字,就可以快速地选择。比如用户可以说出“奥运体育”,就可以转到体育频道来观看精彩的体育比赛了。
4、智能玩具/对话玩具
在电视购物中曾经出现过可以人机对话的玩具,比如金福猪,金福狗等。这些玩具采用的语音识别只能支持固定的10 条左右的语音命令,比如“你好”,“我想听歌”等等。采用LD3320 芯片,可以利用其动态编辑识别关键词语列表的性能,让玩具实现及其复杂的对话脚本。避免了玩具的严重同质化。
(三)公共服务设施的语音控制
1、自动售货机、地铁自动售票机等销售型服务设施
在自动售货机、地铁自动售票机等销售型服务设施中安装语音操作模块。人们可以对着售货机说出要买的商品,比如“可口可乐”或者“面巾纸”投币后商品就自动售出。在北京、上海等大都市中,外地旅客较多,对地铁线路不熟悉导致买票时不知道票价也不知道如何购买。有了语音操作界面后,只需要对着售票机说出要去的地方或者想要到达的站点,根据屏幕提示放入纸币,就可以方便地买到车票。
2、公共照明系统、辅助设施的语音控制
在公共场合帮助残疾人士、行动不便的老人或小孩非接触地去控制公共照明系统或辅助设施(地下通道轮椅台等)的运行。
3、楼宇电视的广告点播
目前分众传媒等公司的楼宇广告设施,遍布几乎所有的写字楼,也在广告投放上取得了良好的效果。但是目前用户在接受广告时,都是被动地去接受信息。对于其中感兴趣的广告,只能是等待下次再看到时进行仔细地了解,没有办法进行主动式地广告查询。
引入LD3320 语音识别芯片后,用户可以用语音去方便地查询想要了解的广告信息。比如操作楼宇广告“重新播放”“上一条”来重新观看一条广告。或者“汽车”来点播想要看的汽车广告。
这样的语音操作,不需要增加额外的键盘输入和触摸屏输入,又可以让用户与广告充分互动,取得更佳的效果。
五、结语
使用LD3320 芯片可以在一定程度上完成这样的语音控制系统,给人们的生活带来更便利的语音交互界面。作为一种新的人机交互界面,会逐步地走入人们的日常生活,在适合用语音控制的地方给人们提供更多的便利。
参考文献:
篇9
新一代特种车辆的车载显控系统对复杂噪声环境下的语音控制(语音识别与语音合成)组件提出了新的需求,当前的车载显控系统需要具备语音采集、识别和合成输出的功能,而特种车辆在任务中的复杂噪声的污染会使许多语音处理系统性能急剧恶化。由于特种车辆的车载强噪声环境的特殊性,现有的商用语音识别模块产品均难以满足其环境的使用要求。
本文基于特种车辆对语音控制设计需求,针对特种车辆座舱(以下简称车载座舱)殊的噪声环境,进行车载座舱噪声环境下语音降噪组件设计,实现了语音信号的降噪处理,并采用商用的语音识别模块进行测试验证。测试结果表明,此方案在车载座舱环境下具有很好的降噪效果。
2 系统构成及工作原理
2.1 系统构成
车载座舱语音降噪系统由硬件平台和语音降噪软件两部分组成,具体如下:
2.1.1 硬件组成
基于Freescalei.MX6 Dual SOC平台的语音降噪模块、XFV5310语音识别与合成模块;
2.1.2 软件组成
OS为Linux,内核为3.14.52,嵌入式语音降噪软件。
2.2 工作原理
车载座舱语音降噪识别系统的工作原理为:当驾驶员启动语音控制功能时,i.MX6D语音降噪模块向XFV5310语音识别模块发送语音识别启动命令,音频采集模块开始采集驾驶员说出的带噪语音指令,经由语音降噪模块实时处理后,将降噪后的语音指令传送给语音识别模块,根据识别结果进行相应指令的操作响应,从而执行驾驶员下达的语音指令。图1所示为车载座舱语音降噪系统的工作原理框图。
如图1所示,车载座舱语音降噪识别系统的工作原理如下:
(1)带噪语音源获取有两种方式:
1.由音箱播放特种车辆真实任务过程中的车内环境噪声文件来模拟车载噪声环境,噪声强度通过分贝测试仪的读数控制;通过MIC说出语音指令;
2.读取事先录制的并按照特定信噪比叠加的.wav格式带噪语音指令文件。
(2)通过音频编解码芯片STGL5000将输入的模拟带噪音频进行PCM编码,并将数字带噪音频输出给语音降噪软件;
(3)语音降噪软件对数字带噪音频进行降噪处理,生成数字降噪音频。
(4)降噪音频存储文件和播放输出:
1.数字降噪音频输出给STGL5000进行PCM解码和DA转换,生成模拟降噪音频,通过2.0音箱播放并输入给XFV5310模块进行语音识别;
2.数字降噪音频数据存储为wav格式音频文件。
(5)语音降噪软件的串口通讯:
1.通过RS232调试串口控制车载座舱语音降噪组件的工作状态:开始工作、录音模式(开始录音、停止录音)、读取wav文件模式、停止工作,并实时显示组件的工作状态和语音识别结果;
2.通过RS232通讯串口,根据XFV5310串口通讯协议,控制XFV5310模块的工作状态(初始化、开始识别、停止)并接收回传的状态信息和语音识别结果。
3 系统软件算法设计
车载座舱语音降噪识别软件(以下简称CSE软件)运行在嵌入式Linux操作系统下,用于采集模拟带噪语音信号,对采集的数字带噪音频信号进行降噪处理,并将降噪语音信号发送给语音识别与合成模块进行语音识别,最后处理识别模块返回的识别结果。CSE软件主要完成初始化功能、语音录音功能、WAV文件读取功能、WAV文件存储功能、语音播放功能、语音降噪功能以及RS232串口通讯功能。CSE软件执行流程图如图2所示。
初始化模块主要完成RS232串口初始化、录音配置、语音播放配置及信号量初始化。
录音模块主要完成音频采集。由于规定语音指令长度最大为5S,在录音时判断录音时间是否达到5S或是否收到结束信号,如两者均未发生,则采集一个周期音频样本,并保存至带噪音频数组中,如此循环,直至收到录音结束控制信号或录音时间达到5S。
WAV文件存储模块实现将音频文件以.WAV格式存储。首先存储WAV文件头,主要完成WAV文件文件头数据初始化,并检查文件头每个字节的合法性,最后将检测合格的WAV文件文件头存储在.wav文件中,WAV文件头存储后将音频数据写在WAV文件头数据后。
WAV文件读取模块实现读取WAV文件文件头,对文件头进行解析,并读取WAV文件的音频数据。
音频播放模块主要实现将降噪处理后的音频数据实时地通过声卡播放出来,以做识别处理。由于在ALSA音频驱动中,对音频设备的数据访问以及音频数据的存储都是以周期为单位进行操作,所以在播放时要判断已经降噪处理但未播放的音频数据是否达到周期样本数,如达到则播放音频数据,其次还要判断录音是否已经结束,如果结束,判断是否还有音频数据未播放,如有则播放剩余的音频数据。
语音降噪模块对采集或从文件中读取的带噪语音进行降噪处理。首先采用可移动的有限长度窗口实现对带噪语音分帧加窗,分帧加窗结束后,将每一帧带噪语音分别进行短时快速傅里叶变换,然后实现带噪音频的降噪。实现SMSS降噪算法的基本思想是基于统计模型更新信噪比和当前帧噪声功率谱,根据带噪语音频谱中不同频带的信噪比,确定噪声的谱减因子,然后用带噪语音减去噪声和谱减因子的乘积,得到降噪后的语音。在信噪比更新方面,主要采取由先验信噪比和后验信噪比决定SNR的方法,在噪声谱估计方面基于统计模型的VAD方法。降噪处理后再进行短时快速傅里叶反变换(ISFFT),得到时域的降噪语音信号数据,按帧续进行逆分帧重排后得到降噪后的语音信号,最后进行存储为.WAV格式文件或者直接播放输出。
串口通讯模块主要实现发送识别请求,获取识别请求响应结果以及对识别结果解析。在语音播放之前,需要启动XFV5310开发板的识别功能,由识别启动模块发送语音识别启动命令,开发板收到命令帧后会判断此命令帧正确与否,并回传结果,识别启动模块接收回传数据。发送识别启动命令后,如果识别启动模块在5.5S内未收到XFV5310开发板回传,则默认识别开发板无反应,识别启动模块将退出等待。当语音识别启动后,XFV5310开发板将会在识别处理结束后将相应的识别结果回传给CSE软件。回传的数据以“帧”的方式封装后传输。识别结果解析功能是当语音降噪软件接收到XFV5310开发板的回传的识别结果,根据通讯协议对XFV5310开发板发来的识别结果解码。
4 系统测试验证
4.1 测试环境
车载座舱语音降噪组件的测试验证试验中,各模块间的交联关系如图3所示。
4.2 测试方法及结果
在车载复杂噪声环境下,特定信噪比(-5dB、0dB、5dB)的语音指令,未经降噪前语音质量差,指令模糊,商用XFV5310语音识别与合成模块对指令识别率低于65%。经过本文设计的车载座舱语音降噪软件处理后,系统的测试结果如表1所示。
4.3 测试结果分析
车载座舱语音降噪识别系统功能完整,语音录音、播放、WAV文件读取、存储、语音降噪处理等功能都能符合需方的功能要求;特定信噪比(-5dB、0dB、5dB)下的语音指令识别率能够满足需方规定的指标要求;语音降噪算法、降噪与识别的总耗时稳定,不会随着语音指令的增长而增加耗时,能够满足需方规定的指标要求。
5 结束语
特种车辆工作环境下的带噪语音经车载座舱语音降噪识别系统处理后的语音听感清晰,无明显失真,无明显噪声残留,且运行总耗时较少,能够满足车载环境下语音降噪需求,配合商用的语音识别与合成模块XFV5310组成的系统能够满足特种车辆在恶劣工作环境下的语音控制功能,将该系统与车载显控模块集成,满足需方的功能与性能指标要求,经过实际装车使用测试,证明本文设计的车载座舱语音降噪识别系统功能性、稳定性和可靠性均能满足特种车辆的使用要求。
参考文献
[1]Loizou P,Speech enhancement:theory and practice[M].1st ed.CRC Taylor and Francis,2007:6-7.
[2]宋知用.MATLAB在语音信号分析与合成中的应用[M].北京:北京航空航天大学出版社,2013.
[3]易克初,田斌,付强.语音信号处理[M]. 北京:国防工业出版社,2003.
[4] Israel Cohen and Baruch Berdugo: Speech enhancement for non-stationary noise environments,[J].Signal Process.,vol.81,no.11,pp. 2403-2418,Nov.2001.
[5] Israel Cohen:Noise Estimation by Minima Controlled Recursive Averaging for Robust Speech Enhancement,[J].IEEE Signal processing letters,vol. 9,no.1,January 2002.
[6] Israel Cohen.“Noise Spectrum Estimation in Adverse Environments: Improved Minima Controlled Recursive Averaging”[J].IEEE Transactions on speech and audio processing,vol.11, no.5,Sep,2003.
[7] Israel Cohen:Relaxed statistical model for speech enhancement and a priori SNR estimation [J].IEEE Trans. Speech Audio Process.,vol.13, no.5,pt.2,pp.870-881,Sep,2005.
[8]张雄伟,陈亮,杨吉斌.现代语音处理技术及应用[M].北京:机械工业出版社,2003.
[9]程塔,郭雷,赵天云,贺胜.非平稳噪声环境下的语音增强算法[J].西北工业大学学报,2010,28(5):664-668.
[10]蒋海霞,成立新,陈显治.一种改进的谱相减语音增强方法[J].理工大学学报,2001,2(l):41-44.
[11]孙杨,原猛,冯海泓.一种基于统计模型的改进谱减降噪算法[J].声学技术,2013,32(2):115-118.
作者简介
篇10
由于生活节奏的加快,汽车已经成为了人们生活中重要的工具,人们在车内的时间也更多。同时也希望能够在车内接收到外界的信息继续进行工作,还要求汽车有娱乐功能,因此促进了车载多媒体的发展。而车载多媒体传统的人机交互方式会增加潜在的驾驶危险,为此将语音识别应用于车载多媒体系统中,将会是车载多媒体发展的重要方向。端点检测、特征参数提取以及识别是语音识别的主要内容,本文也将从这三个方向对车在多媒体系统的语音识别进行研究。
1、端点检测
在进行语音识别时,首先需要通过端点检测来对语音信号中的无声片段和有声片段进行分割。目前,语音端点识别已经从开始的单一门限发展到了基于模糊理论的判决。但是对于车载多媒体而言,计算量较大、识别响应时间较长端点检测的方法显然不使用,所以主要采用基于短平均过零率和短时间平均幅度的方法来进行语音端点检测,这种方法利用短时间内幅度的检测和过零率来作为语音端点的检测。
首先,利用短时幅度可以有效判断语音端点,同时语音的浊音部分平均幅度会明显大于噪声的平均幅度,然后同时再辅以短时过零率的方法来判断语音开始的浊音,从而进一步对端点检测进行校准,两者的结合能够更加精确的判断语音端点,并且两种算法都较为简单,能够满足车在多媒体的需求。
2、特征参数提取
在完成语音的端点检测之后,需要提取语音的特征参数,然后进行语音识别。目前用于语音特征参数提取的算法主要有LPCC(线性预测倒谱系数)和MFCC(Mel频率倒谱),由于MFCC具有更强的抗干扰能力等特点,更适合与噪声较多、司机不能离输入设备很近的车载环境。
分析MFCC的语音特征参数提取可以分成预加重、加窗、FFT(快速傅里叶变换)、滤波、自然对数提取、自然对数DCT计算这六个步骤。由于MFCC其计算精度以及计算量都较大,因此,使用MFCC作为车载系统的语音特征参数提取时,需要进行相应的改进:
(1)在MFCC实现的六个步骤中,例如加窗等步骤就可以实现进行计算,然后存储在数组中,在使用时进行查表提取,从而避免每一次语音识别时重复计算,从而加快了计算速度。
(2)FFT需要花费大量的时间(据统计,FFT需要花费MFCC56.32%的时间[2]),由于FFT算法是对复数进行处理,而语音信号的处理只涉及到实数部分,其虚数部分为零,因此增加了运算时间,因此可以利用文献3所提出的FFT运算方法,将长度为N的FFT预算降低到长度为N/2的FFT运算,从而提高了语音特征参数提取效率。
3、识别模式
语音识别的原理是模式匹配,通过计算现有语音模式与语音模板库中的模板的距离,来获得最佳的匹配模式。匹配的方法主要有DTW(动态时间规整)、HMM(隐马尔科夫模型)和ANN(人工神经元网络)。由于ANN计算量较大,因此不适合用于车载多媒体系统中,HMM需要繁杂的程序结构,包含众多功能模块,需要大量的计算。因此, DTW模式更适合用于车载多媒体系统中。能够满足车载系统孤立词、小词汇量的语音识别。
为了更好的在车在多媒体系统中的嵌入式平台上实现DTW,对DTW进行进一步的改进:
(1)由于在语音识别汇总,对音头和音尾的判断存在一定的误差,因此,使用传统DTW方法在进行固定端点匹配时会存在一定的误差,从而降低了语音匹配成功率。为此,可以采用放宽端点限制的方法来使用DTW进行语音识别。其主要的思路是取消传统DTW中对音头和音尾严格对其的限制。从而,只要两次语音在开始的W帧内能够匹配成功,同时在结束的W帧内匹配成功,即认为两次语音匹配成功。在降低了对端点检测的精度要求,符合车载系统小词汇量的特点,不会降低车载系统语音识别效率。
(2)在使用DTW进行语音模板匹配时,需要计算两个模板各帧的距离来计算模板之间的距离。加入模板库中的某个模板T有N帧,待识别的语音R有M帧,那么通常需要申请M×N长度的空间,再根据两个模板所有帧间距离计算整体长度。但是在实际的应用中,只需要M长度的空间来存放模板T第n-1帧与模板R中M帧之间的距离,在计算完第n帧与模板R中M帧之间的距离对M长度空间的数据进行替换,从而进行模板T第n+1帧与模板R中M帧之间的距离,从而节省了(N-1)×M的存储空间,这对车载系统有限存储空间的系统中有着非常重要的意义。
4、结语
相比于传统的按钮式、触摸屏式人机交互系统,语音识别对于车载多媒体系统有着非常重要的意义,将是车载多媒体系统重要的发展方向,本文针对车载多媒体系统对低CPU运算时间和地存储空间的特点,对语音识别中的端点检测、语音特征参数提取以及识别模式的实现和优化进行了研究。
参考文献
[1]方敏,浦剑涛,李成荣.嵌入式语音识别系统的研究和实现[J].中国信息学报,2004,(6):73~78.
[2]万春,黄杰圣,曹煦晖.基于DTW的孤立词语音识别研究和算法改进[J].计算机与现代化,2005,(13):4~6.
篇11
嵌入式设备通常针对特定应用而设计,只需要对几十个词的命令进行识别,属于小词汇量语音识别系统。因此在语音识别技术的要求不在于大词汇量和连续语音识别,而在于识别的准确性与稳健性。
对于嵌入式系统而言,还有许多其它因素需要考虑。首先是成本,由于成本的限制,一般使用定点DSP,有时甚至只能考虑使用MPU,这意味着算法的复杂度受到限制;其次,嵌入式系统对体积有严格的限制,这就需要一个高度集成的硬件平台,因此,SoC(System on Chip)开始在语音识别领域崭露头角。SoC结构的嵌入式系统大大减少了芯片数量,能够提供高集成度和相对低成本的解决方案,同时也使得系统的可靠性大为提高。
语音识别片上系统是系统级的集成芯片。它不只是把功能复杂的若干个数字逻辑电路放入同一个芯片,做成一个完整的单片数字系统,而且在芯片中还应包括其它类型的电子功能器件,如模拟器件(如ADC/DAC)和存储器。
笔者使用SoC芯片实现了一个稳定、可靠、高性能的嵌入式语音识别系统。包括一套全定点的DHMM和CHMM嵌入式语音识别算法和硬件系统。
1 硬件平台
本识别系统是在与Infineon公司合作开发的芯片UniSpeech上实现的。UniSpeech芯片是为语音信号处理开发的专用芯片,采用0.18μm工艺生产。它将双核(DSP+MCU)、存储器、模拟处理单元(ADC与DAC)集成在一个芯片中,构成了一种语音处理SoC芯片。这种芯片的设计思想主要是为语音识别和语音压缩编码领域提供一个低成本、高可靠性的硬件平台。
该芯片为语音识别算法提供了相应的存储量和运算能力。包括一个内存控制单元MMU(Memory Management Unit)和104KB的片上RAM。其DSP核为16位定点DSP,运算速度可达到约100MIPS.MCU核是8位增强型8051,每两个时钟周期为一个指令周期,其时钟频率可达到50MHz。
UniSpeech芯片集成了2路8kHz采样12bit精度的ADC和2路8kHz采样11bit的DAC,采样后的数据在芯片内部均按16bit格式保存和处理。对于语音识别领域,这样精度的ADC/DAC已经可以满足应用。ADC/DAC既可以由MCU核控制,也可以由DSP核控制。
2 嵌入式语音识别系统比较
以下就目前基于整词模型的语音识别的主要技术作一比较。
(1)基于DTW(Dynamic Time Warping)和模拟匹配技术的语音识别系统。目前,许多移动电话可以提供简单的语音识别功能,几乎都是甚至DTM和模板匹配技术。
DTW和模板匹配技术直接利用提取的语音特征作为模板,能较好地实现孤立词识别。由于DTW模版匹配的运算量不大,并且限于小词表,一般的应用领域孤立数码、简单命令集、地名或人名集的语音识别。为减少运算量大多数使用的特征是LPCC(Linear Predictive Cepstrum Coefficient)运算。
DTW和模板匹配技术的缺点是只对特定人语音识别有较好的识别性能,并且在使用前需要对所有词条进行训练。这一应用从20世纪90年代就进入成熟期。目前的努力方向是进一步降低成本、提高稳健性(采用双模板)和抗噪性能。
(2)基于隐含马尔科夫模型HMM(Hidden Markov Model)的识别算法。这是Rabiner等人在20世纪80年代引入语音识别领域的一种语音识别算法。该算法通过对大量语音数据进行数据统计,建立识别条的统计模型,然后从待识别语音中提取特征,与这些模型匹配,通过比较匹配分数以获得识别结果。通过大量的语音,就能够获得一个稳健的统计模型,能够适应实际语音中的各种突况。因此,HMM算法具有良好的识别性能和抗噪性能。
基于HMM技术的识别系统可用于非特定人,不需要用户事先训练。它的缺点在于统计模型的建立需要依赖一个较大的语音库。这在实际工作中占有很大的工作量。且模型所需要的存储量和匹配计算(包括特征矢量的输出概率计算)的运算量相对较大,通常需要具有一定容量SRAM的DSP才能完成。
在嵌入式语音识别系统中,由于成本和算法复杂度的限制,HMM算法特别CHMM(Continuous density HMM)算法尚未得到广泛的应用。
(3)人工神经网络ANN(Artificial Neural Network)。ANN在语音识别领域的应用是在20世纪80年代中后期发展起来的。其思想是用大量简单的处理单元并行连接构成一种信息处理系统。这种系统可以进行自我更新,且有高度的并行处理及容错能力,因而在认知任务中非常吸引人。但是ANN相对于模式匹配而言,在反映语音的动态特性上存在重大缺陷。单独使用ANN的系统识别性能不高,所以目前ANN通常在多阶段识别中与HMM算法配合使用。
3 基于HMM的语音识别系统
下面详细介绍基于HMM的语音识别系统。首先在UniSpeech芯片上实现了基于DHMM的识别系统,然后又在同一平台上实现了基于CHMM的识别系统。
3.1 前端处理
语音的前端处理主要包括对语音的采样、A/D变换、分帧、特片提取和端点检测。
模拟语音信号的数字化由A/D变换器实现。ADC集成在片内,它的采样频率固定为8kHz。
特征提取基于语音帧,即将语音信号分为有重叠的若干帧,对每一帧提取一次语音特片。由于语音特征的短时平稳性,帧长一般选取20ms左右。在分帧时,前一帧和后一帧的一部分是重叠的,用来体现相邻两帧数据之间的相关性,通常帧移为帧长的1/2。对于本片上系统,为了方便做FFT,采用的帧长为256点(32ms),帧移为128点(16ms)。
特征的选择需要综合考虑存储量的限制和识别性能的要求。在DHMM系统中,使用24维特征矢量,包括12维MFCC(Mel Frequency Cepstrum Coefficient)和12维一阶差分MFCC;在CHMM系统中,在DHMM系统的基础上增加了归一化能量、一阶差分能量和二阶差分能量3维特征,构成27维特征矢量。对MFCC和能量分别使用了倒谱均值减CMS(Cepstrum Mean Subtraction)和能量归一化ENM(Energy Normalization)的处理方法提高特征的稳健性。
3.2 声学模型
在HMM模型中,首先定义了一系列有限的状态S1…SN,系统在每一个离散时刻n只能处在这些状态当中的某一个Xn。在时间起点n=0时刻,系统依初始概率矢量π处在某一个状态中,即:
πi=P{X0=Si},i=1..N
以后的每一个时刻n,系统所处的状态Xn仅与前一时刻系统的状态有关,并且依转移概率矩阵A跳转,即:
系统在任何时刻n所处的状态Xn隐藏在系统内部,并不为外界所见,外界只能得到系统在该状态下提供的一个Rq空间随机观察矢量On。On的分布B称为输出概率矩阵,只取决于Xn所处状态:
Pxn=Si{On}=P{On|Si}
因为该系统的状态不为外界所见,因此称之为“稳含马尔科夫模型”,简称HMM。
在识别中使用的随机观察矢量就是从信号中提取的特征矢量。按照随机矢量Qn的概率分布形时,其概率密度函数一般使用混合高斯分布拟合。
其中,M为使用的混合高斯分布的阶数,Cm为各阶高期分布的加权系数。此时的HMM模型为连续HMM模型(Continuous density HMM),简称CHMM模型。在本识别系统中,采用整词模型,每个词条7个状态同,包括首尾各一个静音状态;每个状态使用7阶混合高斯分布拟合。CHMM识别流程如图1所示。
由于CHMM模型的复杂性,也可以假定On的分布是离散的。通常采用分裂式K-Mean算法得到码本,然后对提取的特征矢量根据码本做一次矢量量化VQ(Vector Quantization)。这样特征矢量的概率分布上就简化为一个离散的概率分布矩阵,此时的HMM模型称为离散HMM模型(Discrete density HMM),简称DHMM模型。本DHMM识别系统使用的码本大小为128。DHMM识别流程如图2所示。
DHMM虽然增加了矢量量化这一步骤,但是由于简化了模型的复杂度,从而减少了占用计算量最大的匹配计算。当然,这是以牺牲一定的识别性能为代价。
笔者先后自己的硬件平台上完成了基于DHMM和CHMM的识别系统。通过比较发现,对于嵌入式平台而言,实现CHMM识别系统的关键在于芯片有足够运算太多的增加。因为词条模型存储在ROM中,在匹配计算时是按条读取的。
3.3 识别性能
笔者使用自己的识别算法分别对11词的汉语数码和一个59词的命令词集作了实际识别测试,识别率非常令人满意,如表1所示。
表1 汉语数码识别率
DHMMCHMM特征矢量维数2427识别率93.40%98.28%识别速度(11词)10ms50ms模型大小(1个词条)1.5KB<5.5KB码本6KB无对于59词命令词集的识别,还增加了静音模型。由于基线的识别率已经很高,所以静音模型的加入对于识别率的进一步提高作用不大,如表2所示。但静音模型的加入可以降低对端点判断的依赖。这在实际使用中对系统的稳健性有很大的提高。
表2 59词命令词集识别率
篇12
The Design of Embedded Voice Recognition System Based on HTK in Pigs
YUAN Rui-lin ,ZHANG Qi-ming,WANG Feng,FAN Fan
(1.College of Information Engineering, Taiyuan University of Technology, Jinzhong 030600,China)
Abstract: In order to detect the abnormal state of pigs, this paper designs a pig voice recognition system based on embedded platform, the system uses S3C2440 chip microprocessor, the Linux operating system, using QT as the display interface, and through transplantation based on Hidden Markov model algorithm for speech recognition toolbox HTK, realizes the automatic identification of pigs in different states sound. The experimental results show that the system achieves the desired experimental results.
Key words: voice recognition; S3C2440; HMM; HTK; embedded
现代集约化的养猪场规模越来越大,自动化和无人值守的水平日益提高,对猪场的状态监测提出了很高的要求,而猪的声音信息可以很好地反映猪的状态,为饲养员判断猪只的状态提供参考。声音识别作为模式识别的重要研究内容,近二十年来发展迅速,语音技术的应用已经成为一个具有竞争性的新兴高技术产业。随着计算机技术与电子技术的发展,嵌入式系统的应用领域越来越广,基于嵌入式平台的声音识别技术发展备受关注。由英国剑桥大学工程系开发的、由众多函数库和工具组成的声音识别工具箱HTK(Hidden Markov Model Toolkit),经过不断地发展和改进,得到了广泛使用,在嵌入式平台上移植开源的HTK可以缩短开发周期,节约成本。本文主要介绍了一种通过移植HTK应用于检测和识别猪只不同状态声音的嵌入式系统实现的整个过程。
1 实现原理
1.1 声音识别基本原理
关于猪只声音识别的算法,我们主要采用目前在声音信号处理的各个领域使用最为广泛的隐马尔可夫模型(HMM)算法。HMM算法是一种属于模板匹配类型的模式识别方法,即按照一定的相似度测度准则,使未知的声音模型与参考模型库作比较,以最大输出概率的一个模型作为识别结果。
在语音识别系统设计中,将每一种猪只状态作为一个基本元,并建立对应的HMM。HMM是一个输出符号序列的双重随机过程,假设具有N种状态S1,S2,S2,…,SN,在一定时间从某一个状态转移到另一个状态并且会输出一个符号序列。状态转移结果由初始状态概率π和状态转移概率矩阵A决定,输出的符号序列由观察值概率矩阵B决定。
在本文中,我们设定了具有6个转移状态的HMM模型,如图1所示。其中,S1和S6分别称为开始状态和结束状态,它们无观察函数,称为非发散状态;S2至S5这4个状态称为活动状态。HMM的状态转换图如下所示,其中aij为从状态i到状态j的转移概率,bi为状态i转移时的输出概率。
1.2 硬件组成
本嵌入式系统硬件采用Samsung公司推出的S3C2440芯片为核心,它是基于ARM920T的32位RISC微处理器,其主频为400MHZ,并且具有低功耗、高性能、高集成度等优点。猪只声音通过克风声音传感器采集回来,再经过数字音频编译码器进行处理。嵌入式音频系统的CODEC采用Philips公司生产的UDA1341芯片,它提供标准的IIS接口,可与S3C2440内置的IIS接口直接相连。音频驱动程序采用ALSA体系,由它提供的音频编程API接口,可以对声卡进行控制,设置采样频率、声道数目等参数,并完成对声卡的读出数据及写入数据等操作。系统的其他模块还有64M的SDRAM、256M的Nand Flash、MIC输入接口、耳机输出接口、电源模块等。
图 2 硬件结构图
1.3 软件设计
在软件设计部分,首先采用自行编写的录音程序将猪只声音保存为WAVE波形文件格式。再利用HTK所提供的数据准备工具、HMM模型训练工具、识别工具和结果分析工具来实现猪只声音信号的特征提取、训练、识别等过程。软件结构如下图所示:
图 3 软件设计结构图
2 嵌入式系统设计
以Linux为内核的嵌入式操作系统的设计,分为引导程序Bootloader的移植、内核的移植、文件系统(包含应用程序)的移植三大部分。本设计中Bootloader采用开发板自带的Uboot,故本文重点介绍内核的移植及文件系统和应用程序的移植。
2.1 交叉编译平台搭建
2.1.1 交叉编译简介
由于嵌入式平台处理能力及存储空间等资源的限制,需要在PC上利用交叉编译工具链对需要下载到ARM平台的文件进行交叉编译。本设计以ARM-Linux平台作为运行环境,故所选交叉编译工具链为arm-linux-gcc。
2.1.2 交叉编译工具安装过程
在PC主机上安装交叉编译工具链的主要步骤为:
① 下载交叉编译工具链arm-linux-gcc-4.3.2.tgz,并在/usr/local下建立arm文件夹:#mkdir /usr/local/arm。
② 将文件解压缩:#tar xzvf arm-linux-gcc-4.3.2.tgz -C /usr/local/arm。
③ 添加环境变量,在profile文件中添加:export PATH=/usr/local/arm/4.3.2/bin:$PATH。
2.2 内核的移植
2.2.1 内核简介
内核是嵌入式操作系统的核心,内核主要由进程调度、内存管理、虚拟文件系统、网络接口和通讯进程等组成。Linux内核具有代码开源、体积小、效率高、易裁剪等优点。本文中我们采用嵌入式Linux 2.6.31版本内核作为移植对象,并结合声音识别平台硬件的需要进行相应的配置。
2.2.2 内核安装过程
内核移植的主要步骤为:
①在官网上下载linux-2.6.31.tar.bz2内核源码。
②修改编译配置文件Makefile,指定系统硬件框架及交叉编译工具:
ARCH ? = arm
CROSS_COMPILE ?= arm-linux-
③在PC上Linux操作系统下进入图4所示的图形化配置界面,打开S3C2440的默认配置文件后,再进入"System Type"选项单,配置选中以下几项:
2.3 文件系统的设计
文件系统是操作系统的重要组成部分, Linux文件系统具有一些固定格式和功能的目录。文件系统制作的主要过程是创建系统的各个目录以及在这些目录下添加各种文件,由于创建目录部分无特别之处,故在下文中我们重点介绍在文件系统中如何添加本设计中所需要的应用程序。
2.3.1 HTK的编译
由于嵌入式平台资源的限制,在ARM平台主要完成猪只声音的识别工作,而声音模型的建立,即训练过程需要在PC平成。因此整个系统搭建分为PC平台和ARM平台两大部分。由于针对于宿主机的编译过程和针对ARM-Linux平台的类似,这里只介绍过程相对复杂的交叉编译过程,主要步骤如下:
①在HTK官网:http://htk.eng.cam.ac.uk/download.shtml下载HTK-3.4.1.tar.gz源码包。
②Linux下运行解压后文件夹下configure程序,生成Makefile文件:
./configure - prefix=/home/yrl/HTK1。
③修改源码包下HTKLib文件夹中的编译配置Makefile文件使其针对ARM平台,并移除一些嵌入式平台不需要的库文件,修改如下:
CC = gcc
CFLAGS := $(CFLAGS) -ansi -D_SVID_SOURCE -DOSS_AUDIO -D'ARCH="i686"' -Wall -Wno-switch -g -O2 -
RANLIB = ranlib
objects = HGraf.o esig_asc.o \
lvobjects = $(basename HGraf.o).lv.o esig_asc.lv.o \
修改为:
CC = arm-linux-gcc
CFLAGS := $(CFLAGS) -ansi -D_SVID_SOURCE -DOSS_AUDIO -D'ARCH="arm"' -Wall -Wno-switch -g -O2 -
RANLIB =arm-linux-ranlib
objects = esig_asc.o \
lvobjects = esig_asc.lv.o \
修改完成后保存,运行:make。
④与第③步类似,修改HTKTools文件夹下的Makefile文件,修改完保存退出。
Linux下运行:make
make install。
⑤编译完成后,将在HTKTools文件夹下生成所有可执行程序中的用于提取MFCC特征的工具HCopy和用于识别的工具HVite添加到文件系统的/usr/bin目录下即可。
2.3.2 HTK的应用
在采集猪只声音后,使用HTK所提供的与声音识别相关的工具集构建系统时,根据图3中所示的软件工具完成声音数据的标记并提取MFCC特征,使用基于前向后向算法的工具HInit和Hcompv及基于Baum-Welch算法的HRest完成声学模型的训练。在识别时,使用HVite将提取好的测试数据的MFCC特征与声学模型比较,得出识别结果。构建好猪只声音系统后,利用HResults对本系统进行性能评估,可得到测评结果及相关信息。
2.3.3 QT程序的设计
为了便于在ARM上显示结果并且方便测试,我们设计了Qt程序,并将编写好的程序利用Qt Embedded编译器编译成ARM-Linux平台的可执行程序,添加到文件系统中。在Qt程序中,嵌入编译好的声音识别可执行程序,同时为了方便单次测试,在界面中加入了QPushButton部件,当按钮被点击时,根据设计的“信号与槽”机制便会触发声音采集程序,进行识别。进行一次测试后,Qt识别界面如下图所示:
3 结束语
本设计通过移植较为成熟的开源工具箱HTK,并且合理地进行软硬件裁剪,成功实现了猪只异常声音在嵌入式平台的检测和识别。经过实验验证,准确率和处理速度均较为理想,具有很好的推广价值。
参考文献:
[1] 韦东山. 嵌入式 Linux应用开发完全手册[M].北京: 人民邮电出版社,2008.
[2] 张懿. 构造廉价的ARM9开发平台[J].单片机与嵌入式系统应用,2007(5):70-75.
[3] 布兰切特,萨默菲尔德.C++ GUI Qt4 编程[M].闫锋欣,曾泉人,张志强,译.2版.北京:电子工业出版社,2013.
[4] 杨成.嵌入式语音识别平台及优化研究[D].华南理工大学,2010.
[5] 胡航.语音信号处理[M].哈尔滨工业大学出版社,2000.
篇13
1.引言
非法语音业务的出现,不仅挤占了正常带宽,导致语音业务收入大幅度降低,同时通信质量也得不到有效保证,影响了用户的利益。基于上述原因,语音系统的信息过滤与分析就具有十分重要的意义,迫切需要一种能有效识别应用和跟踪的方案。本系统是根据网络正常行为而进行设计的,可有效监测到语音信号的通信,在保障网络安全上起到了重要的作用。论文参考网。
2. 系统开发平台
此系统是在Linux操作系统下进行开发,主要用到Linux2.6内核版本[1]操作系统本身所带的Netfilter防火墙框架[2]。由于Linux操作系统具有稳定、灵活的特点以及其提供的优秀防火墙框架,用户可以根据自己的实际需要,将防火墙设计的一般理论和方法与自己系统的具体情况相结合,设计出新的可实用的安全防护系统。
3. 采用方法
在众多的网络安全技术中,防火墙使用最为广泛,其中最为关键的技术包括数据包的捕获、数据包的过滤、历史记录的存储。随着技术的发展和要求的提高,防火墙在被大众接受的同时也显露出不足。近几年来,深度包检测技术和协议分析技术的出现使得网络分析更加准确、有效。
3.1深度包检测技术
深度包检测技术[3]是包过滤技术的深入,所谓深度是和普通的报文解析技术比较而言的,普通报文检测仅能分析出数据包中简单的信息,而它除了对前面的层次进行分析外,还增加了应用层分析,能够识别各种应用及其内容,具有漏检率低、防御能力强的特点。
3.2协议分析技术
协议分析技术[4]需要对每一种协议(主要是应用层协议)编写一段协议检测的代码,例如HTTP协议分析模块主要对HTTP进行解码分析,并检测对WEB服务器的攻击。虽然不同的协议有不同的分析代码,但它们都遵照相同的检测思路——将报文分解成域,然后对每一个域进行检查,与预期的值进行比较,若有异常则发出警报。
下面通过一个具体的例子阐述基于协议分析的系统是如何进行入侵检测的,假设系统要检测一个HTTP协议包中是否包含/hidden/admin/,如果存在则认为是一次入侵攻击,检测过程如下:
(1)解码IP包头文件,确定IP包有效负载所包含的协议;
(2)如果是TCP包,则解码TCP头文件,寻找TCP的目的端口;
(3)如果端口为80,即这是一个HTTP协议包,则根据HTTP协议规则分析HTTP包中所有的成分,从中提取出URL路径;
(4)对URL路径进行处理,避免路径欺骗;
(5)查找是否存在与 “/hidden/admin/”一致的路径,如果存在则向系统发出警报。
从上面可以看出,运用字符串特征识别,就能很准确地判断出数据包是否满足我们所设定的条件,如果是,则按照预先设定的规则进行处理。
4. 系统研究及设计
识别和跟踪系统的设计主要分成三部分,首先是对语音类应用的协议进行分析,归纳出协议中的特征字,编写出能识别该协议的正则表达式[5],使用Netfilter中的L7-filter模块,运用正则表达式对协议进行识别,并通过数据包过滤情况进行验证;使用iptables的ULOG日志记录、MySql数据库,通过监测数据流的状态,对应用行为的过程进行跟踪;通过分析数据库中的日志记录,可以对应用行为进行统计和控制。论文参考网。
4.1语音聊天识别模块设计
语音聊天时会在数据包中表现出一些特定的规则,这些规则可以由正则表达式进行描述。安装L7-filter并编译内核[6],使用iptables工具进行添加、删除、编辑过滤规则,利用规则操作数据包并将过滤包的详细信息记录到系统日志文件中,日志记录在/var/log/messenges中。由于该框架运行在服务器网关,服务器需要对流经系统的所有数据包进行检测,这样将规则定义在PREROUTING链上最为合适,识别模块的流程如图1所示:
图1 语音聊天识别模块设计流程
我们以语音聊天工具qq为例,具体的实现命令如下:
iptables–F //清空所有链表
iptables –tmangle –I PREROUTING –m layer7 –l7proto qqtalk -j LOG --log–prefix“qqtalk” //允许符合正则表达式qqtalk的数据包进入系统并在日志文件中以“qqtalk” 标识
iptables –tmangle –L –v //查看数据包匹配情况
日志文件messages中记录了iptables匹配数据包的结果,通过查看日志文件,可以清楚的看到所匹配数据包的记录情况。
4.2语音聊天跟踪模块设计
协议跟踪就是跟踪应用中关键事件动作的发生,通过数据库显示出来,Netfilter本身自带了五个链用于存储规则,但我们可以创建新的单独链对各种协议进行处理,这样做可以更具有针对性,而且也不复杂。我们以语音聊天工具qq为例,新建一条qqtalk规则链的命令为:
iptables –Nqqtalkchain
将匹配qqtalk正则表达式的数据包转发到新建的qqtalkchain规则链:
iptables –IFORWARD –m layer7 –l7proto qqtalk –j qqtalkchain
研究应用通信过程可以看到,在关键事件发生时,一般都伴随着某些特征字的出现,例如qq发起语音聊天时出现的“INVITE”,取消时出现的“CANCEL”等,这就需要用到iptables中的string模块,使用字符串匹配的命令为:
iptables –tmangle –m string -algo kmp --string “CANCEL” -j ULOG --ulog –prefix “cancel”
5. 实验环境搭建及测试
5.1实验环境搭建
本实验将语音类应用识别与跟踪系统部署在双网卡服务器上,该主机用eth0作为外部网络接口,与学校网络相连;用eth1作为本地局域网的网关地址。客户机运行语音聊天软件和抓包软件Wireshark。服务器和客户机的环境配置见表1: