1、 本科 毕业 设计 (论文 ) (二零 届) 一种基于 STC 单片机的特定声音识别系统的设计 所在学院 专业班级 电气工程及其自动化 学生姓名 学号 指导教师 职称 完成日期 年 月 I 摘 要 本文提出了基于 STC 单片机的特定声音识别系统,并对该系统进行了实验制作。用麦克风和前置放大和滤波电路将语 音信号采集送往单片机进行处理,在单片机里对语音信号进行端点检测,并同时记录语音信号中相邻两个过零点的间隔时间。当语音信号通过端点检测被确定是有效的语音信号后,对储存的相邻两个过零点的间隔时间数据进行归一化处理,再将处理后数据与样本数据进行比对,从而识别声音是否是需要识别的特定声音 关键词:
2、STC 单片机 , 端点检测 , 归一化处理 , 过零点 II Design of specific voice recognition system based on stc-scm Abstract The specific voice recognition system is proposed based on STC SCM , and the production of this system is made.Microphone and preamplifier and filter circuit will be sent to the microcontroller for
3、audio signal acquisition processing, the microcontroller in the endpoint detection of speech signals and voice signals were recorded in the interval between two adjacent zero-crossing time.When the voice signal is determined by the endpoint detection,normailized time data of two adjacent zero-crossi
4、ng two .Then compare the processed data with the sample data and identify sound Keywords: STC-SCM, endpoint detection, normailzation, zero-crossing III 目 录 摘 要 . I Abstract . II 1 绪论 . 1 1.1 课题的背景与意义 . 1 1.2 语音识别技术的现状 . 1 1.2.1 语音识别相关技术 . 1 1.2.2 语音识别系统 . 5 1.3 课题研究的目的和主要内容 . 6 2 基于 STC 单片机特定声音识别系统的
5、设计概述 . 7 2.1 特定声 音识别系统的工作原理 . 7 2.2 特定声音识别系统的特性 . 8 2.3 特定声音识别系统的硬件组成与相关资料 . 8 2.3.1 音频放大电路 . 8 2.3.2 STC 单片机资料 . 9 3 信号采样与端点检测 . 15 3.1 系统信号采样频率的设置 . 15 3.2 端点检测 . 15 3.2.1 短时能量检测 . 15 3.2.2 过零率检测 . 16 4 数据处理与语音识别 . 18 4.1 数据的归一化处理 . 18 4.2 语音识别 . 19 4.3 其他程序设计 . 21 5 实验数据调试 . 22 结 论 . 26 参考文献 . 28
6、 致 谢 .错误 !未定义书签。 附录 . 29 一种基于 STC 单片机的特定声音识别系统的设计 1 1 绪论 1.1 课题的背景与意义 与机器进行语音交流,让机器明白你说什么,从而使机器明白需要做什么,出现了什么情况这是人们长期以来梦寐以求的事情。 声音识别技术 就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高科技技术。其中一般的声音识别技术主要包括特征提取技术、模式匹配准则及模型训练技术三个方面。 现在我们提到的声音识别一般指的就是语音识别。语音识别按识别的对象可以分为: 孤立词识别( isolated word recognition),关键词识别(或称关键词检出, k
7、eyword spotting)和连续语音识别 3 类。 其中,孤立词识别 的任务是识别事先已知的孤立的词,如 “开机 ”、 “关机 ”等;连续语音识 别的任务则是识别任意的连续语音,如一个句子或一段话;连续语音流中的关键词检测针对的是连续语音,但它并不识别全部文字,而只是检测已知的若干关键词在何处出现,如在一段话中检测 “计算机 ”、 “世界 ”这两个词 1。 本课题针对的是特定声音的识别,这种特定声音包括如报警声,玻璃破碎的声音,呼救声等。对特定声音识别的研究,在技术上与语音识别是有一定的差距的,但也是一种学术与实际上的尝试。本次课题结合了信号与系统、单片机、概率论、模式识别等学科的知识,
8、也是对大学知识的一次巩固和复习。 1.2 语音识别技术的现状 1.2.1 语音识别相关技术 (1) LPC (Linear Predictive Coding,线性预测编码 ) LPC 是一种基于人声道发音特征设计的,由于绝大多数语音信号都是周期性的,所以可以假设一个语音样本可以由以前的 p 个样本的线性组合来预测。 线性预测编码通过估计共振峰、剔除它们在语音信号中的作用、估计保留的蜂鸣音强度与频率来分析语音信号。剔除共振峰的过程称为逆滤波,经过这个过程剩余的信号称为残余信号。 描述峰鸣强度与频率、共鸣峰、残余信号的数字可以保存、发送到其它地方。线性预测编码通过逆向的过程合成 语音信号:使用蜂
9、鸣参数与残余信号生成源信号、使用共振峰生成表示声道的滤波器,源信号经过滤波器的处一种基于 STC 单片机的特定声音识别系统的设计 2 理就得到语音信号。 线性预测的基本公式可以表示为 1-1: pk nknknUGyay1 )()()(* ( 1-1) 式中 )(nU 为数字滤波器的输入; G 为振幅增益控制系数; p 为 LPC 预测的阶数。 ka 为线性预测系数。其中 LPC 线性预测的误差可以表示为式 1.2: pk k knyanyne 1 )()()(( 1-2) 每一帧的均方误差的数学期望为 : )(2 neE ( 1-3) 如果 E 能取到最小值,那么就能获得 LPC 的预测参数
10、。提取了这些特征参数就可以进一步进行语音识别了 (2) DTW( Dynamic Time Wrapped algorithm)动态时间规整技术 由于语音识别时会碰到语音不等长匹配的问题,即同一段语音就算是同一个人但在不同时段语音的长度是不同的,这给语音的识别带来了麻烦。DTW 就是为解决这一问题 基于动态规划( DP)的思想 而产生的一种算法。DTW 的具体算法如下: 语音识别先用 端点检测的方法决定一段语音的起点与终点,然后采取 特征参数。假设参考模板的语音特征矢量的数列为 1a , 2a , na ;输入信号的特征矢量的数列为 1b , 2b , wb ;其中的 n 于 m 不相等。动态
11、规整就是寻找时间规整函数 )(nmw ,把输入模块的时间轴 w 非线性的投射到参考模板的时间轴 n 上去。 如果把测试模板的各个帧号 w=1M 在一个二维直角坐标系中的横轴 上标出,把参考模板的各帧号 n=1N 在纵轴上标出,通过这些表示帧号 整数坐标画出一些纵横线即可形成一个网络,网络中的每一 个交叉点( n, m)表示测试模式中某一帧的交汇点。 DP 算法可以归结为寻找一条通过此 网络中若干格点的路径,路径通过的格点即为测试和参考模板中进行计算 的帧号。路径不是随意选择的,首先任何一种语音的发音快慢都有可能变 化,但是其各部分的先后次序不可能改变,因此所选的路径必定是从左下 角出发,在右上
12、角结束,如图 1-1 所示: 一种基于 STC 单片机的特定声音识别系统的设计 3 图 1-1 . 于最优时间规整下两模板的距离测度。动态时间规整是 一个典型的最优化问题 ,它用满足一定条件的时间规整函数 w(n)描述输入模板和参考模板的时间对应关系 ,求解两模板匹配时最小累计距离对应的规整函数。动态规划是一种最优化算法 ,它是一个 N 个阶段的决策过程 ,也就是说逐一做出 N 个子决策的过程。为了使计算问题简化 ,在动态规划的具体问题中规整函数 w(n)应满足边界条件和连续条件的约束。 边界条件: 1)1( w , MNw )( (1-4) 连续条件: 2,1,0)()1( nwnw )1(
13、)( nwnw 2,1)()1( nwnw )1()( nwnw 如图 1.1 所示函数 w(n)曲线限定于一个平行四边形区域内 ,四边形边斜 率是 2,另一条边的斜率为 1/2。也就是说在极端情况下 n 加 l,增加 2,终点坐标为 M=ZN;反之 ,n 增加 2,m 至少增加 l,此时则有 M=N/2。从物理意义上来讲 ,等于将两模板之间的差异限制在 1/2到 2之内。因此 ,w(n)的走向受到限制。动态时间规整的问题可以看作为从 (1,l)点沿着怎样的一条路线到达终点(N,M),同时使两个模板的匹配距离最小。 假设 )(, nwndmnd 是帧矢量 nb 和 ma 之间的距离,最小的累
14、计距 离和为: njjw jwjdmnD 1)( )(,m in),( ( 1-5) 一种基于 STC 单片机的特定声音识别系统的设计 4 DTW 的最后结果就是找到一条从 (1,1)点到( n, m)点的最短路径,具 体的计算步骤是从终点开始按条件 )(nw ,开始倒退回到原点。在图 1-1 上的平行四边形中找到最短路径,然后再取路径所经过的格点的帧的数 据进行比较,从而进行语音识别。 (3) VQ 矢量量化 矢量量化是 将若干个标量数据组构成一个矢量,然后在矢量空间给以整体量化,从而压缩了数据而不损失多少信息 。与传统的 预测和变换编码 相比 ,矢量量化编 码中,是把输入数据几个一组地分成
15、许多组,成组地量化编码,即将这些数看成一个 k 维矢量,然后以矢量为单位逐个矢量进行量化 ,传统则需要将数据一个一个的编码。 矢量量化是一种限失真编码,其原理仍可用信息论中的率失真函数理论来分析。而率失真理论指出,即使对无记忆信源,矢量量化编码也总是优于标量量化。 (4) HMM 隐马尔科夫模型 隐形马尔可夫过程是一个双重随机过程 :一重用于描述非平稳信号短时平稳段的统计特征 ;另一重描述了每个短时平稳段如何转换到下一个平稳段 ,也就是短时统计特性的动态特征 ,这些特征是隐含在观测序 列中的 ,这也是为什么称为隐形马尔可夫模型的原因。基于这两重随机过程 ,隐形马尔可夫模型就可以有效地解决怎样识
16、别具有不同参数的短时平稳信号段问题 ,并能跟踪它们之间的转化。 人类语音过程也是这样一个双重随机过程 ,因为信号本身是一个可观测序列 ,而它又是由人类大脑 (不可观测的 )、根据自己想要表达内容的需要和语法知识所产生的音素流。同时大量试验证明隐形马尔可夫模型可以非常精确地描述语音信号的产生过程。 隐形马尔可夫模型的数学描述可以由下列特征参数来表示: N ,隐形马尔可夫模型中的状态数。虽然状态数在 隐形马尔可夫中是隐含的 ,但是它在 应用中是有实际物理意义的。在后面的讨论中我们 标记模型中的各个状态为。 , 21 nsss , ,在 t 时刻所处的状态为 ts M ,每个状态中可以观察到的符号数
17、。标记各个观察符号为 , 21 mvvvv ,观测序列为 , 21 toooo ,其中 to 为集合 v 中的一种观测符号, t 为观测序列长度。 状态转移分布 ,其中 ijaA ,其中 | 1 iqjqpa ttij NjNi 1,1 ( 1-6) 一种基于 STC 单片机的特定声音识别系统的设计 5 观测符号分布概率 )( jbB ,其中 | jqvopkb tktj NjMk 1,1 ( 1-7) 初始状态概率分布 ,其中 1 iqp Ni1 ( 1-8) (1)基于这些特征参数 ,隐形马尔可夫模型产生观测序列 , 21 toooo 的过程可以做如下描述。 (2)根据初始状态分布概率 ,
18、选择一个初始状态 iqi 。 (3)置观测时间 1t 。 (3)根据当前状态下观测符号的分布概率 B ,选择 kt vo 。 (4)根据状态转移概率分布 A ,从当前状态 iqt 转移到下一个状态 jqt 1 。 ( 5)令 1tt ,如果 Tt (观测的时间序列为 Tt ,2,1 ),则计算返回第 3步,否则计算介绍。 综上所述 ,一个隐形马尔可夫完全可以由两个模型参数 N 、 M 和 3 个概 率分布参数 ,BA 来确定。为了以后方便起见 ,将隐形马尔可夫模型定义为 : ),( BA ( 1-9) 根据观测符号的概率分布特点 (离散分布还是连续分布 ) ,隐形马尔可夫 型还可以分为离散隐形
19、马尔可夫和连续隐形马尔可夫模型。试验最终将选用连 续的 HMM。 1.2.2 语音识别系统 最早的基于电子计算机的 语音识别系统 是由 AT&T 贝尔实验室开发的 Audrey 语音 识别系统,它能够识别 10 个英文数字。实验室语音 识别研究的巨 大突破产生于 20 世纪 80 年代末 , 比较典型的 是卡耐基梅隆大学 (CarnegieMellon University)的 Sphinx 系统,它是第一个高性能的非特定人、大 词汇量连续语音识别系统。 20 世纪 90 年代前期 , IBM 公司推出 了 ViaVoice, DragonSystem 公司 推出 了 NaturallySpe
20、aking,Nuance 公司 开发了 NuanceVoicePlatform 语音平台, 一种基于 STC 单片机的特定声音识别系统的设计 6 Microsoft 也有 Whisper。 关于中文的语音识别系统, 其中 IBM 公司于 1997 年开发出汉语 ViaVoice 语音识别系统 。经开发升级后, 次年又 推出了 可以识别上海话、广东话和四川 话等地方口音的语音识别系统 ViaVoice98。中科院自动化所及其所属模式科技 (Pattek)公司 也与 2002 年推出的面向不同计算平台和应用的 “天语 ”中文语音系 列产品 PattekASR。打破了中文识别一直由外国技术公司垄断的地位。 1.3 课题研究的目的和主要内容 本次研究的目的是研究基于 STC 单片机的特定声音识别系统,是对语音识别的一次探 索,在已有的语音识别的基础上,结合 STC 单片机的芯片处理 能力研究出新的语音识别方法。研究的主要内容为提取怎样的语音特征,语音信号处理,和模块识别的问题。