基于凌阳61的语音识别报警器毕业论文 - 图文

更新时间:2024-05-03 10:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河南理工大学毕业设计(论文)说明书

声控遥控器找寻器

摘 要

随着计算机软硬件技术、半导体技术、电子技术、通讯技术等的飞速发展人类已经进入后PC时代。然而人类科技的发展总是离不开以人为本这一永恒的主题,家庭日用品更是被人们设计的越来越人性化,越来越便于使用,例如:语音识别技术。它得到了迅猛发展, 支持语音识别的各种产品纷纷面世。在我们生活中常见的语音识别技术产品有语音命令控制空调、电视、灯光、自动窗帘等的使用,让人们的生活“随音所欲”,更加舒适,更加便捷。

与传统方案相比,具有结构简单、成本低、易实现的特点,能缩短开发周期,并且可扩充性强。本设计方案可应用于家电产品及其他电子产品,还可利用此系统的语音处理的优势组成语音应答系统、语音合成系统、互动式玩具等,具有广阔的市场前景。

本文的设计是以凌阳61单片机为主要元器件并结合SPLC501液晶显示模组使产品同时具有语音识别和显示功能。此产品属于寻找器,主要应用于家庭小器件的快速寻找。寻找器系统采用模块化设计法,其硬件主要包括:电源区、下载区、音频区、SPCE061A与周边、键控区、复位区、端口区、显示区;软件部分有C语言编程,实现对各个模块的控制。设计时首先对61单片机进行语音训练,再利用61单片机的语音接收模块接收语音信号,接收后送入语音处理模块进行识别处理,与模板匹配后发出相应的语音报警信号,达到找寻的目的。对语音信号的识别采用DTW算法,配合音频解码达到识别特定语音的效果。经过多次训练与调试,对于特定人语音的识别这一预期的效果已经达到。整个设计结构简单,使用方便。

关键字: SPCE061A单片机 语音识别 找寻器

河南理工大学毕业设计(论文)说明书

Voice-activated remote control finder

Abstract

Along with the rapid development of the computer software , hardware technology, semiconductor technology, electronic technology and the communication technology ,the PC era after the people has already entered into. However, the development of human technology, always inseparable from the people-oriented the eternal theme, household items designed to be more humane, more and more easy to use, for example: voice recognition technology. It has been the rapid development of a variety of products have emerged to support voice recognition. In our lives in common speech recognition voice commands to control the use of air conditioning, TV, lights, automatic curtain, so that people's lives \the sound Wants\more comfortable, more convenient.

The design of paper is based on the Sunplus 61 microcontroller as the main components and to combine SPLC501 LCD module also has voice recognition and display. This product belongs to the finder, mainly used in small household devices quick find. Finder system modular design method, the hardware include: the power area, download area, audio area, SPCE061A with neighboring keying District, reset district, port district, the display area; software part of the C programming language, to achieve on eachthe control of the module. The design of the first 61 single-chip voice training, re-use the voice of 61 single-chip receiver module to receive the voice signal into the voice processing module received recognition processing, voice alarm signal issued by the appropriate template matching to achieve the purpose of looking for. In addition, the identification of the voice signal using the DTW algorithm, with the audio decoder to identify the effect of a particular voice. After several rounds of training and commissioning, the desired effect for a specific voice recognition has been achieved. The entire design structure is simple, easy to use.

keyword: SPCE061A speech recognition alarm

河南理工大学毕业设计(论文)说明书

1 绪论

1.1引言

近年来,语音识别技术取得了飞速发展,并逐渐应用于通信、军事、人工智能、工业自动化等多个领域。语音识别技术的出现,使人们和机器通过自然语言交流成为可能,不仅解决了人机“交流”大众化中的障碍,了人机交互的效率,而且给人体无法接触或不便接触来实现操作控制的场合带来了极大的方便。随着改革开放的深入发展,电子电器的飞速发展.人民的生活水平有了很大提高,生活步伐明显提高,在高效率的生活节奏下,找寻一些常用却经常会遗忘的用品成了人人都会遇到的小难题,因此设计生产出一种体积娇小的挂件式声控报警器显得非常必要。

常用的报警器为人们解决了不少问题.但是市场上的报警器大部分都是用于一些大公司财政机构,价格高昂,一般人们难以接受。如果再设计和生产一种价廉、性能灵敏可靠的报警器,必将在防盗和保证财产安全方面发挥更加有效的作用。由于声控报警器体积小,灵敏度高具有很强的隐蔽性和保密性,因此在防盗、警戒等安保装置中得到了广泛的应用,此外报警器亦可以用于物品的找寻方面。如果设计出一种体积小、灵敏度高、且具有语音识别功能的报警器当做提醒器用于日常生活,将会给我们的日常生活带来很大的帮助,其价格低廉、技术性能稳定等特点也必将受到广大用户和专业人士的欢迎。

1.2国内外语音识别系统发展情况概述

1.2.1国内对语音识别的研究发展情况

我国语音识别研究工作起步于五十年代,但近年来发展很快。研究水平也从实验室逐步走向实用。从1987年开始执行国家863计划后,国家863智能计算机专家组为语音识别技术研究专门立项,每两年滚动一次。我国语音识别技术的研究水平已经基本上与国外同步,在汉语语音识别技术上还有自己的特点与优势,并达到国际先进水平。中科院自动化所、声学所、清华大学、北京大学、哈尔滨工业大学、上海交通大学、中国科技大学、北京邮电大学、华中科技大学等科研机构都有实验室进行过语音识别方面的研究,其中具有代表性的研究单位为清华大学电子工程系与中科院自动化研究所模式识别国家重点实验室。

河南理工大学毕业设计(论文)说明书

清华大学电子工程系语音技术与专用芯片设计课题组,研发的非特定人汉语

数码串连续语音识别系统的识别精度,达到94.8%(不定长数字串)和96.8%(定长数字串)。在有5%的拒识率情况下,系统识别率可以达到96.9%(不定长数字串)和98.7%(定长数字串),这是目前国际最好的识别结果之一,其性能已经接近实用水平。研发的5000词邮包校核非特定人连续语音识别系统的识别率达到98.73%,前三选识别率达99.96%;并且可以识别普通话与四川话两种语言,达到实用要求。

中科院自动化所及其所属模式科技(Pattek)公司2002年发布了他们共同推出的面向不同计算平台和应用的“天语”中文语音系列产品——PattekASR,结束了中文语音识别产品自1998年以来一直由国外公司垄断的历史。

1.2.2国外语音识别系统发展情况

国外对语音识别的研究工作可以追溯到20世纪50年代AT&T贝尔实验室的Audry系统,它是第一个可以识别十个英文数字的语音识别系统。

但真正取得实质性进展,并将其作为一个重要的课题开展研究则是在60年代末70年代初。这首先是因为计算机技术的发展为语音识别的实现提供了硬件和软件的可能,更重要的是语音信号线性预测编码(LPC)技术和动态时间规整(DTW)技术的提出,有效的解决了语音信号的特征提取和不等长匹配问题。这一时期的语音识别主要基于模板匹配原理,研究的领域局限在特定人,小词汇表的孤立词识别,实现了基于线性预测倒谱和DTW技术的特定人孤立词语音识别系统;同时提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。

随着应用领域的扩大,小词汇表、特定人、孤立词等这些对语音识别的约

束条件需要放宽,与此同时也带来了许多新的问题:第一,词汇表的扩大使得模板的选取和建立发生困难;第二,连续语音中,各个音素、音节以及词之间没有明显的边界,各个发音单位存在受上下文强烈影响的协同发音

(Co-articulation)现象;第三,非特定人识别时,不同的人说相同的话相应的声学特征有很大的差异,即使相同的人在不同的时间、生理、心理状态下,说同样内容的话也会有很大的差异;第四,识别的语音中有背景噪声或其他干扰。因此原有的模板匹配方法已不再适用。

实验室语音识别研究的巨大突破产生于20世纪80年代末:人们终于在实

验室突破了大词汇量、连续语音和非特定人这三大障碍,第一次把这三个特性都集成在一个系统中,比较典型的是卡耐基梅隆大学(CarnegieMellonUniversity)的Sphinx系统,它是第一个高性能的非特定人、大词汇量连续语音识别系统。

河南理工大学毕业设计(论文)说明书

这一时期,语音识别研究进一步走向深入,其显著特征是HMM模型和人工神经

元网络(ANN)在语音识别中的成功应用。HMM模型的广泛应用应归功于AT&TBell实验室Rabiner等科学家的努力,他们把原本艰涩的HMM纯数学模型工程化,从而为更多研究者了解和认识,从而使统计方法成为了语音识别技术的主流。 统计方法将研究者的视线从微观转向宏观,不再刻意追求语音特征的细化,

而是更多地从整体平均(统计)的角度来建立最佳的语音识别系统。在声学模型方面,以Markov链为基础的语音序列建模方法HMM(隐式Markov链)比较有效地解决了语音信号短时稳定、长时时变的特性,并且能根据一些基本建模单元构造成连续语音的句子模型,达到了比较高的建模精度和建模灵活性。在语言层面上,通过统计真实大规模语料的词之间同现概率即N元统计模型来区分识别带来的模糊音和同音词。另外,人工神经网络方法、基于文法规则的语言处理机制等也在语音识别中得到了应用。

20世纪90年代前期,许多著名的大公司如IBM、苹果、AT&T和NTT都对

语音识别系统的实用化研究投以巨资。语音识别技术有一个很好的评估机制,那就是识别的准确率,而这项指标在20世纪90年代中后期实验室研究中得到了不断的提高。比较有代表性的系统有:IBM公司推出的ViaVoice和DragonSystem公司的NaturallySpeaking,Nuance公司的NuanceVoicePlatform语音平台,Microsoft的Whisper,Sun的VoiceTone等。

其中IBM公司于1997年开发出汉语ViaVoice语音识别系统,次年又开发

出可以识别上海话、广东话和四川话等地方口音的语音识别系统ViaVoice'98。它带有一个32,000词的基本词汇表,可以扩展到65,000词,还包括办公常用词条,具有“纠错机制”,其平均识别率可以达到95%。该系统对新闻语音识别具有较高的精度,是目前具有代表性的汉语连续语音识别系统。

1.3课题研究的目的和意义

近年来,随着改革开放的深入发展,电子电器的飞速发展.人民的生活水平有了很大提高,同时人们的生活步调也被提速,在忙碌的生活中难免忘记自己常用物品的放置地,为避免浪费寻找物品的时间和精力,我们有必要利用科学技术解决人们此方面的麻烦,于是声控遥控器找寻器显得很有必要。声控失物找寻器是一种能够寻找所需物品的声控遥控器找寻器,将找寻器跟物品固定在一起,根据事先录在找寻器里面的固定声音,当外界有同一声音发出时,找寻器上的报警器就会发出相应的报警声音,同时亦可在找寻器上安装上闪光灯,在接收到该语音信号时同时发出光亮,达到在光线不足时也能够辨别其位置的目的,为人们的

河南理工大学毕业设计(论文)说明书

日常生活提供方便

1.4本文的内容与结构

本文的内容共分为六章。第一章绪论,概括了国内外语音识别技术的发展情况、面临的问题,本课题研究的目的和意义;第二章设计任务要求以及方案选择,论证了课题方案的选择问题;第三章系统硬件设计,简单介绍了单片机,重点介绍了凌阳61单片机的选用与相关特性,还介绍了外部扩展用到的SPLC501液晶显示模组 V5.1的相关知识;第四章系统的软件设计,介绍了所用的软件开发环境,并说明了语音识别的主要过程。第五章实物的制作,简要描述了一下实物的焊接和组装过程及遇到的一些小问题;简要说明一下遇到的问题和解决方法;第六章结论与展望,对所做的工作进行总结,并展望今后语音识别技术的发展。

河南理工大学毕业设计(论文)说明书

2 设计目标及方案

设计一个简单的电路使其能识别固定的人声音,将这一固定的语音信号提前输入报警器中,作为触发信号,使蜂鸣器发出报警信号,也可以结合LED做为报警信号,达到两者兼用的目的。

要求电路尽量设计得简单明了,使用的元器件尽可能的少,但是要求其功能明显,稳定性高,灵敏度高。

在日常生活中,经常使用的报警器中,机械报警器是属于传统的报警器。其缺点是:

1、 硬件电路复杂。 2、 灵敏度低。 3、 制作成本高。

本次设计的报警器是利用一个用于语音识别的芯片——凌阳61SPCE061A单片机,用于语音信号的接收和识别,再结合外围电路实现报警效果,不仅灵敏度高且制作成本也不高。

河南理工大学毕业设计(论文)说明书

3 语音识别原理及算法

3.1语音识别

语音识别一般分为两个步骤: 首先是系统的训练阶段, 其次是系统识别阶段。这两个阶段的任务重点各不相同, 在第一阶段中, 核心任务是建立识别基本单元的声学模型以及进行文法分析的语言模型等。在系统识别阶段中, 根据不同的识别算法, 分析出语音信号的特征参数, 然后按照一定的判别准则和测度与系统模型进行比较, 通过判决得出识别结果。 语音识别系统的分类如表一:

表一 语音识别系统分类

分类方式 发音方式

对应系统名称

孤立词语音识别系统、连续词语音识别系统、连续语音识别系统

应用对象 特定人语音识别系统、非特定人语音识别系统

识别词汇量 小词汇量识别系统、中等词汇量识别系统、大词汇量死别系统

但无论那种语音识别系统,其基本原理和处理方法都大体类似: 语音输入 预处理

特征提取 训练 模式匹配 识别结果 参考模板库

语音识别过程主要包括语音信号的预处理、特征提取、模式匹配几个部分。预处理阶段主要对语音信号中诸如呼吸气流、外部噪音等非平稳信号进行剔除,包括预滤波、采样和量化、加窗、端点检测、预加重等过程。语音信号识别最重要的一环就是特征参数提取和模式匹配。提取的特征参数必须满足以下的要求:

(1)提取的特征参数能有效地代表语音特征,具有很好的区分性; (2)各阶参数之间有良好的独立性;

河南理工大学毕业设计(论文)说明书

(3)特征参数要计算方便,最好有高效的算法,以保证语音识别的实时实现。

在训练阶段,将特征参数进行一定的处理后,为每个词条建立一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音特征参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。同时,还可以在很多先验知识的帮助下,提高识别的准确率。

SPCE061A单片机对语音输入信号进行A/D转换具有其专门的通道,并对较弱的语音还设计了带自动增益控制的放大器。预加重的目的是平滑信号以消除声道模型中的极点带来的影响,便于进行频谱分析或声道采参数分析,采用一阶数字滤波器实现。加窗分帧是为提取特征参数做准备,分帧采用交叠分段的方法,这是为了使帧与帧之间平滑过渡,保持信号的连续性和保证特征参数的相关性。端点检测目的是检测有无语音信号的存在,确定出语音的起始点和终止点。特征参数提取是语音识别的关键问题,特征参数选择的好坏直接影响语音识别的精度。 特定人语音识别技术中的难点: (1) 语音信号的多变性

语音信号是非平稳随机信号,不但不同发音者发音之间存在重大的差异,即使同一人同一语音的不同次发音,也存在很大差异。 (2) 噪声影响

当实际环境中有噪声存在时,容易造成训练与测试环境不匹配导致语音识别系统性能急剧下降。 (3) 端点检测

统计表明语音识别系统一半以上的识别错误来自端点检测错误。在安静环境下有声段和无声段时能量存在很大差异,由此判断语音的起点。但是当噪声的能量和语音信号的能量接近时就可能造成端点检测的误差从而导致识别结果错误

(4) 词与词的特征空间混叠

语音识别的常规方法是利用语音信号的短时周期特性将语音时域采样信号分为若干段,计算出每一段的特征矢量序列作为识别参数。但是很多不同的词语的矢量序列在特征空间中存在混叠现象,甚至有些不同词语的混叠程度会超过同一词语的不同次发音,从而降低识别率。

河南理工大学毕业设计(论文)说明书

语音识别的具体流程:

开始 开始 开始 初始化RAM 定时采集语言 初始化识别器 执行训练,获取训练结果 返回 获取识别结果 中断服务 训练成 识别出 语音指令 返回 语音特征模型 执行对应动作 返回 训练过程 识别过程

图3-1语音识别的具体流程

3.2语音识别算法

常见的语音识别方法有动态时间归整技术( DTW) 、矢量量化技术( VQ) 、隐马尔可夫模型( HMM) 、基于段长分布的非齐次隐马尔可夫模型( DDBHMM) 和人工神经元网络( ANN) 等。由于HMM 模型需要大量的前期训练工作和大量的存储资源,并且计算复杂,不太适合于在DSP 系统中实现,更适合于在PC 机上完成。DTW 算法计算量较小,无需前期的长期训练,容易满足嵌入式应用要求,易于移植到DSP 上实现语音识别,且能满足实时性要求,在特定场合可以得到较高的识别率。故本设计采用DTW算法。

DTW是较早的一种模式匹配和模型训练技术, 它应用动态规划的思想成功解决了语音信号特征参数序列比较时时长不等的难题, 在孤立词语音识别中获得了良好性能。虽然HMM 模型和ANN 在连续语音大词汇量语音识别系统优于DTW, 但由于DTW 算法计算量较少、无需前期的长期训练, 也

河南理工大学毕业设计(论文)说明书

很容易将DTW 算法移植到嵌入式设备上实现, 而且能满足实时性要求, 故其在孤立词语音识别系统中仍然得到了广泛的应用。DTW算法对于较长语音的识别,模板匹配运算量太大,但对短语音(有效语音长度低于3s)的识别既简单又有效,而且并不比其他方法识别率低,因此特别适用于短语音、特定人识别系统。但是传统固定端点匹配的DTW算法对声头和结尾的判断会存在较大的误差,因此本系统采用放宽端点限制的DTW算法。放宽端点限制引起的计算量增加并不大,还可以放松对端点检测的精度要求。经过这样的改进,在识别结果上有明显的改进。DTW算法基于动态规划技术,将一个复杂的全局优化问题转化为许多局部优化问题一步一步的进行决策,解决了说话人不同时期发音长短、语速不一样的匹配问题。

D就是处于最优时间规整情况下两矢量的距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。 DTW 算法原理:

DTW 是把时间规整和距离测度计算结合起来的一种非线性规整技术。它寻找一个规整函数im=Ф(in),将测试矢量的时间轴n非线性地映射到参考模板的时间轴m上,并使该函数满足:

D=mini=1?d??T?i?,R?i??? (3-1)

其中: D —— 处于最优时间规整情况下两矢量的距离; d??T?i?,R?i???是第i 帧测试矢量T?i?和第j 帧模板矢量R?i?之间的距离测度。

DTW算法要求参考模板与测试模板采用相同类型的特征矢量、相同的帧长、相同的窗函数和相同的帧移。为了使动态路径搜索问题变得有实际意义,在规整函数上必须要加一些限制,不加限制使用式(3-1)找出的最优路径很可能使两个根本不同的模式之间的相似性很大,从而使模式比较变得毫无意义。通常规整函数必须满足如下的约束条件:

(1) 边界限制:当待比较的语音已经进行精确的端点检测,在这种情况下,规整发生在起点帧和端点帧之间,反映在规整函数上就是:

????1?=1 (3-2 ) ?????N?=M(2) 单调性限制由于语音在时间上的顺序性,规整函数必须保证匹配路径不违背语音信号各部分的时间顺序。即规整函数必须满足单调性限制:

??in+1????in? (3-3)

(3)

连续性限制有些特殊的音素有时会对正确的识别起到很大的帮

河南理工大学毕业设计(论文)说明书

助,某个音素的差异很可能就是区分不同的发声单元的依据,为了保证信息损失最小,规整函数一般规定不允许跳过任何一点。即:

??in+1?-??in??1 (3-4)

DTW算法的原理图如图3-2,把测试模板的各个帧号n=1~N在一个二维直角坐标系中的横轴上标出,把参考模板的各帧m=1~M在纵轴上标出,通过这些表示帧号的整数坐标画出一些纵横线即可形成一个网格,网格中的每一个交叉点(ti,rj)表示测试模式中某一帧与训练模式中某一帧的交汇。DTW算法分两步进行,一是计算两个模式各帧之间的距离,即求出帧匹配距离矩阵,二是在帧匹配距离矩阵中找出一条最佳路径。搜索这条路径的过程可以描述如下:搜索从(1,1)点出发,对于局部路径约束如图5-3,点(in,im)可达到的前一个格点只可能是(in-1,im)、(in-1,im-l)和(in-1,im-2)。那么(in,im)一定选择这三个距离中的最小者所对应的点作为其前续格点,这时此路径的累积距离为:

D?in,im?=d??T?i?,R?i???+min?D?in-1,im?,D?in-1,im-1?,D?in-1,im-2??

这样从(l,1)点出发(令D(1,1)=0)搜索,反复递推,直到(N,M)就可以得到最优路径,而且D(N,M)就是最佳匹配路径所对应的匹配距离。在进行语音识别时,将测试模板与所有参考模板进行匹配,得到的最小匹配距离 Dmin(N,M)所对应语音即为识别结果。

M 时间规整函数 R im 2 1

1 2 3 in T

N

图3-2 DTW算法原理

放宽端点限制:

河南理工大学毕业设计(论文)说明书

普通DTW对端点检测比较敏感,端点信息是作为一组独立的参数提供给识别算法的。它要求两个比较模式起点对起点,终点对终点,对端点检测的精度要求比较高。当环境噪声比较大或语音由摩擦音构成时,端点检测不易进行,这就要求在动态时间规整过程中给以考虑。放松端点限制方法不严格要求端点对齐,克服由于端点算法不精确造成的测试模式和参考模式起点终点不能对齐的问题。一般情况下,起点和终点在纵横两个方向只要放宽2-3帧就可以,也就是起点可以在(1,1),(l,2),(1,3),(2,1),(3,l),终点可类似放松。如图3-3。

jrj 时间规整函数 Width Ck=(I,J) Ck=(ik,jk) R rj j=i+r r2 r1 j=i-r C1=(1,1) t1 t2 t3 ti 4 T

图3-3 改进的DTW算法原理图

tI I

在放宽端点限制的DTW算法中,累积距离矩阵中的元素(1,l),(l,2),(l,3),(2,l),(3,1)不是根据局部判决函数计算得到的,而是直接将帧匹配距离矩阵的元素填入,自动从其中选择最小的一个作为起点,对于终点也是从松弛终点的允许范围内选择一个最小值作为参考模式和未知模式的匹配距离。

3.3凌阳音频概述

通常所说的音频是指频率在20Hz~20KHz的声音信号,分为:波形声音、语音和音乐三种,其中波形声音就是自然界中所有的声音,是声音数字化的基础。语音也可以表示为波形声音,但波形声音表示不出语言、语音学的内涵。语音是对讲话声音的一次抽象,是语言的载体,是人类社会特有的一种信息系统,是社会交际工具的符号。音乐与语音相对更规范一些,是符号化了的声音。但音乐不能对所有的声音进行符号化。为了让数字计算机更加便利处理音频信号,需要将

河南理工大学毕业设计(论文)说明书

模拟的(连续的)声音波形数字化(离散化),该过程主要包括采样和量化两个方面。数字音频的质量取决于:采样频率和量化位数这两个重要参数。此外,声道的数目、相应的音频设备也是影响音频质量的原因。

语音处理技术是建立在语言学和数字信号处理基础之上的综合学科,其过程大致可以分为A/D采样输入、编码处理、存储、解码处理和D/A等。如今,要实现语音处理有多种渠道,可以选用专用语音芯片也可以选用单片机,二者区别参看表 1,如下:

表 1 语音处理器件性能对照表

所选器件 音质 语音播放长度和

段落

价格

专用语音芯片 单片机

由AD、DA精度、压缩算法等决定

受限制 由存储空间决定

较高 有优势

SPCE061A单片机具有八路10位ADC和两路10位DAC,两个16位可编程定时器/计数器,内置MIC放大器和自动增益控制(AGC)电路,CPU时钟主频最高达49MHz且具有DSP功能,有能力执行复杂压缩算法。所以在选择具有语音处理功能单片机时,SPCE061A单片机可谓是上上之选。SPCE061A将A/D、编码算法、解码算法、存储及D/A做成相应的模块,每个模块都有其应用程序接口API,要实现语音处理,只用了解每个模块所要实现的功能及参数的内容,然后调用该API函数即可。

不同音频质量等级的编码技术标准(频响)参看表 2,如下:

表 2音频质量等级编码技术标准

信号类型 电话话音 宽带音频 (AM质量) 调频广播 (FM质量) 高质量音频 (CD 质量)

频率范围(Hz) 200~3400 50~7000

采样率(KHz)

8 16

量化精度(位)

8 16

20~15K 37.8 16

20~20K 44.1 16

凌阳音频压缩算法处理的语音信号的范围是200Hz~3.4KHz的电话话音。

河南理工大学毕业设计(论文)说明书

音频压缩编码基础

音频压缩编码中的数据量:(采样频率×量化位数)/(字节数)×声道数目 压缩编码的目的,通过对资料的压缩,达到高效率存储和转换资料的结果,即在保证一定声音质量的条件下,以最小的资料率来表达和传送声音信息。

压缩编码的必要性,未经压缩编码的音频资料量很大,用来传输或存储是不容易实现的。所以要通过对信号趋势的预测和冗余信息处理,进行资料的压缩,这样就可以使我们用较少的资源建立更多的信息。

常见的几种音频压缩编码:

(1) 波形编码,将时间域信号直接变换为数字代码,尽量真实地还原波形。波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示。译码是其反过程,将收到的数字序列经过译码和滤波恢复成模拟信号。

(2) 参数编码,参数编码又称为声源编码,是将信源信号在频率域或其它正交变换域提取特征参数,并将其变换成数字代码进行传输。译码为其反过程,将收到的数字序列经变换恢复特征参量,再根据特征参量重建语音信号。具体说,参数编码是通过对语音信号特征参数的提取和编码,尽量保持语音信号的可懂性,而还原后的波形可能与原波形差别很大。

(3) 混合编码,将波形编码和参数编码组合起来,克服了原有波形编码和参数编码的弱点,结合各自的长处,尽量保持波形编码的高质量和参数编码的低速率。 压缩分类

压缩分为无损压缩和有损压缩。无损压缩一般指磁盘文件,压缩比低,一般为:2:1~4:1;有损压缩是指音/视频文件,压缩比可高达100:1。凌阳音频压缩算法根据不同的压缩比分为以下几种:SACM-A2000、SACM-S480、SACM-S240。三者区别参看表 3,如下:

表 3 凌阳语音压缩算法区别

凌阳音频压缩

算法 SACM_A2000

编码方式 编码率(bps) 压缩比 音质

波形编码 16K, 20K, 24K 8:1, 8:1.25,

8:1.5

SACM_S480 SACM_S240

混合编码 参数编码

4.8K, 7.2K 2.4K

80:3, 80:1.5 80:1.5

中 差

河南理工大学毕业设计(论文)说明书

凌阳语音的播放、录制、合成和辨识

要完成语音的播放、录制、合成及辨识等工作,单片机需要强大的信息处理能力而凌阳16位SPCE061A单片机则是为此而开发的,其具有DSP功能,可处理大量信息,CPU最高时钟频率可达到49MHz,具备运算速度高的优点。凌阳压缩算法中SACM_A2000、SACM_S480、SACM_S240主要是用来放音,可用于语音提示,而DVR则用来录音。

常用的应用程序接口API的功能及应用

语音和音乐与我们的生活有着相当密切的关系,而单片机对语音的控制如录放音、合成机辨识也广泛应用在现实生活中。语音处理大致可以分为A/D、编码处理、存储、解码处理以及D/A等。然而,通过麦克风输入所生成的WAVE文件,其占用的存储空间很大,对于单片机来说想要存储大量的信息显然很不可能实现的,而凌阳的SPCE061A所采用的解决办法即SACM_LIB,该库将A/D、编码、解码、存储及D/A做成相应的模块,对于每个模块都有其应用程序接口API,要实现某功能,用户只需了解每个模块所要实现的功能及其参数的内容,然后调用该API函数即可。

语音识别API介绍:

BSR _Init Recognizer(int Audio Source);初始化识别器 BSR _Train(int Word ID, int Train Mode);语音训练 BSR _Delete SD Group(int SD Group No);清除内存 BSR _Pause Recognizer();暂停识别,但不释放中断等资源 BSR _Resume Recognizer();恢复被暂停的识别

BSR _Get Recognizer Score();获得识别结果的可信度,返回值从-4096到4096,数值越大表示输入语音与特征模型的匹配度越高

BSR _Enable CPU Indicator();开启CPU状态监测功能。开启该功能后,IOA0和IOA1将发出每16ms电平变化一次的方波

BSR _Disable CPU Indicator();关闭CPU状态监测功能

BSR _Export SD Word(int Command ID);使用函数库时,会自动创建一个100 Word的数组BSR _SD Model[100],可以把某条训练命令的特征模型数据导出到这个数组中

BSR _Import SD Word(int Command ID);可以把BSR _SD Model数组中的数据导入为某条语音命令的特征模型

unsigned int BSR _SD Model[];配合BSR _Export SD Word(int Command

河南理工大学毕业设计(论文)说明书

ID)与BSR _Import SD Word(int Command ID)函数使用,此数组的作用相当于一个暂时的存储区

SACM_480采用混合编码方式,压缩比比较大,存储容量大,音质介于A2000和S240之间,适用于语音播放,如电子词典词库等,所以本文采用了该算法,以下就SACM_480算法具体介绍其API函数的格式、功能、参数、返回值、备注。

其相关API函数如下所示:

1) API格式: C:int SACM_S480_Initial(int Init _Index)

ASM:R1=[ Init _ Index] Call F_ SACM_ S480_Initial

功能说明:SACM_480语音播放之前的初始化。

参数: Init _ Index=0:手动方式 Init _ Index=1:自动方式。 返回值: 0:语音模块初始化失败。

1:语音模块初始化成功。

备注: 该函数用于对定时器、中断和DAC等的初始化。 2) API格式: C:void SACM_S480_ServiceLoop(void)

ASM:Call F_ SACM_S480_ServiceLoop

功能说明:从资源中获取SACM_S480语音资料,并将其填入解码队列中。 参数: 无 返回值: 无

备注: 播放语音文件中数据,当出现FF FF FFH数据时便停止播放。 3) API格式: C: int SACM_S480_Play(int Speech _Index, int Channel, int Ramp _Set)

ASM:R1=[ Speech _Index] R2=[ Channel] R3=[ Ramp _Set] Call SACM_S480_Play

功能说明: 播放资源中SACM_480语音。 参数: Speech _Index:语音索引号。

Channel:

1. 通过DAC1通道播放。 2. 通过DAC2通道播放。

3. 通过DAC1和DAC2双通道播放。

河南理工大学毕业设计(论文)说明书

Ramp _Set:

0. 禁止音量增/减调节。 1. 仅允许音量增调节。 2. 仅允许音量减调节。 3. 允许音量增/减调节。

返回值: 无

备注: ⑴ SACM_S480的数据率有4.8Kbps\\7.2Kbps两种,可在同一模

块的几种算法中自动选择一种。

⑵ Speech _Index是定义在resource.inc文件中资源表的偏

移地址。

⑶ 中断服务子程序中F_FIQ_Service_SACM_S480必须放在

TMA_FIQ中断向量上。

4) API格式: ASM:Call F_FIQ_Service_SACM_S480

功能说明:用作SACM_S480语音背景程序的中断服务子程序。通过前台

子程序(自动方式的SACM_S480_ServiceLoop及手动方式SACM_S480_Decode)进行语音信息编码,然后将其送入DAC通道播放。

参数: 无 返回值:无

备注:SACM_S480语音背景子程序只有汇编指令形式,且应该将此子程

序安置

在TMA_FIQ中断源上。

河南理工大学毕业设计(论文)说明书

4 系统硬件设计

4.1总体设计框图

系统设计大体包括以下部分:

电源模块 SPCE061A液晶显示模块 下载区 音频区 (语音接收和语音识别) 单片机最小系统 扬声器 图4-1设计总体结构框图

电源区:为整个系统提供电源,通常采用系统配套的电池盒进行供电,只要放入 3 节 5 号电池 就可以满足供电需求了。

下载区:程序就是通过这边的接口下载到 SPCE061A 单片机的,当然,在进行在线调试时也能 上传一些硬件信息到开发环境中。

音频区:这里的麦克风是用来进行语音输入的,还有语音识别模块配合进行语音信号处理。 SPCE061A最小系统:

SPCE061A最小系统中,包括SPCE061A芯片及其外围的基本模块,其中外围的基本模块有:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等。

4.2主控器件的选择

4.2.1 凌阳61单片机

61单片机

61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便随身携带。61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)

河南理工大学毕业设计(论文)说明书

接口,分别可接凌阳科技的在线调试器、简易下载线,配合unSP IDE,可方便地在板上实现程序的下载、在线仿真调试。

SPCE061A单片机是台湾凌阳公司研制的一个16位结构的微控制器,将MCU、A/D、D/A、RAM、ROM集成在一块芯片上,具有很高的集成度。同时具有较高运算速度的16×16位的乘法语音和内积运算指令,CPU 最高可达时钟49MHz,因此在复杂的数字信号处理方面既非常便利又比专用的DSP芯片便宜得多。系统支持10个中断向量及14中断源,具有较强的中断处理能力,适合实时语音处理。并具有双通道10位ADC方式的音频输出功能,配置带自动增益控制功能(AGC)的麦克风输入方式,为语音处理带来了极大的便利。SPCE061A既具有体积小、集成度高、可靠性好的特点,又具有较强的中断处理能力、高性能的价格比和功能强、效率高的指令系统及低功耗、低电压的特点,所以非常适合用于嵌入式语音识别系统。

凌阳16位单片机所拥的一套指令系统和集成开发环境具有易学易用、效率高等特点。在集成开发环境中,支持标准C语言编程,并可以实现C语言与凌阳汇编语言的相互调用,语音的录放只需调用相应的库函数就可实现。SPCE061A片内还集成了一个ICE(在线仿真电路)接口,使得对芯片的编程和仿真变得非常方便,而且ICE接口不占用芯片上的硬件资源,结合凌阳科技提供的集成开发环境(unSP IDE)可以对芯片进行仿真;而程序的下载(烧写)也是通过该接口进行下载。 SPCE061A功能简介: (1)16位微处理器

(2)工作电压(CPU)VDD为3.0~3.6V,(I/O)VDDH为3.0~5.6V (3)CPU时钟:0.32~49.152MHZ (4)内置2K字SRAM (5)内置32K字FLASH (6)可编程音频处理 (7)晶体振荡器

(8)系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6V (9)2个16位可编程定时器/计数器(可自动预置初始计数值) (10)2个10位DAC(数/位转换)输出通道 (11)32位通用可编程输入/输出通道

(12)14个中断源可来自定时器A/B、时基、2个外部时钟源输入和键唤醒 (13)具备键唤醒的功能

河南理工大学毕业设计(论文)说明书

(14)使用凌阳音频编码SACM_S480可以播放压缩的语音资源 (15)锁相环PLL振荡器提供系统时钟信号 (16)32768Hz实时时钟

(17)7通道10位电压摸/数转换器(ADC)和单通道声音模/数转换器 (18)声音模/数转换器输入容道内置麦克风放大器,并具有自动增益控制(AGC)功能

(19)具备串行设备接楼(SIO)

(20)具备低电压复位(LVR)功能和低电压检测(LVD)功能 (21)内置ICE(在线仿真电路)接口 (22)具有WatchDog功能

SPCE061A 单片机代表了单片机发展的潮流,非常适合用于嵌入式语音识别系统。

? 它整合了多个常用的功能模块,让我们在进行系统开发的时候不

用外加过多的硬件就可方便的 完成一个系统的设计,这就是人们常说的 SoC(System on chip)技术。

? 耗电少,可以满足很多手提设备、掌上设备低能耗的需求,低能

耗也是电子技术一直在追求的 一个目标。

? 可方便的用来实现声音录制、播放,Midi 音乐合成和语音识别,

相比别的单片机比较有特色。

? 可方便的完成一系列乘加的运数,实现一些数据处理比较容易,

别的单片机一般都不具备这种 功能。

? 芯片里具备在线仿真调试电路,使调试和程序下载更加方便,也

把仿真器和烧录器的成本给节 省下来了。

凌阳SPCE061A单片机语音处理的实现:

凌阳SPCE061A将语音处理相关各功能做成函数模块,通过API调用来实现。这些函数分为两类:用于音频资料播放的凌阳音频编码(SACM)类和用于辨识语音的语音识别(BSR)类。对输入生成的WAVE文件按不同的压缩算法压缩成SACM_A2000或SACM_S480等相应语音资料后,就可利用SACM-LIB库对这些资料进行处理。该库将A/D、编码、解码、存储及D/A做成相应的模块,每个模块都有其应用程序接口API函数,调用对应函数即可实现各自功能。如针对特定人语音辨识,SACM-LIB库中提供了包括C语言和汇编语言两种格式定义的API函数,常用语音辨识API函数有:

河南理工大学毕业设计(论文)说明书

(1)SRAM初始化函数int BSR-DeleteSD-Group(int)

(2)训练函数int BSR-Train(int CommandID,int TrainMode) (3)识别初始化函数int BSR-InitRecognizer(int AudioSource) (4)获取识别结果函数int BSR-GetResult(void) (5)停止识别函数void BSR-StopRecognizer(void) (6)识别中断程序-BSR-FIQ-Routine

配合语音压缩及播放的相关API函数,即可构成一个完整的语音应用系统。 SPCE061A的结构如图4-2所示:

ICE-EN

16位微控制器 ICE-SCK u’nSPTM + ICE-SDA ICE

FLASH RAM RAM

双16位定时器 /计数器 时基 中断控制

Vcp XI/R XO

锁相环

振荡器

CPU时钟

实时时钟

7通道10位ADC MIN-CN 单通道ADC+ADG

AUD1 AUD2

双通道

10位DAC输出

低电压监测/ 低电压复位

串行输入输出接口 IOB0(SCK) 32管脚通用输入输出端口 IOA15-0

IOB15-0

IOB1(SDA)

图4-2 SPCE061A结构图

河南理工大学毕业设计(论文)说明书

图3-4 61原理图 放在附录部分

4.2.2 SPLC501液晶显示模组 V5.1

该模组是凌阳公司的一款128*64点阵的液晶模组,驱动芯片采用的是凌阳SPLC501。模组接口简单,应用方便,功耗低,且可以完成较多液晶特效功能。可以显示字符、汉字、图形等,且灰度编程可调。

图4-3 SPLC501原理图

河南理工大学毕业设计(论文)说明书

5系统软件设计

5.1开发环境

所谓的开发环境,其实就是一个或几个电脑上的可执行程序,不管是哪类单片机的开发环境都至少具备如下的功能:

? 程序编写:可以在开发环境里录入程序。 ? 编译程序:负责把程序翻译成机器码。

? 程序下载:把机器码下载到仿真板或开发系统上。

61 板开发系统的开发环境叫做集成开发环境(也称 IDE),它除了具上面的三个功能外还可以组织多个程序文件形成一个系统开发的项目,这样更有利于一些大型系统的开发和各功能模块的模块化,同时它还结合SPCE061A 单片机的硬件提供各类在线调试窗口,使调试程序变得更加直观和简单,除此之外,它还提供一些软件模拟 SPCE061A 单片机仿真的功能,在没有硬件的情况下也可以完成一些简单程序的调试。

5.2主程序的设计

基于凌阳61单片机的声控遥控器找寻器需要有语音信号的采集、识别处理、语音匹配、报警的运行过程。根据这一要求,语音信号采集与处理分三个阶段:61单片机音频部分的麦克风接收到语音信号以后,将其转交给语音处理部分进行语音识别,与之前训练过程中存入芯片的语音模板进行匹配,若为同一语音源发出的语音信号,则匹配成功后发出相应的报警信号,若不能匹配则不会发出报警声音。5-1为主程序工作流程,

河南理工大学毕业设计(论文)说明书

开始 初始化 Y 已经训练过 N 训练找寻器 保存训练结果 装载语音模型 进入识别模式 语音识别与执行 N 重新训练 Y 清模型存储区 等待复位

图5-1 主程序流程图

完成特定人语音的训练可在主函数中调用相关函数,然后在训练成功后进行语音识别,再根据识别的命令执行相关的操作。根据FLASH中的标志位判断是否为第一次下载。使用BSR _Export SD Word(uiCommand ID) 函数将训练好的语音模型导出存储到FLASH中,用于操作。在语音识别中,首先读取FLASH取得语音模型,然后调用BSR _Import SD Word(uiCommand ID)函数将语音资源载入内存。在识别出命令后,执行相关动作。

61单片机本身具有语音识别的功能,不过要先对其进行语音识别训练,即形成所谓的模板库,让芯片记住这些被训练过的语句和语音频率,当下次同一语音信号出现时,做出相应的动作就可以了。训练是必备的一步,并且多次训练可以使语音识别的效果更好。

河南理工大学毕业设计(论文)说明书

训练识别的程序流程图见图5-2:

初始化 辨识器初始化 定义存储器 调用第一条提示音播放 训练名称 调用提示辨识音播放 否 成功否 获取语音数据 训练第一条命令 否 成功否 辨识主循环 启用实时监控 训练第二条命令 否 成功否 是 开始识别 图5-2 语音识别模块流程图

下面是一个特定人辨识的范例,相关的操作方法如下:

在程序中我们通过三条语句的训练演示特定人连续音识别,其中第一条语句为触发命令。在程序一 开始为训练名称,即触发命令,然后提示训练两条命令,训练完毕开始辨识,当识别出触发名称后,发布命令则会听到应答。具体命令如下: 训练

提示音 输入语 “请输入触发名称” “符佳佳” “请输入第一条命令” “你在干什么?” “请输入第二条命令” “毕业设计什么” “请再说一遍”(以上提示音每说完一遍出现此命令) “没有听到任何声音”(当没有检测到声音时出现此命令)

河南理工大学毕业设计(论文)说明书

“两次出现名称不相同”(当两次输入的名称不同时出现此命令) “两次输入命令不一样”(当两次输入的命令不同时出现此命令) “准备就绪,请开始识别”(以上三条命令全部训练成功时,进入识别) 识别

发出命令 应答 “符佳佳” “在”

“你在干什么?” “毕业答辩” “毕业设计什么” “声控报警” (相应程序见附录程序清单)

经过多次训练,当下次同一个人说起相同的话时,若有相应的语音报警提示声音发出,则说明训练已经成功可以使用。

针对同一模板,在同一环境条件下分别进行了10次、40次和80次训练识别,识别率结果如表一:

表一 同一背景不同训练次数的识别率

训练次数 10次 40次 80次

识别率 89% 92.5% 95.2%

表二 不同噪声背景下识别率

训练次数

识别率 10次 50次

78% 85%

72% 80%

平缓噪声

突然噪声

针对同一模板,在不同的噪声背景下分别进行测试,识别率结果如表二:

河南理工大学毕业设计(论文)说明书

6实物的制作与调试

6.1电路板制作过程

61板PCB图:

图6-1 61板PCB图

在插放元件前先用电工刀将电路板的外型设计好,是否与它的外壳相匹配。要注意插入边沿的元件后,能否盖上外壳。

在插放元件的时候,最好对每个元件的性能进行检测,我们所购买的都不是军用元件,存在一定的误差。不同的三极管引脚排列顺序不一样,对电阻、电容、电解电容、二极管、三极管、可控硅、稳压二极管 、集成电路等的识别及检测焊接的时候应注意烙铁的温度,最好不要在电风扇下面,以免风扇影响烙铁头的温度。同时要注意焊接技术,不要出现尖角,剪除引脚的时候,引脚不要留的太长,避免不必要的干扰。

6.2实物图

焊接完成的61板外观图,液晶显示模组外观图以及最后的实物图见附录。

6.3调试

按电路图焊接组装好后,可进行调整,主要是调整电路的接收灵敏度。调整

河南理工大学毕业设计(论文)说明书

时,一边发出响声,一边调试电路,发出报警声。电路中的其他部分只要组装正确,一般不需调整即能正常工作。

调试的时候先一个人对着麦克风说话,说出程序中编写过的语句,进行训练,待芯片识别后换了几个人对着麦克风说同样的话,发现只有这个人说话的时候报警器才会做出相应的反应。并且是不管是同一个人还是其他人,说的话和预先训练时候说的不同时,也不会有相应的报警信号。而在不同的环境条件下进行测试,发现系统的抗噪声性能还可以,即便是在噪声很大的环境下进行测试也有很高的识别率,虽然出现过一点小失误,但是都在误差可以接受的范围内。由实验结果也表明对其进行多次训练的效果比进行一次训练的结果要好很多,并且在相对平缓的噪声环境下识别率高于噪声突然和尖锐的环境。

6.4实物制作过程中遇到的问题及解决方法

由于时间和自身能力的限制,焊接的过程中出现了不必要的损坏,一些元器件焊接完成后却不能使用,排查原因发现一些在焊接的过程中被烧坏了。造成了时间和经济的双重损失。

本次设计的板子没有预期的那么小,因为语音识别功能的实现需要61芯片,但是单独的61芯片不能实现相关功能,必须配以周围电路和相关的程序,自己设计外围电路需要的元器件更多,需要的板子大小也更大,所以买了61板子的元器件自己焊接,不够精巧但是基本可以实现相应的功能。没有买到合适的封装用外壳,虽然焊接的时候相对比小的板子容易,但是体积较小这一设计目的并未达到。

因为时间紧迫,对61单片机的学习深度有限,没有外接事先预想的蜂鸣器和LED灯,只是借助一个扩音喇叭,在程序编写的时候利用延长暂停时间的办法使喇叭在系统接收到语音信号几秒钟后进行响应。经过一段时间的调试与检测,设计已经基本上实现了特定人的语音识别功能,由于焊接工艺的不专业,结果在进行语音识别的过程中存在失误,精确率也不是很高,不过都在误差允许的的范围之内,基本完成预定目标。

河南理工大学毕业设计(论文)说明书

7 结论与展望

7.1结论

经过近两个月的努力,我的毕业设计——声控遥控器找寻器设计已经基本完成。在设计过程中,力求系统的实现电路简单、成本低,系统的功能快捷易用并且完善。但是由于一些条件的限制,所设计系统仍然存在一些不足,有待改进。

设计过程中先对61单片机进行了系统的学习,通过学习了解了61单片机强大的语音识别功能,进而找出在设计实现语音识别中应注意到的问题,并针对这些问题,对语音识别过程中的语音识别原理和算法以及音频压缩惊醒了研究,主要工作包括:

1.研究了语音识别的两个主要步骤,训练和识别。语音信号识别最重要的一环就是特征参数提取和模式匹配。设计中严格按照特征提取需要注意的要求进行语音特征的提取和识别,达到的较好的效果,

2.研究了语音识别的算法,力求使语音识别的效果更明显,抗噪性更好。本设计采用动态时间归整技术( DTW)对于因信号进行识别,鉴于普通DTW对端点检测比较敏感,对端点检测的精度要求比较高,当环境噪声比较大或语音由摩擦音构成时,端点检测不易进行,所以本设计采用的是方块短点的DTW算法,很好的克服了上述缺点。

3.研究了对所接收语音进行音频压缩的方法。通常所说的音频是指频率在20Hz~20KHz的声音信号,而为了让数字计算机更加便利处理音频信号,需要将模拟的(连续的)声音波形数字化(离散化),不同音频质量等级的编码技术标准不同,本设计采用凌阳压缩算法中SACM_S480进行处理,效果不是最好的,但是已经可以实现要求。

经过一段时间的努力,虽然结果不是特别理想,但是识别特定语音信号这一预定目标已经基本实现,今后我会更加努力学习专业课知识,相信以后会做的更好的。

7.2展望

本毕业设计是声控遥控器找寻器,目的是通过61的语音识别功能,达到找

寻物品的实际目的。

在软件编程方面采用C语言,主要考虑单片机课程中C语音是基础和核心的

语言,相关算法和流程多采用模块法和顺序循环法,分块编写的程序能很清楚的

河南理工大学毕业设计(论文)说明书

展示各块程序实现的作用,便于调试。如果在今后实际使用时,可以进一步研究出更合理和简明的算法步骤,优化程序。

在硬件开发方面,由于学生的资金紧张,在选配元件时多以价格相对便宜的民用指标为主的元件,所以在精度方面可能会受到一点影响。

随着社会的进步和科技的发展,人们对生活以及居住环境提出了更高的要求,智能家居逐渐成为中国家居消费市场的新潮流。目前,国内部分地区、特别是经济比较发达的地区,已经有很多社区实现了智能家居生活。智能家居的日渐兴起已经开始影响到人们生活的方方面面,改变了人们日常的生活习惯,提高了人们的生活质量,促使家庭实现了生活现代化,给人们的家居生活带来了全新的感受。

展望未来,我们所用的61语音识别单片机,其强大的语音识别功能,必将使它在以后的智能家居生活发展中占有相当重要的地位。

河南理工大学毕业设计(论文)说明书

致 谢

经过两个多月的忙碌,在高娜老师悉心指导以及其他的院领导和老师们的关心下,我的毕业设计《声控遥控器找寻器》终于在炎热夏天来临之际顺利完成! 在此要感谢我的指导老师高娜对我悉心的指导,感谢老师给我的帮助。还要感谢我的室友,她们的勤奋、认真时常感染和影响着我,她们对我学习生活中遇到的问题给予极大地帮助,我们在一起学习生活是非常快乐和美好的时光。她们对我的论文提出了非常有价值的建议,并给予了一定的解决方案,在此真诚感谢

通过本次设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识开拓了视野,使自己在专业知识方面和动手能力方面有了质的飞跃。常遇到这样的情况,在某个问题上发现自己的薄弱,或者有所遗漏,于是及时查阅资料、询问老师使问题得以解决,并以此加深对相关知识的理解。此过程中,自然遇到一些问题,虽然陌生,却只需细加思考,这些问题仍在我们的能力范围之内。像这样的问题源于课本而高于课本,尽管在总体规范的要求下将问题解决,但是否与实际生产水平相适应,这就需要生产实践去检验。理论与实践二者的有机结合,说起来容易做起来难!书到用时方恨少,与千变万化的实际问题相比,我的所学犹如九牛一毛!

其次是培养我们处理问题的全局观、系统化。这要求我们处理问题的时候,要看到事物的两面。有的问题正面处理好了,反面却没有注意到。而有的地方需要我们正确处理好事物的主要矛盾和次要矛盾,抓住要矛盾,兼顾次要矛盾。把煤矿开采学、通风安全学、热工学、流体力学等多门学科综合起来运用,本身就要求我们具备良好的统筹能力,要从整体看问题。

最后是培养我们的动手能力。书上得来终觉浅,绝知此事要躬行。只知道纸上谈兵,最终将被社会抛弃。

毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好的开端,毕业设计是我对所学知识的检验和总结,能够培养和提高设计者独立分析和解决问题的能力;是对我们运用所学知识解决实际问题的考核;是理论与实践有机结合的过程;是理论与实践升华的过程;更可以说是自己的思想成熟、成长的过程!

设计要求我们遵循合理、规范的原则,正如我们做人要遵循社会法律、社会公德一样。但在这个过程之中,没有人能够独立成功,我们需要别人的帮助,

河南理工大学毕业设计(论文)说明书

需要社会的帮助,就像我们作设计需要老师的指导和同学们的帮助一样。我们需要不断地学习、查找资料来完善我们的设计,就像我们在社会上需要不断地学习交流来完善自己!

在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计没有做到完美,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。

河南理工大学毕业设计(论文)说明书

参考文献

[1]朱淑鑫,谢忠红.浅谈语音识别技术的应用及发展[J].长春理工大学学报(高教版),2009

[2]朱淑琴.语音识别系统关键技术研究[D].西安:西安电子科技大学,2004. [3]杨占军,杨英杰,王强.基于DSP 的语音识别系统的设计与实现[J].东北电力大学学报,2006

[4]李双勋,欧建平.TLV320AIC23 在音频处理中的应用[J].国外电子元器件,2003

[5]陈涛.基于DSP 的语音信号识别系统的研究与实现[D].成都:成都理工大学,2010

[6]蒋永生,张雄伟,曾宏辉.一种基于DSP 的语音处理系统软硬件设计[J].电力系统通信,2007

[7]曾日波.小词表实时语音识别系统的定点DSP实现[J].现代电子技术,2004 [8]贾克明,陶洪久.基于DSP 的嵌入式语音识别系统的研究与实现[J].武汉理工大学学报(信息与管理工程版),2006

[9] 王倩,吴国平,陈琳. 特定人语音识别算法———DTW算法[J].软件导刊,2005

[10] 李晶皎. 嵌入式语音技术凌阳16 位单片机应用[ M] . 北京: 北京航空航天大学出版社, 2003

[11] 薛均义 张彦斌.凌阳16位单片机原理及应用.北京:北京航空航天大学出版社,2003

[12] 凌阳科技大学计划.凌阳单片机在大学生电子竞赛中的应用.北京:北京航空航天大学出版社,2005

[13] 赵定远 马洪江.16位单片机及语音嵌入式系统.北京:中国水利出版社,2006

[14] 罗亚非. 凌阳16位单片机应用基础.北京:北京航空航天大学出版社,2005

河南理工大学毕业设计(论文)说明书

附录1 系统整体设计原理图

61板外观图

SPLC501液晶显示模组封装:

SPLC501元件封装

河南理工大学毕业设计(论文)说明书

图5-4 最终实物图

河南理工大学毕业设计(论文)说明书

河南理工大学毕业设计(论文)说明书

附录2 程序清单

#include \#include \#include \#include \

#include \#include\

#define Erase_Key C_Bit15 //

/***************************************************************** //【API 格式】:void Display_init(void) //【功能说明】:显示\电子信息工程 符佳佳\//【参 数】: //【返 回 值】: //【使用举例】:Display_init(0,0); //【备 注】:

*****************************************************************/ void Display_init(unsigned char x,unsigned char y) { LCD501_Init(0x00); LCD501_Bitmap(x,y,(unsigned int *)encoding_00); //显示\电\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_01); //显示\子\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_02); //显示\信\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_03); //显示\息\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_04); //显示\工\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_05); //显示\程\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_06); //显示\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_07); //显示\符\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_08); //显示\佳\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_09); //显示\佳\

河南理工大学毕业设计(论文)说明书

}

void Display_Names(unsigned char x,unsigned char y) { LCD501_Bitmap(x,y,(unsigned int *)encoding_14); //显示\给\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_15); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_16); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_17); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_18); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_19);

}

void Display_FUJIAJIA(unsigned char x,unsigned char y) { LCD501_Bitmap(x,y,(unsigned int *)encoding_07); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_08); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_09);

}

void Display_Do(unsigned char x,unsigned char y) { LCD501_Bitmap(x,y,(unsigned int *)encoding_21); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_22); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_23); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_26); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_27); x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_29);

}

void Display_ASK(unsigned char x,unsigned char y) {

//显示\我\//显示\取\//显示\个\//显示\名\//显示\字\

//显示\符\//显示\佳\//显示\佳\

//显示\你\//显示\在\//显示\干\//显示\什\//显示\么\//显示\?\

河南理工大学毕业设计(论文)说明书

LCD501_Bitmap(x,y,(unsigned int *)encoding_10); //显示\毕\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_12); //显示\设\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_25); //显示\是\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_26); //显示\什\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_27); //显示\么\ x=x+12; LCD501_Bitmap(x,y,(unsigned int *)encoding_29); //显示\?\ }

//--------------------------------------------------------------------------// unsigned char UART_RXBuffer[10]={0,}; extern unsigned char BufferSum;

//---------------------------------------------------------------------------// extern unsigned int IsFirstDownLoad(void); extern void FormatFlash(void);

extern void TrainFiveCommand(void);

extern void SaveFiveCommand(unsigned int uiAddr);

extern void ImportFiveCommand(unsigned int uiAddr_Import);

extern void TrainFourCommand(void);

extern void SaveFourCommand(unsigned int uiAddr);

extern void ImportFourCommand(unsigned int uiAddr_Import);

extern unsigned int TrainWord(unsigned int WordID,unsigned int SndIndex); extern void PlaySnd(unsigned int SndIndex);

extern void F_FlashWrite1Word(unsigned int,unsigned int); extern void F_FlashErase(int);

//---------------------------------------------------------------------------// extern void Delay(unsigned int);

//---------------------------------------------------------------------------//

int main(void) { unsigned char buf[1]={0x55};

//---------------------------------------------------------------------------// unsigned int uiFlagFirst; //是否为第一次下载 unsigned int uiRes; //识别结果 unsigned int uiActivated; //是否出于待命状态

本文来源:https://www.bwwdw.com/article/onjg.html

Top