语音识别系统汇总十篇

时间:2023-03-07 14:56:53

序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇语音识别系统范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。

语音识别系统

篇(1)

一、引言

根据语音识别系统所使用的环境和平台不同,语音识别技术朝着两个方向发展:一个方向是大词汇量的连续语音识别,该方向所处理的语音较为复杂;另一个方向就是向着中小词汇量的孤立词汇语音识别,该方向所处理的语音相对较为简单,应用范围也有一定的限制,如玩具、语音导航等。虽然简单语音识别系统对于能识别的词汇量没有太高的要求,但是目前的一些简单语音识别系统的识别速度慢、识别率较低,导致用户体验较差。

二、语音识别系统原理

语音识别在本质上属于模式识别的范畴,其系统结构与模式识别具有相似之处:根据相关的识别算法对语音信号进行特征参数的提取,然后先进行学习后再对语音信号进行识别。在学习阶段,通过给出的训练数据建立起参考模板库;在识别阶段,将待识别语音信号的特征参数与参考模板库中的参数进行对比,得到与待识别语音信号最接近的模板,输出该模板作为语音识别的结果。

三、简单语音识别系统的改进与实现

DTW在简单语音识别中已经可以达到较高的识别率,因此本文选择DTW作为语音识别的模式匹配算法,并对端点检测进行一定的改进来实现语音识别系统的设计。

3.1端点检测的改进

在进行端点检测前,为短时平均能量和短时过零率设定两个门限值。在静音段,当短时平均能量或短时过零率大于低门限值,则开始准备标记语音起点,由此进入过渡段。但是在过渡段中并不能确定是否真正进入语音段,当短时平均能量和短时过零率都小于低门限值时认为是噪音,并不记录语音起点,恢复为静音段;当短时平均能量或短时过零率大于高门限值,则认为是真正的语音片段,将状态进入语音段。进入语音段后还要记录语音段持续时间,若该段时间较短则认为是噪声,继续检测后面的语音,如果满足一定的时间长度则标记语音起点并将其记录为一段语音。

3.2DTW的改进

DTW的核心思想是进行动态规划,从而解决了语音识别中的发音长度不一致的匹配问题。在进行DTW时,通过动态匹配找到一个最佳路径,把语音信号的特征参数通过这条最佳路径映射到参考模板库中,这条最佳路径要求语音信号和参考模板之间的累积距离最小。

经典的DTW算法规定待识别语音信号和模板中信号的首尾必须完全一致,但是端点检测确定的首尾与实际存在一定的误差,造成识别率有所下降。为此,可以对DTW的端点的限制适当放宽。即允许起点在(0,0)、(0,m)或者(n,0)上,终点在(N,M)、(N,J)或者(I,M)上。端点要求放宽后对端点检测精度的要求就降低了,提高了识别的速度和精度。

虽然语音的速度不同,但是语序是确定不变的,因此路径中每一点的斜率必然大于0。而为了防止过度搜素浪费资源,可以对搜索路径的斜率加以限制,由于语音信号的扩压是有限的,因此可以舍去那些向X轴或者Y轴过度倾斜的路径。具体做法是:将搜索路径中每个点的最大斜率设为2,最小斜率设为0.5,这样就可以大大降低搜索范围,减少了计算量,提高了识别速度。

另外,还可以在进行相似度匹配时设定一个合理的阈值,如果计算出的某一部分的相似度与该阈值相差太远,则立即认为待识别语音与当前模板不匹配,转而进入与下一个模板的相似度计算,这样就可以减少大量的计算量,从而提高简单语音识别的速度。

3.3实验及数据

在实验室较安静的环境下对男女声识别进行了测试。发音内容为0~9的数字,采样率为24KHz,帧长20ms,帧移10ms,识别正确率达到了95%以上,原DTW算法的孤立字识别时间是6~7s,而采用本文改进算法的识别时间减少到2~5s。因此,本文方法可以实现快速准确的简单语音识别。

四、结束语

采用本文方法可以有效提高端点检测的精度、语音识别的正确率和识别速度,该方法完全满足简单语音识别系统的应用。

参考文献

篇(2)

1 引言

语音识别按不同的角度有以下几种分类方法:从所要识别的单位,有孤立词识别、音素识别、音节识别、孤立句识别、连续语音识别和理解。目前已进入识别的语音识别系统是单词识别。以几百个单词为限定识别对象。从识别的词汇量来分。有小词汇(10-50个)、中词汇(50-200个)、大词汇(200以上)等。从讲话人的范围来分。有单个特定讲话人、多讲话人和与讲话者者无关。特定讲话人比较简单,能够得到较高的识别率。后两者难度较大,不容易得到高的识别率。 从识别的方法分。有模块匹配法、随机模型法和概率语法分析法。这三种都属于统计模式识别方法。

2 系统硬件及组成

2.1 系统概述

语音识别系统的典型实现方案如图1所示。输入的模拟语音信号首先要进行预处理,语音信号经过预处理后,接下来重要的一环就是特征参数提取,其目的是从语音波形中提取出随时间变化的语音特征序列。然后建立声学模型,在识别的时候将输入的语音特征同声学模型进行比较,得到最佳的识别结果。

2.2 硬件构成

本文采用DSP芯片为核心(图2所示),系统包括直接双访问快速SRAM、一路ADC/一路DAC及相应的模拟信号放大器和抗混叠滤波器。外部只需扩展FLASH存储器、电源模块等少量电路即可构成完整系统应用。

2.3 系统主要功能模块构成

语音处理模块采用TI TMS320VC5402, TMS320VC5402含4 KB的片内ROM和16 KB的双存取RAM,一个HPI(HostPortInterface)接口,二个多通道缓冲单口MCBSP(Multi-Channel Buffered SerialPort),单周期指令执行时间10 ns,带有符合IEEE1149.1标准的JTAG边界扫描仿真逻辑。语音输入、输出的模拟前端采用TI公司的TLC320ADSOC,它是一款集成ADC和DAC于一体的模拟接口电路,并且与DSP接口简单,性能高、功耗低,已成为当前语音处理的主流产品。16位数据结构,音频采样频率为2~22.05 kHz,内含抗混叠滤波器和重构滤波器的模拟接口芯片,还有一个能与许多DSP芯片相连的同步串行通信接口。TLC320AD50C片内还包括一个定时器(调整采样率和帧同步延时)和控制器(调整编程放大增益、锁相环PLL、主从模式)。TLC320AD50C与TMS320VC5402的硬件连接,如图3所示。

3 结论

本文以TMS320VC5402芯片为核心的系统硬件设计迸行了研究,通过TLC320AD50C对语音信号进行A/D转换,通过TMS320VC5402对语音信号“0”、“1”、“2”进行训练和识别,并由对于灯LED0、LED1、LED2亮来显示结果是否正确;该系统核心识别算法采用动态时间规整(DTW)算法,主要流程包括预处理、端点检测、提取特征值、模式匹配和模板训练,取得了很好的识别效果。

参考文献

[1] 朱铭锆, 赵勇, 甘泉. DSP应用系统设计 [M].北京:电子工业出版社,2002.

[2] 郭华. 自适应滤波算法及应用研究[D].兰州:西北师范大学,2007.

[3] 张雄伟..DSP芯片的原理与开发应用[M].北京:电子工业出版社,2009.

[4] 张德丰. 数字图象处理(MATLAB版)[M].北京:人民邮电出版社,2009.

作者简介

篇(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)

1.引言

随着汽车工业的发展以及电子市场的成熟,车载智能终端逐渐成为汽车重要的配套设备,另外,近年来,经济的繁荣也促使国内各地汽车数量急剧增加,人们的出行习惯也随之发生变化,人车共处的时间越来越长,因此,车载智能终端的功能从简单的行车导航多功能转变,但驾驶人员在行车过程中,面对繁复的界面进行功能选择操作,易造成安全隐患,因此本文提出基于ARM的车载语音识别系统设计方案,旨在让驾驶人通过语音指令,操作智能终端,实现基本的导航、语音通信等功能,为安全驾驶提供保障。

2.语音识别过程

语音识别过程是首先将采集到的语音数据进行预处理,以提高自然语言的识别率,并降低处理器对数据进行密集运算的处理量,然后再进行端点检测、语音特征提取,完成从采集到的语音数据波型中,分析并提取以时间为参照的语音特征序列,随后转换为可对比的信号参数,与系统语音模型库进行语言匹配,即可得出识别结果。

3.系统整体设计

本系统由硬件、软件两部分构成,操作系统采用嵌入式Linux,为语音识别指令操作实现、车载智能终端功能实现提供基本的软件平台,硬件系统由语音识别部分、核心处理部分、电子设备部分构成,语音识别阶段由LD3320专用芯片在51级单片机的控制下完成,获取语音特征后,指令识别程序进行指令的对比识别,并通过指令操作系统程序调用诸如定位、导航、媒体播放、视频监控等应用程序,系统结构如下图1所示。

4.硬件系统设计

硬件系统主要包括系统主板、核心处理器、语音采拾器、语音识别芯片、语音控制单片机、存储器、电源等部分构成,详细介绍如下:

4.1 核心处理模块

系统中,核心处理器既做语音指令识别、指令下达的核心部件,还是车载智能终端的核心,考虑车载智能终端的多功能性,例如定位导航、媒体播放、远程视频监控等,系统核心处理器采用飞思卡尔推出的iMX27芯片,利用其H.264硬件编解码模块可在车载智能终端上实现MPEG4、H.263及H.264视频流的高效处理,在能够支持语音识别功能的同时,还使智能终端产品达到D1(DVD画面质量,720×480的屏幕分辨率)分辨率。

iMX27在处理H.264的同时占用极少的CPU的资源并提高了视频处理的性能,使核心有更多资源进行其它的应用,例如本系统的语音识别功能,另外,iMX27还具备非常灵活和丰富的标准接口、串行端口和扩展端口,实现与多种外部设备的连接,包括摄像头、显示器,还可以使用Wi-Fi、蓝牙实现即插即用及无线互连的功能,通过增加适当的模块,即可实现GPS定位、GPRS通信等应用。

4.2 语音识别模块

目前语音识别方案,有针对特定人的语音识别技术,但用户无法自行修定识别内容,还有基于ARM的软件识别技术,即将采集到的语音数据,直接交由ARM平台上运行的软件进行处理、比对、识别,这种方案优点是可以附带庞大的语音模型库,适应范围较广,但对ARM硬件平台要求较高,软件设计也相对复杂,本系统根据设计目的,提出的解决方案是,采用专用的语音识别芯片LD3320完成语音识别功能,将识别后的少量数据通过串行通信接口传送给ARM处理器,再由软件执行判断并执行相应的功能,一方面仅需求少量的电子器件,即可完成非特定人、非特定人、孤立词、小词汇量的语音识别功能,另一方面也可减少对ARM硬件的需求,空余更多的资源用于处理其它功能项目,而且软件设计也可以相对简化。

LD3320是由ICRoute公司生产的一种基于非特定人语音识别技术的专用芯片,内置语音搜索引擎以及语音识别模型特征库,另外还包含一些外部电路,例如AD、DA转换器、音频输入输出接口等,不再需要存储器等器件,也不需要预置语音训练,将MIC接入LD3320的AD引脚上,再通过51级的MCU进行控制,就可以进行语音识别,经过实践,LD3320的语音识别稳定性较好,准确性基本保持在96%左右。

51MCU主控制器采用Atmel公司生产的ATMEGA128芯片,其具备先进的RISC指令系统,包含133条指令,并且大多指令可以一个时钟周期内完成,执行效率高,内置128K字节的可编程Flash,4K字节的EEPROM,以及多达64K字节的优化的外部存储器空间,足以满足语音识别的控制需求。

主控制器主要完成需识别关键词语的拼音串通过设置寄存器的方式传入芯片内部,从而实现识别列表的动态编辑,每次可以设置50项候选识别句,每个识别句可以是单字,词组或短句。

4.3 存储器模块

为存储更多的语音数据,可通过存储芯片来扩展系统的存储空间,本系统采用意法半导体推出的M25P16-VMF6P芯片,该芯片是16-Mbit(2M x 8)串行闪存,具有先进的写保护机制,支持速度高达50MHz的SPI兼容总线的存取操作。存储器主要用于保存声音素材。

5.软件系统设计

软件系统由两大部分构成,一个是基于ARM平台的嵌入式Linux操作系统,主要为系统的实现提供基本的软件平台,另一部分是语音识别程序以及应用程序,主要完成语音的识别以及系统应用。

5.1 操作系统

本文采用可以支持ARM CPU,具有MMU功能的Linux操作系统,通过内核精简和裁减,并在实时性方面进行加强,以适应车载环境的应用需求。

5.2 语音识别程序

语音识别程序的设计,主要基于LD3320系列产品开发手册,主要工作流程分为以下几个步骤:系统初始化、识别列表输入、语音识别、中断响应等。

(1)系统初始化分为两个子步骤,分别通用初始化以及设备初始化,时钟频率、模式等参数在这一环节中进行设定。

(2)识别列表输入,首先对需要识别的语音指令进行编码,按不同编号区分不同的条目,编号范围可以1-256之间选择,每个条目采用标准普通化拼音作为语音参考模型,2个标准字汉语之间以空格进行填充。

(3)语音识别,通过设置特定寄存器的值,系统即可开始进行语音识别,语音识别的准确率与MIC的灵敏度设置有直接关系,根据实际环境条件,设置在40H~6FH可达到较好的效果。

(4)中断响应,设置系统捕捉到MIC有信号产生,即产生中断,中断处理程序则根据LD3320寄存器的值对识别结果进行判断,以C5寄存器的值作为参考的正确结果。

5.3 指令执行程序

指令执行程序运行的ARM平台上,负责监听ATMEGA128的串口数据,当接收到识别结果时,把该结果以二进制形式读出,通过预先设定的识别结果-执行指令对照表,查询应当执行的指令,并根据指令完成相应的操作。

6.结论

本文从整体、硬件、软件等几方面,深入讨论了基于ARM的嵌入式语音识别系统的设计和实现,并对各个组成模块的硬件电路及软件实现进行了详细的介绍。经实践,本文设计的语音识别系统在稳定性、识别率方面有较好表现,配合车载智能移动终端,有较强的实用性。

参考文献

[1]张戟,杨腾飞.车载自动语音识别系统设计[J].佳木斯大学学报(自然科学版),2011,29(2):201-205.

[2]刘建臣,赵建光,庞炜等.基于ARM9+linux的智能小区语音识别系统研究[J].河北建筑工程学院学报,2009,27(1):119-121.

篇(5)

中图分类号:TP319 文献标识码:A 文章编号:2095-1302(2012)09-0014-02

Design of voice recognition system based on TMS320C6713

XU Fei-yan1, CHEN Tao2, SUN Xu3, FANG Zong-liang1, LI Li-rong1

(1. Department 2, Anti-Chemical Institute, Beijing 102205, China;

2. Beijing Research & Development Center of Xiamen Jiuhua Communications Equipment Factory, Beijing 100083, China;

3. Chengdu University of Technology, Chengdu 610059,China)

Abstract: Taking the TMS320C6713DSP with floating-point functions produced by Texas Instruments chip as the system core processor and the MSP430 microcontroller as a peripheral controller, a real-time speech recognition system is designed in the paper. The kernel algorithm for the system uses Mel-frequency cepstral coefficients as feature parameters for feature extraction and dynamic time warping (DTW) algorithm for pattern matching. Programming and debugging of the system indicate that the system has good flexibility and real-time capability and improves the performance in noise immunity, robustness and recognition rates. In many areas, it has a practical reference value.

Keywords: speech recognition; digital signal processing; Mel-frequency cepstral coefficients; dynamic time warping

0 引 言

语音识别[1]是一种最为理想的人机通信方式。随着计算机技术的进步,语音识别技术已经逐渐应用于控制、通信、消费等行业[2]。但是,语音识别系统在商品化的进程中还存在着诸如识别速度、系统鲁棒性以及更高的识别率等具体问题。如何提高语音识别系统的这些性能,使系统更快、更稳定地工作是目前研究的重点。本文正是基于这种思想,通过选用德州仪器公司带浮点功能的DSP芯片TMS320C6713(主频为200 MHz)作为语音信号处理的核心处理器,同时结合MSP430单片机作为控制器共同构建硬件系统, 以美尔频率倒谱系数作为语音信号特征参数,结合动态时间规整孤立词识别算法进行模式匹配,设计了一种具有良好实时性和高识别率及鲁棒性的语音识别系统。

1 系统硬件设计

本设计的整个硬件系统是以DSP为核心电路对语音信号进行采集和处理,再经过A/D转换电路把模拟语音信号转换成数字语音信号,然后送入DSP芯片进行匹配识别,最后将识别后的结果通过单片机控制模块外接的两个红绿颜色的二极管进行处理表示,其中红色表示拒绝命令,绿色表示接受命令。系统的硬件平台主要由DSP系统核心处理模块、语音信号采集模块、单片机控制模块、外扩存储器模块和电路等几个模块构成。系统的硬件设计总体方案框图如图1所示。

1.1 DSP系统核心处理模块

作为系统的核心模块DSP芯片采用TMS320C6713,该芯片的主频可达200 MHz。这是TI公司推出的一种新型的浮点DSP芯片,是继定点DSP芯片TMS320C62X系列后开发的。该芯片的内部结构在TMS320C62X的基础上进行了改进,内部同样集成了多个功能单元,可同时执行8条指令,其运算能力可达1G FLOPS。片内具有丰富的外设,如EDMA、EMIF、McBSP、HPI、GPIO等[4]。

篇(6)

中图分类号:TN912.34 文献标识码:A 文章编号:1007-9599 (2012) 11-0000-02

随着人们对人机交流技术的要求越来越高,语音识别技术应运而生。语音识别是将语音信号转换成相应文本的高技术,是一种重要的人机交互技术[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)

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)07-0154-02

目前主流的语音识别算法田有隐马尔科夫模型12’和深度神经网络 。对于建模单元统计概率模型描述,主要采用混合高斯模型(GMM),HMM-GMM模型在很长一段时间是语音识别声学建模的主流模型。2011年微软在深度神经网络领域取得突破并成功应用于语音识别,深度神经网络因具有更加优异的特征学习和特征表达能力成为研究的前沿。深度学习在语音识别中取得了较好的效果,但其需要的海量数据训练以及大规模并行运算无法在嵌入式平台上实现。

本文在嵌入式平台上搭建一个机器人的控制命令小词汇量汉语语音识别系统,通过收集录制控制命令的训练和测试语音数据,设计训练过程需要用到的脚本,本文完成了控制命令的声学模型和语言模型训练,最终使用训练好的模型文件构建了一个以Sphinx为识别引擎的机器人语音识别系统。

1基于HMM的语音识别算法

一个典型的语音识别系统结构如图1所示,包括预处理单元、特征提取单元、模式匹配单元、模型库建立单元四个部分。

HMM模型可表示为λ=(A,B,π),A为状态转移矩阵,B为观察值概率矩阵,π为初始状态概率分布,N表示马尔可夫链状态数目,M表示观察值个数。在本文应用中,主要运用HMM模型解决控制命令的识别问题和声学模型训练问题。

1.1语音识别算法识别问题

识别问题:给定观测序列o={o1,o2,…,oT)和模型λ=(A,B,π),确定产生最优O的状态序列。识别问题主要用于识别过程中解码,识别问题的基本算法为Viterbi算法,具体过程由以下公式迭代计算:

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

1.2语音识别算法训练问题

训练问题;给定观测序列O={o1,o2,…,oT)和模型λ=(A,B,π),如何得到一个最优的HMM模型,即通过训练模型中各个参数使得P{O|λ)取最大值。语音识别中用于声学模型的训练基本算法有Baum-Welch算法,实现过程如下:

(9)

(10)

将ξ(i,j)对#从1到T求和可求得状态Si到Sj的转移期望值,将γt(i)对t求和可求得从其他状态访问状态Si的期望值,这两个过程就是Baum-Welch算法基本思想。

2基于sphinx的机器人语音识别系统构建

2.1实验系统与设置

机器人语音识别系统设计如图2所示:

嵌入式主控平台主要负责语音识别,识别麦克风传人的语音控制命令,再通过无线模块与机器人通信,最终实现了语音命令控制机器人的效果。选择的命令包括“前进”、“后退”、“左转”、“右转”、“停止”、“启动”、“开灯”、“关灯”、“开电源”、“关电源”。

2.2数据准备

数据准备主要分为语言模型数据和声学模型数据两大部分,下面分别介绍。

2.2.1语言模型数据准备

本文使用CMUClmtk工具进行语言模型训练,CMUClmtk将统计控制命令文本数据产生以单个词建立的N_Gram模型。N-Gram模型的基本思想是,当前词的出现只与该词前面出现的所有词有关,各个词出现概率的乘积就是整个句子出现的概率。从语料中统计每个词同时出现的次数可得到各个词的概率,准备好用于语言模型训练的语言数据之后,CMUClmtk将统计文本文件中每个词出现的次数和词的总数,然后列举文本中出现的每一个词的n元语法,最终转换为Sphinx需要的二进制格式(DMP)语言模型。

2.2.2声学模型数据准备

声学模型数据准备首先需要录制用于训练和测试的原始语音文件,然后准备字典文件,字典文件包括主字典文件和补充字典文件,主字典文件中包含了需要进行训练的控制命令以及与控制命令相对应的音素集,补充字典主要列举了非语音单词,它包括静音,背景噪声等。下一步将字典文件通过命令脚本生成音素文件,音素文件包含所有训练的音素集。

2.3模型训练

首先对训练的语音信号提取特征向量,Sphinxtrain采用提取梅尔频率倒谱系数(MFCC)作为特征向量。下面分别为字典中每个音素建立上下文无关模型(CI-modds),并为音素关联状态建立上下文有关模型(CD-unfied models)以及建立决策树,可以通过决策树聚类的方法来减少参数数量。下一步将为音素训练最终聚类后的CD模型(CD-tied models),删除插值是一个为了减少过度拟合的一个迭代过程,最终得到由均值文件、方差文件、混合权重文件和转移矩阵文件组成的控制命令声学模型。

2.4语音识别

在完成以上声学模型训练过程之后,系统会使用测试语音对训练好的声学模型进行解码。使用Viterbi算法计算概率最大路径的输出概率得到识别结果,系统会统计解码器对测试语音的错词率作为识别结果。

3结果及分析

本实验系统环境为Ubuntul2.04系统,在实验室环境录制了20名同学的语音,其中男10名,女10名,在无噪声环境下采用近距离麦克风录制,数据采样率为16kHz,16位量化编码,每位同学将以正常说话语速将10个命令录制10次,将10位男生和10位女生前5次录音作为训练数据,后5次录音作为测试数据,对训练好的声学模型进行测试,采用错词率(WER)作为标准来统计结果,假设有一个N个单词长度的原始文本和识别出来的文本。I代表入的单词个数,D代表被删除的单词个数,S代表被替换的单词个数,那么错词率就定义为:

WER=(I+D+S)/N (11)

系统的识别结果如表1所示:

篇(8)

1.引言

在小词汇量的语音识别系统中,主要分为孤立词识别和基于词网模型的连续语音识别。前者通过词发音端点分割算法,把每个词的发音从整段语音中分割出来,然后再到模型集中去寻找最佳的匹配作为识别结果。XML同HTML一样,都来自SGML(标准通用标记语言)。SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难于学习和使用。鉴于此,人们提出了XML 语言,它具有可扩展性、灵活性、自描述性、简明性的优点。

在MYASR系统中有多个功能模块,每个功能模块都有各自的参数,采用XML语言对这些参数进行描述更加直观,可读性更强。例如,MYASR中MFCC编码的XML描述如下:

<mfcc_params>

 <type_mask>  MFCC_0_D_A  </type_mask>

 <sample_rate> 16000 </sample_rate>

 <win_size>  400 </win_size>

 <win_shift> 160 </win_shift>

 <fft_size>  512 </fft_size>

 <low_freq>  200  </low_freq>

 <high_freq> 7000  </high_freq>

 <pre_enphasis> 0.97 </pre_enphasis>

 <mel_num>  26  </mel_num>

 <cep_num>  12  </cep_num>

 <cep_lifter>  10  </cep_lifter>

</mfcc_params>

MYASR通过XML解析器将XML元素中的参数提取出来,然后再传递给各个功能模块。当需要增加参数时,只要在XML文件中适当位置增加一个元素(Element)即可,具有良好的可扩展性。

3.系统开发

MYASR系统的模块结构如下所示:

3.1前端处理

MYASR的前端处理包括以下功能模块:自动增益控制(AGC)、噪音消除、预加重处理。其相应的XML描述如下:

<preprocess_bat workdir="d:worktmp">

 <params>

  <frame_ts> 20 </frame_ts>       //帧长

  <agc>

   <level> 0.5 </level>  

   <max_gain> 2.0 </max_gain>  //最大增幅

   <min_gain> 1.0 </min_gain>   //最小增幅

  <agc>

  <pre_enphasis> 0.97 </pre_enphasis>//预加重系数

  <denoise>1</denoise>    //噪音消除

 </params>

 <transcrip> pretrans.scp </transcrip>

</preprocess_bat>

其中属性"workdir"表示当前的工作目录,元素<agc>表示自动增益控制参数,元素<pre_enphasis>表示预加重参数,元素<denoise>表示是否对语音进行噪音消除。元素<transcrip>表示批处理文件,此文件中描述了目标文件名及处理后的文件名,内容如下:

"speech1.wav"  "speech1_dn.wav"

"speech2.wav"  "speech2_dn.wav"

"speech3.wav"  "speech3_dn.wav"

.........

3.2端点分割

在MYASR系统中,实现两种类型的端点分割:句子端点检测,词端点检测。采用的静音检测方法有【2】:基于短时能量、基于短时平均过零率、和基于GMM模型。其XML描述如下:

 <endpoint>

  <endpoint_method> SENT_CUT </endpoint_method>

  <vad_method> GMM_VAD </vad_method>

  <sil_interval> 500 </sil_interval>            //单位为毫秒

</endpoint>

元素<endpoint_method>表示端点分割方法:设置SENT_CUT表示句子端点分割,设置WORD_CUT表示词端点分割。元素<vad_method>表示静音检测的方法:设置GMM_VAD 表示采用基于GMM模型,PW_VAD表示基于短时能量,COS_VAD表示基于短时平均过零率。<sil_interval>元素表示检测对象之间允许的停顿时间,超过停顿时间意味着出现新的句子或词。

3.3特征提取

MYASR系统中目前采用MFCC结合动态差分参数作为特征矢量。将语音文件转换为MFCC编码的XML描述文件如下所示:

 <wav2mfcc workdir = "d:myworkdir">

  <params_xml>mfccparams.xml</params_xml>

  <transcrip> trans.scp </transcrip>

</wav2mfcc>

其中mfccparams.xml是MFC C特征参数的描述文件,内容如下:

<mfcc_params>

 <type_mask>  MFCC_0_D_A  </type_mask>//类型

 <sample_rate> 16000 </sample_rate>  //采样率

       <win_size>  400  </win_size> //帧长

 <win_shift> 160   </win_shift>    //帧移

 <fft_size>  512   </fft_size>   //FFT的窗长

 <low_freq>  200  </low_freq>   //截止的最低频率

 <high_freq>  7000 </high_freq>   //截止的最高频率

 <mel_num>  26  </mel_num>   //MEL滤波器数

 <cep_num>  12  </cep_num>   //MFCC维数

 <cep_lifter>  10  </cep_lifter>   //参数提升系数

</mfcc_params>

其中<type_mask>元素表示特征矢量标志,有6种类型:

表3-1  MYASR中MFCC编码类型

标志

含义

MFCC

MFCC参数

MFCC_0

MFCC参数加对数能量

MFCC_D

MFCC参数及其一阶差分

MFCC_0_D

MFCC参数加对数能量,及一阶差分

MFCC_D_A

MFCC参数及其一阶、二阶差分

MFCC_0_D_A

MFCC参数加对数能量,及一阶、二阶差分

<transcrip>元素中的trans.tsp文件描述了语音源文件及转换成MFCC的目标文件,内容如下:

"speech1.wav"  "speech1.mfc"

"speech2.wav"  "speech2.mfc"

"speech3.wav"  "speech3.mfc"

.........

3.4模型训练

MYASR采用了连续概率密度的HMM模型,模型参数初始化采用了"K-均值分割"算法,参数重估采用"Baum-Welch"算法。其XML描述文件如下:

<hmm_train workdir="d:worktmpmytimit">

 <label_scrip> phones.lst </label_scrip>    

 <featlep_scrip> trainmfcclabep.scp </featlep_scrip>  

 <hmm_params>

  <state_num>3</ state_num >      //HMM状态数

  <mixture>4</mixture>       //高斯分量个数

  <veclen>39</veclen>       //特征矢量维数

  <cluster>GMM_EM</cluster>     //聚类算法

  <feat_flag>MFCC_0_D_A</feat_flag>   //特征矢量标志

 </hmm_params>

 <model_file>modelhmmmodelEM4.xml</model_file> //输出文件

</ hmm _train>

其中,<label_scrip>元素中的文件phones.lst表示要训练的那些词或音子。

<featlep_scrip>元素中的文件trainmfcclabep.scp描述了特征矢量文件及其标注文件,内容如下:

"mfcspeech1.mfc"  "labspeech1.lab"

"mfcspeech2.mfc"  "labspeech2.lab"

"mfcspeech3.mfc"  "labspeech3.lab"

.........

标注文件".lab"中注明了每个单元的发音起点和终点,MYASR将根据标注文件从特征文件中读取特征矢量进行HMM模型的训练。标注文件内容如下:

0    191   sil

191  285   sh

285  358   ix

358  415   hh

415  548   eh

548  646   jh

646  720   ih

720  790   d

790  920   ah

....

其中时间单位为毫秒。

<cluster>元素表示"K-均值分割"算法中对B参数进行重估所采用的算法,有两种选项:GMM_EM表示EM算法,K_MEANS表示"K-means"算法。实验结果显示,EM算法比"K-means"算法具有更好的性能。

<model_file>表示训练输出的HMM模型文件,内容如下:

<hmm_set>

 <params>

  <feat_mask>MFCC_0_D_A</feat_ mask >

  <state_num>3</state_num>

  <mixture>4</mixture>

  <vec_len>39</vec_len>

 </params>

 <hmm >

  <state>

 <mixture> 1.906841e+001 1.900540e-001 ......</mixture> //均值

<var>     2.945649e+001 1.096035e+002......</var>    //方差

<weight>  2.212352e-001 </weight>  

 //权重

           </state>

           ......

</hmm>

......

</hmm_ set >

3.5词网构建

3.5.1 词网模型的双层结构

MYASR中的词网模型分为两层:一层是描述层,主要用于描述词网的结构,包括上下文无关文法和有限状态图;另一层是模型层,这一层由HMM模型构成的搜索网络,是搜索算法的输入。首先由用户定义语法规则,然后转换成有限状态图,最后结合HMM模型集和发音字典将其转化成搜索算法可以处理的模型层搜索网络。

3.5.2 描述层到模型层的转换

在模型层搜索网络中,按节点是否有词输出分为两类:空节点和词节点。空节点中不含有HMM模型,而只是作为词网中的一个过度节点,如起始节点(#START),终止节点(#END),中转节点(#L)都是没有词输出的节点。而词节点则包含了构成这个词的HMM模型。

词网模型的有限状态图转换成模型层搜索网络的过程为:当遇到空节点时,不作处理;当遇到词结点时,在字典哈希表找到这个词,并保存word_id,word_id是这个词在字典哈希表的索引,当搜索结束后,回溯时就是根据这个word_id找到哈希表中对应的词;同时根据这个词的发音,到HMM哈希表中查找子词的HMM模型,然后在这个词结点中创建指向子词HMM模型的指针。转换后的模型层搜索网络如图3-4所示。

    模型层搜索网络构建后,就可以用Token-Passing算法进行搜索。

4 总结

篇(9)

1 前言

新一代特种车辆的车载显控系统对复杂噪声环境下的语音控制(语音识别与语音合成)组件提出了新的需求,当前的车载显控系统需要具备语音采集、识别和合成输出的功能,而特种车辆在任务中的复杂噪声的污染会使许多语音处理系统性能急剧恶化。由于特种车辆的车载强噪声环境的特殊性,现有的商用语音识别模块产品均难以满足其环境的使用要求。

本文基于特种车辆对语音控制设计需求,针对特种车辆座舱(以下简称车载座舱)殊的噪声环境,进行车载座舱噪声环境下语音降噪组件设计,实现了语音信号的降噪处理,并采用商用的语音识别模块进行测试验证。测试结果表明,此方案在车载座舱环境下具有很好的降噪效果。

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)

中图分类号:TN912.34 文献标识码:A 文章编号:2095-1302(2016)11-00-03

0 引 言

智能家居(smart home)的概念很早就被提出来,但是一直没有在现实中被具体实践,直到1984年出现的首栋智能型建筑拉开了全人类争相构建智能家居的帷幕。智能家居不是某一项家庭电器的智能化,而是以住宅为平台,为实现家居安全舒适、科学环保、健康节能的家居生活环境,依赖综合布线和网络通信技术,将家电设备联系起来,构建高效、流畅的家居设备管理系统,方便人们对家用设备进行操作与管理,为人类提供智能、舒适的生活方式。

1 语音识别的发展历史及应用领域

从工业革命开始,人类逐渐受益于高速的机器生产,但随着科技的发展,人类开始梦想着与机器进行交流沟通,让机器明白人类的命令,然后给予回应,真正实现用机器代替人类进行繁重劳动的目标。语音识别技术为该目标的实现提供了可能,该技术将其接收到的音频信号转换为机器可识别的文本或命令后进行进一步处理。现如今,经历半个多世纪的探索与创新,语音识别技术在各领域都实现了应用,小到儿童玩具、个人家庭电器、电子产品,大到医疗、工业生产等,语音识别系统都发挥着不可替代的作用。从世界上第一个能识别10个英文数字发音的语音识别系统到如今广泛应用在各行各业的语音识别系统,我们希望语音识别技术在未来取得更大的发展。

语音识别技术的发展离不开研究者们的卓越贡献,由一开始特定人、小词汇的识别到如今非特定人、连续发音、大量词汇的识别,这其中各种技术的更新发展必不可少。广泛使用的计算机网络和普遍使用的手机、ipad等提供了大量文本和语音方面的材料资源,多渠道的资源为语音识别中的语言模型和声学模型的训练提供了有力支持。语音识别的未来发展令人期待。

2 智能家居声控系统的方案设计

2.1 系统总体结构图

图1所示为系统总体设计结构框图。该系统的硬件部分包括电源、LD3320芯片、单片机、继电器等。语音识别由LD3320芯片实现,系统整体控制由MCS-51单片机实现,包括对LD3320芯片的初始化等。用户语音指令经麦克风送给LD3320语音识别模块,LD3320识别处理后,把识别结果传送给单片机,单片机将根据识别结果对外设进行相应控制。若语音指令无法识别,则由单片机控制LD3320语音模块重新进入新的识别处理过程。

2.2 LD3320语音识别模块

LD3320芯片是一个专用于语音识别的芯片,该芯片在设计时注重高效与节能,无需外接任何辅助芯片,直接集成了语音识别处理模块和外部电路,如麦克风接口、语音输出接口、AD/DA转换器等,使其可以实现语音识别、声音控制及人机对话等功能。

2.2.1 主要特征

完成非特定人的语音识别命令。在语音识别技术发展之初,只能由特定的人进行语音命令来完成任务,且需要录音和练习等,而现在只需用户使用相同的语言就可以进行识别,且识别效率大大提高,识别率高达95%,无需外接辅助,实现了单芯片语音识别。

由于用户的语音命令有多种可能,如意思相同但语音命令不同或受到口音语气的影响等,LD3320芯片中的识别语句是动态可编辑,可修改的,在设计时可根据具体情况考虑多种可能,如设置50条识别语句留作用户语音命令的候选语音,以提高系统的整体水平。不过设置时需注意识别语句的长度,如果设置汉字则不能超过10个,设置拼音串则不能超过79个。支持串行接口和并行接口,也可设置为休眠状态,方便激活。

2.2.2 LD3320语音口令识别处理过程

LD3320芯片的语音口令识别处理过程如图2所示。

2.2.3 LD3320语音识别模块使用技巧

在一些特别的应用场合,人们希望语音识别系统具有较高的识别精度。本系统设计采用“用户口令触发模式”以提高抗干扰能力,避免单片机对外设控制时产生错误动作。

程序设计中设置一个短句作为用户命令的触发口令。如定义“小明”作为用户的触发口令。在等待用户触发时,特别是有杂音、噪音的情况下,系统将启动 “循环识别处理”模式,把触发口令“小明”和其他几十个用来吸收错误的词汇设置进LD3320语音识别芯片。如果LD3320芯片中程序检测到用户的触发口令时,则开启“触发模式”,用户给出一级口令,若检测为正确口令,则芯片将给出指示,即提示灯开始闪烁(大约2 s)后,开启二级口令的接收检测即“识别模式”,LD3320识别到预设的二级口令后,如卧室开灯、卧室关灯等,将识别结果送给单片机,由单片机对外设进行控制。在等待口令时,可能会进行误识别,即在其他声音干扰下接收到相似的语音片段,程序可以专门对垃圾词语进行处理或不处理,然后进入循环识别状态,用户只需发出新的口令即可触发。通过二级口令触发模式,用户可以更加方便的进行语音操作,且准确率较高。

2.2.3.1 巧妙运用关键词语的ID,提高识别效率

由于用户的发音习惯不同,可能同一个意思的不同语音命令无法被准确执行。我们将语音命令的关键词语的拼音串设计在LD3320芯片内,例如一级口令“小明”,然后传入一个ID代表这个词语,一旦识别成功后,将这个ID作为识别的结果对外输出。在 LD3320语音芯片中,同一个ID可以对应不同的关键词汇,而且ID不需要连续,编程方式非常简单。例如“中国”“华夏”,可以设置为同一个ID,之后再进行其他处理步骤。

2.2.3.2 对于关键词ID设置多个可能发音,充分利用50项候选可识别语句

有时用户可能不会用同一个词来发出命令,例如“开灯”,用户可能会说“开大灯”“打开灯”“打开电灯”“把电灯打开”等,其说话的口音、语气、情绪、习惯是不同的。因此需把用户的这些发音习惯都考虑到程序设计中,完全利用LD3320芯片的特性,充分利用50条可动态编辑的关键识别条目,编辑不同的候选语句并设置到芯片中。这样用户在发出命令后,被准确执行的效率增加,完善了系统的功能。

2.2.3.3 用户通过语音命令后得到语音识别结果的等待时间调节

在本系统中,用户发出口令后芯片大约有12 s的反应时间,然后才会给出识别反应。通过语音识别芯片的检测机制来判断用户的口令是否全部发出,如监测出一段连续的噪音,就认为用户口令已发完,之后给出识别结果。

2.2.4 使用过程中应注意的问题

在测试过程中发现,LD3320模块应用时要注意以下问题:

(1)用户使用时背景声音(噪音、杂音等)会造成一定的干扰;

(2)设置语音模块内识别列表的内容和50个可编辑的候选语句有关;

(3)设置识别列表中各词汇之间的相似程度;

(4)用户的发音快慢、大小、口音以及发音是否清晰等;

(5)距离麦克风的位置远近以及接收语音的外设(麦克风等)质量等。

3 智能家居声控系统的软件程序设计

智能家居声控系统的程序处理过程主要包括单片机初始化;LD3320芯片的初始化;LD3320语音识别结果寄存器的读取以及单片机对外设的控制等。

3.1 具体软件功能模块介绍

(1)单片机初始化函数:void MCU_init()

名称:void MCU_init()。

功能:单片机初始化。

(2)中断处理函数:void ExtInt0Handler(void) interrupt 0

名称:中断处理函数。

功能:对LD3320的中断请求进行处理。

其他说明:语音识别模块接收到音频信号后进入函数,判断识别结果,若无结果则设置寄存器开始下次识别。

(3)用户执行函数:void User_handle(uint8 dat)

名称:用户执行函数。

功能:识别结果成功后,MUC进行之后的处理。

(4)LD3320复位函数:void LD_Reset()

功能描述:复位LD模块。

(5)LD3320初始化函数:void LD_Init_Common()

功能描述:LD模块命令初始化。

其他说明:该函数一般不需要修改。

(6)LD3320ASR功能初始化函数:void LD_Init_ASR()

功能描述:LD模块ASR功能初始化。

其他说明:该函数一般不需要修改。

(7)运行ASR识别处理函数uint8 RunASR(void)

功能描述:运行ASR识别流程。

返回值:asrflag:1->启动成功;0->启动失败。

其他说明:识别顺序如下:

① RunASR()函数实现一次完整的ASR语音识别流程;

② LD_AsrStart()函数实现了ASR初始化;

③ LD_AsrAddFixed()函数添加关键词语到LD3320中;

④ LD_AsrRun()函数启动一次ASR语音识别流程。

任何一次ASR识别流程均从初始化开始,皆按照此顺序进行。

(8)语音命令添加函数:uint8 LD_AsrAddFixed()

功能描述:向LD模块添加关键词。

返回值:flag:1->添加成功。

(9)识别结果获取函数:uint8 LD_GetResult()

功能描述:获取识别结果。

返回值:LD_ReadReg(0xc5 ),读取内部寄存器返回的识别码。

3.2 系统程序流程图

声控系统单片机程序流程图如图3所示。

4 系统测试

本系统以“小明”为一级指令口令,每次识别时必须先触发一级口令,才能进行二级口令,如卧室关灯、卧室开灯、客厅开灯、客厅关灯等。

系统加入电源后对麦克风说“小明”一级口令,指示灯闪烁亮灯后,再对着麦克风说:“卧室开灯”二级口令则继电器控制卧室灯亮。目前该系统能识别的二级口令有5个,分别是“客厅开灯”“客厅关灯”“卧室开灯”“卧室关灯”和“close all”,实际可以根据具体布置需要增加控制节点及相应识别口令。

5 结 语

智能家居声控系统不仅能为大家带来舒适的居住环境,还具有系统可靠性高,误识率低,方便适用的特点,具有广大的应用前景。

参考文献

[1]王炳锡.实用语音识别基础――21世纪高等院校技术优秀教材[M].北京:国防工业出版社,2015.

[2]谭浩强.C程序设计教程[M].北京:清华大学出版社,2007.

[3]金鑫,田,阙大顺.基于LD3320的语音控制系统设计实现[J].电脑与信息技术,2011,19(6):22-25.

上一篇: 办公室日常工作计划 下一篇: 示范园汇报材料
相关精选
相关期刊